diff --git a/build/frontend-legacy/package-lock.json b/build/frontend-legacy/package-lock.json index 654c232ef1dd9..de2529cd2ce33 100644 --- a/build/frontend-legacy/package-lock.json +++ b/build/frontend-legacy/package-lock.json @@ -161,7 +161,6 @@ "integrity": "sha512-2BCOP7TN8M+gVDj7/ht3hsaO/B/n5oDbiAyyvnRlNOs+u1o+JWNYTQrmpuNp1/Wq2gcFrI01JAW+paEKDMx/CA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/code-frame": "^7.27.1", "@babel/generator": "^7.28.3", @@ -1612,7 +1611,6 @@ "integrity": "sha512-ROiDcM+GbYVPYBOeCR6uBXKkQpBExLl8k9HO1ygXEyds39j+vCCsjmj7S8GOniZQlEs81QlkdJZe76IpLSiqpg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@babel/compat-data": "^7.28.0", "@babel/helper-compilation-targets": "^7.27.2", @@ -2692,6 +2690,7 @@ "integrity": "sha512-q6XAnWQDIMA3+FTiOYajoYqySkO+JSat0ytXGSuRdq9uXE7o92gzuQwQM14xaCRlBLGq3v5miDGC4vkVTn54xA==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=10.0" }, @@ -2709,6 +2708,7 @@ "integrity": "sha512-NDigYR3PHqCnQLXYyoLbnEdzMMvzeiCWo1KOut7Q0CoIqg9tUAPKJ1iq/2nFhc5kZtexzutNY0LFjdwWL3Dw3Q==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=10.0" }, @@ -2726,6 +2726,7 @@ "integrity": "sha512-E8Oy+08cmCf0EK/NMxpaJZmOxPqM+6iSe2S4nlSBrPZOORoDJILxtbSUEDKQyTamm/BVAhIGllOBNU79/dwf0g==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=10.0" }, @@ -2743,6 +2744,7 @@ "integrity": "sha512-LpWbYgVnKzphN5S6uss4M25jJ/9+m6q6UJoeN6zTkK4xAGhKsiBRPVeF7OYMWonn5repMQbE5vieRXcMUrKDKw==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@jsonjoy.com/base64": "^1.1.2", "@jsonjoy.com/buffers": "^1.0.0", @@ -2769,6 +2771,7 @@ "integrity": "sha512-Fsn6wM2zlDzY1U+v4Nc8bo3bVqgfNTGcn6dMgs6FjrEnt4ZCe60o6ByKRjOGlI2gow0aE/Q41QOigdTqkyK5fg==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@jsonjoy.com/codegen": "^1.0.0", "@jsonjoy.com/util": "^1.9.0" @@ -2790,6 +2793,7 @@ "integrity": "sha512-pLuQo+VPRnN8hfPqUTLTHk126wuYdXVxE6aDmjSeV4NCAgyxWbiOIeNJVtID3h1Vzpoi9m4jXezf73I6LgabgQ==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@jsonjoy.com/buffers": "^1.0.0", "@jsonjoy.com/codegen": "^1.0.0" @@ -2810,7 +2814,8 @@ "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.5.tgz", "integrity": "sha512-Vo+PSpZG2/fmgmiNzYK9qWRh8h/CHrwD0mo1h1DzL4yzHNSfWYujGTYsWGreD000gcgmZ7K4Ys6Tx9TxtsKdDw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@linusborg/vue-simple-portal": { "version": "0.1.5", @@ -3103,6 +3108,7 @@ "integrity": "sha512-kIE8wvwlcZ6TJTbNeU2HQNtaxLx3a84aotTITUuL/4bzfPxzajGBOoqjMhwZJ8L9qFYDU/lAYMEEm11dnZOD6g==", "license": "MIT", "optional": true, + "peer": true, "dependencies": { "@vue/devtools-kit": "^7.7.9" } @@ -3265,6 +3271,29 @@ "url": "https://github.com/sponsors/jonschlinkert" } }, + "node_modules/@nextcloud/dialogs/node_modules/pinia": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/pinia/-/pinia-3.0.4.tgz", + "integrity": "sha512-l7pqLUFTI/+ESXn6k3nu30ZIzW5E2WZF/LaHJEpoq6ElcLD+wduZoB2kBN19du6K/4FDpPMazY2wJr+IndBtQw==", + "license": "MIT", + "optional": true, + "peer": true, + "dependencies": { + "@vue/devtools-api": "^7.7.7" + }, + "funding": { + "url": "https://github.com/sponsors/posva" + }, + "peerDependencies": { + "typescript": ">=4.5.0", + "vue": "^3.5.11" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } + } + }, "node_modules/@nextcloud/dialogs/node_modules/readdirp": { "version": "5.0.0", "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-5.0.0.tgz", @@ -3310,7 +3339,6 @@ "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.28.tgz", "integrity": "sha512-BRdrNfeoccSoIZeIhyPBfvWSLFP4q8J3u8Ju8Ug5vu3LdD+yTM13Sg4sKtljxozbnuMu1NB1X5HBHRYUzFocKg==", "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.28", "@vue/compiler-sfc": "3.5.28", @@ -3885,7 +3913,6 @@ "version": "3.5.24", "resolved": "https://registry.npmjs.org/vue/-/vue-3.5.24.tgz", "integrity": "sha512-uTHDOpVQTMjcGgrqFPSb8iO2m1DUvo+WbGqoXQz8Y1CeBYQ0FXf2z1gLRaBtHjlRz7zZUBHxjVB5VTLzYkvftg==", - "peer": true, "dependencies": { "@vue/compiler-dom": "3.5.24", "@vue/compiler-sfc": "3.5.24", @@ -4088,7 +4115,6 @@ "resolved": "https://registry.npmjs.org/@nextcloud/vue/-/vue-8.36.0.tgz", "integrity": "sha512-x1MEh4nvCrD1zoJ3ybhtbSDox+1wyHRP7st95Uu14Wm630quRrfXGaQ1bxqaZ7en/wqaihR0NPyQKfmjrPmseg==", "license": "AGPL-3.0-or-later", - "peer": true, "dependencies": { "@floating-ui/dom": "^1.7.5", "@linusborg/vue-simple-portal": "^0.1.5", @@ -5207,6 +5233,7 @@ "integrity": "sha512-HLFeCYgz89uk22N5Qg3dvGvsv46B8GLvKKo1zKG4NybA8U2DiEO3w9lqGg29t/tfLRJpJ6iQxnVw4OnB7MoM9g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/connect": "*", "@types/node": "*" @@ -5218,6 +5245,7 @@ "integrity": "sha512-z9fJ5Im06zvUL548KvYNecEVlA7cVDkGUi6kZusb04mpyEFKCIZJvloCcmpmLaIahDpOQGHaHmG6imtPMmPXGQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*" } @@ -5239,6 +5267,7 @@ "integrity": "sha512-K6uROf1LD88uDQqJCktA4yzL1YYAK6NgfsI0v/mTgyPKWsX1CnJ0XPSDhViejru1GcRkLWb8RlzFYJRqGUbaug==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*" } @@ -5249,6 +5278,7 @@ "integrity": "sha512-n6Cr2xS1h4uAulPRdlw6Jl6s1oG8KrVilPN2yUITEs+K48EzMJJ3W1xy8K5eWuFvjp3R74AOIGSmp2UfBJ8HFw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/express-serve-static-core": "*", "@types/node": "*" @@ -5319,6 +5349,7 @@ "integrity": "sha512-Crp6WY9aTYP3qPi2wGDo9iUe/rceX01UMhnF1jmwDcKCFM6cx7YhGP/Mpr3y9AASpfHixIG0E6azCcL5OcDHsQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/body-parser": "*", "@types/express-serve-static-core": "^4.17.33", @@ -5332,6 +5363,7 @@ "integrity": "sha512-N4LZ2xG7DatVqhCZzOGb1Yi5lMbXSZcmdLDe9EzSndPV2HpWYWzRbaerl2n27irrm94EPpprqa8KpskPT085+A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*", "@types/qs": "*", @@ -5353,7 +5385,8 @@ "resolved": "https://registry.npmjs.org/@types/http-errors/-/http-errors-2.0.5.tgz", "integrity": "sha512-r8Tayk8HJnX0FztbZN7oVqGccWgw98T/0neJphO91KkmOzug1KkofZURD4UaD5uH8AqcFLfdPErnBod0u71/qg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/http-proxy": { "version": "1.17.16", @@ -5361,6 +5394,7 @@ "integrity": "sha512-sdWoUajOB1cd0A8cRRQ1cfyWNbmFKLAqBB89Y8x5iYyG/mkJHc0YUH8pdWBy2omi9qtCpiIgGjuwO0dQST2l5w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*" } @@ -5395,7 +5429,8 @@ "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.5.tgz", "integrity": "sha512-/pyBZWSLD2n0dcHE3hq8s8ZvcETHtEuF+3E7XVt0Ig2nvsVQXdghHVcEkIWjy9A0wKfTn97a/PSDYohKIlnP/w==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/ms": { "version": "2.1.0", @@ -5419,6 +5454,7 @@ "integrity": "sha512-mhVF2BnD4BO+jtOp7z1CdzaK4mbuK0LLQYAvdOLqHTavxFNq4zA1EmYkpnFjP8HOUzedfQkRnp0E2ulSAYSzAw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*" } @@ -5428,14 +5464,16 @@ "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.14.0.tgz", "integrity": "sha512-eOunJqu0K1923aExK6y8p6fsihYEn/BYuQ4g0CxAAgFc4b/ZLN4CrsRZ55srTdqoiLzU2B2evC+apEIxprEzkQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/range-parser": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.7.tgz", "integrity": "sha512-hKormJbkJqzQGhziax5PItDUTMAM9uE2XXQmM37dyd4hVM+5aVl7oVxMVUiVQn2oCQFN/LKCZdvSM0pFRqbSmQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/react": { "version": "19.2.0", @@ -5459,7 +5497,8 @@ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.2.tgz", "integrity": "sha512-XISRgDJ2Tc5q4TRqvgJtzsRkFYNJzZrhTdtMoGVBttwzzQJkPnS3WWTFc7kuDRoPtPakl+T+OfdEUjYJj7Jbow==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/@types/semver": { "version": "7.7.1", @@ -5473,6 +5512,7 @@ "integrity": "sha512-z6F2D3cOStZvuk2SaP6YrwkNO65iTZcwA2ZkSABegdkAh/lf+Aa/YQndZVfmEXT5vgAp6zv06VQ3ejSVjAny4w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/mime": "^1", "@types/node": "*" @@ -5484,6 +5524,7 @@ "integrity": "sha512-qLpGZ/c2fhSs5gnYsQxtDEq3Oy8SXPClIXkW5ghvAvsNuVSA8k+gCONcUCS/UjLEYvYps+e8uBtfgXgvhwfNug==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/express": "*" } @@ -5494,6 +5535,7 @@ "integrity": "sha512-roei0UY3LhpOJvjbIP6ZZFngyLKl5dskOtDhxY5THRSpO+ZI+nzJ+m5yUMzGrp89YRa7lvknKkMYjqQFGwA7Sg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/http-errors": "*", "@types/node": "*", @@ -5512,6 +5554,7 @@ "integrity": "sha512-MK9V6NzAS1+Ud7JV9lJLFqW85VbC9dq3LmwZCuBe4wBDgKC0Kj/jd8Xl+nSviU+Qc3+m7umHHyHg//2KSa0a0Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*" } @@ -5561,6 +5604,7 @@ "integrity": "sha512-ThVF6DCVhA8kUGy+aazFQ4kXQ7E1Ty7A3ypFOe0IcJV8O/M511G99AW24irKrW56Wt44yG9+ij8FaqoBGkuBXg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node": "*" } @@ -5970,6 +6014,7 @@ "integrity": "sha512-PyQ6odHSgiDVd4hnTP+aDk2X4gl2HmLDfiyEnn3/oV+ckFDuswRs4IbBT7vacMuGdwY/XemxBoh302ctbsptuA==", "license": "MIT", "optional": true, + "peer": true, "dependencies": { "@vue/devtools-shared": "^7.7.9", "birpc": "^2.3.0", @@ -5986,6 +6031,7 @@ "integrity": "sha512-iWAb0v2WYf0QWmxCGy0seZNDPdO3Sp5+u78ORnyeonS6MT4PC7VPrryX2BpMJrwlDeaZ6BD4vP4XKjK0SZqaeA==", "license": "MIT", "optional": true, + "peer": true, "dependencies": { "rfdc": "^1.4.1" } @@ -6414,6 +6460,7 @@ "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "event-target-shim": "^5.0.0" }, @@ -6427,6 +6474,7 @@ "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "mime-types": "~2.1.34", "negotiator": "0.6.3" @@ -6440,7 +6488,6 @@ "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.15.0.tgz", "integrity": "sha512-NZyJarBfL7nWwIq+FDL6Zp/yHEhePMNnnJ0y3qfieCrmNvYct8uvtiV41UvlSe6apAfk0fY1FbWx+NwfmpvtTg==", "license": "MIT", - "peer": true, "bin": { "acorn": "bin/acorn" }, @@ -6467,7 +6514,6 @@ "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.1", "fast-json-stable-stringify": "^2.0.0", @@ -6540,6 +6586,7 @@ "node >= 0.8.0" ], "license": "Apache-2.0", + "peer": true, "bin": { "ansi-html": "bin/ansi-html" } @@ -6574,6 +6621,7 @@ "integrity": "sha512-KMReFUr0B4t+D+OBkjR3KYqvocp2XaSzO55UcB6mgQMd3KbcE+mWTyvVV7D/zsdEbNnV6acZUutkiHQXvTr1Rw==", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "normalize-path": "^3.0.0", "picomatch": "^2.0.4" @@ -6623,7 +6671,8 @@ "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/array.prototype.reduce": { "version": "1.0.8", @@ -6693,6 +6742,7 @@ "integrity": "sha512-eLHpSK/Y4nhMJ07gDaAzoX/XAKS8PSaojml3M0DM4JpV1LAi5JOJ/p6H/XWrl8L+DzVEvVCW1z3vWAaB9oTsQw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.2", "is-nan": "^1.3.2", @@ -6825,7 +6875,6 @@ "resolved": "https://registry.npmjs.org/axios/-/axios-1.13.5.tgz", "integrity": "sha512-cz4ur7Vb0xS4/KUN0tPWe44eqxrIu31me+fbang3ijiNscE129POzipJJA6zniq2C/Z6sJCjMimjS8Lc/GAs8Q==", "license": "MIT", - "peer": true, "dependencies": { "follow-redirects": "^1.15.11", "form-data": "^4.0.5", @@ -6969,7 +7018,8 @@ "url": "https://feross.org/support" } ], - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/baseline-browser-mapping": { "version": "2.9.11", @@ -6985,7 +7035,8 @@ "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/big.js": { "version": "5.2.2", @@ -7003,6 +7054,7 @@ "integrity": "sha512-Ceh+7ox5qe7LJuLHoY0feh3pHuUDHAcRUeyL2VYghZwfpkNIy/+8Ocg0a3UuSoYzavmylwuLWQOf3hl0jjMMIw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=8" }, @@ -7044,6 +7096,7 @@ "integrity": "sha512-ZTgYYLMOXY9qKU/57FAo8F+HA2dGX7bqGc71txDRC1rS4frdFI5R7NhluHxH6M0YItAP0sHB4uqAOcYKxO6uGA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "bytes": "~3.1.2", "content-type": "~1.0.5", @@ -7069,6 +7122,7 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ms": "2.0.0" } @@ -7079,6 +7133,7 @@ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "depd": "~2.0.0", "inherits": "~2.0.4", @@ -7099,7 +7154,8 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/body-parser/node_modules/statuses": { "version": "2.0.2", @@ -7107,6 +7163,7 @@ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -7117,6 +7174,7 @@ "integrity": "sha512-3YuAUiSkWykd+2Azjgyxei8OWf8thdn8AITIog2M4UICzoqfjlqr64WIjEXZllf/W6vK1goqleSR6brGomxQqA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "multicast-dns": "^7.2.5" @@ -7227,6 +7285,7 @@ "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "pako": "~1.0.5" } @@ -7250,7 +7309,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "baseline-browser-mapping": "^2.9.0", "caniuse-lite": "^1.0.30001759", @@ -7310,7 +7368,8 @@ "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", "integrity": "sha512-HpGFw18DgFWlncDfjTa2rcQ4W88O1mC8e8yZ2AvQY5KDaktSTwo+KRf6nHK6FRI5FyRyb/5T6+TSxfP7QyGsmQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/bundle-name": { "version": "4.1.0", @@ -7318,6 +7377,7 @@ "integrity": "sha512-tjwM5exMg6BGRI+kNmTntNsvdZS1X8BFYS6tnJ2hdH0kVxM6/eVZ2xy+FqStSWvYmtfFMDLIxurorHwDKfDz5Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "run-applescript": "^7.0.0" }, @@ -7340,6 +7400,7 @@ "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -7530,6 +7591,7 @@ "integrity": "sha512-7VT13fmjotKpGipCW9JEQAusEPE+Ei8nl6/g4FBAmIm0GOOLMua9NDDo/DWp0ZAxCr3cPq5ZpBqmPAQgDda2Pw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "anymatch": "~3.1.2", "braces": "~3.0.2", @@ -7797,6 +7859,7 @@ "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "mime-db": ">= 1.43.0 < 2" }, @@ -7810,6 +7873,7 @@ "integrity": "sha512-9mAqGPHLakhCLeNyxPkK4xVo746zQ/czLH1Ky+vkitMnWfWZps8r0qXuwhwizagCRttsL4lfG4pIOvaWLpAP0w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "bytes": "3.1.2", "compressible": "~2.0.18", @@ -7829,6 +7893,7 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ms": "2.0.0" } @@ -7838,7 +7903,8 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/compression/node_modules/negotiator": { "version": "0.6.4", @@ -7846,6 +7912,7 @@ "integrity": "sha512-myRT3DiWPHqho5PrJaIRyaMv2kgYf0mUVgBNOYMuCH5Ki1yEiQaf/ZJuQ62nvpc44wL5WDbTX7yGJi1Neevw8w==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -7908,6 +7975,7 @@ "integrity": "sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.8" } @@ -7916,7 +7984,8 @@ "version": "1.2.0", "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true + "dev": true, + "peer": true }, "node_modules/consolidate": { "version": "0.15.1", @@ -7937,7 +8006,8 @@ "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", "integrity": "sha512-xFxOwqIzR/e1k1gLiWEophSCMqXcwVHIH7akf7b/vxcUeGunlj3hvZaaqxwHsTgn+IndtkQJgSztIDWeumWJDQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/content-disposition": { "version": "0.5.4", @@ -7945,6 +8015,7 @@ "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "safe-buffer": "5.2.1" }, @@ -7958,6 +8029,7 @@ "integrity": "sha512-nTjqfcBFEipKdXCv4YDQWCfmcLZKm81ldF0pAopTvyrFGVbcR6P/VAAd5G7N+0tTr8QqiU0tFadD6FK4NtJwOA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -7983,7 +8055,8 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha512-QADzlaHc8icV8I7vbaJXJwod9HWYp8uCqf1xa4OfNu1T7JVxQIrUgOWtHdNDtPiywmFbiS12VjotIXLrKM3orQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/copy-anything": { "version": "4.0.5", @@ -8183,6 +8256,7 @@ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -8415,6 +8489,7 @@ "integrity": "sha512-WY/3TUME0x3KPYdRRxEJJvXRHV4PyPoUsxtZa78lwItwRQRHhd2U9xOscaT/YTf8uCXIAjeJOFBVEh/7FtD8Xg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "bundle-name": "^4.1.0", "default-browser-id": "^5.0.0" @@ -8432,6 +8507,7 @@ "integrity": "sha512-A6p/pu/6fyBcA1TRz/GqWYPViplrftcW2gZC9q79ngNCKAeR/X3gcEdXQHl4KNXV+3wgIJ1CPkJQ3IHM6lcsyA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=18" }, @@ -8485,6 +8561,7 @@ "integrity": "sha512-N+MeXYoqr3pOgn8xfyRPREN7gHakLYjhsHhWGT3fWAiL4IkAt0iDw14QiiEm2bE30c5XX5q0FtAA3CK5f9/BUg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=12" }, @@ -8531,6 +8608,7 @@ "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -8560,6 +8638,7 @@ "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8", "npm": "1.2.8000 || >= 1.4.16" @@ -8584,7 +8663,8 @@ "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/devlop": { "version": "1.1.0", @@ -8628,6 +8708,7 @@ "integrity": "sha512-l4gcSouhcgIKRvyy99RNVOgxXiicE+2jZoNmaNmZ6JXiGajBOJAesk1OBlJuM5k2c+eudGdLxDqXuPCKIj6kpw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@leichtgewicht/ip-codec": "^2.0.1" }, @@ -8655,6 +8736,7 @@ "integrity": "sha512-edTFu0M/7wO1pXY6GDxVNVW086uqwWYIHP98txhcPyV995X21JIH2DtYp33sQJOupYoXKe9RwTw2Ya2vWaquTQ==", "dev": true, "license": "Artistic-2.0", + "peer": true, "engines": { "node": ">=4" }, @@ -8767,7 +8849,8 @@ "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", "integrity": "sha512-WMwm9LhRUo+WUaRN+vRuETqG89IgZphVSNkdFgeb6sS/E4OrDIN7t48CAewSHXc6C8lefD8KKfr5vY61brQlow==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/ejs": { "version": "3.1.10", @@ -8847,6 +8930,7 @@ "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -9210,6 +9294,7 @@ "integrity": "sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -9220,6 +9305,7 @@ "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -9229,7 +9315,8 @@ "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/events": { "version": "3.3.0", @@ -9287,6 +9374,7 @@ "integrity": "sha512-F2X8g9P1X7uCPZMA3MVf9wcTqlyNp7IhH5qPCI0izhaOIYXaW9L535tGA3qmjRzpH+bZczqq7hVKxTR4NWnu+g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "accepts": "~1.3.8", "array-flatten": "1.1.1", @@ -9334,6 +9422,7 @@ "integrity": "sha512-6DnInpx7SJ2AK3+CTUE/ZM0vWTUboZCegxhC2xiIydHR9jNuTAASBrfEpHhiGOZw/nX51bHt6YQl8jsGo4y/0w==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -9344,6 +9433,7 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ms": "2.0.0" } @@ -9354,6 +9444,7 @@ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -9364,6 +9455,7 @@ "integrity": "sha512-6BN9trH7bp3qvnrRyzsBz+g3lZxTNZTbVO2EV1CS0WIcDbawYVdYvGflME/9QP0h0pYlCDBCTjYa9nZzMDpyxQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "debug": "2.6.9", "encodeurl": "~2.0.0", @@ -9382,14 +9474,16 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/express/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==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/express/node_modules/statuses": { "version": "2.0.1", @@ -9397,6 +9491,7 @@ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -9458,9 +9553,9 @@ "license": "BSD-3-Clause" }, "node_modules/fast-xml-parser": { - "version": "5.3.4", - "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.4.tgz", - "integrity": "sha512-EFd6afGmXlCx8H8WTZHhAoDaWaGyuIBoZJ2mknrNxug+aZKjkp0a0dlars9Izl+jF+7Gu1/5f/2h68cQpe0IiA==", + "version": "5.3.6", + "resolved": "https://registry.npmjs.org/fast-xml-parser/-/fast-xml-parser-5.3.6.tgz", + "integrity": "sha512-QNI3sAvSvaOiaMl8FYU4trnEzCwiRr8XMWgAHzlrWpTSj+QaCSvOf1h82OEP1s4hiAXhnbXSyFWCf4ldZzZRVA==", "funding": [ { "type": "github", @@ -9469,7 +9564,7 @@ ], "license": "MIT", "dependencies": { - "strnum": "^2.1.0" + "strnum": "^2.1.2" }, "bin": { "fxparser": "src/cli/cli.js" @@ -9498,6 +9593,7 @@ "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "websocket-driver": ">=0.5.1" }, @@ -9615,6 +9711,7 @@ "integrity": "sha512-78/PXT1wlLLDgTzDs7sjq9hzz0vXD+zn+7wypEe4fXQxCmdmqfGsEPQxmiCSQI3ajFV91bVSsvNtrJRiW6nGng==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "locate-path": "^6.0.0", "path-exists": "^4.0.0" @@ -9782,6 +9879,7 @@ "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -9792,6 +9890,7 @@ "integrity": "sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -9990,6 +10089,7 @@ "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "is-glob": "^4.0.1" }, @@ -10003,6 +10103,7 @@ "integrity": "sha512-CG/iEvgQqfzoVsMUbxSJcwbG2JwyZ3naEqPkeltwl0BSS8Bp83k3xlGms+0QdWFUAwV+uvo80wNswKF6FWEkKg==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=10.0" }, @@ -10097,14 +10198,14 @@ "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/handlebars": { "version": "4.7.8", "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.8.tgz", "integrity": "sha512-vafaFqs8MZkRrSX7sFVUdo3ap/eNiLnb4IakshzvP56X5Nr1iGKAIqdX6tMlm6HcNRIkr6AxO5jFEoJzzpT8aQ==", "license": "MIT", - "peer": true, "dependencies": { "minimist": "^1.2.5", "neo-async": "^2.6.2", @@ -10466,6 +10567,7 @@ "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "inherits": "^2.0.1", "obuf": "^1.0.0", @@ -10485,7 +10587,8 @@ "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/http-errors": { "version": "2.0.0", @@ -10493,6 +10596,7 @@ "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "depd": "2.0.0", "inherits": "2.0.4", @@ -10510,6 +10614,7 @@ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -10519,7 +10624,8 @@ "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.10.tgz", "integrity": "sha512-Pysuw9XpUq5dVc/2SMHpuTY01RFl8fttgcyunjL7eEMhGM3cI4eOmiCycJDVCo/7O7ClfQD3SaI6ftDzqOXYMA==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/http-proxy": { "version": "1.18.1", @@ -10527,6 +10633,7 @@ "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "eventemitter3": "^4.0.0", "follow-redirects": "^1.0.0", @@ -10542,6 +10649,7 @@ "integrity": "sha512-c1IyJYLYppU574+YI7R4QyX2ystMtVXZwIdzazUIPIJsHuWNd+mho2j+bKoHftndicGj9yh+xjd+l0yj7VeT1Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/http-proxy": "^1.17.8", "http-proxy": "^1.18.1", @@ -10567,6 +10675,7 @@ "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -10579,7 +10688,8 @@ "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", "integrity": "sha512-J+FkSdyD+0mA0N+81tMotaRMfSL9SGi+xpD3T6YApKsc3bGSXJlfXri3VyFOeYkfLRQisDk1W+jIFFKBeUBbBg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/hyperdyperid": { "version": "1.2.0", @@ -10587,6 +10697,7 @@ "integrity": "sha512-Y93lCzHYgGWdrJ66yIktxiaGULYc6oGiABxhcO5AufBeOyoIdZF7bIfLaOrbM0iGIOXQQgxxRrFEnb+Y6w1n4A==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10.18" } @@ -10597,6 +10708,7 @@ "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "safer-buffer": ">= 2.1.2 < 3" }, @@ -10610,6 +10722,7 @@ "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true, "license": "ISC", + "peer": true, "engines": { "node": "^10 || ^12 || >= 14" }, @@ -10643,7 +10756,8 @@ "url": "https://feross.org/support" } ], - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/immutable": { "version": "5.1.3", @@ -10794,6 +10908,7 @@ "integrity": "sha512-Ag3wB2o37wslZS19hZqorUnrnzSkpOVy+IiiDEiTqNubEYpYuHWIf6K4psgN2ZWKExS4xhVCrRVfb/wfW8fWJA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 10" } @@ -10911,6 +11026,7 @@ "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "binary-extensions": "^2.0.0" }, @@ -11020,6 +11136,7 @@ "integrity": "sha512-eljcgEDlEns/7AXFosB5K/2nCM4P7FQPkGc/DWLy5rmFEWvZayGrik1d9/QIY5nJ4f9YsVvBkA6kJpHn9rISdQ==", "dev": true, "license": "MIT", + "peer": true, "bin": { "is-docker": "cli.js" }, @@ -11124,6 +11241,7 @@ "integrity": "sha512-KIYLCCJghfHZxqjYBE7rEy0OBuTd5xCHS7tHVgvCLkx7StIoaxwNW3hCALgEUjFfeRk+MG/Qxmp/vtETEF3tRA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "is-docker": "^3.0.0" }, @@ -11163,6 +11281,7 @@ "integrity": "sha512-E+zBKpQ2t6MEo1VsonYmluk9NxGrbzpeeLC2xIViuO2EjU2xsXsBPwTr3Ykv9l08UYEVEdWeRZNouaZqF6RN0w==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "call-bind": "^1.0.0", "define-properties": "^1.1.3" @@ -11193,6 +11312,7 @@ "integrity": "sha512-6oIwpsgRfnDiyEDLMay/GqCl3HoAtH5+RUKW29gYkL0QA+ipzpDLA16yQs7/RHCSu+BwgbJaOUqa4A99qNVQVw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=16" }, @@ -11491,6 +11611,7 @@ "integrity": "sha512-UcVfVfaK4Sc4m7X3dUSoHoozQGBEFeDC+zVo06t98xe8CzHSZZBekNXH+tu0NalHolcJ/QAGqS46Hef7QXBIMw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "is-inside-container": "^1.0.0" }, @@ -11874,6 +11995,7 @@ "integrity": "sha512-SEET7oNfgSaB6Ym0jufAdCeo3meJVeCaaDyzRygy0xsp2BFKCprcfHljTq4QkzTLUxEKkFK6OK4811YM2oSrRg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "picocolors": "^1.1.1", "shell-quote": "^1.8.3" @@ -11914,8 +12036,7 @@ "version": "4.3.2", "resolved": "https://registry.npmjs.org/linkifyjs/-/linkifyjs-4.3.2.tgz", "integrity": "sha512-NT1CJtq3hHIreOianA8aSXn6Cw0JzYOuDQbOrSPe7gqFnCpKP++MQe3ODgO3oh2GJFORkAAdqredOa60z63GbA==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/loader-runner": { "version": "4.3.1", @@ -11969,6 +12090,7 @@ "integrity": "sha512-iPZK6eYjbxRu3uB4/WZ3EsEIMJFMqAoopl3R+zuq0UjcAm/MO6KCweDgPfP3elTztoKP3KtnVHxTn2NHBSDVUw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "p-locate": "^5.0.0" }, @@ -12373,6 +12495,7 @@ "integrity": "sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -12383,6 +12506,7 @@ "integrity": "sha512-vWO+1ROkhOALF1UnT9aNOOflq5oFDlqwTXaPg6duo07fBLxSH0+bcF0TY1lbA1zTNKyGgDxgaDdKx5MaewLX5A==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "@jsonjoy.com/json-pack": "^1.11.0", "@jsonjoy.com/util": "^1.9.0", @@ -12402,6 +12526,7 @@ "integrity": "sha512-gaNvAS7TZ897/rVaZ0nMtAyxNyi/pdbjbAwUpFQpN70GqnVfOiXpeUUMKRBmzXaSQ8DdTX4/0ms62r2K+hE6mQ==", "dev": true, "license": "MIT", + "peer": true, "funding": { "url": "https://github.com/sponsors/sindresorhus" } @@ -12429,6 +12554,7 @@ "integrity": "sha512-iclAHeNqNm68zFtnZ0e+1L2yUIdvzNoauKU4WBA3VvH/vPFieF7qfRlwUZU+DA9P9bPXIS90ulxoUoCH23sV2w==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -13160,6 +13286,7 @@ "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "dns-packet": "^5.2.2", "thunky": "^1.0.2" @@ -13202,6 +13329,7 @@ "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -13300,6 +13428,7 @@ "integrity": "sha512-6xKiQ+cph9KImrRh0VsjH2d8/GXA4FIMlgU4B757iI1ApvcyA9VlouP0yZJha01V+huImO+kKMU7ih+2+E14fw==", "dev": true, "license": "(BSD-3-Clause OR GPL-2.0)", + "peer": true, "engines": { "node": ">= 6.13.0" } @@ -13310,6 +13439,7 @@ "integrity": "sha512-WLk77vLpbcpmTekRj6s6vYxk30XoyaY5MDZ4+9g8OaKoG3Ij+TjOqhpQjVUlfDZBPBgpNATDltaQkzuXSnnkwg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "assert": "^2.1.0", "browserify-zlib": "^0.2.0", @@ -13363,6 +13493,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.2.1" @@ -13374,6 +13505,7 @@ "integrity": "sha512-vYt7UD1U9Wg6138shLtLOvdAu+8DsC/ilFtEVHcH+wydcSpNE20AfSOduf6MkRFahL5FY7X1oU7nKVZFtfq8Fg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=6" } @@ -13384,6 +13516,7 @@ "integrity": "sha512-oIGGmcpTLwPga8Bn6/Z75SVaH1z5dUut2ibSyAMVhmUggWpmDn2dapB0n7f8nwaSiRtepAsfJyfXIO5DCVAODg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "abort-controller": "^3.0.0", "buffer": "^6.0.3", @@ -13401,6 +13534,7 @@ "integrity": "sha512-TeTSQ6H5YHvpqVwBRcnLDCBnDOHWYu7IvGbHT6N8AOymcr9PJGjc1GTtiWZTYg0NCgYwvnYWEkVChQAr9bjfwA==", "dev": true, "license": "(MIT OR CC0-1.0)", + "peer": true, "engines": { "node": ">=16" }, @@ -13436,6 +13570,7 @@ "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.10.0" } @@ -13538,7 +13673,8 @@ "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/obug": { "version": "2.1.1", @@ -13557,6 +13693,7 @@ "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ee-first": "1.1.1" }, @@ -13570,6 +13707,7 @@ "integrity": "sha512-737ZY3yNnXy37FHkQxPzt4UZ2UWPWiCZWLvFZ4fu5cueciegX0zGPnrlY6bwRg4FdQOe9YU8MkmJwGhoMybl8A==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -13580,6 +13718,7 @@ "integrity": "sha512-YgBpdJHPyQ2UE5x+hlSXcnejzAvD0b22U2OuAP+8OnlJT+PjWPxtgmGqKKc+RgTM63U9gN0YzrYc71R2WT/hTA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "default-browser": "^5.2.1", "define-lazy-prop": "^3.0.0", @@ -13598,7 +13737,8 @@ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha512-gjcpUc3clBf9+210TRaDWbf+rZZZEshZ+DlXMRCeAjp0xhTrnQsKHypIy1J3d5hKdUzj69t708EHtU8P6bUn0A==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/outvariant": { "version": "1.4.3", @@ -13655,6 +13795,7 @@ "integrity": "sha512-LaNjtRWUBY++zB5nE/NwcaoMylSPk+S+ZHNB1TzdbMJMny6dynpAGt7X/tl/QYq3TIeE6nxHppbo2LGymrG5Pw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "p-limit": "^3.0.2" }, @@ -13671,6 +13812,7 @@ "integrity": "sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "yocto-queue": "^0.1.0" }, @@ -13687,6 +13829,7 @@ "integrity": "sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10" }, @@ -13722,6 +13865,7 @@ "integrity": "sha512-hEt02O4hUct5wtwg4H4KcWgDdm+l1bOaEy/hWzd8xtXB9BqxTWBBhb+2ImAtH4Cv4rPjV76xN3Zumqk3k3AhhQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/retry": "0.12.2", "is-network-error": "^1.0.0", @@ -13766,7 +13910,8 @@ "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true, - "license": "(MIT AND Zlib)" + "license": "(MIT AND Zlib)", + "peer": true }, "node_modules/parse-asn1": { "version": "5.1.9", @@ -13825,6 +13970,7 @@ "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -13948,7 +14094,8 @@ "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-1.0.1.tgz", "integrity": "sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/path-exists": { "version": "4.0.0", @@ -14066,7 +14213,8 @@ "resolved": "https://registry.npmjs.org/perfect-debounce/-/perfect-debounce-1.0.0.tgz", "integrity": "sha512-xCy9V055GLEqoFaHoC1SoLIaLmWctgCUaBaWxDZ7/Zx4CTyX7cJQLJOok/orfjZAh9kEYpjJa4d0KcJmCbctZA==", "license": "MIT", - "optional": true + "optional": true, + "peer": true }, "node_modules/picocolors": { "version": "1.1.1", @@ -14102,7 +14250,6 @@ "resolved": "https://registry.npmjs.org/pinia/-/pinia-2.3.1.tgz", "integrity": "sha512-khUlZSwt9xXCaTbbxFYBKDc/bWAGWJjOgvxETwkTN7KRm66EeT1ZdZj6i2ceh9sP2Pzqsbc704r2yngBrxBVug==", "license": "MIT", - "peer": true, "dependencies": { "@vue/devtools-api": "^6.6.3", "vue-demi": "^0.14.10" @@ -14347,7 +14494,6 @@ } ], "license": "MIT", - "peer": true, "dependencies": { "nanoid": "^3.3.11", "picocolors": "^1.1.1", @@ -14363,6 +14509,7 @@ "integrity": "sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q==", "dev": true, "license": "ISC", + "peer": true, "engines": { "node": "^10 || ^12 || >= 14" }, @@ -14376,6 +14523,7 @@ "integrity": "sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "icss-utils": "^5.0.0", "postcss-selector-parser": "^7.0.0", @@ -14394,6 +14542,7 @@ "integrity": "sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA==", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "postcss-selector-parser": "^7.0.0" }, @@ -14410,6 +14559,7 @@ "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", "dev": true, "license": "ISC", + "peer": true, "dependencies": { "icss-utils": "^5.0.0" }, @@ -14426,6 +14576,7 @@ "integrity": "sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "cssesc": "^3.0.0", "util-deprecate": "^1.0.2" @@ -14439,7 +14590,8 @@ "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/prettier": { "version": "2.8.8", @@ -14551,6 +14703,7 @@ "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "forwarded": "0.2.0", "ipaddr.js": "1.9.1" @@ -14565,6 +14718,7 @@ "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.10" } @@ -14607,7 +14761,8 @@ "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", "integrity": "sha512-jmYNElW7yvO7TV33CjSmvSiE2yco3bV2czu/OzDKdMNVZQWfxCblURLhf+47syQRBntjfLdd/H0egrzIG+oaFQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/qrcode": { "version": "1.5.4", @@ -14759,6 +14914,7 @@ "integrity": "sha512-V/yCWTTF7VJ9hIh18Ugr2zhJMP01MY7c5kh4J870L7imm6/DIzBsNLTXzMwUA3yZ5b/KBqLx8Kp3uRvd7xSe3Q==", "dev": true, "license": "BSD-3-Clause", + "peer": true, "dependencies": { "side-channel": "^1.1.0" }, @@ -14807,6 +14963,7 @@ "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", "integrity": "sha512-773xhDQnZBMFobEiztv8LIl70ch5MSF/jUQVlhwFyBILqq96anmoctVIYz+ZRp0qbCKATTn6ev02M3r7Ga5vqA==", "dev": true, + "peer": true, "engines": { "node": ">=0.4.x" } @@ -14842,6 +14999,7 @@ "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -14852,6 +15010,7 @@ "integrity": "sha512-s4VSOf6yN0rvbRZGxs8Om5CWj6seneMwK3oDb4lWDH0UPhWcxwOWw5+qk24bxq87szX1ydrwylIOp2uG1ojUpA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "bytes": "~3.1.2", "http-errors": "~2.0.1", @@ -14868,6 +15027,7 @@ "integrity": "sha512-4FbRdAX+bSdmo4AUFuS0WNiPz8NgFt+r8ThgNWmlrjQjt1Q7ZR9+zTlce2859x4KSXrwIsaeTqDoKQmtP8pLmQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "depd": "~2.0.0", "inherits": "~2.0.4", @@ -14889,6 +15049,7 @@ "integrity": "sha512-DvEy55V3DB7uknRo+4iOGT5fP1slR8wQohVdknigZPMpMstaKJQWhwiYBACJE3Ul2pTnATihhBYnRhZQHGBiRw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -14957,6 +15118,7 @@ "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "picomatch": "^2.2.1" }, @@ -15420,6 +15582,7 @@ "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 4" } @@ -15513,6 +15676,7 @@ "integrity": "sha512-DPe5pVFaAsinSaV6QjQ6gdiedWDcRCbUuiQfQa2wmWV7+xC9bGulGI8+TdRmoFkAPaBXk8CrAbnlY2ISniJ47Q==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=18" }, @@ -15614,7 +15778,8 @@ "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/sass": { "version": "1.97.3", @@ -15622,7 +15787,6 @@ "integrity": "sha512-fDz1zJpd5GycprAbu4Q2PV/RprsRtKC/0z82z0JLgdytmcq0+ujJbJ/09bPGDxCLkKY3Np5cRAOcWiVkLXJURg==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "chokidar": "^4.0.0", "immutable": "^5.0.2", @@ -15752,7 +15916,8 @@ "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/selfsigned": { "version": "2.4.1", @@ -15760,6 +15925,7 @@ "integrity": "sha512-th5B4L2U+eGLq1TVh7zNRGBapioSORUeymIydxgFpwww9d2qyKvtuPU2jJuHvYAwwqi2Y596QBL3eEqcPEYL8Q==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/node-forge": "^1.3.0", "node-forge": "^1" @@ -15784,6 +15950,7 @@ "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "debug": "2.6.9", "depd": "2.0.0", @@ -15809,6 +15976,7 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ms": "2.0.0" } @@ -15818,7 +15986,8 @@ "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/send/node_modules/mime": { "version": "1.6.0", @@ -15826,6 +15995,7 @@ "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "mime": "cli.js" }, @@ -15839,6 +16009,7 @@ "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -15859,6 +16030,7 @@ "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "accepts": "~1.3.4", "batch": "0.6.1", @@ -15878,6 +16050,7 @@ "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "ms": "2.0.0" } @@ -15888,6 +16061,7 @@ "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -15898,6 +16072,7 @@ "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "depd": "~1.1.2", "inherits": "2.0.3", @@ -15913,21 +16088,24 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/serve-index/node_modules/ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/serve-index/node_modules/setprototypeof": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/serve-static": { "version": "1.16.2", @@ -15935,6 +16113,7 @@ "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "encodeurl": "~2.0.0", "escape-html": "~1.0.3", @@ -15951,6 +16130,7 @@ "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -16014,14 +16194,16 @@ "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", "integrity": "sha512-MATJdZp8sLqDl/68LfQmbP8zKPLQNV6BIZoIgrscFDQ+RsvK/BxeDQOgyxKKoh0y/8h3BqVFnCqQ/gd+reiIXA==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/setprototypeof": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", "dev": true, - "license": "ISC" + "license": "ISC", + "peer": true }, "node_modules/sha.js": { "version": "2.4.12", @@ -16085,6 +16267,7 @@ "integrity": "sha512-ObmnIF4hXNg1BqhnHmgbDETF8dLPCggZWBjkQfhZpbszZnYur5DUljTcCHii5LC3J5E0yeO/1LIMyH+UvHQgyw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4" }, @@ -16198,6 +16381,7 @@ "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "faye-websocket": "^0.11.3", "uuid": "^8.3.2", @@ -16210,6 +16394,7 @@ "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true, "license": "MIT", + "peer": true, "bin": { "uuid": "dist/bin/uuid" } @@ -16218,8 +16403,7 @@ "version": "1.10.2", "resolved": "https://registry.npmjs.org/sortablejs/-/sortablejs-1.10.2.tgz", "integrity": "sha512-YkPGufevysvfwn5rfdlGyrGjt7/CRHwvRPogD/lC+TnvcN29jDpCifKP+rBqf+LRldfXSTh+0CGLcSg0VIxq3A==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/source-list-map": { "version": "2.0.1", @@ -16281,6 +16465,7 @@ "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "debug": "^4.1.0", "handle-thing": "^2.0.0", @@ -16298,6 +16483,7 @@ "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "debug": "^4.1.0", "detect-node": "^2.0.4", @@ -16313,6 +16499,7 @@ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -16362,6 +16549,7 @@ "integrity": "sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -16393,6 +16581,7 @@ "integrity": "sha512-H73RAHsVBapbim0tU2JwwOiXUj+fikfiaoYAKHF3VJfA0pe2BCzkhAHBlLG6REzE+2WNZcxOXjK7lkso+9euLA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "inherits": "~2.0.4", "readable-stream": "^3.5.0" @@ -16404,6 +16593,7 @@ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -16419,6 +16609,7 @@ "integrity": "sha512-Oq1bLqisTyK3TSCXpPbT4sdeYNdmyZJv1LxpEm2vu1ZhK89kSE5YXwZc3cWk0MagGaKriBh9mCFbVGtO+vY29A==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "builtin-status-codes": "^3.0.0", "inherits": "^2.0.4", @@ -16432,6 +16623,7 @@ "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "inherits": "^2.0.3", "string_decoder": "^1.1.1", @@ -16454,6 +16646,7 @@ "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "safe-buffer": "~5.2.0" } @@ -16900,7 +17093,6 @@ "integrity": "sha512-nIVck8DK+GM/0Frwd+nIhZ84pR/BX7rmXMfYwyg+Sri5oGVE99/E3KvXqpC2xHFxyqXyGHTKBSioxxplrO4I4w==", "dev": true, "license": "BSD-2-Clause", - "peer": true, "dependencies": { "@jridgewell/source-map": "^0.3.3", "acorn": "^8.15.0", @@ -16955,7 +17147,6 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -17020,6 +17211,7 @@ "integrity": "sha512-s+2Bwztg6PhWUD7XMfeYm5qliDdSiZm7M7n8KjTkIsm3l/2lgVRc2/Gx/v+ZX8lT4FMA+i8aQvhcWylldc+ZNw==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10.18" }, @@ -17045,7 +17237,8 @@ "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/timers-browserify": { "version": "2.0.12", @@ -17053,6 +17246,7 @@ "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "setimmediate": "^1.0.4" }, @@ -17127,7 +17321,6 @@ "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-4.0.3.tgz", "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -17200,6 +17393,7 @@ "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.6" } @@ -17230,6 +17424,7 @@ "integrity": "sha512-rMuvhU4MCDbcbnleZTFezWsaZXRFemSqAM+7jPnzUl1fo9w3YEKOxAeui0fz3OI4EU4hf23iyA7uQRVko+UaBA==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=10.0" }, @@ -17273,6 +17468,7 @@ "integrity": "sha512-nCz0rEwunlTZiy6rXFByQU1kVVpCIgUpc/psFiKVrUwrizdnIbRFu8w7bxhUF0X613DYwT4XzrZHpVyMe758hQ==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "chalk": "^4.1.0", "enhanced-resolve": "^5.0.0", @@ -17294,6 +17490,7 @@ "integrity": "sha512-RF0Fw+rO5AMf9MAyaRXI4AV0Ulj5lMHqVxxdSgiVbixSCXoEmmX/jk0CuJw4+3SqroYO9VoUh+HcuJivvtJemA==", "dev": true, "license": "ISC", + "peer": true, "bin": { "semver": "bin/semver.js" }, @@ -17307,6 +17504,7 @@ "integrity": "sha512-i5uvt8C3ikiWeNZSVZNWcfZPItFQOsYTUAOkcUPGd8DqDy1uOUikjt5dG+uRlwyvR108Fb9DOd4GvXfT0N2/uQ==", "dev": true, "license": "BSD-3-Clause", + "peer": true, "engines": { "node": ">= 12" } @@ -17332,7 +17530,8 @@ "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.1.tgz", "integrity": "sha512-C3TaO7K81YvjCgQH9Q1S3R3P3BtN3RIM8n+OvX4il1K1zgE8ZhI0op7kClgkxtutIE8hQrcrHBXvIheqKUUCxw==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/type-fest": { "version": "5.2.0", @@ -17356,6 +17555,7 @@ "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "media-typer": "0.3.0", "mime-types": "~2.1.24" @@ -17447,7 +17647,6 @@ "integrity": "sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==", "devOptional": true, "license": "Apache-2.0", - "peer": true, "bin": { "tsc": "bin/tsc", "tsserver": "bin/tsserver" @@ -17713,6 +17912,7 @@ "integrity": "sha512-pjy2bYhSsufwWlKwPc+l3cN7+wuJlK6uz0YdJEOlQDbl6jo/YlPi4mb8agUkVC8BF7V8NuzeyPNqRksA3hztKQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -17848,6 +18048,7 @@ "integrity": "sha512-oCwdVC7mTuWiPyjLUz/COz5TLk6wgp0RCsN+wHZ2Ekneac9w8uuV0njcbbie2ME+Vs+d6duwmYuR3HgQXs1fOg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "punycode": "^1.4.1", "qs": "^6.12.3" @@ -17887,6 +18088,7 @@ "integrity": "sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "inherits": "^2.0.3", "is-arguments": "^1.0.4", @@ -17907,6 +18109,7 @@ "integrity": "sha512-pMZTvIkT1d+TFGvDOqodOclx0QWkkgi6Tdoa8gC8ffGAAqz9pzPTZWAybbsHHoED/ztMtkv/VoYTYyShUn81hA==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.4.0" } @@ -17951,6 +18154,7 @@ "integrity": "sha512-BNGbWLfd0eUPabhkXUVm0j8uuvREyTh5ovRa/dyow/BqAbZJyC+5fU+IzQOzmAKzYqYRAISoRhdQr3eIZ/PXqg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.8" } @@ -17989,7 +18193,6 @@ "integrity": "sha512-w+N7Hifpc3gRjZ63vYBXA56dvvRlNWRczTdmCBBa+CotUzAPf5b7YMdMR/8CQoeYE5LX3W4wj6RYTgonm1b9DA==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "esbuild": "^0.27.0", "fdir": "^6.5.0", @@ -18083,7 +18286,6 @@ "integrity": "sha512-5gTmgEY/sqK6gFXLIsQNH19lWb4ebPDLA4SdLP7dsWkIXHWlG66oPuVvXSGFPppYZz8ZDZq0dYYrbHfBCVUb1Q==", "dev": true, "license": "MIT", - "peer": true, "engines": { "node": ">=12" }, @@ -18097,7 +18299,6 @@ "integrity": "sha512-hOQuK7h0FGKgBAas7v0mSAsnvrIgAvWmRFjmzpJ7SwFHH3g1k2u37JtYwOwmEKhK6ZO3v9ggDBBm0La1LCK4uQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vitest/expect": "4.0.18", "@vitest/mocker": "4.0.18", @@ -18188,7 +18389,8 @@ "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/vue": { "version": "2.7.16", @@ -18196,7 +18398,6 @@ "integrity": "sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==", "deprecated": "Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.", "license": "MIT", - "peer": true, "dependencies": { "@vue/compiler-sfc": "2.7.16", "csstype": "^3.1.0" @@ -18289,7 +18490,6 @@ "integrity": "sha512-0iw4VchYLePqJfJu9s62ACWUXeSqM30SQqlIftbYWM3C+jpPcEHKSPUZBLjSF9au4HTHQ/naF6OGnO3Q/qGR3Q==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@vue/component-compiler-utils": "^3.1.0", "hash-sum": "^1.0.2", @@ -18369,8 +18569,7 @@ "version": "3.6.5", "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-3.6.5.tgz", "integrity": "sha512-VYXZQLtjuvKxxcshuRAwjHnciqZVoXAjTjcqBTz4rKc8qih9g9pI3hbDjmqXaHdgL3v8pV6P8Z335XvHzESxLQ==", - "license": "MIT", - "peer": true + "license": "MIT" }, "node_modules/vue-style-loader": { "version": "4.1.3", @@ -18417,7 +18616,6 @@ "integrity": "sha512-AYbUWAJHLGGQM7+cNTELw+KsOG9nl2CnSv467WobS5Cv9uk3wFcnr1Etsz2sEIHEZvw1U+o9mRlEO6QbZvUPGQ==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "de-indent": "^1.0.2", "he": "^1.2.0" @@ -18474,7 +18672,6 @@ "resolved": "https://registry.npmjs.org/vuex/-/vuex-3.6.2.tgz", "integrity": "sha512-ETW44IqCgBpVomy520DT5jf8n0zoCac+sxWnn+hMe/CzaSejb/eVw2YToiXYX+Ex/AuHHia28vWTq4goAexFbw==", "license": "MIT", - "peer": true, "peerDependencies": { "vue": "^2.0.0" } @@ -18509,6 +18706,7 @@ "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "minimalistic-assert": "^1.0.0" } @@ -18607,7 +18805,6 @@ "integrity": "sha512-dRXm0a2qcHPUBEzVk8uph0xWSjV/xZxenQQbLwnwP7caQCYpqG1qddwlyEkIDkYn0K8tvmcrZ+bOrzoQ3HxCDw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@types/eslint-scope": "^3.7.7", "@types/estree": "^1.0.8", @@ -18657,7 +18854,6 @@ "integrity": "sha512-MfwFQ6SfwinsUVi0rNJm7rHZ31GyTcpVE5pgVA3hwFRb7COD4TzjUUwhGWKfO50+xdc2MQPuEBBJoqIMGt3JDw==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "@discoveryjs/json-ext": "^0.6.1", "@webpack-cli/configtest": "^3.0.1", @@ -18711,6 +18907,7 @@ "integrity": "sha512-uxQ6YqGdE4hgDKNf7hUiPXOdtkXvBJXrfEGYSx7P7LC8hnUYGK70X6xQXUvXeNyBDDcsiQXpG2m3G9vxowaEuA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "colorette": "^2.0.10", "memfs": "^4.43.1", @@ -18759,6 +18956,7 @@ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -18771,7 +18969,8 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/webpack-dev-middleware/node_modules/mime-db": { "version": "1.54.0", @@ -18779,6 +18978,7 @@ "integrity": "sha512-aU5EJuIN2WDemCcAp2vFBfp/m4EAhWJnUNSSw0ixs7/kXbd6Pg64EmwJkNdFhB8aWt1sH2CTXrLxo/iAGV3oPQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">= 0.6" } @@ -18789,6 +18989,7 @@ "integrity": "sha512-xRc4oEhT6eaBpU1XF7AjpOFD+xQmXNB5OVKwp4tqCuBpHLS/ZbBDrc07mYTDqVMg6PfxUjjNp85O6Cd2Z/5HWA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "mime-db": "^1.54.0" }, @@ -18802,6 +19003,7 @@ "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -18822,6 +19024,7 @@ "integrity": "sha512-QcQ72gh8a+7JO63TAx/6XZf/CWhgMzu5m0QirvPfGvptOusAxG12w2+aua1Jkjr7hzaWDnJ2n6JFeexMHI+Zjg==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/bonjour": "^3.5.13", "@types/connect-history-api-fallback": "^1.5.4", @@ -18898,6 +19101,7 @@ "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3" }, @@ -18910,7 +19114,8 @@ "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true, - "license": "MIT" + "license": "MIT", + "peer": true }, "node_modules/webpack-dev-server/node_modules/schema-utils": { "version": "4.3.3", @@ -18918,6 +19123,7 @@ "integrity": "sha512-eflK8wEtyOE6+hsaRVPxvUKYCpRgzLqDTb8krvAsRIwOGlHoSgYLgBXoubGgLd2fT41/OUYdb48v4k4WWHQurA==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "@types/json-schema": "^7.0.9", "ajv": "^8.9.0", @@ -18969,7 +19175,6 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -19034,6 +19239,7 @@ "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", "dev": true, "license": "Apache-2.0", + "peer": true, "dependencies": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", @@ -19049,6 +19255,7 @@ "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true, "license": "Apache-2.0", + "peer": true, "engines": { "node": ">=0.8.0" } @@ -19369,7 +19576,6 @@ "integrity": "sha512-B/gBuNg5SiMTrPkC+A2+cW0RszwxYmn6VYxB/inlBStS5nx6xHIt/ehKRhIMhqusl7a8LjQoZnjCs5vhwxOQ1g==", "dev": true, "license": "MIT", - "peer": true, "dependencies": { "fast-deep-equal": "^3.1.3", "fast-uri": "^3.0.1", @@ -19504,7 +19710,6 @@ "integrity": "sha512-fS6iqSPZDs3dr/y7Od6y5nha8dW1YnbgtsyotCVvoFGKbERG++CVRFv1meyGDE1SNItQA8BrnCw7ScdAhRJ3XQ==", "dev": true, "license": "MIT", - "peer": true, "bin": { "rollup": "dist/bin/rollup" }, @@ -19740,6 +19945,7 @@ "integrity": "sha512-PEIGCY5tSlUt50cqyMXfCzX+oOPqN0vuGqWzbcJ2xvnkzkq46oOpz7dQaTDBdfICb4N14+GARUDw2XV2N4tvzg==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=10.0.0" }, @@ -19762,6 +19968,7 @@ "integrity": "sha512-h3Fbisa2nKGPxCpm89Hk33lBLsnaGBvctQopaBSOW/uIs6FTe1ATyAnKFJrzVs9vpGdsTe73WF3V4lIsk4Gacw==", "dev": true, "license": "MIT", + "peer": true, "dependencies": { "is-wsl": "^3.1.0" }, @@ -19778,6 +19985,7 @@ "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", "dev": true, "license": "MIT", + "peer": true, "engines": { "node": ">=0.4" } diff --git a/dist/3556-3556.js.license b/dist/3556-3556.js.license index 52273c10f5bb4..6d078e006ecb1 100644 --- a/dist/3556-3556.js.license +++ b/dist/3556-3556.js.license @@ -237,7 +237,7 @@ This file is generated from multiple sources. Included packages: - version: 3.3.0 - license: MIT - fast-xml-parser - - version: 5.3.4 + - version: 5.3.6 - license: MIT - floating-vue - version: 1.0.0-beta.19 diff --git a/dist/4906-4906.js.license b/dist/4906-4906.js.license index 52273c10f5bb4..6d078e006ecb1 100644 --- a/dist/4906-4906.js.license +++ b/dist/4906-4906.js.license @@ -237,7 +237,7 @@ This file is generated from multiple sources. Included packages: - version: 3.3.0 - license: MIT - fast-xml-parser - - version: 5.3.4 + - version: 5.3.6 - license: MIT - floating-vue - version: 1.0.0-beta.19 diff --git a/dist/7039-7039.js.license b/dist/7039-7039.js.license index 52273c10f5bb4..6d078e006ecb1 100644 --- a/dist/7039-7039.js.license +++ b/dist/7039-7039.js.license @@ -237,7 +237,7 @@ This file is generated from multiple sources. Included packages: - version: 3.3.0 - license: MIT - fast-xml-parser - - version: 5.3.4 + - version: 5.3.6 - license: MIT - floating-vue - version: 1.0.0-beta.19 diff --git a/dist/8124-8124.js.license b/dist/8124-8124.js.license index 52273c10f5bb4..6d078e006ecb1 100644 --- a/dist/8124-8124.js.license +++ b/dist/8124-8124.js.license @@ -237,7 +237,7 @@ This file is generated from multiple sources. Included packages: - version: 3.3.0 - license: MIT - fast-xml-parser - - version: 5.3.4 + - version: 5.3.6 - license: MIT - floating-vue - version: 1.0.0-beta.19 diff --git a/dist/comments-comments-app.js b/dist/comments-comments-app.js index f00c4818ef16a..bac98e54de048 100644 --- a/dist/comments-comments-app.js +++ b/dist/comments-comments-app.js @@ -1,2 +1,2 @@ -(()=>{var e,r,n,o={48439(e,r,n){"use strict";const o=(0,n(35947).YK)().setApp("comments").detectUser().build();var i=n(21777),a=n(53334),s=n(10810),c=n(85471),l=n(85168),u=n(57579),p=n(74095),f=n(42507),h=n(57578);const d={name:"MessageReplyTextOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var g=n(14486);const y=(0,g.A)(d,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon message-reply-text-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M9 11H18V13H9V11M18 7H6V9H18V7M22 4V22L18 18H4C2.9 18 2 17.11 2 16V4C2 2.9 2.9 2 4 2H20C21.1 2 22 2.89 22 4M20 4H4V16H18.83L20 17.17V4Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports;var m=n(83239),b=n(57505),v=n(24764),w=n(15502),A=n(41944),x=n(4604),_=n(88289),E=n(77764),S=n(33691),O=n(66001),T=n(16502),C=n(37793),j=n(61160);function R(t){if(!N(t))throw new Error("Parameter was not an error")}function N(t){return!!t&&"object"==typeof t&&"[object Error]"===(e=t,Object.prototype.toString.call(e))||t instanceof Error;var e}class P extends Error{constructor(t,e){const r=[...arguments],{options:n,shortMessage:o}=function(t){let e,r="";if(0===t.length)e={};else if(N(t[0]))e={cause:t[0]},r=t.slice(1).join(" ")||"";else if(t[0]&&"object"==typeof t[0])e=Object.assign({},t[0]),r=t.slice(1).join(" ")||"";else{if("string"!=typeof t[0])throw new Error("Invalid arguments passed to Layerr");e={},r=r=t.join(" ")||""}return{options:e,shortMessage:r}}(r);let i=o;if(n.cause&&(i=`${i}: ${n.cause.message}`),super(i),this.message=i,n.name&&"string"==typeof n.name?this.name=n.name:this.name="Layerr",n.cause&&Object.defineProperty(this,"_cause",{value:n.cause}),Object.defineProperty(this,"_info",{value:{}}),n.info&&"object"==typeof n.info&&Object.assign(this._info,n.info),Error.captureStackTrace){const t=n.constructorOpt||this.constructor;Error.captureStackTrace(this,t)}}static cause(t){return R(t),t._cause&&N(t._cause)?t._cause:null}static fullStack(t){R(t);const e=P.cause(t);return e?`${t.stack}\ncaused by: ${P.fullStack(e)}`:t.stack??""}static info(t){R(t);const e={},r=P.cause(t);return r&&Object.assign(e,P.info(r)),t._info&&Object.assign(e,t._info),e}toString(){let t=this.name||this.constructor.name||this.constructor.prototype.name;return this.message&&(t=`${t}: ${this.message}`),t}}var I=n(12692);const k="__PATH_SEPARATOR_POSIX__",M="__PATH_SEPARATOR_WINDOWS__";function L(t){try{const e=t.replace(/\//g,k).replace(/\\\\/g,M);return encodeURIComponent(e).split(M).join("\\\\").split(k).join("/")}catch(t){throw new P(t,"Failed encoding path")}}function D(t){return t.startsWith("/")?t:"/"+t}function $(t){let e=t;return"/"!==e[0]&&(e="/"+e),/^.+\/$/.test(e)&&(e=e.substr(0,e.length-1)),e}function U(t){let e=new j(t).pathname;return e.length<=0&&(e="/"),$(e)}function F(...t){return function(){return function(t){var e=[];if(0===t.length)return"";if("string"!=typeof t[0])throw new TypeError("Url must be a string. Received "+t[0]);if(t[0].match(/^[^/:]+:\/*$/)&&t.length>1){var r=t.shift();t[0]=r+t[0]}t[0].match(/^file:\/\/\//)?t[0]=t[0].replace(/^([^/:]+):\/*/,"$1:///"):t[0]=t[0].replace(/^([^/:]+):\/*/,"$1://");for(var n=0;n0&&(o=o.replace(/^[\/]+/,"")),o=n0?"?":"")+a.join("&")}("object"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}(t.reduce((t,e,r)=>((0===r||"/"!==e||"/"===e&&"/"!==t[t.length-1])&&t.push(e),t),[]))}var B=n(83503);function W(t,e){const r=t.url.replace("//",""),n=-1==r.indexOf("/")?"/":r.slice(r.indexOf("/")),o=t.method?t.method.toUpperCase():"GET",i=!!/(^|,)\s*auth\s*($|,)/.test(e.qop)&&"auth",a=`00000000${e.nc}`.slice(-8),s=function(t,e,r,n,o,i,a){const s=a||B(`${e}:${r}:${n}`);return t&&"md5-sess"===t.toLowerCase()?B(`${s}:${o}:${i}`):s}(e.algorithm,e.username,e.realm,e.password,e.nonce,e.cnonce,e.ha1),c=B(`${o}:${n}`),l=B(i?`${s}:${e.nonce}:${a}:${e.cnonce}:${i}:${c}`:`${s}:${e.nonce}:${c}`),u={username:e.username,realm:e.realm,nonce:e.nonce,uri:n,qop:i,response:l,nc:a,cnonce:e.cnonce,algorithm:e.algorithm,opaque:e.opaque},p=[];for(const t in u)u[t]&&("qop"===t||"nc"===t||"algorithm"===t?p.push(`${t}=${u[t]}`):p.push(`${t}="${u[t]}"`));return`Digest ${p.join(", ")}`}function q(t){return"digest"===(t.headers&&t.headers.get("www-authenticate")||"").split(/\s/)[0].toLowerCase()}var H,V,G,z,K,Y,X=n(85914);function Z(t){return X.decode(t)}function Q(t,e){var r;return`Basic ${r=`${t}:${e}`,X.encode(r)}`}new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),String.fromCodePoint,function(t){t[t.NUM=35]="NUM",t[t.SEMI=59]="SEMI",t[t.EQUALS=61]="EQUALS",t[t.ZERO=48]="ZERO",t[t.NINE=57]="NINE",t[t.LOWER_A=97]="LOWER_A",t[t.LOWER_F=102]="LOWER_F",t[t.LOWER_X=120]="LOWER_X",t[t.LOWER_Z=122]="LOWER_Z",t[t.UPPER_A=65]="UPPER_A",t[t.UPPER_F=70]="UPPER_F",t[t.UPPER_Z=90]="UPPER_Z"}(H||(H={})),function(t){t[t.VALUE_LENGTH=49152]="VALUE_LENGTH",t[t.BRANCH_LENGTH=16256]="BRANCH_LENGTH",t[t.JUMP_TABLE=127]="JUMP_TABLE"}(V||(V={})),function(t){t[t.EntityStart=0]="EntityStart",t[t.NumericStart=1]="NumericStart",t[t.NumericDecimal=2]="NumericDecimal",t[t.NumericHex=3]="NumericHex",t[t.NamedEntity=4]="NamedEntity"}(G||(G={})),function(t){t[t.Legacy=0]="Legacy",t[t.Strict=1]="Strict",t[t.Attribute=2]="Attribute"}(z||(z={})),new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]),String.prototype.codePointAt,new Map([[34,"""],[38,"&"],[160," "]]),new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]),function(t){t[t.XML=0]="XML",t[t.HTML=1]="HTML"}(K||(K={})),function(t){t[t.UTF8=0]="UTF8",t[t.ASCII=1]="ASCII",t[t.Extensive=2]="Extensive",t[t.Attribute=3]="Attribute",t[t.Text=4]="Text"}(Y||(Y={}));const J="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:"undefined"!=typeof window?window:globalThis,tt=J.fetch.bind(J);var et,rt;function nt(t,e,r,n,o){switch(t.authType){case et.Auto:e&&r&&(t.headers.Authorization=Q(e,r));break;case et.Digest:t.digest=function(t,e,r){return{username:t,password:e,ha1:r,nc:0,algorithm:"md5",hasDigestAuth:!1}}(e,r,o);break;case et.None:break;case et.Password:t.headers.Authorization=Q(e,r);break;case et.Token:t.headers.Authorization=`${(i=n).token_type} ${i.access_token}`;break;default:throw new P({info:{code:rt.InvalidAuthType}},`Invalid auth type: ${t.authType}`)}var i}J.Headers,J.Request,J.Response,function(t){t.Auto="auto",t.Digest="digest",t.None="none",t.Password="password",t.Token="token"}(et||(et={})),function(t){t.DataTypeNoLength="data-type-no-length",t.InvalidAuthType="invalid-auth-type",t.InvalidOutputFormat="invalid-output-format",t.LinkUnsupportedAuthType="link-unsupported-auth",t.InvalidUpdateRange="invalid-update-range",t.NotSupported="not-supported"}(rt||(rt={}));var ot=n(11568),it=n(11083);const at="@@HOTPATCHER",st=()=>{};function ct(t){return{original:t,methods:[t],final:!1}}class lt{constructor(){this._configuration={registry:{},getEmptyAction:"null"},this.__type__=at}get configuration(){return this._configuration}get getEmptyAction(){return this.configuration.getEmptyAction}set getEmptyAction(t){this.configuration.getEmptyAction=t}control(t,e=!1){if(!t||t.__type__!==at)throw new Error("Failed taking control of target HotPatcher instance: Invalid type or object");return Object.keys(t.configuration.registry).forEach(r=>{this.configuration.registry.hasOwnProperty(r)?e&&(this.configuration.registry[r]=Object.assign({},t.configuration.registry[r])):this.configuration.registry[r]=Object.assign({},t.configuration.registry[r])}),t._configuration=this.configuration,this}execute(t,...e){return(this.get(t)||st)(...e)}get(t){const e=this.configuration.registry[t];if(!e)switch(this.getEmptyAction){case"null":return null;case"throw":throw new Error(`Failed handling method request: No method provided for override: ${t}`);default:throw new Error(`Failed handling request which resulted in an empty method: Invalid empty-action specified: ${this.getEmptyAction}`)}return function(...t){if(0===t.length)throw new Error("Failed creating sequence: No functions provided");return function(...e){let r=e;const n=this;for(;t.length>0;)r=[t.shift().apply(n,r)];return r[0]}}(...e.methods)}isPatched(t){return!!this.configuration.registry[t]}patch(t,e,r={}){const{chain:n=!1}=r;if(this.configuration.registry[t]&&this.configuration.registry[t].final)throw new Error(`Failed patching '${t}': Method marked as being final`);if("function"!=typeof e)throw new Error(`Failed patching '${t}': Provided method is not a function`);if(n)this.configuration.registry[t]?this.configuration.registry[t].methods.push(e):this.configuration.registry[t]=ct(e);else if(this.isPatched(t)){const{original:r}=this.configuration.registry[t];this.configuration.registry[t]=Object.assign(ct(e),{original:r})}else this.configuration.registry[t]=ct(e);return this}patchInline(t,e,...r){return this.isPatched(t)||this.patch(t,e),this.execute(t,...r)}plugin(t,...e){return e.forEach(e=>{this.patch(t,e,{chain:!0})}),this}restore(t){if(!this.isPatched(t))throw new Error(`Failed restoring method: No method present for key: ${t}`);if("function"!=typeof this.configuration.registry[t].original)throw new Error(`Failed restoring method: Original method not found or of invalid type for key: ${t}`);return this.configuration.registry[t].methods=[this.configuration.registry[t].original],this}setFinal(t){if(!this.configuration.registry.hasOwnProperty(t))throw new Error(`Failed marking '${t}' as final: No method found for key`);return this.configuration.registry[t].final=!0,this}}let ut=null;function pt(){return"string"==typeof TARGET&&"react-native"===TARGET}function ft(){return"string"==typeof TARGET&&"web"===TARGET}function ht(t){return function(t){if("object"!=typeof t||null===t||"[object Object]"!=Object.prototype.toString.call(t))return!1;if(null===Object.getPrototypeOf(t))return!0;let e=t;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}(t)?Object.assign({},t):Object.setPrototypeOf(Object.assign({},t),Object.getPrototypeOf(t))}function dt(...t){let e=null,r=[...t];for(;r.length>0;){const t=r.shift();e=e?gt(e,t):ht(t)}return e}function gt(t,e){const r=ht(t);return Object.keys(e).forEach(t=>{r.hasOwnProperty(t)?Array.isArray(e[t])?r[t]=Array.isArray(r[t])?[...r[t],...e[t]]:[...e[t]]:"object"==typeof e[t]&&e[t]?r[t]="object"==typeof r[t]&&r[t]?gt(r[t],e[t]):ht(e[t]):r[t]=e[t]:r[t]=e[t]}),r}function yt(t){const e={};for(const r of t.keys())e[r]=t.get(r);return e}function mt(...t){if(0===t.length)return{};const e={};return t.reduce((t,r)=>(Object.keys(r).forEach(n=>{const o=n.toLowerCase();e.hasOwnProperty(o)?t[e[o]]=r[n]:(e[o]=n,t[n]=r[n])}),t),{})}var bt=n(88310);const vt="function"==typeof ArrayBuffer,{toString:wt}=Object.prototype;function At(t){return vt&&(t instanceof ArrayBuffer||"[object ArrayBuffer]"===wt.call(t))}function xt(t){return null!=t&&null!=t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}function _t(t,e,r){const n=ht(t);return n.headers=mt(e.headers,n.headers||{},r.headers||{}),void 0!==r.data&&(n.data=r.data),r.signal&&(n.signal=r.signal),e.httpAgent&&(n.httpAgent=e.httpAgent),e.httpsAgent&&(n.httpsAgent=e.httpsAgent),e.digest&&(n._digest=e.digest),"boolean"==typeof e.withCredentials&&(n.withCredentials=e.withCredentials),n}async function Et(t,e){return e.authType===et.Auto?async function(t,e){const r=await Ot(t);return r.ok?(e.authType=et.Password,r):401==r.status&&q(r)?(e.authType=et.Digest,nt(e,e.username,e.password,void 0,void 0),t._digest=e.digest,St(t)):r}(t,e):t._digest?St(t):Ot(t)}async function St(t){const e=t._digest;delete t._digest,e.hasDigestAuth&&(t=dt(t,{headers:{Authorization:W(t,e)}}));const r=await Ot(t);if(401==r.status){if(e.hasDigestAuth=function(t,e){if(!q(t))return!1;const r=/([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi;for(;;){const n=t.headers&&t.headers.get("www-authenticate")||"",o=r.exec(n);if(!o)break;e[o[1]]=o[2]||o[3]}return e.nc+=1,e.cnonce=function(){let t="";for(let e=0;e<32;++e)t=`${t}${"abcdef0123456789"[Math.floor(16*Math.random())]}`;return t}(),!0}(r,e),e.hasDigestAuth){t=dt(t,{headers:{Authorization:W(t,e)}});const r=await Ot(t);return 401==r.status?e.hasDigestAuth=!1:e.nc++,r}}else e.nc++;return r}function Ot(t){const e=(ut||(ut=new lt),ut);return e.patchInline("request",t=>e.patchInline("fetch",tt,t.url,function(t){let e={};const r={method:t.method};if(t.headers&&(e=mt(e,t.headers)),void 0!==t.data){const[n,o]=function(t){if(!ft()&&!pt()&&t instanceof bt.Readable)return[t,{}];if("string"==typeof t)return[t,{}];if(xt(t))return[t,{}];if(At(t))return[t,{}];if(t&&"object"==typeof t)return[JSON.stringify(t),{"content-type":"application/json"}];throw new Error("Unable to convert request body: Unexpected body type: "+typeof t)}(t.data);r.body=n,e=mt(e,o)}return t.signal&&(r.signal=t.signal),t.withCredentials&&(r.credentials="include"),ft()||pt()||(t.httpAgent||t.httpsAgent)&&(r.agent=e=>"http:"===e.protocol?t.httpAgent||new ot.Agent:t.httpsAgent||new it.Agent),r.headers=e,r}(t)),t)}var Tt=n(68928);const Ct=t=>{if("string"!=typeof t)throw new TypeError("invalid pattern");if(t.length>65536)throw new TypeError("pattern is too long")},jt={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},Rt=t=>t.replace(/[[\]\\-]/g,"\\$&"),Nt=t=>t.join(""),Pt=(t,e)=>{const r=e;if("["!==t.charAt(r))throw new Error("not in a brace expression");const n=[],o=[];let i=r+1,a=!1,s=!1,c=!1,l=!1,u=r,p="";t:for(;ip?n.push(Rt(p)+"-"+Rt(e)):e===p&&n.push(Rt(e)),p="",i++):t.startsWith("-]",i+1)?(n.push(Rt(e+"-")),i+=2):t.startsWith("-",i+1)?(p=e,i+=2):(n.push(Rt(e)),i++)}else c=!0,i++}else l=!0,i++}if(ue?t.replace(/\[([^\/\\])\]/g,"$1"):t.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1"),kt=new Set(["!","?","+","*","@"]),Mt=t=>kt.has(t),Lt="(?!\\.)",Dt=new Set(["[","."]),$t=new Set(["..","."]),Ut=new Set("().*{}+?[]^$\\!"),Ft=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Bt="[^/]",Wt=Bt+"*?",qt=Bt+"+?";class Ht{type;#t;#e;#r=!1;#n=[];#o;#i;#a;#s=!1;#c;#l;#u=!1;constructor(t,e,r={}){this.type=t,t&&(this.#e=!0),this.#o=e,this.#t=this.#o?this.#o.#t:this,this.#c=this.#t===this?r:this.#t.#c,this.#a=this.#t===this?[]:this.#t.#a,"!"!==t||this.#t.#s||this.#a.push(this),this.#i=this.#o?this.#o.#n.length:0}get hasMagic(){if(void 0!==this.#e)return this.#e;for(const t of this.#n)if("string"!=typeof t&&(t.type||t.hasMagic))return this.#e=!0;return this.#e}toString(){return void 0!==this.#l?this.#l:this.type?this.#l=this.type+"("+this.#n.map(t=>String(t)).join("|")+")":this.#l=this.#n.map(t=>String(t)).join("")}#p(){if(this!==this.#t)throw new Error("should only call on root");if(this.#s)return this;let t;for(this.toString(),this.#s=!0;t=this.#a.pop();){if("!"!==t.type)continue;let e=t,r=e.#o;for(;r;){for(let n=e.#i+1;!r.type&&n"string"==typeof t?t:t.toJSON()):[this.type,...this.#n.map(t=>t.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#s&&"!"===this.#o?.type)&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#o?.isStart())return!1;if(0===this.#i)return!0;const t=this.#o;for(let e=0;e{const[n,o,i,a]="string"==typeof e?Ht.#h(e,this.#e,r):e.toRegExpSource(t);return this.#e=this.#e||i,this.#r=this.#r||a,n}).join("");let o="";if(this.isStart()&&"string"==typeof this.#n[0]&&(1!==this.#n.length||!$t.has(this.#n[0]))){const r=Dt,i=e&&r.has(n.charAt(0))||n.startsWith("\\.")&&r.has(n.charAt(2))||n.startsWith("\\.\\.")&&r.has(n.charAt(4)),a=!e&&!t&&r.has(n.charAt(0));o=i?"(?!(?:^|/)\\.\\.?(?:$|/))":a?Lt:""}let i="";return this.isEnd()&&this.#t.#s&&"!"===this.#o?.type&&(i="(?:$|\\/)"),[o+n+i,It(n),this.#e=!!this.#e,this.#r]}const r="*"===this.type||"+"===this.type,n="!"===this.type?"(?:(?!(?:":"(?:";let o=this.#d(e);if(this.isStart()&&this.isEnd()&&!o&&"!"!==this.type){const t=this.toString();return this.#n=[t],this.type=null,this.#e=void 0,[t,It(this.toString()),!1,!1]}let i=!r||t||e?"":this.#d(!0);i===o&&(i=""),i&&(o=`(?:${o})(?:${i})*?`);let a="";return a="!"===this.type&&this.#u?(this.isStart()&&!e?Lt:"")+qt:n+o+("!"===this.type?"))"+(!this.isStart()||e||t?"":Lt)+Wt+")":"@"===this.type?")":"?"===this.type?")?":"+"===this.type&&i?")":"*"===this.type&&i?")?":`)${this.type}`),[a,It(o),this.#e=!!this.#e,this.#r]}#d(t){return this.#n.map(e=>{if("string"==typeof e)throw new Error("string type in extglob ast??");const[r,n,o,i]=e.toRegExpSource(t);return this.#r=this.#r||i,r}).filter(t=>!(this.isStart()&&this.isEnd()&&!t)).join("|")}static#h(t,e,r=!1){let n=!1,o="",i=!1;for(let a=0;a(Ct(e),!(!r.nocomment&&"#"===e.charAt(0))&&new be(e,r).match(t)),zt=/^\*+([^+@!?\*\[\(]*)$/,Kt=t=>e=>!e.startsWith(".")&&e.endsWith(t),Yt=t=>e=>e.endsWith(t),Xt=t=>(t=t.toLowerCase(),e=>!e.startsWith(".")&&e.toLowerCase().endsWith(t)),Zt=t=>(t=t.toLowerCase(),e=>e.toLowerCase().endsWith(t)),Qt=/^\*+\.\*+$/,Jt=t=>!t.startsWith(".")&&t.includes("."),te=t=>"."!==t&&".."!==t&&t.includes("."),ee=/^\.\*+$/,re=t=>"."!==t&&".."!==t&&t.startsWith("."),ne=/^\*+$/,oe=t=>0!==t.length&&!t.startsWith("."),ie=t=>0!==t.length&&"."!==t&&".."!==t,ae=/^\?+([^+@!?\*\[\(]*)?$/,se=([t,e=""])=>{const r=pe([t]);return e?(e=e.toLowerCase(),t=>r(t)&&t.toLowerCase().endsWith(e)):r},ce=([t,e=""])=>{const r=fe([t]);return e?(e=e.toLowerCase(),t=>r(t)&&t.toLowerCase().endsWith(e)):r},le=([t,e=""])=>{const r=fe([t]);return e?t=>r(t)&&t.endsWith(e):r},ue=([t,e=""])=>{const r=pe([t]);return e?t=>r(t)&&t.endsWith(e):r},pe=([t])=>{const e=t.length;return t=>t.length===e&&!t.startsWith(".")},fe=([t])=>{const e=t.length;return t=>t.length===e&&"."!==t&&".."!==t},he="object"==typeof Vt&&Vt?"object"==typeof Vt.env&&Vt.env&&Vt.env.__MINIMATCH_TESTING_PLATFORM__||Vt.platform:"posix";Gt.sep="win32"===he?"\\":"/";const de=Symbol("globstar **");Gt.GLOBSTAR=de,Gt.filter=(t,e={})=>r=>Gt(r,t,e);const ge=(t,e={})=>Object.assign({},t,e);Gt.defaults=t=>{if(!t||"object"!=typeof t||!Object.keys(t).length)return Gt;const e=Gt;return Object.assign((r,n,o={})=>e(r,n,ge(t,o)),{Minimatch:class extends e.Minimatch{constructor(e,r={}){super(e,ge(t,r))}static defaults(r){return e.defaults(ge(t,r)).Minimatch}},AST:class extends e.AST{constructor(e,r,n={}){super(e,r,ge(t,n))}static fromGlob(r,n={}){return e.AST.fromGlob(r,ge(t,n))}},unescape:(r,n={})=>e.unescape(r,ge(t,n)),escape:(r,n={})=>e.escape(r,ge(t,n)),filter:(r,n={})=>e.filter(r,ge(t,n)),defaults:r=>e.defaults(ge(t,r)),makeRe:(r,n={})=>e.makeRe(r,ge(t,n)),braceExpand:(r,n={})=>e.braceExpand(r,ge(t,n)),match:(r,n,o={})=>e.match(r,n,ge(t,o)),sep:e.sep,GLOBSTAR:de})};const ye=(t,e={})=>(Ct(t),e.nobrace||!/\{(?:(?!\{).)*\}/.test(t)?[t]:Tt(t));Gt.braceExpand=ye,Gt.makeRe=(t,e={})=>new be(t,e).makeRe(),Gt.match=(t,e,r={})=>{const n=new be(e,r);return t=t.filter(t=>n.match(t)),n.options.nonull&&!t.length&&t.push(e),t};const me=/[?*]|[+@!]\(.*?\)|\[|\]/;class be{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t,e={}){Ct(t),e=e||{},this.options=e,this.pattern=t,this.platform=e.platform||he,this.isWindows="win32"===this.platform,this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||!1===e.allowWindowsEscape,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!e.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!e.nonegate,this.comment=!1,this.empty=!1,this.partial=!!e.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=void 0!==e.windowsNoMagicRoot?e.windowsNoMagicRoot:!(!this.isWindows||!this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(const t of this.set)for(const e of t)if("string"!=typeof e)return!0;return!1}debug(...t){}make(){const t=this.pattern,e=this.options;if(!e.nocomment&&"#"===t.charAt(0))return void(this.comment=!0);if(!t)return void(this.empty=!0);this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],e.debug&&(this.debug=(...t)=>console.error(...t)),this.debug(this.pattern,this.globSet);const r=this.globSet.map(t=>this.slashSplit(t));this.globParts=this.preprocess(r),this.debug(this.pattern,this.globParts);let n=this.globParts.map((t,e,r)=>{if(this.isWindows&&this.windowsNoMagicRoot){const e=!(""!==t[0]||""!==t[1]||"?"!==t[2]&&me.test(t[2])||me.test(t[3])),r=/^[a-z]:/i.test(t[0]);if(e)return[...t.slice(0,4),...t.slice(4).map(t=>this.parse(t))];if(r)return[t[0],...t.slice(1).map(t=>this.parse(t))]}return t.map(t=>this.parse(t))});if(this.debug(this.pattern,n),this.set=n.filter(t=>-1===t.indexOf(!1)),this.isWindows)for(let t=0;t=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):t=e>=1?this.levelOneOptimize(t):this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(t=>{let e=-1;for(;-1!==(e=t.indexOf("**",e+1));){let r=e;for(;"**"===t[r+1];)r++;r!==e&&t.splice(e,r-e)}return t})}levelOneOptimize(t){return t.map(t=>0===(t=t.reduce((t,e)=>{const r=t[t.length-1];return"**"===e&&"**"===r?t:".."===e&&r&&".."!==r&&"."!==r&&"**"!==r?(t.pop(),t):(t.push(e),t)},[])).length?[""]:t)}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let e=!1;do{if(e=!1,!this.preserveMultipleSlashes){for(let r=1;rn&&r.splice(n+1,o-n);let i=r[n+1];const a=r[n+2],s=r[n+3];if(".."!==i)continue;if(!a||"."===a||".."===a||!s||"."===s||".."===s)continue;e=!0,r.splice(n,1);const c=r.slice(0);c[n]="**",t.push(c),n--}if(!this.preserveMultipleSlashes){for(let t=1;tt.length)}partsMatch(t,e,r=!1){let n=0,o=0,i=[],a="";for(;ni?e=e.slice(a):i>a&&(t=t.slice(i)))}}const{optimizationLevel:o=1}=this.options;o>=2&&(t=this.levelTwoFileOptimize(t)),this.debug("matchOne",this,{file:t,pattern:e}),this.debug("matchOne",t.length,e.length);for(var i=0,a=0,s=t.length,c=e.length;i>> no match, partial?",t,p,e,f),p!==s))}let o;if("string"==typeof l?(o=u===l,this.debug("string match",l,u,o)):(o=l.test(u),this.debug("pattern match",l,u,o)),!o)return!1}if(i===s&&a===c)return!0;if(i===s)return r;if(a===c)return i===s-1&&""===t[i];throw new Error("wtf?")}braceExpand(){return ye(this.pattern,this.options)}parse(t){Ct(t);const e=this.options;if("**"===t)return de;if(""===t)return"";let r,n=null;(r=t.match(ne))?n=e.dot?ie:oe:(r=t.match(zt))?n=(e.nocase?e.dot?Zt:Xt:e.dot?Yt:Kt)(r[1]):(r=t.match(ae))?n=(e.nocase?e.dot?ce:se:e.dot?le:ue)(r):(r=t.match(Qt))?n=e.dot?te:Jt:(r=t.match(ee))&&(n=re);const o=Ht.fromGlob(t,this.options).toMMPattern();return n&&"object"==typeof o&&Reflect.defineProperty(o,"test",{value:n}),o}makeRe(){if(this.regexp||!1===this.regexp)return this.regexp;const t=this.set;if(!t.length)return this.regexp=!1,this.regexp;const e=this.options,r=e.noglobstar?"[^/]*?":e.dot?"(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?":"(?:(?!(?:\\/|^)\\.).)*?",n=new Set(e.nocase?["i"]:[]);let o=t.map(t=>{const e=t.map(t=>{if(t instanceof RegExp)for(const e of t.flags.split(""))n.add(e);return"string"==typeof t?t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"):t===de?de:t._src});return e.forEach((t,n)=>{const o=e[n+1],i=e[n-1];t===de&&i!==de&&(void 0===i?void 0!==o&&o!==de?e[n+1]="(?:\\/|"+r+"\\/)?"+o:e[n]=r:void 0===o?e[n-1]=i+"(?:\\/|"+r+")?":o!==de&&(e[n-1]=i+"(?:\\/|\\/"+r+"\\/)"+o,e[n+1]=de))}),e.filter(t=>t!==de).join("/")}).join("|");const[i,a]=t.length>1?["(?:",")"]:["",""];o="^"+i+o+a+"$",this.negate&&(o="^(?!"+o+").+$");try{this.regexp=new RegExp(o,[...n].join(""))}catch(t){this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,e=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return""===t;if("/"===t&&e)return!0;const r=this.options;this.isWindows&&(t=t.split("\\").join("/"));const n=this.slashSplit(t);this.debug(this.pattern,"split",n);const o=this.set;this.debug(this.pattern,"set",o);let i=n[n.length-1];if(!i)for(let t=n.length-2;!i&&t>=0;t--)i=n[t];for(let t=0;t=400)throw ve(e);return e}function Ae(t,e,r=!1){return r?{data:e,headers:t.headers?yt(t.headers):{},status:t.status,statusText:t.statusText}:e}Gt.AST=Ht,Gt.Minimatch=be,Gt.escape=(t,{windowsPathsNoEscape:e=!1}={})=>e?t.replace(/[?*()[\]]/g,"[$&]"):t.replace(/[?*()[\]\\]/g,"\\$&"),Gt.unescape=It;const xe={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,r){return t},captureMetaData:!1},_e=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",Ee=new RegExp("^["+_e+"]["+_e+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$");function Se(t,e){const r=[];let n=e.exec(t);for(;n;){const o=[];o.startIndex=e.lastIndex-n[0].length;const i=n.length;for(let t=0;t0?this.child.push({[t.tagname]:t.child,":@":t[":@"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][Te]={startIndex:e})}static getMetaDataSymbol(){return Te}}class je{constructor(t){this.suppressValidationErr=!t}readDocType(t,e){const r={};if("O"!==t[e+3]||"C"!==t[e+4]||"T"!==t[e+5]||"Y"!==t[e+6]||"P"!==t[e+7]||"E"!==t[e+8])throw new Error("Invalid Tag instead of DOCTYPE");{e+=9;let n=1,o=!1,i=!1,a="";for(;e"===t[e]){if(i?"-"===t[e-1]&&"-"===t[e-2]&&(i=!1,n--):n--,0===n)break}else"["===t[e]?o=!0:a+=t[e];else{if(o&&Ne(t,"!ENTITY",e)){let n,o;e+=7,[n,o,e]=this.readEntityExp(t,e+1,this.suppressValidationErr),-1===o.indexOf("&")&&(r[n]={regx:RegExp(`&${n};`,"g"),val:o})}else if(o&&Ne(t,"!ELEMENT",e)){e+=8;const{index:r}=this.readElementExp(t,e+1);e=r}else if(o&&Ne(t,"!ATTLIST",e))e+=8;else if(o&&Ne(t,"!NOTATION",e)){e+=9;const{index:r}=this.readNotationExp(t,e+1,this.suppressValidationErr);e=r}else{if(!Ne(t,"!--",e))throw new Error("Invalid DOCTYPE");i=!0}n++,a=""}if(0!==n)throw new Error("Unclosed DOCTYPE")}return{entities:r,i:e}}readEntityExp(t,e){e=Re(t,e);let r="";for(;e{for(;e{for(const r of t){if("string"==typeof r&&e===r)return!0;if(r instanceof RegExp&&r.test(e))return!0}}:()=>!1}class $e{constructor(t){if(this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"Â¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>Je(e,10,"&#")},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>Je(e,16,"&#x")}},this.addExternalEntities=Ue,this.parseXml=He,this.parseTextData=Fe,this.resolveNameSpace=Be,this.buildAttributesMap=qe,this.isItStopNode=Ke,this.replaceEntitiesValue=Ge,this.readStopNodeData=Ze,this.saveTextToParentTag=ze,this.addChild=Ve,this.ignoreAttributesFn=De(this.options.ignoreAttributes),this.options.stopNodes&&this.options.stopNodes.length>0){this.stopNodesExact=new Set,this.stopNodesWildcard=new Set;for(let t=0;t0)){a||(t=this.replaceEntitiesValue(t));const n=this.options.tagValueProcessor(e,t,r,o,i);return null==n?t:typeof n!=typeof t||n!==t?n:this.options.trimValues||t.trim()===t?Qe(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function Be(t){if(this.options.removeNSPrefix){const e=t.split(":"),r="/"===t.charAt(0)?"/":"";if("xmlns"===e[0])return"";2===e.length&&(t=r+e[1])}return t}const We=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function qe(t,e){if(!0!==this.options.ignoreAttributes&&"string"==typeof t){const r=Se(t,We),n=r.length,o={};for(let t=0;t",a,"Closing Tag is not closed.");let i=t.substring(a+2,e).trim();if(this.options.removeNSPrefix){const t=i.indexOf(":");-1!==t&&(i=i.substr(t+1))}this.options.transformTagName&&(i=this.options.transformTagName(i)),r&&(n=this.saveTextToParentTag(n,r,o));const s=o.substring(o.lastIndexOf(".")+1);if(i&&-1!==this.options.unpairedTags.indexOf(i))throw new Error(`Unpaired tag can not be used as closing tag: `);let c=0;s&&-1!==this.options.unpairedTags.indexOf(s)?(c=o.lastIndexOf(".",o.lastIndexOf(".")-1),this.tagsNodeStack.pop()):c=o.lastIndexOf("."),o=o.substring(0,c),r=this.tagsNodeStack.pop(),n="",a=e}else if("?"===t[a+1]){let e=Xe(t,a,!1,"?>");if(!e)throw new Error("Pi Tag is not closed.");if(n=this.saveTextToParentTag(n,r,o),this.options.ignoreDeclaration&&"?xml"===e.tagName||this.options.ignorePiTags);else{const t=new Ce(e.tagName);t.add(this.options.textNodeName,""),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[":@"]=this.buildAttributesMap(e.tagExp,o)),this.addChild(r,t,o,a)}a=e.closeIndex+1}else if("!--"===t.substr(a+1,3)){const e=Ye(t,"--\x3e",a+4,"Comment is not closed.");if(this.options.commentPropName){const i=t.substring(a+4,e-2);n=this.saveTextToParentTag(n,r,o),r.add(this.options.commentPropName,[{[this.options.textNodeName]:i}])}a=e}else if("!D"===t.substr(a+1,2)){const e=i.readDocType(t,a);this.docTypeEntities=e.entities,a=e.i}else if("!["===t.substr(a+1,2)){const e=Ye(t,"]]>",a,"CDATA is not closed.")-2,i=t.substring(a+9,e);n=this.saveTextToParentTag(n,r,o);let s=this.parseTextData(i,r.tagname,o,!0,!1,!0,!0);null==s&&(s=""),this.options.cdataPropName?r.add(this.options.cdataPropName,[{[this.options.textNodeName]:i}]):r.add(this.options.textNodeName,s),a=e+2}else{let i=Xe(t,a,this.options.removeNSPrefix),s=i.tagName;const c=i.rawTagName;let l=i.tagExp,u=i.attrExpPresent,p=i.closeIndex;if(this.options.transformTagName){const t=this.options.transformTagName(s);l===s&&(l=t),s=t}r&&n&&"!xml"!==r.tagname&&(n=this.saveTextToParentTag(n,r,o,!1));const f=r;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(r=this.tagsNodeStack.pop(),o=o.substring(0,o.lastIndexOf("."))),s!==e.tagname&&(o+=o?"."+s:s);const h=a;if(this.isItStopNode(this.stopNodesExact,this.stopNodesWildcard,o,s)){let e="";if(l.length>0&&l.lastIndexOf("/")===l.length-1)"/"===s[s.length-1]?(s=s.substr(0,s.length-1),o=o.substr(0,o.length-1),l=s):l=l.substr(0,l.length-1),a=i.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(s))a=i.closeIndex;else{const r=this.readStopNodeData(t,c,p+1);if(!r)throw new Error(`Unexpected end of ${c}`);a=r.i,e=r.tagContent}const n=new Ce(s);s!==l&&u&&(n[":@"]=this.buildAttributesMap(l,o)),e&&(e=this.parseTextData(e,s,o,!0,u,!0,!0)),o=o.substr(0,o.lastIndexOf(".")),n.add(this.options.textNodeName,e),this.addChild(r,n,o,h)}else{if(l.length>0&&l.lastIndexOf("/")===l.length-1){if("/"===s[s.length-1]?(s=s.substr(0,s.length-1),o=o.substr(0,o.length-1),l=s):l=l.substr(0,l.length-1),this.options.transformTagName){const t=this.options.transformTagName(s);l===s&&(l=t),s=t}const t=new Ce(s);s!==l&&u&&(t[":@"]=this.buildAttributesMap(l,o)),this.addChild(r,t,o,h),o=o.substr(0,o.lastIndexOf("."))}else{const t=new Ce(s);this.tagsNodeStack.push(r),s!==l&&u&&(t[":@"]=this.buildAttributesMap(l,o)),this.addChild(r,t,o,h),r=t}n="",a=p}}else n+=t[a];return e.child};function Ve(t,e,r,n){this.options.captureMetaData||(n=void 0);const o=this.options.updateTag(e.tagname,r,e[":@"]);!1===o||("string"==typeof o?(e.tagname=o,t.addChild(e,n)):t.addChild(e,n))}const Ge=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const r=this.docTypeEntities[e];t=t.replace(r.regx,r.val)}for(let e in this.lastEntities){const r=this.lastEntities[e];t=t.replace(r.regex,r.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const r=this.htmlEntities[e];t=t.replace(r.regex,r.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function ze(t,e,r,n){return t&&(void 0===n&&(n=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,r,!1,!!e[":@"]&&0!==Object.keys(e[":@"]).length,n))&&""!==t&&e.add(this.options.textNodeName,t),t=""),t}function Ke(t,e,r,n){return!(!e||!e.has(n))||!(!t||!t.has(r))}function Ye(t,e,r,n){const o=t.indexOf(e,r);if(-1===o)throw new Error(n);return o+e.length-1}function Xe(t,e,r,n=">"){const o=function(t,e,r=">"){let n,o="";for(let i=e;i",r,`${e} is not closed`);if(t.substring(r+2,i).trim()===e&&(o--,0===o))return{tagContent:t.substring(n,r),i};r=i}else if("?"===t[r+1])r=Ye(t,"?>",r+1,"StopNode is not closed.");else if("!--"===t.substr(r+1,3))r=Ye(t,"--\x3e",r+3,"StopNode is not closed.");else if("!["===t.substr(r+1,2))r=Ye(t,"]]>",r,"StopNode is not closed.")-2;else{const n=Xe(t,r,">");n&&((n&&n.tagName)===e&&"/"!==n.tagExp[n.tagExp.length-1]&&o++,r=n.closeIndex)}}function Qe(t,e,r){if(e&&"string"==typeof t){const e=t.trim();return"true"===e||"false"!==e&&function(t,e={}){if(e=Object.assign({},Me,e),!t||"string"!=typeof t)return t;let r=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(r))return t;if("0"===t)return 0;if(e.hex&&Ie.test(r))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}(r);if(r.includes("e")||r.includes("E"))return function(t,e,r){if(!r.eNotation)return t;const n=e.match(Le);if(n){let o=n[1]||"";const i=-1===n[3].indexOf("e")?"E":"e",a=n[2],s=o?t[a.length+1]===i:t[a.length]===i;return a.length>1&&s?t:1!==a.length||!n[3].startsWith(`.${i}`)&&n[3][0]!==i?r.leadingZeros&&!s?(e=(n[1]||"")+n[3],Number(e)):t:Number(e)}return t}(t,r,e);{const o=ke.exec(r);if(o){const i=o[1]||"",a=o[2];let s=(n=o[3])&&-1!==n.indexOf(".")?("."===(n=n.replace(/0+$/,""))?n="0":"."===n[0]?n="0"+n:"."===n[n.length-1]&&(n=n.substring(0,n.length-1)),n):n;const c=i?"."===t[a.length+1]:"."===t[a.length];if(!e.leadingZeros&&(a.length>1||1===a.length&&!c))return t;{const n=Number(r),o=String(n);if(0===n)return n;if(-1!==o.search(/[eE]/))return e.eNotation?n:t;if(-1!==r.indexOf("."))return"0"===o||o===s||o===`${i}${s}`?n:t;let c=a?s:r;return a?c===o||i+c===o?n:t:c===o||c===i+o?n:t}}return t}var n}(t,r)}return void 0!==t?t:""}function Je(t,e,r){const n=Number.parseInt(t,e);return n>=0&&n<=1114111?String.fromCodePoint(n):r+t+";"}const tr=Ce.getMetaDataSymbol();function er(t,e){return rr(t,e)}function rr(t,e,r){let n;const o={};for(let i=0;i0&&(o[e.textNodeName]=n):void 0!==n&&(o[e.textNodeName]=n),o}function nr(t){const e=Object.keys(t);for(let t=0;t5&&"xml"===n)return dr("InvalidXml","XML declaration allowed only at the start of the document.",mr(t,e));if("?"==t[e]&&">"==t[e+1]){e++;break}continue}return e}function lr(t,e){if(t.length>e+5&&"-"===t[e+1]&&"-"===t[e+2]){for(e+=3;e"===t[e+2]){e+=2;break}}else if(t.length>e+8&&"D"===t[e+1]&&"O"===t[e+2]&&"C"===t[e+3]&&"T"===t[e+4]&&"Y"===t[e+5]&&"P"===t[e+6]&&"E"===t[e+7]){let r=1;for(e+=8;e"===t[e]&&(r--,0===r))break}else if(t.length>e+9&&"["===t[e+1]&&"C"===t[e+2]&&"D"===t[e+3]&&"A"===t[e+4]&&"T"===t[e+5]&&"A"===t[e+6]&&"["===t[e+7])for(e+=8;e"===t[e+2]){e+=2;break}return e}function ur(t,e){let r="",n="",o=!1;for(;e"===t[e]&&""===n){o=!0;break}r+=t[e]}return""===n&&{value:r,index:e,tagClosed:o}}const pr=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function fr(t,e){const r=Se(t,pr),n={};for(let t=0;t"!==t[i]&&" "!==t[i]&&"\t"!==t[i]&&"\n"!==t[i]&&"\r"!==t[i];i++)c+=t[i];if(c=c.trim(),"/"===c[c.length-1]&&(c=c.substring(0,c.length-1),i--),!yr(c)){let e;return e=0===c.trim().length?"Invalid space after '<'.":"Tag '"+c+"' is an invalid name.",dr("InvalidTag",e,mr(t,i))}const l=ur(t,i);if(!1===l)return dr("InvalidAttr","Attributes for '"+c+"' have open quote.",mr(t,i));let u=l.value;if(i=l.index,"/"===u[u.length-1]){const r=i-u.length;u=u.substring(0,u.length-1);const o=fr(u,e);if(!0!==o)return dr(o.err.code,o.err.msg,mr(t,r+o.err.line));n=!0}else if(s){if(!l.tagClosed)return dr("InvalidTag","Closing tag '"+c+"' doesn't have proper closing.",mr(t,i));if(u.trim().length>0)return dr("InvalidTag","Closing tag '"+c+"' can't have attributes or invalid starting.",mr(t,a));if(0===r.length)return dr("InvalidTag","Closing tag '"+c+"' has not been opened.",mr(t,a));{const e=r.pop();if(c!==e.tagName){let r=mr(t,e.tagStartPos);return dr("InvalidTag","Expected closing tag '"+e.tagName+"' (opened in line "+r.line+", col "+r.col+") instead of closing tag '"+c+"'.",mr(t,a))}0==r.length&&(o=!0)}}else{const s=fr(u,e);if(!0!==s)return dr(s.err.code,s.err.msg,mr(t,i-u.length+s.err.line));if(!0===o)return dr("InvalidXml","Multiple possible root nodes found.",mr(t,i));-1!==e.unpairedTags.indexOf(c)||r.push({tagName:c,tagStartPos:a}),n=!0}for(i++;i0)||dr("InvalidXml","Invalid '"+JSON.stringify(r.map(t=>t.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):dr("InvalidXml","Start tag expected.",1)}(t,e);if(!0!==r)throw Error(`${r.err.msg}:${r.err.line}:${r.err.col}`)}const r=new $e(this.options);r.addExternalEntities(this.externalEntities);const n=r.parseXml(t);return this.options.preserveOrder||void 0===n?n:er(n,this.options)}addEntity(t,e){if(-1!==e.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==t.indexOf("&")||-1!==t.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for ' '");if("&"===e)throw new Error("An entity with value '&' is not permitted");this.externalEntities[t]=e}static getMetaDataSymbol(){return Ce.getMetaDataSymbol()}}var wr,Ar=n(26602);function xr(t,e){if(!t.endsWith("propstat.prop.displayname"))return e}function _r(t,e,r=wr.Original){const n=Ar.get(t,e);return"array"===r&&!1===Array.isArray(n)?[n]:"object"===r&&Array.isArray(n)?n[0]:n}function Er(t,e){return e=e??{attributeNamePrefix:"@",attributeParsers:[],tagParsers:[xr]},new Promise(r=>{r(function(t){const{multistatus:e}=t;if(""===e)return{multistatus:{response:[]}};if(!e)throw new Error("Invalid response: No root multistatus found");const r={multistatus:Array.isArray(e)?e[0]:e};return Ar.set(r,"multistatus.response",_r(r,"multistatus.response",wr.Array)),Ar.set(r,"multistatus.response",Ar.get(r,"multistatus.response").map(t=>function(t){const e=Object.assign({},t);return e.status?Ar.set(e,"status",_r(e,"status",wr.Object)):(Ar.set(e,"propstat",_r(e,"propstat",wr.Object)),Ar.set(e,"propstat.prop",_r(e,"propstat.prop",wr.Object))),e}(t))),r}(function({attributeNamePrefix:t,attributeParsers:e,tagParsers:r}){return new vr({allowBooleanAttributes:!0,attributeNamePrefix:t,textNodeName:"text",ignoreAttributes:!1,removeNSPrefix:!0,numberParseOptions:{hex:!0,leadingZeros:!1},attributeValueProcessor(t,r,n){for(const t of e)try{const e=t(n,r);if(e!==r)return e}catch(t){}return r},tagValueProcessor(t,e,n){for(const t of r)try{const r=t(n,e);if(r!==e)return r}catch(t){}return e}})}(e).parse(t)))})}function Sr(t,e,r=!1){const{getlastmodified:n=null,getcontentlength:o="0",resourcetype:i=null,getcontenttype:a=null,getetag:s=null}=t,c=i&&"object"==typeof i&&void 0!==i.collection?"directory":"file",l={filename:e,basename:I.basename(e),lastmod:n,size:parseInt(o,10),type:c,etag:"string"==typeof s?s.replace(/"/g,""):null};return"file"===c&&(l.mime=a&&"string"==typeof a?a.split(";")[0]:""),r&&(void 0!==t.displayname&&(t.displayname=String(t.displayname)),l.props=t),l}function Or(t){switch(String(t)){case"-3":return"unlimited";case"-2":case"-1":return"unknown";default:return parseInt(String(t),10)}}async function Tr(t,e,r={}){const{details:n=!1}=r,o=_t({url:F(t.remoteURL,L(e)),method:"PROPFIND",headers:{Accept:"text/plain,application/xml",Depth:"0"}},t,r),i=await Et(o,t);we(t,i);const a=await i.text(),s=function(t,e,r=!1){let n=null;try{t.multistatus.response[0].propstat&&(n=t.multistatus.response[0])}catch(t){}if(!n)throw new Error("Failed getting item stat: bad response");const{propstat:{prop:o,status:i}}=n,[a,s,c]=i.split(" ",3),l=parseInt(s,10);if(l>=400){const t=new Error(`Invalid response: ${l} ${c}`);throw t.status=l,t}return Sr(o,$(e),r)}(await Er(a,t.parsing),e,n);return Ae(i,s,n)}async function Cr(t,e,r={}){if(!0===r.recursive)return async function(t,e,r={}){const n=function(t){if(!t||"/"===t)return[];let e=t;const r=[];do{r.push(e),e=I.dirname(e)}while(e&&"/"!==e);return r}($(e));n.sort((t,e)=>t.length>e.length?1:e.length>t.length?-1:0);let o=!1;for(const i of n)if(o)await Cr(t,i,{...r,recursive:!1});else try{if("directory"!==(await Tr(t,i)).type)throw new Error(`Path includes a file: ${e}`)}catch(e){if(404!==e.status)throw e;o=!0,await Cr(t,i,{...r,recursive:!1})}}(t,e,r);const n=_t({url:F(t.remoteURL,(o=L(e),o.endsWith("/")?o:o+"/")),method:"MKCOL"},t,r);var o;we(t,await Et(n,t))}!function(t){t.Array="array",t.Object="object",t.Original="original"}(wr||(wr={}));const jr=()=>{};var Rr=n(62045).hp;const Nr=t=>t;function Pr(t,e){let r="";return e.format&&e.indentBy.length>0&&(r="\n"),Ir(t,e,"",r)}function Ir(t,e,r,n){let o="",i=!1;for(let a=0;a`,i=!1;continue}if(c===e.commentPropName){o+=n+`\x3c!--${s[c][0][e.textNodeName]}--\x3e`,i=!0;continue}if("?"===c[0]){const t=Mr(s[":@"],e),r="?xml"===c?"":n;let a=s[c][0][e.textNodeName];a=0!==a.length?" "+a:"",o+=r+`<${c}${a}${t}?>`,i=!0;continue}let u=n;""!==u&&(u+=e.indentBy);const p=n+`<${c}${Mr(s[":@"],e)}`,f=Ir(s[c],e,l,u);-1!==e.unpairedTags.indexOf(c)?e.suppressUnpairedNode?o+=p+">":o+=p+"/>":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(">")?o+=p+`>${f}${n}`:(o+=p+">",f&&""!==n&&(f.includes("/>")||f.includes("`):o+=p+"/>",i=!0}return o}function kr(t){const e=Object.keys(t);for(let r=0;r0&&e.processEntities)for(let r=0;r","g"),val:">"},{regex:new RegExp("<","g"),val:"<"},{regex:new RegExp("'","g"),val:"'"},{regex:new RegExp('"',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1};function Ur(t){this.options=Object.assign({},$r,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=De(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=Wr),this.processTextOrObjNode=Fr,this.options.format?(this.indentate=Br,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function Fr(t,e,r,n){const o=this.j2x(t,r+1,n.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,o.attrStr,r):this.buildObjectNode(o.val,e,o.attrStr,r)}function Br(t){return this.options.indentBy.repeat(t)}function Wr(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}function qr(t){return new Ur({attributeNamePrefix:"@_",format:!0,ignoreAttributes:!1,suppressEmptyNode:!0}).build(Hr({lockinfo:{"@_xmlns:d":"DAV:",lockscope:{exclusive:{}},locktype:{write:{}},owner:{href:t}}},"d"))}function Hr(t,e){const r={...t};for(const t in r)r.hasOwnProperty(t)&&(r[t]&&"object"==typeof r[t]&&-1===t.indexOf(":")?(r[`${e}:${t}`]=Hr(r[t],e),delete r[t]):!1===/^@_/.test(t)&&(r[`${e}:${t}`]=r[t],delete r[t]));return r}Ur.prototype.build=function(t){return this.options.preserveOrder?Pr(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},Ur.prototype.j2x=function(t,e,r){let n="",o="";const i=r.join(".");for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))if(void 0===t[a])this.isAttribute(a)&&(o+="");else if(null===t[a])this.isAttribute(a)||a===this.options.cdataPropName?o+="":"?"===a[0]?o+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:o+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if(t[a]instanceof Date)o+=this.buildTextValNode(t[a],a,"",e);else if("object"!=typeof t[a]){const r=this.isAttribute(a);if(r&&!this.ignoreAttributesFn(r,i))n+=this.buildAttrPairStr(r,""+t[a]);else if(!r)if(a===this.options.textNodeName){let e=this.options.tagValueProcessor(a,""+t[a]);o+=this.replaceEntitiesValue(e)}else o+=this.buildTextValNode(t[a],a,"",e)}else if(Array.isArray(t[a])){const n=t[a].length;let i="",s="";for(let c=0;c"+t+o}},Ur.prototype.closeTag=function(t){let e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(n)+`\x3c!--${t}--\x3e`+this.newLine;if("?"===e[0])return this.indentate(n)+"<"+e+r+"?"+this.tagEndChar;{let o=this.options.tagValueProcessor(e,t);return o=this.replaceEntitiesValue(o),""===o?this.indentate(n)+"<"+e+r+this.closeTag(e)+this.tagEndChar:this.indentate(n)+"<"+e+r+">"+o+"0&&this.options.processEntities)for(let e=0;et.trim()),server:o.headers.get("Server")??""}}const Kr="https://github.com/perry-mitchell/webdav-client/blob/master/LOCK_CONTACT.md";var Yr=n(63814);function Xr(){return(0,Yr.dC)("dav/comments")}const Zr=function(t,e={}){const{authType:r=null,remoteBasePath:n,contactHref:o=Kr,ha1:i,headers:a={},httpAgent:s,httpsAgent:c,password:l,token:u,username:p,withCredentials:f}=e;let h=r;h||(h=p||l?et.Password:et.None);const d={authType:h,remoteBasePath:n,contactHref:o,ha1:i,headers:Object.assign({},a),httpAgent:s,httpsAgent:c,password:l,parsing:{attributeNamePrefix:e.attributeNamePrefix??"@",attributeParsers:[],tagParsers:[xr]},remotePath:U(t),remoteURL:t,token:u,username:p,withCredentials:f};return nt(d,p,l,u,i),{copyFile:(t,e,r)=>async function(t,e,r,n={}){const o=_t({url:F(t.remoteURL,L(e)),method:"COPY",headers:{Destination:F(t.remoteURL,L(r)),Overwrite:!1===n.overwrite?"F":"T",Depth:n.shallow?"0":"infinity"}},t,n);we(t,await Et(o,t))}(d,t,e,r),createDirectory:(t,e)=>Cr(d,t,e),createReadStream:(t,e)=>function(t,e,r={}){const n=new(0,bt.PassThrough);return async function(t,e,r={}){const n={};if("object"==typeof r.range&&"number"==typeof r.range.start){let t=`bytes=${r.range.start}-`;"number"==typeof r.range.end&&(t=`${t}${r.range.end}`),n.Range=t}const o=_t({url:F(t.remoteURL,L(e)),method:"GET",headers:n},t,r),i=await Et(o,t);if(we(t,i),n.Range&&206!==i.status){const t=new Error(`Invalid response code for partial request: ${i.status}`);throw t.status=i.status,t}return r.callback&&setTimeout(()=>{r.callback(i)},0),i.body}(t,e,r).then(t=>{t.pipe(n)}).catch(t=>{n.emit("error",t)}),n}(d,t,e),createWriteStream:(t,e,r)=>function(t,e,r={},n=jr){const o=new(0,bt.PassThrough),i={};return!1===r.overwrite&&(i["If-None-Match"]="*"),Et(_t({url:F(t.remoteURL,L(e)),method:"PUT",headers:i,data:o,maxRedirects:0},t,r),t).then(e=>we(t,e)).then(t=>{setTimeout(()=>{n(t)},0)}).catch(t=>{o.emit("error",t)}),o}(d,t,e,r),customRequest:(t,e)=>async function(t,e,r){r.url||(r.url=F(t.remoteURL,L(e)));const n=_t(r,t,{}),o=await Et(n,t);return we(t,o),o}(d,t,e),deleteFile:(t,e)=>async function(t,e,r={}){const n=_t({url:F(t.remoteURL,L(e)),method:"DELETE"},t,r);we(t,await Et(n,t))}(d,t,e),exists:(t,e)=>async function(t,e,r={}){try{return await Tr(t,e,r),!0}catch(t){if(404===t.status)return!1;throw t}}(d,t,e),getDirectoryContents:(t,e)=>async function(t,e,r={}){const n=_t({url:F(t.remoteURL,L(e),"/"),method:"PROPFIND",headers:{Accept:"text/plain,application/xml",Depth:r.deep?"infinity":"1"}},t,r),o=await Et(n,t);we(t,o);const i=await o.text();if(!i)throw new Error("Failed parsing directory contents: Empty response");const a=await Er(i,t.parsing),s=D(e);let c=function(t,e,r,n=!1,o=!1){const i=I.join(e,"/"),{multistatus:{response:a}}=t,s=a.map(t=>{const e=function(t){try{return t.replace(/^https?:\/\/[^\/]+/,"")}catch(t){throw new P(t,"Failed normalising HREF")}}(t.href),{propstat:{prop:r}}=t;return Sr(r,"/"===i?decodeURIComponent($(e)):$(I.relative(decodeURIComponent(i),decodeURIComponent(e))),n)});return o?s:s.filter(t=>t.basename&&("file"===t.type||t.filename!==r.replace(/\/$/,"")))}(a,D(t.remoteBasePath||t.remotePath),s,r.details,r.includeSelf);return r.glob&&(c=function(t,e){return t.filter(t=>Gt(t.filename,e,{matchBase:!0}))}(c,r.glob)),Ae(o,c,r.details)}(d,t,e),getFileContents:(t,e)=>async function(t,e,r={}){const{format:n="binary"}=r;if("binary"!==n&&"text"!==n)throw new P({info:{code:rt.InvalidOutputFormat}},`Invalid output format: ${n}`);return"text"===n?async function(t,e,r={}){const n=_t({url:F(t.remoteURL,L(e)),method:"GET",headers:{Accept:"text/plain"},transformResponse:[Nr]},t,r),o=await Et(n,t);we(t,o);const i=await o.text();return Ae(o,i,r.details)}(t,e,r):async function(t,e,r={}){const n=_t({url:F(t.remoteURL,L(e)),method:"GET"},t,r),o=await Et(n,t);let i;return we(t,o),i=ft()||pt()?await o.arrayBuffer():Rr.from(await o.arrayBuffer()),Ae(o,i,r.details)}(t,e,r)}(d,t,e),getFileDownloadLink:t=>function(t,e){let r=F(t.remoteURL,L(e));const n=/^https:/i.test(r)?"https":"http";switch(t.authType){case et.None:break;case et.Password:{const e=Z(t.headers.Authorization.replace(/^Basic /i,"").trim());r=r.replace(/^https?:\/\//,`${n}://${e}@`);break}default:throw new P({info:{code:rt.LinkUnsupportedAuthType}},`Unsupported auth type for file link: ${t.authType}`)}return r}(d,t),getFileUploadLink:t=>function(t,e){let r=`${F(t.remoteURL,L(e))}?Content-Type=application/octet-stream`;const n=/^https:/i.test(r)?"https":"http";switch(t.authType){case et.None:break;case et.Password:{const e=Z(t.headers.Authorization.replace(/^Basic /i,"").trim());r=r.replace(/^https?:\/\//,`${n}://${e}@`);break}default:throw new P({info:{code:rt.LinkUnsupportedAuthType}},`Unsupported auth type for file link: ${t.authType}`)}return r}(d,t),getHeaders:()=>Object.assign({},d.headers),getQuota:t=>async function(t,e={}){const r=e.path||"/",n=_t({url:F(t.remoteURL,r),method:"PROPFIND",headers:{Accept:"text/plain,application/xml",Depth:"0"}},t,e),o=await Et(n,t);we(t,o);const i=await o.text();return Ae(o,function(t){try{const[e]=t.multistatus.response,{propstat:{prop:{"quota-used-bytes":r,"quota-available-bytes":n}}}=e;return void 0!==r&&void 0!==n?{used:parseInt(String(r),10),available:Or(n)}:null}catch(t){}return null}(await Er(i,t.parsing)),e.details)}(d,t),lock:(t,e)=>async function(t,e,r={}){const{refreshToken:n,timeout:o=Vr}=r,i={Accept:"text/plain,application/xml",Timeout:o};n&&(i.If=n);const a=_t({url:F(t.remoteURL,L(e)),method:"LOCK",headers:i,data:qr(t.contactHref)},t,r),s=await Et(a,t);we(t,s);const c=(p=await s.text(),new vr({removeNSPrefix:!0,parseAttributeValue:!0,parseTagValue:!0}).parse(p)),l=Ar.get(c,"prop.lockdiscovery.activelock.locktoken.href"),u=Ar.get(c,"prop.lockdiscovery.activelock.timeout");var p;if(!l)throw ve(s,"No lock token received: ");return{token:l,serverTimeout:u}}(d,t,e),moveFile:(t,e,r)=>async function(t,e,r,n={}){const o=_t({url:F(t.remoteURL,L(e)),method:"MOVE",headers:{Destination:F(t.remoteURL,L(r)),Overwrite:!1===n.overwrite?"F":"T"}},t,n);we(t,await Et(o,t))}(d,t,e,r),putFileContents:(t,e,r)=>async function(t,e,r,n={}){const{contentLength:o=!0,overwrite:i=!0}=n,a={"Content-Type":"application/octet-stream"};!ft()&&!pt()&&void 0!==bt&&void 0!==bt?.Readable&&r instanceof bt.Readable||!1===o||(a["Content-Length"]="number"==typeof o?`${o}`:`${function(t){if(At(t))return t.byteLength;if(xt(t))return t.length;if("string"==typeof t)return(0,Gr.d)(t);throw new P({info:{code:rt.DataTypeNoLength}},"Cannot calculate data length: Invalid type")}(r)}`),i||(a["If-None-Match"]="*");const s=_t({url:F(t.remoteURL,L(e)),method:"PUT",headers:a,data:r},t,n),c=await Et(s,t);try{we(t,c)}catch(t){const e=t;if(412!==e.status||i)throw e;return!1}return!0}(d,t,e,r),partialUpdateFileContents:(t,e,r,n,o)=>async function(t,e,r,n,o,i={}){const a=await zr(t,e,i);if(a.compliance.includes("sabredav-partialupdate"))return await async function(t,e,r,n,o,i={}){if(r>n||r<0)throw new P({info:{code:rt.InvalidUpdateRange}},`Invalid update range ${r} for partial update`);const a={"Content-Type":"application/x-sabredav-partialupdate","Content-Length":""+(n-r+1),"X-Update-Range":`bytes=${r}-${n}`},s=_t({url:F(t.remoteURL,L(e)),method:"PATCH",headers:a,data:o},t,i);we(t,await Et(s,t))}(t,e,r,n,o,i);if(a.server.includes("Apache")&&a.compliance.includes(""))return await async function(t,e,r,n,o,i={}){if(r>n||r<0)throw new P({info:{code:rt.InvalidUpdateRange}},`Invalid update range ${r} for partial update`);const a={"Content-Type":"application/octet-stream","Content-Length":""+(n-r+1),"Content-Range":`bytes ${r}-${n}/*`},s=_t({url:F(t.remoteURL,L(e)),method:"PUT",headers:a,data:o},t,i);we(t,await Et(s,t))}(t,e,r,n,o,i);throw new P({info:{code:rt.NotSupported}},"Not supported")}(d,t,e,r,n,o),getDAVCompliance:t=>zr(d,t),search:(t,e)=>async function(t,e,r={}){const{details:n=!1}=r,o=_t({url:F(t.remoteURL,L(e)),method:"SEARCH",headers:{Accept:"text/plain,application/xml","Content-Type":t.headers["Content-Type"]||"application/xml; charset=utf-8"}},t,r),i=await Et(o,t);we(t,i);const a=await i.text(),s=function(t,e,r){const n={truncated:!1,results:[]};return n.truncated=t.multistatus.response.some(t=>"507"===(t.status||t.propstat?.status).split(" ",3)?.[1]&&t.href.replace(/\/$/,"").endsWith(L(e).replace(/\/$/,""))),t.multistatus.response.forEach(t=>{if(void 0===t.propstat)return;const e=t.href.split("/").map(decodeURIComponent).join("/");n.results.push(Sr(t.propstat.prop,e,r))}),n}(await Er(a,t.parsing),e,n);return Ae(i,s,n)}(d,t,e),setHeaders:t=>{d.headers=Object.assign({},t)},stat:(t,e)=>Tr(d,t,e),unlock:(t,e,r)=>async function(t,e,r,n={}){const o=_t({url:F(t.remoteURL,L(e)),method:"UNLOCK",headers:{"Lock-Token":r}},t,n),i=await Et(o,t);if(we(t,i),204!==i.status&&200!==i.status)throw ve(i)}(d,t,e,r),registerAttributeParser:t=>{d.parsing.attributeParsers.push(t)},registerTagParser:t=>{d.parsing.tagParsers.push(t)}}}(Xr());function Qr(t){Zr.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:t??""})}(0,i.zo)(Qr),Qr((0,i.do)());const Jr=Zr;var tn=n(19051);function en(t,e=1){const r=new DOMParser;let n=t;for(let t=0;t({idsInLimbo:[]}),actions:{addId(t){this.idsInLimbo.push(t)},removeId(t){const e=this.idsInLimbo.indexOf(t);e>-1&&this.idsInLimbo.splice(e,1)},checkForId(t){return this.idsInLimbo.includes(t)}}}),nn={props:{id:{type:Number,default:null},message:{type:String,default:""},resourceId:{type:[String,Number],required:!0},resourceType:{type:String,default:"files"}},data:()=>({deleted:!1,editing:!1,loading:!1}),computed:{...(0,s.n2)(rn)},methods:{onEdit(){this.editing=!0},onEditCancel(){this.editing=!1,this.updateLocalMessage(this.message)},async onEditComment(e){this.loading=!0;try{await async function(t,e,r,n){const o=["",t,e,r].join("/");return await Jr.customRequest(o,{method:"PROPPATCH",data:`\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${n}\n\t\t\t\t\n\t\t\t\n\t\t\t`})}(this.resourceType,this.resourceId,this.id,e),o.debug("Comment edited",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id,message:e}),this.$emit("update:message",e),this.editing=!1}catch(e){(0,l.Qg)(t("comments","An error occurred while trying to edit the comment")),o.error("An error occurred while trying to edit the comment",{error:e})}finally{this.loading=!1}},onDeleteWithUndo(){this.$emit("delete"),this.deleted=!0,this.deletedCommentLimboStore.addId(this.id);const e=setTimeout(this.onDelete,l.Br);(0,l._h)(t("comments","Comment deleted"),()=>{clearTimeout(e),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)})},async onDelete(){try{await async function(t,e,r){const n=["",t,e,r].join("/");await Jr.deleteFile(n)}(this.resourceType,this.resourceId,this.id),o.debug("Comment deleted",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id}),this.$emit("delete",this.id)}catch(e){(0,l.Qg)(t("comments","An error occurred while trying to delete the comment")),o.error("An error occurred while trying to delete the comment",{error:e}),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)}},async onNewComment(e){this.loading=!0;try{const t=await async function(t,e,r){const n=["",t,e].join("/"),o=await tn.Ay.post(Xr()+n,{actorDisplayName:(0,i.HW)().displayName,actorId:(0,i.HW)().uid,actorType:"users",creationDateTime:(new Date).toUTCString(),message:r,objectType:t,verb:"comment"}),a=n+"/"+parseInt(o.headers["content-location"].split("/").pop()),s=await Jr.stat(a,{details:!0}),c=s.data.props;return c.actorDisplayName=en(c.actorDisplayName,2),c.message=en(c.message,2),s.data}(this.resourceType,this.resourceId,e);o.debug("New comment posted",{resourceType:this.resourceType,resourceId:this.resourceId,newComment:t}),this.$emit("new",t),this.$emit("update:message",""),this.localMessage=""}catch(e){(0,l.Qg)(t("comments","An error occurred while trying to create the comment")),o.error("An error occurred while trying to create the comment",{error:e})}finally{this.loading=!1}}}},on={name:"Comment",components:{IconArrowRight:S.A,IconClose:O.A,IconTrashCanOutline:C.A,IconPencilOutline:T.A,NcActionButton:b.A,NcActions:v.A,NcActionSeparator:w.A,NcAvatar:A.A,NcButton:p.A,NcDateTime:x.A,NcLoadingIcon:_.A,NcRichContenteditable:()=>Promise.all([n.e(4208),n.e(5528)]).then(n.bind(n,95528)),NcRichText:()=>Promise.all([n.e(4208),n.e(4508)]).then(n.bind(n,64508))},mixins:[nn],inheritAttrs:!1,props:{actorDisplayName:{type:String,required:!0},actorId:{type:String,required:!0},creationDateTime:{type:String,default:null},editor:{type:Boolean,default:!1},autoComplete:{type:Function,required:!0},userData:{type:Object,default:()=>({})},tag:{type:String,default:"div"}},data:()=>({expanded:!1,localMessage:"",submitted:!1}),computed:{...(0,s.n2)(rn),isOwnComment(){return(0,i.HW)().uid===this.actorId},richContent(){const t={};let e=this.localMessage;return Object.keys(this.userData).forEach((r,n)=>{const o=`mention-${n}`,i=new RegExp(`@${r}|@"${r}"`,"g");e=e.replace(i,`{${o}}`),t[o]={component:E.A,props:{user:r,displayName:this.userData[r].label,primary:this.userData[r].primary}}}),{mentions:t,message:e}},isEmptyMessage(){return!this.localMessage||""===this.localMessage.trim()},timestamp(){return Date.parse(this.creationDateTime)},isLimbo(){return this.deletedCommentLimboStore.checkForId(this.id)}},watch:{message(t){this.updateLocalMessage(t)}},beforeMount(){this.updateLocalMessage(this.message)},methods:{t:a.Tl,updateLocalMessage(t){this.localMessage=t.toString(),this.submitted=!1},onSubmit(){if(""!==this.localMessage.trim())return this.editor?(this.onNewComment(this.localMessage.trim()),void this.$nextTick(()=>{this.$refs.editor.$el.focus()})):void this.onEditComment(this.localMessage.trim())},onExpand(){this.expanded=!0}}};var an=n(85072),sn=n.n(an),cn=n(97825),ln=n.n(cn),un=n(77659),pn=n.n(un),fn=n(55056),hn=n.n(fn),dn=n(10540),gn=n.n(dn),yn=n(41113),mn=n.n(yn),bn=n(22408),vn={};vn.styleTagTransform=mn(),vn.setAttributes=hn(),vn.insert=pn().bind(null,"head"),vn.domAPI=ln(),vn.insertStyleElement=gn(),sn()(bn.A,vn),bn.A&&bn.A.locals&&bn.A.locals;var wn=(0,g.A)(on,function(){var t=this,e=t._self._c;return e(t.tag,{directives:[{name:"show",rawName:"v-show",value:!t.deleted&&!t.isLimbo,expression:"!deleted && !isLimbo"}],tag:"component",staticClass:"comment",class:{"comment--loading":t.loading}},[e("div",{staticClass:"comment__side"},[e("NcAvatar",{staticClass:"comment__avatar",attrs:{"display-name":t.actorDisplayName,user:t.actorId,size:32}})],1),t._v(" "),e("div",{staticClass:"comment__body"},[e("div",{staticClass:"comment__header"},[e("span",{staticClass:"comment__author"},[t._v(t._s(t.actorDisplayName))]),t._v(" "),t.isOwnComment&&t.id&&!t.loading?e("NcActions",{staticClass:"comment__actions"},[t.editing?e("NcActionButton",{on:{click:t.onEditCancel},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconClose",{attrs:{size:20}})]},proxy:!0}],null,!1,2888946197)},[t._v("\n\t\t\t\t\t"+t._s(t.t("comments","Cancel edit"))+"\n\t\t\t\t")]):[e("NcActionButton",{attrs:{"close-after-click":""},on:{click:t.onEdit},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconPencilOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,3345211262)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("comments","Edit comment"))+"\n\t\t\t\t\t")]),t._v(" "),e("NcActionSeparator"),t._v(" "),e("NcActionButton",{attrs:{"close-after-click":""},on:{click:t.onDeleteWithUndo},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconTrashCanOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,1034796883)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("comments","Delete comment"))+"\n\t\t\t\t\t")])]],2):t._e(),t._v(" "),t.id&&t.loading?e("div",{staticClass:"comment_loading icon-loading-small"}):t.creationDateTime?e("NcDateTime",{staticClass:"comment__timestamp",attrs:{timestamp:t.timestamp,"ignore-seconds":!0}}):t._e()],1),t._v(" "),t.editor||t.editing?e("form",{staticClass:"comment__editor",on:{submit:function(t){t.preventDefault()}}},[e("div",{staticClass:"comment__editor-group"},[e("NcRichContenteditable",{ref:"editor",attrs:{"auto-complete":t.autoComplete,contenteditable:!t.loading,label:t.editor?t.t("comments","New comment"):t.t("comments","Edit comment"),placeholder:t.t("comments","Write a comment …"),"model-value":t.localMessage,"user-data":t.userData,"aria-describedby":"tab-comments__editor-description"},on:{"update:value":t.updateLocalMessage,submit:t.onSubmit}}),t._v(" "),e("div",{staticClass:"comment__submit"},[e("NcButton",{attrs:{variant:"tertiary-no-background",type:"submit","aria-label":t.t("comments","Post comment"),disabled:t.isEmptyMessage},on:{click:t.onSubmit},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading?e("NcLoadingIcon"):e("IconArrowRight",{attrs:{size:20}})]},proxy:!0}],null,!1,758946661)})],1)],1),t._v(" "),e("div",{staticClass:"comment__editor-description",attrs:{id:"tab-comments__editor-description"}},[t._v("\n\t\t\t\t"+t._s(t.t("comments","@ for mentions, : for emoji, / for smart picker"))+"\n\t\t\t")])]):e("NcRichText",{staticClass:"comment__message",class:{"comment__message--expanded":t.expanded},attrs:{text:t.richContent.message,arguments:t.richContent.mentions,"use-markdown":""},nativeOn:{click:function(e){return t.onExpand.apply(null,arguments)}}})],1)])},[],!1,null,"70317f94",null);const An=wn.exports;var xn=n(81222);const _n=(0,c.pM)({props:{resourceId:{type:Number,required:!0},resourceType:{type:String,default:"files"}},data(){return{editorData:{actorDisplayName:(0,i.HW)().displayName,actorId:(0,i.HW)().uid,key:"editor"},userData:{},currentResourceId:this.resourceId}},methods:{async autoComplete(t,e){const{data:r}=await tn.Ay.get((0,Yr.KT)("core/autocomplete/get"),{params:{search:t,itemType:this.resourceType,itemId:this.currentResourceId,sorter:"commenters|share-recipients",limit:(0,xn.C)("comments","maxAutoCompleteResults")}});return r.ocs.data.forEach(t=>{this.userData[t.id]=t}),e(Object.values(this.userData))},genMentionsData(t){return Object.values(t).flat().forEach(t=>{this.userData[t.mentionId]={icon:"icon-user",id:t.mentionId,label:t.mentionDisplayName,source:"users",primary:(0,i.HW)()?.uid===t.mentionId}}),this.userData}}});async function En({resourceType:t,resourceId:e},r){const n=["",t,e].join("/"),o=r.datetime?`${r.datetime.toISOString()}`:"",i=await Jr.customRequest(n,{method:"REPORT",data:`\n\t\t\t\n\t\t\t\t${r.limit??20}\n\t\t\t\t${r.offset||0}\n\t\t\t\t${o}\n\t\t\t`,...r}),a=await i.text();return Ae(i,function(t,e=!1){const{multistatus:{response:r}}=t;return r.map(t=>{const r=t.propstat.prop;return Sr(r,r.id.toString(),e)})}(await Er(a),!0),!0)}const Sn={name:"Comments",components:{Comment:An,NcEmptyContent:f.A,NcButton:p.A,IconRefresh:m.A,IconMessageReplyTextOutline:y,IconAlertCircleOutline:h.A},directives:{elementVisibility:u.Zx},mixins:[_n],data:()=>({error:"",loading:!1,done:!1,offset:0,comments:[],cancelRequest:()=>{},Comment:An,userData:{}}),computed:{hasComments(){return this.comments.length>0},isFirstLoading(){return this.loading&&0===this.offset}},watch:{resourceId(){this.currentResourceId=this.resourceId}},methods:{t:a.Tl,async onVisibilityChange(t){if(t)try{await function(t,e,r){const n=["",t,e].join("/"),o=r.toUTCString();return Jr.customRequest(n,{method:"PROPPATCH",data:`\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${o}\n\t\t\t\t\n\t\t\t\n\t\t\t`})}(this.resourceType,this.currentResourceId,new Date)}catch(t){(0,l.Qg)(t.message||(0,a.Tl)("comments","Failed to mark comments as read"))}},async update(t){this.currentResourceId=t,this.resetState(),await this.getComments()},onScrollBottomReached(){this.error||this.done||this.loading||this.getComments()},async getComments(){this.cancelRequest("cancel");try{this.loading=!0,this.error="";const{request:t,abort:e}=function(t){const e=new AbortController,r=e.signal;return{request:async function(e,n){return await t(e,{signal:r,...n})},abort:()=>e.abort()}}(En);this.cancelRequest=e;const{data:r}=await t({resourceType:this.resourceType,resourceId:this.currentResourceId},{offset:this.offset})||{data:[]};this.logger.debug(`Processed ${r.length} comments`,{comments:r}),r.length<20&&(this.done=!0);for(const t of r)t.props.actorId=t.props.actorId.toString();this.comments=[...this.comments,...r],this.offset+=20}catch(t){if("cancel"===t.message)return;this.error=(0,a.Tl)("comments","Unable to load the comments list"),o.error("Error loading the comments list",{error:t})}finally{this.loading=!1}},onNewComment(t){this.comments.unshift(t)},onDelete(t){const e=this.comments.findIndex(e=>e.props.id===t);e>-1?this.comments.splice(e,1):o.error("Could not find the deleted comment in the list",{id:t})},resetState(){this.error="",this.loading=!1,this.done=!1,this.offset=0,this.comments=[]}}},On=Sn;var Tn=n(94262),Cn={};Cn.styleTagTransform=mn(),Cn.setAttributes=hn(),Cn.insert=pn().bind(null,"head"),Cn.domAPI=ln(),Cn.insertStyleElement=gn(),sn()(Tn.A,Cn),Tn.A&&Tn.A.locals&&Tn.A.locals;const jn=(0,g.A)(On,function(){var t=this,e=t._self._c;return e("div",{directives:[{name:"element-visibility",rawName:"v-element-visibility",value:t.onVisibilityChange,expression:"onVisibilityChange"}],staticClass:"comments",class:{"icon-loading":t.isFirstLoading}},[e("Comment",t._b({staticClass:"comments__writer",attrs:{"auto-complete":t.autoComplete,"resource-type":t.resourceType,editor:!0,"user-data":t.userData,"resource-id":t.currentResourceId},on:{new:t.onNewComment}},"Comment",t.editorData,!1)),t._v(" "),t.isFirstLoading?t._e():[!t.hasComments&&t.done?e("NcEmptyContent",{staticClass:"comments__empty",attrs:{name:t.t("comments","No comments yet, start the conversation!")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconMessageReplyTextOutline")]},proxy:!0}],null,!1,326612300)}):e("ul",t._l(t.comments,function(r){return e("Comment",t._b({key:r.props.id,staticClass:"comments__list",attrs:{tag:"li","auto-complete":t.autoComplete,"resource-type":t.resourceType,message:r.props.message,"resource-id":t.currentResourceId,"user-data":t.genMentionsData(r.props.mentions)},on:{"update:message":function(e){return t.$set(r.props,"message",e)},delete:t.onDelete}},"Comment",r.props,!1))}),1),t._v(" "),t.loading&&!t.isFirstLoading?e("div",{staticClass:"comments__info icon-loading"}):t.hasComments&&t.done?e("div",{staticClass:"comments__info"},[t._v("\n\t\t\t"+t._s(t.t("comments","No more messages"))+"\n\t\t")]):t.error?[e("NcEmptyContent",{staticClass:"comments__error",attrs:{name:t.error},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconAlertCircleOutline")]},proxy:!0}],null,!1,3663249556)}),t._v(" "),e("NcButton",{staticClass:"comments__retry",on:{click:t.getComments},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconRefresh")]},proxy:!0}],null,!1,2997625269)},[t._v("\n\t\t\t\t"+t._s(t.t("comments","Retry"))+"\n\t\t\t")])]:t._e()]],2)},[],!1,null,"6c8c157a",null).exports;c.Ay.use(s.R2),n.nc=(0,i.aV)(),c.Ay.mixin({data:()=>({logger:o}),methods:{t:a.t,n:a.n}}),window.OCA&&!window.OCA.Comments&&Object.assign(window.OCA,{Comments:{}}),Object.assign(window.OCA.Comments,{View:class{constructor(t="files",e={}){const r=(0,s.Ey)();return e={...e,propsData:{...e.propsData??{},resourceType:t},pinia:r},new(c.Ay.extend(jn))(e)}}}),o.debug("OCA.Comments.View initialized")},8505(t){"use strict";function e(t,e,o){t instanceof RegExp&&(t=r(t,o)),e instanceof RegExp&&(e=r(e,o));var i=n(t,e,o);return i&&{start:i[0],end:i[1],pre:o.slice(0,i[0]),body:o.slice(i[0]+t.length,i[1]),post:o.slice(i[1]+e.length)}}function r(t,e){var r=e.match(t);return r?r[0]:null}function n(t,e,r){var n,o,i,a,s,c=r.indexOf(t),l=r.indexOf(e,c+1),u=c;if(c>=0&&l>0){if(t===e)return[c,l];for(n=[],i=r.length;u>=0&&!s;)u==c?(n.push(u),c=r.indexOf(t,u+1)):1==n.length?s=[n.pop(),l]:((o=n.pop())=0?c:l;n.length&&(s=[i,a])}return s}t.exports=e,e.range=n},85914(t,e,r){var n;t=r.nmd(t),function(){var o=(t&&t.exports,"object"==typeof globalThis&&globalThis);o.global!==o&&o.window;var i=function(t){this.message=t};(i.prototype=new Error).name="InvalidCharacterError";var a=function(t){throw new i(t)},s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",c=/[\t\n\f\r ]/g,l={encode:function(t){t=String(t),/[^\0-\xFF]/.test(t)&&a("The string to be encoded contains characters outside of the Latin1 range.");for(var e,r,n,o,i=t.length%3,c="",l=-1,u=t.length-i;++l>18&63)+s.charAt(o>>12&63)+s.charAt(o>>6&63)+s.charAt(63&o);return 2==i?(e=t.charCodeAt(l)<<8,r=t.charCodeAt(++l),c+=s.charAt((o=e+r)>>10)+s.charAt(o>>4&63)+s.charAt(o<<2&63)+"="):1==i&&(o=t.charCodeAt(l),c+=s.charAt(o>>2)+s.charAt(o<<4&63)+"=="),c},decode:function(t){var e=(t=String(t).replace(c,"")).length;e%4==0&&(e=(t=t.replace(/==?$/,"")).length),(e%4==1||/[^+a-zA-Z0-9/]/.test(t))&&a("Invalid character: the string to be decoded is not correctly encoded.");for(var r,n,o=0,i="",l=-1;++l>(-2*o&6)));return i},version:"1.0.0"};void 0===(n=function(){return l}.call(e,r,e,t))||(t.exports=n)}()},68928(t,e,r){var n=r(8505);t.exports=function(t){return t?("{}"===t.substr(0,2)&&(t="\\{\\}"+t.substr(2)),y(function(t){return t.split("\\\\").join(o).split("\\{").join(i).split("\\}").join(a).split("\\,").join(s).split("\\.").join(c)}(t),!0).map(u)):[]};var o="\0SLASH"+Math.random()+"\0",i="\0OPEN"+Math.random()+"\0",a="\0CLOSE"+Math.random()+"\0",s="\0COMMA"+Math.random()+"\0",c="\0PERIOD"+Math.random()+"\0";function l(t){return parseInt(t,10)==t?parseInt(t,10):t.charCodeAt(0)}function u(t){return t.split(o).join("\\").split(i).join("{").split(a).join("}").split(s).join(",").split(c).join(".")}function p(t){if(!t)return[""];var e=[],r=n("{","}",t);if(!r)return t.split(",");var o=r.pre,i=r.body,a=r.post,s=o.split(",");s[s.length-1]+="{"+i+"}";var c=p(a);return a.length&&(s[s.length-1]+=c.shift(),s.push.apply(s,c)),e.push.apply(e,s),e}function f(t){return"{"+t+"}"}function h(t){return/^-?0\d/.test(t)}function d(t,e){return t<=e}function g(t,e){return t>=e}function y(t,e){var r=[],o=n("{","}",t);if(!o)return[t];var i=o.pre,s=o.post.length?y(o.post,!1):[""];if(/\$$/.test(o.pre))for(var c=0;c=0;if(!A&&!x)return o.post.match(/,(?!,).*\}/)?y(t=o.pre+"{"+o.body+a+o.post):[t];if(A)m=o.body.split(/\.\./);else if(1===(m=p(o.body)).length&&1===(m=y(m[0],!1).map(f)).length)return s.map(function(t){return o.pre+m[0]+t});if(A){var _=l(m[0]),E=l(m[1]),S=Math.max(m[0].length,m[1].length),O=3==m.length?Math.abs(l(m[2])):1,T=d;E<_&&(O*=-1,T=g);var C=m.some(h);b=[];for(var j=_;T(j,E);j+=O){var R;if(w)"\\"===(R=String.fromCharCode(j))&&(R="");else if(R=String(j),C){var N=S-R.length;if(N>0){var P=new Array(N+1).join("0");R=j<0?"-"+P+R.slice(1):P+R}}b.push(R)}}else{b=[];for(var I=0;I0?r:0),!0)},o?o(t.exports,"apply",{value:a}):t.exports.apply=a},36556(t,e,r){"use strict";var n=r(70453),o=r(73126),i=o([n("%String.prototype.indexOf%")]);t.exports=function(t,e){var r=n(t,!!e);return"function"==typeof r&&i(t,".prototype.")>-1?o([r]):r}},22408(t,e,r){"use strict";r.d(e,{A:()=>s});var n=r(71354),o=r.n(n),i=r(76314),a=r.n(i)()(o());a.push([t.id,".comment[data-v-70317f94]{display:flex;gap:8px;padding:5px 10px}.comment__side[data-v-70317f94]{display:flex;align-items:flex-start;padding-top:6px}.comment__body[data-v-70317f94]{display:flex;flex-grow:1;flex-direction:column;container-type:inline-size}.comment__header[data-v-70317f94]{display:flex;align-items:center;min-height:44px}.comment__actions[data-v-70317f94]{margin-inline-start:10px !important}.comment__author[data-v-70317f94]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.comment_loading[data-v-70317f94],.comment__timestamp[data-v-70317f94]{margin-inline-start:auto;text-align:end;white-space:nowrap;color:var(--color-text-maxcontrast)}.comment__editor-group[data-v-70317f94]{position:relative}.comment__editor-description[data-v-70317f94]{color:var(--color-text-maxcontrast);padding-block:var(--default-grid-baseline)}.comment__submit[data-v-70317f94]{position:absolute !important;bottom:5px;inset-inline-end:0}.comment__message[data-v-70317f94]{white-space:pre-wrap;word-break:normal;max-height:200px;overflow:auto;scrollbar-gutter:stable;scrollbar-width:thin;margin-top:-6px}.comment__message--expanded[data-v-70317f94]{max-height:none;overflow:visible}.comment__message[data-v-70317f94] img{max-width:100%;height:auto}.rich-contenteditable__input[data-v-70317f94]{min-height:44px;margin:0;padding:10px}","",{version:3,sources:["webpack://./apps/comments/src/components/Comment.vue"],names:[],mappings:"AAKA,0BACC,YAAA,CACA,OAAA,CACA,gBAAA,CAEA,gCACC,YAAA,CACA,sBAAA,CACA,eAAA,CAGD,gCACC,YAAA,CACA,WAAA,CACA,qBAAA,CACA,0BAAA,CAGD,kCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAGD,mCACC,mCAAA,CAGD,kCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,uEAEC,wBAAA,CACA,cAAA,CACA,kBAAA,CACA,mCAAA,CAGD,wCACC,iBAAA,CAGD,8CACC,mCAAA,CACA,0CAAA,CAGD,kCACC,4BAAA,CACA,UAAA,CACA,kBAAA,CAGD,mCACC,oBAAA,CACA,iBAAA,CACA,gBAAA,CACA,aAAA,CACA,uBAAA,CACA,oBAAA,CACA,eAAA,CACA,6CACC,eAAA,CACA,gBAAA,CAED,uCACC,cAAA,CACA,WAAA,CAKH,8CACC,eAAA,CACA,QAAA,CACA,YAlFiB",sourcesContent:['\n@use "sass:math";\n\n$comment-padding: 10px;\n\n.comment {\n\tdisplay: flex;\n\tgap: 8px;\n\tpadding: 5px $comment-padding;\n\n\t&__side {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\t\tpadding-top: 6px;\n\t}\n\n\t&__body {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\tflex-direction: column;\n\t\tcontainer-type: inline-size;\n\t}\n\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tmin-height: 44px;\n\t}\n\n\t&__actions {\n\t\tmargin-inline-start: $comment-padding !important;\n\t}\n\n\t&__author {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&_loading,\n\t&__timestamp {\n\t\tmargin-inline-start: auto;\n\t\ttext-align: end;\n\t\twhite-space: nowrap;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__editor-group {\n\t\tposition: relative;\n\t}\n\n\t&__editor-description {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tpadding-block: var(--default-grid-baseline);\n\t}\n\n\t&__submit {\n\t\tposition: absolute !important;\n\t\tbottom: 5px;\n\t\tinset-inline-end: 0;\n\t}\n\n\t&__message {\n\t\twhite-space: pre-wrap;\n\t\tword-break: normal;\n\t\tmax-height: 200px;\n\t\toverflow: auto;\n\t\tscrollbar-gutter: stable;\n\t\tscrollbar-width: thin;\n\t\tmargin-top: -6px;\n\t\t&--expanded {\n\t\t\tmax-height: none;\n\t\t\toverflow: visible;\n\t\t}\n\t\t:deep(img) {\n\t\t\tmax-width: 100%;\n\t\t\theight: auto;\n\t\t}\n\t}\n}\n\n.rich-contenteditable__input {\n\tmin-height: 44px;\n\tmargin: 0;\n\tpadding: $comment-padding;\n}\n\n'],sourceRoot:""}]);const s=a},94262(t,e,r){"use strict";r.d(e,{A:()=>s});var n=r(71354),o=r.n(n),i=r(76314),a=r.n(i)()(o());a.push([t.id,".comments[data-v-6c8c157a]{min-height:100%;display:flex;flex-direction:column}.comments__empty[data-v-6c8c157a],.comments__error[data-v-6c8c157a]{flex:1 0}.comments__retry[data-v-6c8c157a]{margin:0 auto}.comments__info[data-v-6c8c157a]{height:60px;color:var(--color-text-maxcontrast);text-align:center;line-height:60px}","",{version:3,sources:["webpack://./apps/comments/src/views/Comments.vue"],names:[],mappings:"AACA,2BACC,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,oEAEC,QAAA,CAGD,kCACC,aAAA,CAGD,iCACC,WAAA,CACA,mCAAA,CACA,iBAAA,CACA,gBAAA",sourcesContent:["\n.comments {\n\tmin-height: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t&__empty,\n\t&__error {\n\t\tflex: 1 0;\n\t}\n\n\t&__retry {\n\t\tmargin: 0 auto;\n\t}\n\n\t&__info {\n\t\theight: 60px;\n\t\tcolor: var(--color-text-maxcontrast);\n\t\ttext-align: center;\n\t\tline-height: 60px;\n\t}\n}\n"],sourceRoot:""}]);const s=a},30041(t,e,r){"use strict";var n=r(30655),o=r(58068),i=r(69675),a=r(75795);t.exports=function(t,e,r){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new i("`obj` must be an object or a function`");if("string"!=typeof e&&"symbol"!=typeof e)throw new i("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new i("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new i("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new i("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new i("`loose`, if provided, must be a boolean");var s=arguments.length>3?arguments[3]:null,c=arguments.length>4?arguments[4]:null,l=arguments.length>5?arguments[5]:null,u=arguments.length>6&&arguments[6],p=!!a&&a(t,e);if(n)n(t,e,{configurable:null===l&&p?p.configurable:!l,enumerable:null===s&&p?p.enumerable:!s,value:r,writable:null===c&&p?p.writable:!c});else{if(!u&&(s||c||l))throw new o("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");t[e]=r}}},7176(t,e,r){"use strict";var n,o=r(73126),i=r(75795);try{n=[].__proto__===Array.prototype}catch(t){if(!t||"object"!=typeof t||!("code"in t)||"ERR_PROTO_ACCESS"!==t.code)throw t}var a=!!n&&i&&i(Object.prototype,"__proto__"),s=Object,c=s.getPrototypeOf;t.exports=a&&"function"==typeof a.get?o([a.get]):"function"==typeof c&&function(t){return c(null==t?t:s(t))}},30655(t){"use strict";var e=Object.defineProperty||!1;if(e)try{e({},"a",{value:1})}catch(t){e=!1}t.exports=e},41237(t){"use strict";t.exports=EvalError},69383(t){"use strict";t.exports=Error},79290(t){"use strict";t.exports=RangeError},79538(t){"use strict";t.exports=ReferenceError},58068(t){"use strict";t.exports=SyntaxError},69675(t){"use strict";t.exports=TypeError},35345(t){"use strict";t.exports=URIError},79612(t){"use strict";t.exports=Object},82682(t,e,r){"use strict";var n=r(69600),o=Object.prototype.toString,i=Object.prototype.hasOwnProperty;t.exports=function(t,e,r){if(!n(e))throw new TypeError("iterator must be a function");var a,s;arguments.length>=3&&(a=r),s=t,"[object Array]"===o.call(s)?function(t,e,r){for(var n=0,o=t.length;ne},70453(t,e,r){"use strict";var n,o=r(79612),i=r(69383),a=r(41237),s=r(79290),c=r(79538),l=r(58068),u=r(69675),p=r(35345),f=r(71514),h=r(58968),d=r(6188),g=r(68002),y=r(75880),m=r(70414),b=r(73093),v=Function,w=function(t){try{return v('"use strict"; return ('+t+").constructor;")()}catch(t){}},A=r(75795),x=r(30655),_=function(){throw new u},E=A?function(){try{return _}catch(t){try{return A(arguments,"callee").get}catch(t){return _}}}():_,S=r(64039)(),O=r(93628),T=r(71064),C=r(48648),j=r(11002),R=r(10076),N={},P="undefined"!=typeof Uint8Array&&O?O(Uint8Array):n,I={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?n:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer,"%ArrayIteratorPrototype%":S&&O?O([][Symbol.iterator]()):n,"%AsyncFromSyncIteratorPrototype%":n,"%AsyncFunction%":N,"%AsyncGenerator%":N,"%AsyncGeneratorFunction%":N,"%AsyncIteratorPrototype%":N,"%Atomics%":"undefined"==typeof Atomics?n:Atomics,"%BigInt%":"undefined"==typeof BigInt?n:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?n:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?n:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?n:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":i,"%eval%":eval,"%EvalError%":a,"%Float16Array%":"undefined"==typeof Float16Array?n:Float16Array,"%Float32Array%":"undefined"==typeof Float32Array?n:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?n:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?n:FinalizationRegistry,"%Function%":v,"%GeneratorFunction%":N,"%Int8Array%":"undefined"==typeof Int8Array?n:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?n:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?n:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":S&&O?O(O([][Symbol.iterator]())):n,"%JSON%":"object"==typeof JSON?JSON:n,"%Map%":"undefined"==typeof Map?n:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&S&&O?O((new Map)[Symbol.iterator]()):n,"%Math%":Math,"%Number%":Number,"%Object%":o,"%Object.getOwnPropertyDescriptor%":A,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?n:Promise,"%Proxy%":"undefined"==typeof Proxy?n:Proxy,"%RangeError%":s,"%ReferenceError%":c,"%Reflect%":"undefined"==typeof Reflect?n:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?n:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&S&&O?O((new Set)[Symbol.iterator]()):n,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":S&&O?O(""[Symbol.iterator]()):n,"%Symbol%":S?Symbol:n,"%SyntaxError%":l,"%ThrowTypeError%":E,"%TypedArray%":P,"%TypeError%":u,"%Uint8Array%":"undefined"==typeof Uint8Array?n:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?n:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?n:Uint32Array,"%URIError%":p,"%WeakMap%":"undefined"==typeof WeakMap?n:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?n:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?n:WeakSet,"%Function.prototype.call%":R,"%Function.prototype.apply%":j,"%Object.defineProperty%":x,"%Object.getPrototypeOf%":T,"%Math.abs%":f,"%Math.floor%":h,"%Math.max%":d,"%Math.min%":g,"%Math.pow%":y,"%Math.round%":m,"%Math.sign%":b,"%Reflect.getPrototypeOf%":C};if(O)try{null.error}catch(t){var k=O(O(t));I["%Error.prototype%"]=k}var M=function t(e){var r;if("%AsyncFunction%"===e)r=w("async function () {}");else if("%GeneratorFunction%"===e)r=w("function* () {}");else if("%AsyncGeneratorFunction%"===e)r=w("async function* () {}");else if("%AsyncGenerator%"===e){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if("%AsyncIteratorPrototype%"===e){var o=t("%AsyncGenerator%");o&&O&&(r=O(o.prototype))}return I[e]=r,r},L={__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"]},D=r(66743),$=r(9957),U=D.call(R,Array.prototype.concat),F=D.call(j,Array.prototype.splice),B=D.call(R,String.prototype.replace),W=D.call(R,String.prototype.slice),q=D.call(R,RegExp.prototype.exec),H=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,V=/\\(\\)?/g,G=function(t,e){var r,n=t;if($(L,n)&&(n="%"+(r=L[n])[0]+"%"),$(I,n)){var o=I[n];if(o===N&&(o=M(n)),void 0===o&&!e)throw new u("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:r,name:n,value:o}}throw new l("intrinsic "+t+" does not exist!")};t.exports=function(t,e){if("string"!=typeof t||0===t.length)throw new u("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof e)throw new u('"allowMissing" argument must be a boolean');if(null===q(/^%?[^%]*%?$/,t))throw new l("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=function(t){var e=W(t,0,1),r=W(t,-1);if("%"===e&&"%"!==r)throw new l("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==e)throw new l("invalid intrinsic syntax, expected opening `%`");var n=[];return B(t,H,function(t,e,r,o){n[n.length]=r?B(o,V,"$1"):e||t}),n}(t),n=r.length>0?r[0]:"",o=G("%"+n+"%",e),i=o.name,a=o.value,s=!1,c=o.alias;c&&(n=c[0],F(r,U([0,1],c)));for(var p=1,f=!0;p=r.length){var y=A(a,h);a=(f=!!y)&&"get"in y&&!("originalValue"in y.get)?y.get:a[h]}else f=$(a,h),a=a[h];f&&!s&&(I[i]=a)}}return a}},71064(t,e,r){"use strict";var n=r(79612);t.exports=n.getPrototypeOf||null},48648(t){"use strict";t.exports="undefined"!=typeof Reflect&&Reflect.getPrototypeOf||null},93628(t,e,r){"use strict";var n=r(48648),o=r(71064),i=r(7176);t.exports=n?function(t){return n(t)}:o?function(t){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("getProto: not an object");return o(t)}:i?function(t){return i(t)}:null},6549(t){"use strict";t.exports=Object.getOwnPropertyDescriptor},75795(t,e,r){"use strict";var n=r(6549);if(n)try{n([],"length")}catch(t){n=null}t.exports=n},30592(t,e,r){"use strict";var n=r(30655),o=function(){return!!n};o.hasArrayLengthDefineBug=function(){if(!n)return null;try{return 1!==n([],"length",{value:1}).length}catch(t){return!0}},t.exports=o},64039(t,e,r){"use strict";var n="undefined"!=typeof Symbol&&Symbol,o=r(41333);t.exports=function(){return"function"==typeof n&&"function"==typeof Symbol&&"symbol"==typeof n("foo")&&"symbol"==typeof Symbol("bar")&&o()}},41333(t){"use strict";t.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var t={},e=Symbol("test"),r=Object(e);if("string"==typeof e)return!1;if("[object Symbol]"!==Object.prototype.toString.call(e))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(var n in t[e]=42,t)return!1;if("function"==typeof Object.keys&&0!==Object.keys(t).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var o=Object.getOwnPropertySymbols(t);if(1!==o.length||o[0]!==e)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(t,e);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},49092(t,e,r){"use strict";var n=r(41333);t.exports=function(){return n()&&!!Symbol.toStringTag}},9957(t,e,r){"use strict";var n=Function.prototype.call,o=Object.prototype.hasOwnProperty,i=r(66743);t.exports=i.call(n,o)},11083(t,e,r){var n=r(11568),o=r(88835),i=t.exports;for(var a in n)n.hasOwnProperty(a)&&(i[a]=n[a]);function s(t){if("string"==typeof t&&(t=o.parse(t)),t.protocol||(t.protocol="https:"),"https:"!==t.protocol)throw new Error('Protocol "'+t.protocol+'" not supported. Expected "https:"');return t}i.request=function(t,e){return t=s(t),n.request.call(this,t,e)},i.get=function(t,e){return t=s(t),n.get.call(this,t,e)}},47244(t,e,r){"use strict";var n=r(49092)(),o=r(36556)("Object.prototype.toString"),i=function(t){return!(n&&t&&"object"==typeof t&&Symbol.toStringTag in t)&&"[object Arguments]"===o(t)},a=function(t){return!!i(t)||null!==t&&"object"==typeof t&&"length"in t&&"number"==typeof t.length&&t.length>=0&&"[object Array]"!==o(t)&&"callee"in t&&"[object Function]"===o(t.callee)},s=function(){return i(arguments)}();i.isLegacyArguments=a,t.exports=s?i:a},69600(t){"use strict";var e,r,n=Function.prototype.toString,o="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof o&&"function"==typeof Object.defineProperty)try{e=Object.defineProperty({},"length",{get:function(){throw r}}),r={},o(function(){throw 42},null,e)}catch(t){t!==r&&(o=null)}else o=null;var i=/^\s*class\b/,a=function(t){try{var e=n.call(t);return i.test(e)}catch(t){return!1}},s=function(t){try{return!a(t)&&(n.call(t),!0)}catch(t){return!1}},c=Object.prototype.toString,l="function"==typeof Symbol&&!!Symbol.toStringTag,u=!(0 in[,]),p=function(){return!1};if("object"==typeof document){var f=document.all;c.call(f)===c.call(document.all)&&(p=function(t){if((u||!t)&&(void 0===t||"object"==typeof t))try{var e=c.call(t);return("[object HTMLAllCollection]"===e||"[object HTML document.all class]"===e||"[object HTMLCollection]"===e||"[object Object]"===e)&&null==t("")}catch(t){}return!1})}t.exports=o?function(t){if(p(t))return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;try{o(t,null,e)}catch(t){if(t!==r)return!1}return!a(t)&&s(t)}:function(t){if(p(t))return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;if(l)return s(t);if(a(t))return!1;var e=c.call(t);return!("[object Function]"!==e&&"[object GeneratorFunction]"!==e&&!/^\[object HTML/.test(e))&&s(t)}},48184(t,e,r){"use strict";var n=r(36556),o=r(99721)(/^\s*(?:function)?\*/),i=r(49092)(),a=r(93628),s=n("Object.prototype.toString"),c=n("Function.prototype.toString"),l=r(4233);t.exports=function(t){if("function"!=typeof t)return!1;if(o(c(t)))return!0;if(!i)return"[object GeneratorFunction]"===s(t);if(!a)return!1;var e=l();return e&&a(t)===e.prototype}},14035(t,e,r){"use strict";var n,o=r(36556),i=r(49092)(),a=r(9957),s=r(75795);if(i){var c=o("RegExp.prototype.exec"),l={},u=function(){throw l},p={toString:u,valueOf:u};"symbol"==typeof Symbol.toPrimitive&&(p[Symbol.toPrimitive]=u),n=function(t){if(!t||"object"!=typeof t)return!1;var e=s(t,"lastIndex");if(!e||!a(e,"value"))return!1;try{c(t,p)}catch(t){return t===l}}}else{var f=o("Object.prototype.toString");n=function(t){return!(!t||"object"!=typeof t&&"function"!=typeof t)&&"[object RegExp]"===f(t)}}t.exports=n},35680(t,e,r){"use strict";var n=r(25767);t.exports=function(t){return!!n(t)}},71514(t){"use strict";t.exports=Math.abs},58968(t){"use strict";t.exports=Math.floor},94459(t){"use strict";t.exports=Number.isNaN||function(t){return t!=t}},6188(t){"use strict";t.exports=Math.max},68002(t){"use strict";t.exports=Math.min},75880(t){"use strict";t.exports=Math.pow},70414(t){"use strict";t.exports=Math.round},73093(t,e,r){"use strict";var n=r(94459);t.exports=function(t){return n(t)||0===t?t:t<0?-1:1}},26602(t){"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function r(t){var e="function"==typeof Map?new Map:void 0;return r=function(t){if(null===t||(r=t,-1===Function.toString.call(r).indexOf("[native code]")))return t;var r;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,a)}function a(){return n(t,arguments,i(this).constructor)}return a.prototype=Object.create(t.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),o(a,t)},r(t)}function n(t,e,r){return n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}()?Reflect.construct:function(t,e,r){var n=[null];n.push.apply(n,e);var i=new(Function.bind.apply(t,n));return r&&o(i,r.prototype),i},n.apply(null,arguments)}function o(t,e){return o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},o(t,e)}function i(t){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},i(t)}var a=function(t){function r(t){var n;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),(n=function(t,r){return!r||"object"!==e(r)&&"function"!=typeof r?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):r}(this,i(r).call(this,t))).name="ObjectPrototypeMutationError",n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(r,t),r}(r(Error));function s(t,r){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},o=r.split("."),i=o.length,a=function(e){var r=o[e];if(!t)return{v:void 0};if("+"===r){if(Array.isArray(t))return{v:t.map(function(r,i){var a=o.slice(e+1);return a.length>0?s(r,a.join("."),n):n(t,i,o,e)})};var i=o.slice(0,e).join(".");throw new Error("Object at wildcard (".concat(i,") is not an array"))}t=n(t,r,o,e)},c=0;c2&&void 0!==arguments[2]?arguments[2]:{};if("object"!=e(t)||null===t)return!1;if(void 0===r)return!1;if("number"==typeof r)return r in t;try{var o=!1;return s(t,r,function(t,e,r,i){if(!c(r,i))return t&&t[e];o=n.own?t.hasOwnProperty(e):e in t}),o}catch(t){return!1}},hasOwn:function(t,e,r){return this.has(t,e,r||{own:!0})},isIn:function(t,r,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if("object"!=e(t)||null===t)return!1;if(void 0===r)return!1;try{var i=!1,a=!1;return s(t,r,function(t,r,o,s){return i=i||t===n||!!t&&t[r]===n,a=c(o,s)&&"object"===e(t)&&r in t,t&&t[r]}),o.validPath?i&&a:i}catch(t){return!1}},ObjectPrototypeMutationError:a}},58859(t,e,r){var n="function"==typeof Map&&Map.prototype,o=Object.getOwnPropertyDescriptor&&n?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,i=n&&o&&"function"==typeof o.get?o.get:null,a=n&&Map.prototype.forEach,s="function"==typeof Set&&Set.prototype,c=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,l=s&&c&&"function"==typeof c.get?c.get:null,u=s&&Set.prototype.forEach,p="function"==typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,f="function"==typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,h="function"==typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,d=Boolean.prototype.valueOf,g=Object.prototype.toString,y=Function.prototype.toString,m=String.prototype.match,b=String.prototype.slice,v=String.prototype.replace,w=String.prototype.toUpperCase,A=String.prototype.toLowerCase,x=RegExp.prototype.test,_=Array.prototype.concat,E=Array.prototype.join,S=Array.prototype.slice,O=Math.floor,T="function"==typeof BigInt?BigInt.prototype.valueOf:null,C=Object.getOwnPropertySymbols,j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,R="function"==typeof Symbol&&"object"==typeof Symbol.iterator,N="function"==typeof Symbol&&Symbol.toStringTag&&(Symbol.toStringTag,1)?Symbol.toStringTag:null,P=Object.prototype.propertyIsEnumerable,I=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function k(t,e){if(t===1/0||t===-1/0||t!=t||t&&t>-1e3&&t<1e3||x.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"==typeof t){var n=t<0?-O(-t):O(t);if(n!==t){var o=String(n),i=b.call(e,o.length+1);return v.call(o,r,"$&_")+"."+v.call(v.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return v.call(e,r,"$&_")}var M=r(42634),L=M.custom,D=V(L)?L:null,$={__proto__:null,double:'"',single:"'"},U={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};function F(t,e,r){var n=r.quoteStyle||e,o=$[n];return o+t+o}function B(t){return v.call(String(t),/"/g,""")}function W(t){return!N||!("object"==typeof t&&(N in t||void 0!==t[N]))}function q(t){return"[object Array]"===K(t)&&W(t)}function H(t){return"[object RegExp]"===K(t)&&W(t)}function V(t){if(R)return t&&"object"==typeof t&&t instanceof Symbol;if("symbol"==typeof t)return!0;if(!t||"object"!=typeof t||!j)return!1;try{return j.call(t),!0}catch(t){}return!1}t.exports=function t(e,r,n,o){var s=r||{};if(z(s,"quoteStyle")&&!z($,s.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(z(s,"maxStringLength")&&("number"==typeof s.maxStringLength?s.maxStringLength<0&&s.maxStringLength!==1/0:null!==s.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var c=!z(s,"customInspect")||s.customInspect;if("boolean"!=typeof c&&"symbol"!==c)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(z(s,"indent")&&null!==s.indent&&"\t"!==s.indent&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(z(s,"numericSeparator")&&"boolean"!=typeof s.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var g=s.numericSeparator;if(void 0===e)return"undefined";if(null===e)return"null";if("boolean"==typeof e)return e?"true":"false";if("string"==typeof e)return X(e,s);if("number"==typeof e){if(0===e)return 1/0/e>0?"0":"-0";var w=String(e);return g?k(e,w):w}if("bigint"==typeof e){var x=String(e)+"n";return g?k(e,x):x}var O=void 0===s.depth?5:s.depth;if(void 0===n&&(n=0),n>=O&&O>0&&"object"==typeof e)return q(e)?"[Array]":"[Object]";var C,L=function(t,e){var r;if("\t"===t.indent)r="\t";else{if(!("number"==typeof t.indent&&t.indent>0))return null;r=E.call(Array(t.indent+1)," ")}return{base:r,prev:E.call(Array(e+1),r)}}(s,n);if(void 0===o)o=[];else if(Y(o,e)>=0)return"[Circular]";function U(e,r,i){if(r&&(o=S.call(o)).push(r),i){var a={depth:s.depth};return z(s,"quoteStyle")&&(a.quoteStyle=s.quoteStyle),t(e,a,n+1,o)}return t(e,s,n+1,o)}if("function"==typeof e&&!H(e)){var G=function(t){if(t.name)return t.name;var e=m.call(y.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}(e),Z=rt(e,U);return"[Function"+(G?": "+G:" (anonymous)")+"]"+(Z.length>0?" { "+E.call(Z,", ")+" }":"")}if(V(e)){var nt=R?v.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):j.call(e);return"object"!=typeof e||R?nt:Q(nt)}if((C=e)&&"object"==typeof C&&("undefined"!=typeof HTMLElement&&C instanceof HTMLElement||"string"==typeof C.nodeName&&"function"==typeof C.getAttribute)){for(var ot="<"+A.call(String(e.nodeName)),it=e.attributes||[],at=0;at"}if(q(e)){if(0===e.length)return"[]";var st=rt(e,U);return L&&!function(t){for(var e=0;e=0)return!1;return!0}(st)?"["+et(st,L)+"]":"[ "+E.call(st,", ")+" ]"}if(function(t){return"[object Error]"===K(t)&&W(t)}(e)){var ct=rt(e,U);return"cause"in Error.prototype||!("cause"in e)||P.call(e,"cause")?0===ct.length?"["+String(e)+"]":"{ ["+String(e)+"] "+E.call(ct,", ")+" }":"{ ["+String(e)+"] "+E.call(_.call("[cause]: "+U(e.cause),ct),", ")+" }"}if("object"==typeof e&&c){if(D&&"function"==typeof e[D]&&M)return M(e,{depth:O-n});if("symbol"!==c&&"function"==typeof e.inspect)return e.inspect()}if(function(t){if(!i||!t||"object"!=typeof t)return!1;try{i.call(t);try{l.call(t)}catch(t){return!0}return t instanceof Map}catch(t){}return!1}(e)){var lt=[];return a&&a.call(e,function(t,r){lt.push(U(r,e,!0)+" => "+U(t,e))}),tt("Map",i.call(e),lt,L)}if(function(t){if(!l||!t||"object"!=typeof t)return!1;try{l.call(t);try{i.call(t)}catch(t){return!0}return t instanceof Set}catch(t){}return!1}(e)){var ut=[];return u&&u.call(e,function(t){ut.push(U(t,e))}),tt("Set",l.call(e),ut,L)}if(function(t){if(!p||!t||"object"!=typeof t)return!1;try{p.call(t,p);try{f.call(t,f)}catch(t){return!0}return t instanceof WeakMap}catch(t){}return!1}(e))return J("WeakMap");if(function(t){if(!f||!t||"object"!=typeof t)return!1;try{f.call(t,f);try{p.call(t,p)}catch(t){return!0}return t instanceof WeakSet}catch(t){}return!1}(e))return J("WeakSet");if(function(t){if(!h||!t||"object"!=typeof t)return!1;try{return h.call(t),!0}catch(t){}return!1}(e))return J("WeakRef");if(function(t){return"[object Number]"===K(t)&&W(t)}(e))return Q(U(Number(e)));if(function(t){if(!t||"object"!=typeof t||!T)return!1;try{return T.call(t),!0}catch(t){}return!1}(e))return Q(U(T.call(e)));if(function(t){return"[object Boolean]"===K(t)&&W(t)}(e))return Q(d.call(e));if(function(t){return"[object String]"===K(t)&&W(t)}(e))return Q(U(String(e)));if("undefined"!=typeof window&&e===window)return"{ [object Window] }";if("undefined"!=typeof globalThis&&e===globalThis||"undefined"!=typeof globalThis&&e===globalThis)return"{ [object globalThis] }";if(!function(t){return"[object Date]"===K(t)&&W(t)}(e)&&!H(e)){var pt=rt(e,U),ft=I?I(e)===Object.prototype:e instanceof Object||e.constructor===Object,ht=e instanceof Object?"":"null prototype",dt=!ft&&N&&Object(e)===e&&N in e?b.call(K(e),8,-1):ht?"Object":"",gt=(ft||"function"!=typeof e.constructor?"":e.constructor.name?e.constructor.name+" ":"")+(dt||ht?"["+E.call(_.call([],dt||[],ht||[]),": ")+"] ":"");return 0===pt.length?gt+"{}":L?gt+"{"+et(pt,L)+"}":gt+"{ "+E.call(pt,", ")+" }"}return String(e)};var G=Object.prototype.hasOwnProperty||function(t){return t in this};function z(t,e){return G.call(t,e)}function K(t){return g.call(t)}function Y(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 X(b.call(t,0,e.maxStringLength),e)+n}var o=U[e.quoteStyle||"single"];return o.lastIndex=0,F(v.call(v.call(t,o,"\\$1"),/[\x00-\x1f]/g,Z),"single",e)}function Z(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":"")+w.call(e.toString(16))}function Q(t){return"Object("+t+")"}function J(t){return t+" { ? }"}function tt(t,e,r,n){return t+" ("+e+") {"+(n?et(r,n):E.call(r,", "))+"}"}function et(t,e){if(0===t.length)return"";var r="\n"+e.prev+e.base;return r+E.call(t,","+r)+"\n"+e.prev}function rt(t,e){var r=q(t),n=[];if(r){n.length=t.length;for(var o=0;o=-1&&!e;r--){var o=r>=0?arguments[r]:n.cwd();if(!i(o))throw new TypeError("Arguments to path.resolve must be strings");o&&(t=o+"/"+t,e="/"===o.charAt(0))}return(e?"/":"")+(t=a(t.split("/"),!e).join("/"))||"."},c.normalize=function(t){var e=c.isAbsolute(t),r="/"===t.substr(-1);return(t=a(t.split("/"),!e).join("/"))||e||(t="."),t&&r&&(t+="/"),(e?"/":"")+t},c.isAbsolute=function(t){return"/"===t.charAt(0)},c.join=function(){for(var t="",e=0;e=0&&""===t[r];r--);return e>r?[]:t.slice(e,r+1)}t=c.resolve(t).substr(1),e=c.resolve(e).substr(1);for(var n=r(t.split("/")),o=r(e.split("/")),i=Math.min(n.length,o.length),a=i,s=0;s= 0x80 (not a basic code point)","invalid-input":"Invalid input"},f=Math.floor,h=String.fromCharCode;function d(t){throw new RangeError(p[t])}function g(t,e){for(var r=t.length,n=[];r--;)n[r]=e(t[r]);return n}function y(t,e){var r=t.split("@"),n="";return r.length>1&&(n=r[0]+"@",t=r[1]),n+g((t=t.replace(u,".")).split("."),e).join(".")}function m(t){for(var e,r,n=[],o=0,i=t.length;o=55296&&e<=56319&&o65535&&(e+=h((t-=65536)>>>10&1023|55296),t=56320|1023&t),e+h(t)}).join("")}function v(t){return t-48<10?t-22:t-65<26?t-65:t-97<26?t-97:s}function w(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function A(t,e,r){var n=0;for(t=r?f(t/700):t>>1,t+=f(t/e);t>455;n+=s)t=f(t/35);return f(n+36*t/(t+38))}function x(t){var e,r,n,o,i,c,l,u,p,h,g=[],y=t.length,m=0,w=128,x=72;for((r=t.lastIndexOf("-"))<0&&(r=0),n=0;n=128&&d("not-basic"),g.push(t.charCodeAt(n));for(o=r>0?r+1:0;o=y&&d("invalid-input"),((u=v(t.charCodeAt(o++)))>=s||u>f((a-m)/c))&&d("overflow"),m+=u*c,!(u<(p=l<=x?1:l>=x+26?26:l-x));l+=s)c>f(a/(h=s-p))&&d("overflow"),c*=h;x=A(m-i,e=g.length+1,0==i),f(m/e)>a-w&&d("overflow"),w+=f(m/e),m%=e,g.splice(m++,0,w)}return b(g)}function _(t){var e,r,n,o,i,c,l,u,p,g,y,b,v,x,_,E=[];for(b=(t=m(t)).length,e=128,r=0,i=72,c=0;c=e&&yf((a-r)/(v=n+1))&&d("overflow"),r+=(l-e)*v,e=l,c=0;ca&&d("overflow"),y==e){for(u=r,p=s;!(u<(g=p<=i?1:p>=i+26?26:p-i));p+=s)_=u-g,x=s-g,E.push(h(w(g+_%x,0))),u=f(_/x);E.push(h(w(u,0))),i=A(r,v,n==o),r=0,++n}++r,++e}return E.join("")}i={version:"1.4.1",ucs2:{decode:m,encode:b},decode:x,encode:_,toASCII:function(t){return y(t,function(t){return l.test(t)?"xn--"+_(t):t})},toUnicode:function(t){return y(t,function(t){return c.test(t)?x(t.slice(4).toLowerCase()):t})}},void 0===(n=function(){return i}.call(e,r,e,t))||(t.exports=n)}()},74765(t){"use strict";var e=String.prototype.replace,r=/%20/g,n="RFC3986";t.exports={default:n,formatters:{RFC1738:function(t){return e.call(t,r,"+")},RFC3986:function(t){return String(t)}},RFC1738:"RFC1738",RFC3986:n}},55373(t,e,r){"use strict";var n=r(98636),o=r(62642),i=r(74765);t.exports={formats:i,parse:o,stringify:n}},62642(t,e,r){"use strict";var n=r(37720),o=Object.prototype.hasOwnProperty,i=Array.isArray,a={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:n.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},s=function(t){return t.replace(/&#(\d+);/g,function(t,e){return String.fromCharCode(parseInt(e,10))})},c=function(t,e,r){if(t&&"string"==typeof t&&e.comma&&t.indexOf(",")>-1)return t.split(",");if(e.throwOnLimitExceeded&&r>=e.arrayLimit)throw new RangeError("Array limit exceeded. Only "+e.arrayLimit+" element"+(1===e.arrayLimit?"":"s")+" allowed in an array.");return t},l=function(t,e,r,i){if(t){var a=function(t,e){var r=e.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t;if(e.depth<=0){if(!e.plainObjects&&o.call(Object.prototype,r)&&!e.allowPrototypes)return;return[r]}var n=/(\[[^[\]]*])/g,i=/(\[[^[\]]*])/.exec(r),a=i?r.slice(0,i.index):r,s=[];if(a){if(!e.plainObjects&&o.call(Object.prototype,a)&&!e.allowPrototypes)return;s[s.length]=a}for(var c=0;null!==(i=n.exec(r))&&c0&&"[]"===t[t.length-1]){var a=t.slice(0,-1).join("");i=Array.isArray(e)&&e[a]?e[a].length:0}for(var s=o?e:c(e,r,i),l=t.length-1;l>=0;--l){var u,p=t[l];if("[]"===p&&r.parseArrays)u=n.isOverflow(s)?s:r.allowEmptyArrays&&(""===s||r.strictNullHandling&&null===s)?[]:n.combine([],s,r.arrayLimit,r.plainObjects);else{u=r.plainObjects?{__proto__:null}:{};var f="["===p.charAt(0)&&"]"===p.charAt(p.length-1)?p.slice(1,-1):p,h=r.decodeDotInKeys?f.replace(/%2E/g,"."):f,d=parseInt(h,10),g=!isNaN(d)&&p!==h&&String(d)===h&&d>=0&&r.parseArrays;if(r.parseArrays||""!==h)if(g&&du)throw new RangeError("Parameter limit exceeded. Only "+u+" parameter"+(1===u?"":"s")+" allowed.");var f,h=-1,d=e.charset;if(e.charsetSentinel)for(f=0;f-1&&(y=i(y)?[y]:y),e.comma&&i(y)&&y.length>e.arrayLimit){if(e.throwOnLimitExceeded)throw new RangeError("Array limit exceeded. Only "+e.arrayLimit+" element"+(1===e.arrayLimit?"":"s")+" allowed in an array.");y=n.combine([],y,e.arrayLimit,e.plainObjects)}if(null!==g){var w=o.call(r,g);w&&"combine"===e.duplicates?r[g]=n.combine(r[g],y,e.arrayLimit,e.plainObjects):w&&"last"!==e.duplicates||(r[g]=y)}}return r}(t,r):t,p=r.plainObjects?{__proto__:null}:{},f=Object.keys(u),h=0;h0?O.join(",")||null:void 0}];else if(c(y))N=y;else{var I=Object.keys(O);N=m?I.sort(m):I}var k=f?String(r).replace(/\./g,"%2E"):String(r),M=a&&c(O)&&1===O.length?k+"[]":k;if(s&&c(O)&&0===O.length)return M+"[]";for(var L=0;L0?A+w:""}},37720(t,e,r){"use strict";var n=r(74765),o=r(920),i=Object.prototype.hasOwnProperty,a=Array.isArray,s=o(),c=function(t,e){return s.set(t,e),t},l=function(t){return s.has(t)},u=function(t){return s.get(t)},p=function(t,e){s.set(t,e)},f=function(){for(var t=[],e=0;e<256;++e)t[t.length]="%"+((e<16?"0":"")+e.toString(16)).toUpperCase();return t}(),h=function(t,e){for(var r=e&&e.plainObjects?{__proto__:null}:{},n=0;nr?c(h(i,{plainObjects:n}),i.length-1):i},compact:function(t){for(var e=[{obj:{o:t},prop:"o"}],r=[],n=0;n1;){var e=t.pop(),r=e.obj[e.prop];if(a(r)){for(var n=[],o=0;o=d?a.slice(c,c+d):a,u=[],p=0;p=48&&h<=57||h>=65&&h<=90||h>=97&&h<=122||i===n.RFC1738&&(40===h||41===h)?u[u.length]=l.charAt(p):h<128?u[u.length]=f[h]:h<2048?u[u.length]=f[192|h>>6]+f[128|63&h]:h<55296||h>=57344?u[u.length]=f[224|h>>12]+f[128|h>>6&63]+f[128|63&h]:(p+=1,h=65536+((1023&h)<<10|1023&l.charCodeAt(p)),u[u.length]=f[240|h>>18]+f[128|h>>12&63]+f[128|h>>6&63]+f[128|63&h])}s+=u.join("")}return s},isBuffer:function(t){return!(!t||"object"!=typeof t||!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t)))},isOverflow:l,isRegExp:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},markOverflow:c,maybeMap:function(t,e){if(a(t)){for(var r=[],n=0;nn.arrayLimit)return c(h(e.concat(r),n),o);e[o]=r}else{if(!e||"object"!=typeof e)return[e,r];if(l(e)){var s=u(e)+1;e[s]=r,p(e,s)}else(n&&(n.plainObjects||n.allowPrototypes)||!i.call(Object.prototype,r))&&(e[r]=!0)}return e}if(!e||"object"!=typeof e){if(l(r)){for(var f=Object.keys(r),d=n&&n.plainObjects?{__proto__:null,0:e}:{0:e},g=0;gn.arrayLimit?c(h(y,n),y.length-1):y}var m=e;return a(e)&&!a(r)&&(m=h(e,n)),a(e)&&a(r)?(r.forEach(function(r,o){if(i.call(e,o)){var a=e[o];a&&"object"==typeof a&&r&&"object"==typeof r?e[o]=t(a,r,n):e[e.length]=r}else e[o]=r}),e):Object.keys(r).reduce(function(e,o){var a=r[o];if(i.call(e,o)?e[o]=t(e[o],a,n):e[o]=a,l(r)&&!l(e)&&c(e,u(r)),l(e)){var s=parseInt(o,10);String(s)===o&&s>=0&&s>u(e)&&p(e,s)}return e},m)}}},73992(t,e){"use strict";var r=Object.prototype.hasOwnProperty;function n(t){try{return decodeURIComponent(t.replace(/\+/g," "))}catch(t){return null}}function o(t){try{return encodeURIComponent(t)}catch(t){return null}}e.stringify=function(t,e){e=e||"";var n,i,a=[];for(i in"string"!=typeof e&&(e="?"),t)if(r.call(t,i)){if((n=t[i])||null!=n&&!isNaN(n)||(n=""),i=o(i),n=o(n),null===i||null===n)continue;a.push(i+"="+n)}return a.length?e+a.join("&"):""},e.parse=function(t){for(var e,r=/([^=?#&]+)=?([^&]*)/g,o={};e=r.exec(t);){var i=n(e[1]),a=n(e[2]);null===i||null===a||i in o||(o[i]=a)}return o}},92063(t){"use strict";t.exports=function(t,e){if(e=e.split(":")[0],!(t=+t))return!1;switch(e){case"http":case"ws":return 80!==t;case"https":case"wss":return 443!==t;case"ftp":return 21!==t;case"gopher":return 70!==t;case"file":return!1}return 0!==t}},99721(t,e,r){"use strict";var n=r(36556),o=r(14035),i=n("RegExp.prototype.exec"),a=r(69675);t.exports=function(t){if(!o(t))throw new a("`regex` must be a RegExp");return function(e){return null!==i(t,e)}}},96897(t,e,r){"use strict";var n=r(70453),o=r(30041),i=r(30592)(),a=r(75795),s=r(69675),c=n("%Math.floor%");t.exports=function(t,e){if("function"!=typeof t)throw new s("`fn` is not a function");if("number"!=typeof e||e<0||e>4294967295||c(e)!==e)throw new s("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],n=!0,l=!0;if("length"in t&&a){var u=a(t,"length");u&&!u.configurable&&(n=!1),u&&!u.writable&&(l=!1)}return(n||l||!r)&&(i?o(t,"length",e,!0,!0):o(t,"length",e)),t}},14803(t,e,r){"use strict";var n=r(58859),o=r(69675),i=function(t,e,r){for(var n,o=t;null!=(n=o.next);o=n)if(n.key===e)return o.next=n.next,r||(n.next=t.next,t.next=n),n};t.exports=function(){var t,e={assert:function(t){if(!e.has(t))throw new o("Side channel does not contain "+n(t))},delete:function(e){var r=t&&t.next,n=function(t,e){if(t)return i(t,e,!0)}(t,e);return n&&r&&r===n&&(t=void 0),!!n},get:function(e){return function(t,e){if(t){var r=i(t,e);return r&&r.value}}(t,e)},has:function(e){return function(t,e){return!!t&&!!i(t,e)}(t,e)},set:function(e,r){t||(t={next:void 0}),function(t,e,r){var n=i(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}}(t,e,r)}};return e}},80507(t,e,r){"use strict";var n=r(70453),o=r(36556),i=r(58859),a=r(69675),s=n("%Map%",!0),c=o("Map.prototype.get",!0),l=o("Map.prototype.set",!0),u=o("Map.prototype.has",!0),p=o("Map.prototype.delete",!0),f=o("Map.prototype.size",!0);t.exports=!!s&&function(){var t,e={assert:function(t){if(!e.has(t))throw new a("Side channel does not contain "+i(t))},delete:function(e){if(t){var r=p(t,e);return 0===f(t)&&(t=void 0),r}return!1},get:function(e){if(t)return c(t,e)},has:function(e){return!!t&&u(t,e)},set:function(e,r){t||(t=new s),l(t,e,r)}};return e}},72271(t,e,r){"use strict";var n=r(70453),o=r(36556),i=r(58859),a=r(80507),s=r(69675),c=n("%WeakMap%",!0),l=o("WeakMap.prototype.get",!0),u=o("WeakMap.prototype.set",!0),p=o("WeakMap.prototype.has",!0),f=o("WeakMap.prototype.delete",!0);t.exports=c?function(){var t,e,r={assert:function(t){if(!r.has(t))throw new s("Side channel does not contain "+i(t))},delete:function(r){if(c&&r&&("object"==typeof r||"function"==typeof r)){if(t)return f(t,r)}else if(a&&e)return e.delete(r);return!1},get:function(r){return c&&r&&("object"==typeof r||"function"==typeof r)&&t?l(t,r):e&&e.get(r)},has:function(r){return c&&r&&("object"==typeof r||"function"==typeof r)&&t?p(t,r):!!e&&e.has(r)},set:function(r,n){c&&r&&("object"==typeof r||"function"==typeof r)?(t||(t=new c),u(t,r,n)):a&&(e||(e=a()),e.set(r,n))}};return r}:a},920(t,e,r){"use strict";var n=r(69675),o=r(58859),i=r(14803),a=r(80507),s=r(72271)||a||i;t.exports=function(){var t,e={assert:function(t){if(!e.has(t))throw new n("Side channel does not contain "+o(t))},delete:function(e){return!!t&&t.delete(e)},get:function(e){return t&&t.get(e)},has:function(e){return!!t&&t.has(e)},set:function(e,r){t||(t=s()),t.set(e,r)}};return e}},11568(t,e,r){var n=r(55537),o=r(6917),i=r(57510),a=r(86866),s=r(88835),c=e;c.request=function(t,e){t="string"==typeof t?s.parse(t):i(t);var r=-1===globalThis.location.protocol.search(/^https?:$/)?"http:":"",o=t.protocol||r,a=t.hostname||t.host,c=t.port,l=t.path||"/";a&&-1!==a.indexOf(":")&&(a="["+a+"]"),t.url=(a?o+"//"+a:"")+(c?":"+c:"")+l,t.method=(t.method||"GET").toUpperCase(),t.headers=t.headers||{};var u=new n(t);return e&&u.on("response",e),u},c.get=function(t,e){var r=c.request(t,e);return r.end(),r},c.ClientRequest=n,c.IncomingMessage=o.IncomingMessage,c.Agent=function(){},c.Agent.defaultMaxSockets=4,c.globalAgent=new c.Agent,c.STATUS_CODES=a,c.METHODS=["CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REPORT","SEARCH","SUBSCRIBE","TRACE","UNLOCK","UNSUBSCRIBE"]},6688(t,e){var r;function n(){if(void 0!==r)return r;if(globalThis.XMLHttpRequest){r=new globalThis.XMLHttpRequest;try{r.open("GET",globalThis.XDomainRequest?"/":"https://example.com")}catch(t){r=null}}else r=null;return r}function o(t){var e=n();if(!e)return!1;try{return e.responseType=t,e.responseType===t}catch(t){}return!1}function i(t){return"function"==typeof t}e.fetch=i(globalThis.fetch)&&i(globalThis.ReadableStream),e.writableStream=i(globalThis.WritableStream),e.abortController=i(globalThis.AbortController),e.arraybuffer=e.fetch||o("arraybuffer"),e.msstream=!e.fetch&&o("ms-stream"),e.mozchunkedarraybuffer=!e.fetch&&o("moz-chunked-arraybuffer"),e.overrideMimeType=e.fetch||!!n()&&i(n().overrideMimeType),r=null},55537(t,e,r){var n=r(62045).hp,o=r(65606),i=r(6688),a=r(56698),s=r(6917),c=r(63242),l=s.IncomingMessage,u=s.readyStates,p=t.exports=function(t){var e,r=this;c.Writable.call(r),r._opts=t,r._body=[],r._headers={},t.auth&&r.setHeader("Authorization","Basic "+n.from(t.auth).toString("base64")),Object.keys(t.headers).forEach(function(e){r.setHeader(e,t.headers[e])});var o=!0;if("disable-fetch"===t.mode||"requestTimeout"in t&&!i.abortController)o=!1,e=!0;else if("prefer-streaming"===t.mode)e=!1;else if("allow-wrong-content-type"===t.mode)e=!i.overrideMimeType;else{if(t.mode&&"default"!==t.mode&&"prefer-fast"!==t.mode)throw new Error("Invalid value for opts.mode");e=!0}r._mode=function(t,e){return i.fetch&&e?"fetch":i.mozchunkedarraybuffer?"moz-chunked-arraybuffer":i.msstream?"ms-stream":i.arraybuffer&&t?"arraybuffer":"text"}(e,o),r._fetchTimer=null,r._socketTimeout=null,r._socketTimer=null,r.on("finish",function(){r._onFinish()})};a(p,c.Writable),p.prototype.setHeader=function(t,e){var r=t.toLowerCase();-1===f.indexOf(r)&&(this._headers[r]={name:t,value:e})},p.prototype.getHeader=function(t){var e=this._headers[t.toLowerCase()];return e?e.value:null},p.prototype.removeHeader=function(t){delete this._headers[t.toLowerCase()]},p.prototype._onFinish=function(){var t=this;if(!t._destroyed){var e=t._opts;"timeout"in e&&0!==e.timeout&&t.setTimeout(e.timeout);var r=t._headers,n=null;"GET"!==e.method&&"HEAD"!==e.method&&(n=new Blob(t._body,{type:(r["content-type"]||{}).value||""}));var a=[];if(Object.keys(r).forEach(function(t){var e=r[t].name,n=r[t].value;Array.isArray(n)?n.forEach(function(t){a.push([e,t])}):a.push([e,n])}),"fetch"===t._mode){var s=null;if(i.abortController){var c=new AbortController;s=c.signal,t._fetchAbortController=c,"requestTimeout"in e&&0!==e.requestTimeout&&(t._fetchTimer=globalThis.setTimeout(function(){t.emit("requestTimeout"),t._fetchAbortController&&t._fetchAbortController.abort()},e.requestTimeout))}globalThis.fetch(t._opts.url,{method:t._opts.method,headers:a,body:n||void 0,mode:"cors",credentials:e.withCredentials?"include":"same-origin",signal:s}).then(function(e){t._fetchResponse=e,t._resetTimers(!1),t._connect()},function(e){t._resetTimers(!0),t._destroyed||t.emit("error",e)})}else{var l=t._xhr=new globalThis.XMLHttpRequest;try{l.open(t._opts.method,t._opts.url,!0)}catch(e){return void o.nextTick(function(){t.emit("error",e)})}"responseType"in l&&(l.responseType=t._mode),"withCredentials"in l&&(l.withCredentials=!!e.withCredentials),"text"===t._mode&&"overrideMimeType"in l&&l.overrideMimeType("text/plain; charset=x-user-defined"),"requestTimeout"in e&&(l.timeout=e.requestTimeout,l.ontimeout=function(){t.emit("requestTimeout")}),a.forEach(function(t){l.setRequestHeader(t[0],t[1])}),t._response=null,l.onreadystatechange=function(){switch(l.readyState){case u.LOADING:case u.DONE:t._onXHRProgress()}},"moz-chunked-arraybuffer"===t._mode&&(l.onprogress=function(){t._onXHRProgress()}),l.onerror=function(){t._destroyed||(t._resetTimers(!0),t.emit("error",new Error("XHR error")))};try{l.send(n)}catch(e){return void o.nextTick(function(){t.emit("error",e)})}}}},p.prototype._onXHRProgress=function(){var t=this;t._resetTimers(!1),function(t){try{var e=t.status;return null!==e&&0!==e}catch(t){return!1}}(t._xhr)&&!t._destroyed&&(t._response||t._connect(),t._response._onXHRProgress(t._resetTimers.bind(t)))},p.prototype._connect=function(){var t=this;t._destroyed||(t._response=new l(t._xhr,t._fetchResponse,t._mode,t._resetTimers.bind(t)),t._response.on("error",function(e){t.emit("error",e)}),t.emit("response",t._response))},p.prototype._write=function(t,e,r){this._body.push(t),r()},p.prototype._resetTimers=function(t){var e=this;globalThis.clearTimeout(e._socketTimer),e._socketTimer=null,t?(globalThis.clearTimeout(e._fetchTimer),e._fetchTimer=null):e._socketTimeout&&(e._socketTimer=globalThis.setTimeout(function(){e.emit("timeout")},e._socketTimeout))},p.prototype.abort=p.prototype.destroy=function(t){var e=this;e._destroyed=!0,e._resetTimers(!0),e._response&&(e._response._destroyed=!0),e._xhr?e._xhr.abort():e._fetchAbortController&&e._fetchAbortController.abort(),t&&e.emit("error",t)},p.prototype.end=function(t,e,r){"function"==typeof t&&(r=t,t=void 0),c.Writable.prototype.end.call(this,t,e,r)},p.prototype.setTimeout=function(t,e){var r=this;e&&r.once("timeout",e),r._socketTimeout=t,r._resetTimers(!1)},p.prototype.flushHeaders=function(){},p.prototype.setNoDelay=function(){},p.prototype.setSocketKeepAlive=function(){};var f=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]},6917(t,e,r){var n=r(65606),o=r(62045).hp,i=r(6688),a=r(56698),s=r(63242),c=e.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},l=e.IncomingMessage=function(t,e,r,a){var c=this;if(s.Readable.call(c),c._mode=r,c.headers={},c.rawHeaders=[],c.trailers={},c.rawTrailers=[],c.on("end",function(){n.nextTick(function(){c.emit("close")})}),"fetch"===r){if(c._fetchResponse=e,c.url=e.url,c.statusCode=e.status,c.statusMessage=e.statusText,e.headers.forEach(function(t,e){c.headers[e.toLowerCase()]=t,c.rawHeaders.push(e,t)}),i.writableStream){var l=new WritableStream({write:function(t){return a(!1),new Promise(function(e,r){c._destroyed?r():c.push(o.from(t))?e():c._resumeFetch=e})},close:function(){a(!0),c._destroyed||c.push(null)},abort:function(t){a(!0),c._destroyed||c.emit("error",t)}});try{return void e.body.pipeTo(l).catch(function(t){a(!0),c._destroyed||c.emit("error",t)})}catch(t){}}var u=e.body.getReader();!function t(){u.read().then(function(e){c._destroyed||(a(e.done),e.done?c.push(null):(c.push(o.from(e.value)),t()))}).catch(function(t){a(!0),c._destroyed||c.emit("error",t)})}()}else if(c._xhr=t,c._pos=0,c.url=t.responseURL,c.statusCode=t.status,c.statusMessage=t.statusText,t.getAllResponseHeaders().split(/\r?\n/).forEach(function(t){var e=t.match(/^([^:]+):\s*(.*)/);if(e){var r=e[1].toLowerCase();"set-cookie"===r?(void 0===c.headers[r]&&(c.headers[r]=[]),c.headers[r].push(e[2])):void 0!==c.headers[r]?c.headers[r]+=", "+e[2]:c.headers[r]=e[2],c.rawHeaders.push(e[1],e[2])}}),c._charset="x-user-defined",!i.overrideMimeType){var p=c.rawHeaders["mime-type"];if(p){var f=p.match(/;\s*charset=([^;])(;|$)/);f&&(c._charset=f[1].toLowerCase())}c._charset||(c._charset="utf-8")}};a(l,s.Readable),l.prototype._read=function(){var t=this._resumeFetch;t&&(this._resumeFetch=null,t())},l.prototype._onXHRProgress=function(t){var e=this,r=e._xhr,n=null;switch(e._mode){case"text":if((n=r.responseText).length>e._pos){var i=n.substr(e._pos);if("x-user-defined"===e._charset){for(var a=o.alloc(i.length),s=0;se._pos&&(e.push(o.from(new Uint8Array(l.result.slice(e._pos)))),e._pos=l.result.byteLength)},l.onload=function(){t(!0),e.push(null)},l.readAsArrayBuffer(n)}e._xhr.readyState===c.DONE&&"ms-stream"!==e._mode&&(t(!0),e.push(null))}},73157(t){"use strict";var e={};function r(t,r,n){n||(n=Error);var o=function(t){var e,n;function o(e,n,o){return t.call(this,function(t,e,n){return"string"==typeof r?r:r(t,e,n)}(e,n,o))||this}return n=t,(e=o).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n,o}(n);o.prototype.name=n.name,o.prototype.code=t,e[t]=o}function n(t,e){if(Array.isArray(t)){var r=t.length;return t=t.map(function(t){return String(t)}),r>2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:2===r?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}r("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError),r("ERR_INVALID_ARG_TYPE",function(t,e,r){var o,i,a,s,c;if("string"==typeof e&&(i="not ",e.substr(0,4)===i)?(o="must not be",e=e.replace(/^not /,"")):o="must be",function(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-9,r)===e}(t," argument"))a="The ".concat(t," ").concat(o," ").concat(n(e,"type"));else{var l=("number"!=typeof c&&(c=0),c+1>(s=t).length||-1===s.indexOf(".",c)?"argument":"property");a='The "'.concat(t,'" ').concat(l," ").concat(o," ").concat(n(e,"type"))}return a+". Received type ".concat(typeof r)},TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"}),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"}),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.F=e},63527(t,e,r){"use strict";var n=r(65606),o=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=u;var i=r(52341),a=r(9573);r(56698)(u,i);for(var s=o(a.prototype),c=0;c0)if("string"==typeof e||s.objectMode||Object.getPrototypeOf(e)===c.prototype||(e=function(t){return c.from(t)}(e)),n)s.endEmitted?x(t,new A):T(t,s,e,!0);else if(s.ended)x(t,new v);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!r?(e=s.decoder.write(e),s.objectMode||0!==e.length?T(t,s,e,!1):P(t,s)):T(t,s,e,!1)}else n||(s.reading=!1,P(t,s));return!s.ended&&(s.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=C?t=C:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function R(t){var e=t._readableState;i("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(i("emitReadable",e.flowing),e.emittedReadable=!0,o.nextTick(N,t))}function N(t){var e=t._readableState;i("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,D(t)}function P(t,e){e.readingMore||(e.readingMore=!0,o.nextTick(I,t,e))}function I(t,e){for(;!e.reading&&!e.ended&&(e.length0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function M(t){i("readable nexttick read 0"),t.read(0)}function L(t,e){i("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),D(t),e.flowing&&!e.reading&&t.read(0)}function D(t){var e=t._readableState;for(i("flow",e.flowing);e.flowing&&null!==t.read(););}function $(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r);var r}function U(t){var e=t._readableState;i("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,o.nextTick(F,e,t))}function F(t,e){if(i("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}function B(t,e){for(var r=0,n=t.length;r=e.highWaterMark:e.length>0)||e.ended))return i("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?U(this):R(this),null;if(0===(t=j(t,e))&&e.ended)return 0===e.length&&U(this),null;var n,o=e.needReadable;return i("need readable",o),(0===e.length||e.length-t0?$(t,e):null)?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&U(this)),null!==n&&this.emit("data",n),n},S.prototype._read=function(t){x(this,new w("_read()"))},S.prototype.pipe=function(t,e){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=t;break;case 1:n.pipes=[n.pipes,t];break;default:n.pipes.push(t)}n.pipesCount+=1,i("pipe count=%d opts=%j",n.pipesCount,e);var s=e&&!1===e.end||t===o.stdout||t===o.stderr?g:c;function c(){i("onend"),t.end()}n.endEmitted?o.nextTick(s):r.once("end",s),t.on("unpipe",function e(o,a){i("onunpipe"),o===r&&a&&!1===a.hasUnpiped&&(a.hasUnpiped=!0,i("cleanup"),t.removeListener("close",h),t.removeListener("finish",d),t.removeListener("drain",l),t.removeListener("error",f),t.removeListener("unpipe",e),r.removeListener("end",c),r.removeListener("end",g),r.removeListener("data",p),u=!0,!n.awaitDrain||t._writableState&&!t._writableState.needDrain||l())});var l=function(t){return function(){var e=t._readableState;i("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&a(t,"data")&&(e.flowing=!0,D(t))}}(r);t.on("drain",l);var u=!1;function p(e){i("ondata");var o=t.write(e);i("dest.write",o),!1===o&&((1===n.pipesCount&&n.pipes===t||n.pipesCount>1&&-1!==B(n.pipes,t))&&!u&&(i("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function f(e){i("onerror",e),g(),t.removeListener("error",f),0===a(t,"error")&&x(t,e)}function h(){t.removeListener("finish",d),g()}function d(){i("onfinish"),t.removeListener("close",h),g()}function g(){i("unpipe"),r.unpipe(t)}return r.on("data",p),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",f),t.once("close",h),t.once("finish",d),t.emit("pipe",r),n.flowing||(i("pipe resume"),r.resume()),t},S.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,o=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var i=0;i0,!1!==n.flowing&&this.resume()):"readable"===t&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,i("on readable",n.length,n.reading),n.length?R(this):n.reading||o.nextTick(M,this))),r},S.prototype.addListener=S.prototype.on,S.prototype.removeListener=function(t,e){var r=s.prototype.removeListener.call(this,t,e);return"readable"===t&&o.nextTick(k,this),r},S.prototype.removeAllListeners=function(t){var e=s.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||o.nextTick(k,this),e},S.prototype.resume=function(){var t=this._readableState;return t.flowing||(i("resume"),t.flowing=!t.readableListening,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,o.nextTick(L,t,e))}(this,t)),t.paused=!1,this},S.prototype.pause=function(){return i("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(i("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},S.prototype.wrap=function(t){var e=this,r=this._readableState,n=!1;for(var o in t.on("end",function(){if(i("wrapped end"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)}),t.on("data",function(o){i("wrapped data"),r.decoder&&(o=r.decoder.write(o)),r.objectMode&&null==o||(r.objectMode||o&&o.length)&&(e.push(o)||(n=!0,t.pause()))}),t)void 0===this[o]&&"function"==typeof t[o]&&(this[o]=function(e){return function(){return t[e].apply(t,arguments)}}(o));for(var a=0;a<_.length;a++)t.on(_[a],this.emit.bind(this,_[a]));return this._read=function(e){i("wrapped _read",e),n&&(n=!1,t.resume())},this},"function"==typeof Symbol&&(S.prototype[Symbol.asyncIterator]=function(){return void 0===f&&(f=r(17356)),f(this)}),Object.defineProperty(S.prototype,"readableHighWaterMark",{enumerable:!1,get:function(){return this._readableState.highWaterMark}}),Object.defineProperty(S.prototype,"readableBuffer",{enumerable:!1,get:function(){return this._readableState&&this._readableState.buffer}}),Object.defineProperty(S.prototype,"readableFlowing",{enumerable:!1,get:function(){return this._readableState.flowing},set:function(t){this._readableState&&(this._readableState.flowing=t)}}),S._fromList=$,Object.defineProperty(S.prototype,"readableLength",{enumerable:!1,get:function(){return this._readableState.length}}),"function"==typeof Symbol&&(S.from=function(t,e){return void 0===h&&(h=r(6314)),h(S,t,e)})},95689(t,e,r){"use strict";t.exports=u;var n=r(73157).F,o=n.ERR_METHOD_NOT_IMPLEMENTED,i=n.ERR_MULTIPLE_CALLBACK,a=n.ERR_TRANSFORM_ALREADY_TRANSFORMING,s=n.ERR_TRANSFORM_WITH_LENGTH_0,c=r(63527);function l(t,e){var r=this._transformState;r.transforming=!1;var n=r.writecb;if(null===n)return this.emit("error",new i);r.writechunk=null,r.writecb=null,null!=e&&this.push(e),n(t);var o=this._readableState;o.reading=!1,(o.needReadable||o.length-1))throw new A(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(S.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(S.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),S.prototype._write=function(t,e,r){r(new g("_write()"))},S.prototype._writev=null,S.prototype.end=function(t,e,r){var n=this._writableState;return"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||function(t,e,r){e.ending=!0,N(t,e),r&&(e.finished?o.nextTick(r):t.once("finish",r)),e.ended=!0,t.writable=!1}(this,n,r),this},Object.defineProperty(S.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(S.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),S.prototype.destroy=p.destroy,S.prototype._undestroy=p.undestroy,S.prototype._destroy=function(t,e){e(t)}},17356(t,e,r){"use strict";var n,o=r(65606);function i(t,e,r){return(e=function(t){var e=function(t){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var a=r(19959),s=Symbol("lastResolve"),c=Symbol("lastReject"),l=Symbol("error"),u=Symbol("ended"),p=Symbol("lastPromise"),f=Symbol("handlePromise"),h=Symbol("stream");function d(t,e){return{value:t,done:e}}function g(t){var e=t[s];if(null!==e){var r=t[h].read();null!==r&&(t[p]=null,t[s]=null,t[c]=null,e(d(r,!1)))}}function y(t){o.nextTick(g,t)}var m=Object.getPrototypeOf(function(){}),b=Object.setPrototypeOf((i(n={get stream(){return this[h]},next:function(){var t=this,e=this[l];if(null!==e)return Promise.reject(e);if(this[u])return Promise.resolve(d(void 0,!0));if(this[h].destroyed)return new Promise(function(e,r){o.nextTick(function(){t[l]?r(t[l]):e(d(void 0,!0))})});var r,n=this[p];if(n)r=new Promise(function(t,e){return function(r,n){t.then(function(){e[u]?r(d(void 0,!0)):e[f](r,n)},n)}}(n,this));else{var i=this[h].read();if(null!==i)return Promise.resolve(d(i,!1));r=new Promise(this[f])}return this[p]=r,r}},Symbol.asyncIterator,function(){return this}),i(n,"return",function(){var t=this;return new Promise(function(e,r){t[h].destroy(null,function(t){t?r(t):e(d(void 0,!0))})})}),n),m);t.exports=function(t){var e,r=Object.create(b,(i(e={},h,{value:t,writable:!0}),i(e,s,{value:null,writable:!0}),i(e,c,{value:null,writable:!0}),i(e,l,{value:null,writable:!0}),i(e,u,{value:t._readableState.endEmitted,writable:!0}),i(e,f,{value:function(t,e){var n=r[h].read();n?(r[p]=null,r[s]=null,r[c]=null,t(d(n,!1))):(r[s]=t,r[c]=e)},writable:!0}),e));return r[p]=null,a(t,function(t){if(t&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code){var e=r[c];return null!==e&&(r[p]=null,r[s]=null,r[c]=null,e(t)),void(r[l]=t)}var n=r[s];null!==n&&(r[p]=null,r[s]=null,r[c]=null,n(d(void 0,!0))),r[u]=!0}),t.on("readable",y.bind(null,r)),r}},10272(t,e,r){"use strict";function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function o(t){for(var e=1;e0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r}},{key:"concat",value:function(t){if(0===this.length)return c.alloc(0);for(var e=c.allocUnsafe(t>>>0),r=this.head,n=0;r;)p(r.data,e,n),n+=r.data.length,r=r.next;return e}},{key:"consume",value:function(t,e){var r;return to.length?o.length:t;if(i===o.length?n+=o:n+=o.slice(0,t),0===(t-=i)){i===o.length?(++r,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=o.slice(i));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(t){var e=c.allocUnsafe(t),r=this.head,n=1;for(r.data.copy(e),t-=r.data.length;r=r.next;){var o=r.data,i=t>o.length?o.length:t;if(o.copy(e,e.length-t,0,i),0===(t-=i)){i===o.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=o.slice(i));break}++n}return this.length-=n,e}},{key:u,value:function(t,e){return l(this,o(o({},e),{},{depth:0,customInspect:!1}))}}])&&a(e.prototype,r),Object.defineProperty(e,"prototype",{writable:!1}),t}()},16057(t,e,r){"use strict";var n=r(65606);function o(t,e){a(t,e),i(t)}function i(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function a(t,e){t.emit("error",e)}t.exports={destroy:function(t,e){var r=this,s=this._readableState&&this._readableState.destroyed,c=this._writableState&&this._writableState.destroyed;return s||c?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,n.nextTick(a,this,t)):n.nextTick(a,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(t){!e&&t?r._writableState?r._writableState.errorEmitted?n.nextTick(i,r):(r._writableState.errorEmitted=!0,n.nextTick(o,r,t)):n.nextTick(o,r,t):e?(n.nextTick(i,r),e(t)):n.nextTick(i,r)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(t,e){var r=t._readableState,n=t._writableState;r&&r.autoDestroy||n&&n.autoDestroy?t.destroy(e):t.emit("error",e)}}},19959(t,e,r){"use strict";var n=r(73157).F.ERR_STREAM_PREMATURE_CLOSE;function o(){}t.exports=function t(e,r,i){if("function"==typeof r)return t(e,null,r);r||(r={}),i=function(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,n=new Array(r),o=0;o0,function(t){u||(u=t),t&&f.forEach(c),i||(f.forEach(c),p(u))})});return e.reduce(l)}},11922(t,e,r){"use strict";var n=r(73157).F.ERR_INVALID_OPT_VALUE;t.exports={getHighWaterMark:function(t,e,r,o){var i=function(t,e,r){return null!=t.highWaterMark?t.highWaterMark:e?t[r]:null}(e,o,r);if(null!=i){if(!isFinite(i)||Math.floor(i)!==i||i<0)throw new n(o?r:"highWaterMark",i);return Math.floor(i)}return t.objectMode?16:16384}}},81914(t,e,r){t.exports=r(37007).EventEmitter},63242(t,e,r){(e=t.exports=r(52341)).Stream=e,e.Readable=e,e.Writable=r(9573),e.Duplex=r(63527),e.Transform=r(95689),e.PassThrough=r(82571),e.finished=r(19959),e.pipeline=r(37413)},61160(t,e,r){"use strict";var n=r(92063),o=r(73992),i=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,a=/[\n\r\t]/g,s=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,c=/:\d+$/,l=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,u=/^[a-zA-Z]:/;function p(t){return(t||"").toString().replace(i,"")}var f=[["#","hash"],["?","query"],function(t,e){return g(e.protocol)?t.replace(/\\/g,"/"):t},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d*)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],h={hash:1,query:1};function d(t){var e,r=("undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{}).location||{},n={},o=typeof(t=t||r);if("blob:"===t.protocol)n=new m(unescape(t.pathname),{});else if("string"===o)for(e in n=new m(t,{}),h)delete n[e];else if("object"===o){for(e in t)e in h||(n[e]=t[e]);void 0===n.slashes&&(n.slashes=s.test(t.href))}return n}function g(t){return"file:"===t||"ftp:"===t||"http:"===t||"https:"===t||"ws:"===t||"wss:"===t}function y(t,e){t=(t=p(t)).replace(a,""),e=e||{};var r,n=l.exec(t),o=n[1]?n[1].toLowerCase():"",i=!!n[2],s=!!n[3],c=0;return i?s?(r=n[2]+n[3]+n[4],c=n[2].length+n[3].length):(r=n[2]+n[4],c=n[2].length):s?(r=n[3]+n[4],c=n[3].length):r=n[4],"file:"===o?c>=2&&(r=r.slice(2)):g(o)?r=n[4]:o?i&&(r=r.slice(2)):c>=2&&g(e.protocol)&&(r=n[4]),{protocol:o,slashes:i||g(o),slashesCount:c,rest:r}}function m(t,e,r){if(t=(t=p(t)).replace(a,""),!(this instanceof m))return new m(t,e,r);var i,s,c,l,h,b,v=f.slice(),w=typeof e,A=this,x=0;for("object"!==w&&"string"!==w&&(r=e,e=null),r&&"function"!=typeof r&&(r=o.parse),i=!(s=y(t||"",e=d(e))).protocol&&!s.slashes,A.slashes=s.slashes||i&&e.slashes,A.protocol=s.protocol||e.protocol||"",t=s.rest,("file:"===s.protocol&&(2!==s.slashesCount||u.test(t))||!s.slashes&&(s.protocol||s.slashesCount<2||!g(A.protocol)))&&(v[3]=[/(.*)/,"pathname"]);x",'"',"`"," ","\r","\n","\t"]),l=["'"].concat(c),u=["%","/","?",";","#"].concat(l),p=["/","?","#"],f=/^[+a-z0-9A-Z_-]{0,63}$/,h=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,d={javascript:!0,"javascript:":!0},g={javascript:!0,"javascript:":!0},y={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},m=r(55373);function b(t,e,r){if(t&&"object"==typeof t&&t instanceof o)return t;var n=new o;return n.parse(t,e,r),n}o.prototype.parse=function(t,e,r){if("string"!=typeof t)throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var o=t.indexOf("?"),a=-1!==o&&o127?P+="x":P+=N[I];if(!P.match(f)){var M=j.slice(0,O),L=j.slice(O+1),D=N.match(h);D&&(M.push(D[1]),L.unshift(D[2])),L.length&&(b="/"+L.join(".")+b),this.hostname=M.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),C||(this.hostname=n.toASCII(this.hostname));var $=this.port?":"+this.port:"",U=this.hostname||"";this.host=U+$,this.href+=this.host,C&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==b[0]&&(b="/"+b))}if(!d[A])for(O=0,R=l.length;O0)&&r.host.split("@"))&&(r.auth=C.shift(),r.hostname=C.shift(),r.host=r.hostname)),r.search=t.search,r.query=t.query,null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!x.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var E=x.slice(-1)[0],S=(r.host||t.host||x.length>1)&&("."===E||".."===E)||""===E,O=0,T=x.length;T>=0;T--)"."===(E=x[T])?x.splice(T,1):".."===E?(x.splice(T,1),O++):O&&(x.splice(T,1),O--);if(!w&&!A)for(;O--;O)x.unshift("..");!w||""===x[0]||x[0]&&"/"===x[0].charAt(0)||x.unshift(""),S&&"/"!==x.join("/").substr(-1)&&x.push("");var C,j=""===x[0]||x[0]&&"/"===x[0].charAt(0);return _&&(r.hostname=j?"":x.length?x.shift():"",r.host=r.hostname,(C=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=C.shift(),r.hostname=C.shift(),r.host=r.hostname)),(w=w||r.host&&x.length)&&!j&&x.unshift(""),x.length>0?r.pathname=x.join("/"):(r.pathname=null,r.path=null),null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r},o.prototype.parseHost=function(){var t=this.host,e=a.exec(t);e&&(":"!==(e=e[0])&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)},e.parse=b,e.resolve=function(t,e){return b(t,!1,!0).resolve(e)},e.resolveObject=function(t,e){return t?b(t,!1,!0).resolveObject(e):e},e.format=function(t){return"string"==typeof t&&(t=b(t)),t instanceof o?t.format():o.prototype.format.call(t)},e.Url=o},81135(t){t.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},49032(t,e,r){"use strict";var n=r(47244),o=r(48184),i=r(25767),a=r(35680);function s(t){return t.call.bind(t)}var c="undefined"!=typeof BigInt,l="undefined"!=typeof Symbol,u=s(Object.prototype.toString),p=s(Number.prototype.valueOf),f=s(String.prototype.valueOf),h=s(Boolean.prototype.valueOf);if(c)var d=s(BigInt.prototype.valueOf);if(l)var g=s(Symbol.prototype.valueOf);function y(t,e){if("object"!=typeof t)return!1;try{return e(t),!0}catch(t){return!1}}function m(t){return"[object Map]"===u(t)}function b(t){return"[object Set]"===u(t)}function v(t){return"[object WeakMap]"===u(t)}function w(t){return"[object WeakSet]"===u(t)}function A(t){return"[object ArrayBuffer]"===u(t)}function x(t){return"undefined"!=typeof ArrayBuffer&&(A.working?A(t):t instanceof ArrayBuffer)}function _(t){return"[object DataView]"===u(t)}function E(t){return"undefined"!=typeof DataView&&(_.working?_(t):t instanceof DataView)}e.isArgumentsObject=n,e.isGeneratorFunction=o,e.isTypedArray=a,e.isPromise=function(t){return"undefined"!=typeof Promise&&t instanceof Promise||null!==t&&"object"==typeof t&&"function"==typeof t.then&&"function"==typeof t.catch},e.isArrayBufferView=function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):a(t)||E(t)},e.isUint8Array=function(t){return"Uint8Array"===i(t)},e.isUint8ClampedArray=function(t){return"Uint8ClampedArray"===i(t)},e.isUint16Array=function(t){return"Uint16Array"===i(t)},e.isUint32Array=function(t){return"Uint32Array"===i(t)},e.isInt8Array=function(t){return"Int8Array"===i(t)},e.isInt16Array=function(t){return"Int16Array"===i(t)},e.isInt32Array=function(t){return"Int32Array"===i(t)},e.isFloat32Array=function(t){return"Float32Array"===i(t)},e.isFloat64Array=function(t){return"Float64Array"===i(t)},e.isBigInt64Array=function(t){return"BigInt64Array"===i(t)},e.isBigUint64Array=function(t){return"BigUint64Array"===i(t)},m.working="undefined"!=typeof Map&&m(new Map),e.isMap=function(t){return"undefined"!=typeof Map&&(m.working?m(t):t instanceof Map)},b.working="undefined"!=typeof Set&&b(new Set),e.isSet=function(t){return"undefined"!=typeof Set&&(b.working?b(t):t instanceof Set)},v.working="undefined"!=typeof WeakMap&&v(new WeakMap),e.isWeakMap=function(t){return"undefined"!=typeof WeakMap&&(v.working?v(t):t instanceof WeakMap)},w.working="undefined"!=typeof WeakSet&&w(new WeakSet),e.isWeakSet=function(t){return w(t)},A.working="undefined"!=typeof ArrayBuffer&&A(new ArrayBuffer),e.isArrayBuffer=x,_.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&_(new DataView(new ArrayBuffer(1),0,1)),e.isDataView=E;var S="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function O(t){return"[object SharedArrayBuffer]"===u(t)}function T(t){return void 0!==S&&(void 0===O.working&&(O.working=O(new S)),O.working?O(t):t instanceof S)}function C(t){return y(t,p)}function j(t){return y(t,f)}function R(t){return y(t,h)}function N(t){return c&&y(t,d)}function P(t){return l&&y(t,g)}e.isSharedArrayBuffer=T,e.isAsyncFunction=function(t){return"[object AsyncFunction]"===u(t)},e.isMapIterator=function(t){return"[object Map Iterator]"===u(t)},e.isSetIterator=function(t){return"[object Set Iterator]"===u(t)},e.isGeneratorObject=function(t){return"[object Generator]"===u(t)},e.isWebAssemblyCompiledModule=function(t){return"[object WebAssembly.Module]"===u(t)},e.isNumberObject=C,e.isStringObject=j,e.isBooleanObject=R,e.isBigIntObject=N,e.isSymbolObject=P,e.isBoxedPrimitive=function(t){return C(t)||j(t)||R(t)||N(t)||P(t)},e.isAnyArrayBuffer=function(t){return"undefined"!=typeof Uint8Array&&(x(t)||T(t))},["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(t){Object.defineProperty(e,t,{enumerable:!1,value:function(){throw new Error(t+" is not supported in userland")}})})},40537(t,e,r){var n=r(65606),o=Object.getOwnPropertyDescriptors||function(t){for(var e=Object.keys(t),r={},n=0;n=o)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}}),s=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),y(r)?n.showHidden=r:r&&e._extend(n,r),w(n.showHidden)&&(n.showHidden=!1),w(n.depth)&&(n.depth=2),w(n.colors)&&(n.colors=!1),w(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=u),f(n,t,n.depth)}function u(t,e){var r=l.styles[e];return r?"["+l.colors[r][0]+"m"+t+"["+l.colors[r][1]+"m":t}function p(t,e){return t}function f(t,r,n){if(t.customInspect&&r&&S(r.inspect)&&r.inspect!==e.inspect&&(!r.constructor||r.constructor.prototype!==r)){var o=r.inspect(n,t);return v(o)||(o=f(t,o,n)),o}var i=function(t,e){if(w(e))return t.stylize("undefined","undefined");if(v(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}return b(e)?t.stylize(""+e,"number"):y(e)?t.stylize(""+e,"boolean"):m(e)?t.stylize("null","null"):void 0}(t,r);if(i)return i;var a=Object.keys(r),s=function(t){var e={};return t.forEach(function(t,r){e[t]=!0}),e}(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(r)),E(r)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return h(r);if(0===a.length){if(S(r)){var c=r.name?": "+r.name:"";return t.stylize("[Function"+c+"]","special")}if(A(r))return t.stylize(RegExp.prototype.toString.call(r),"regexp");if(_(r))return t.stylize(Date.prototype.toString.call(r),"date");if(E(r))return h(r)}var l,u="",p=!1,x=["{","}"];return g(r)&&(p=!0,x=["[","]"]),S(r)&&(u=" [Function"+(r.name?": "+r.name:"")+"]"),A(r)&&(u=" "+RegExp.prototype.toString.call(r)),_(r)&&(u=" "+Date.prototype.toUTCString.call(r)),E(r)&&(u=" "+h(r)),0!==a.length||p&&0!=r.length?n<0?A(r)?t.stylize(RegExp.prototype.toString.call(r),"regexp"):t.stylize("[Object]","special"):(t.seen.push(r),l=p?function(t,e,r,n,o){for(var i=[],a=0,s=e.length;a60?r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1]:r[0]+e+" "+t.join(", ")+" "+r[1]}(l,u,x)):x[0]+u+x[1]}function h(t){return"["+Error.prototype.toString.call(t)+"]"}function d(t,e,r,n,o,i){var a,s,c;if((c=Object.getOwnPropertyDescriptor(e,o)||{value:e[o]}).get?s=c.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):c.set&&(s=t.stylize("[Setter]","special")),j(n,o)||(a="["+o+"]"),s||(t.seen.indexOf(c.value)<0?(s=m(r)?f(t,c.value,null):f(t,c.value,r-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map(function(t){return" "+t}).join("\n").slice(2):"\n"+s.split("\n").map(function(t){return" "+t}).join("\n")):s=t.stylize("[Circular]","special")),w(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.slice(1,-1),a=t.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=t.stylize(a,"string"))}return a+": "+s}function g(t){return Array.isArray(t)}function y(t){return"boolean"==typeof t}function m(t){return null===t}function b(t){return"number"==typeof t}function v(t){return"string"==typeof t}function w(t){return void 0===t}function A(t){return x(t)&&"[object RegExp]"===O(t)}function x(t){return"object"==typeof t&&null!==t}function _(t){return x(t)&&"[object Date]"===O(t)}function E(t){return x(t)&&("[object Error]"===O(t)||t instanceof Error)}function S(t){return"function"==typeof t}function O(t){return Object.prototype.toString.call(t)}function T(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(t){if(t=t.toUpperCase(),!a[t])if(s.test(t)){var r=n.pid;a[t]=function(){var n=e.format.apply(e,arguments);console.error("%s %d: %s",t,r,n)}}else a[t]=function(){};return a[t]},e.inspect=l,l.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},l.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.types=r(49032),e.isArray=g,e.isBoolean=y,e.isNull=m,e.isNullOrUndefined=function(t){return null==t},e.isNumber=b,e.isString=v,e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=w,e.isRegExp=A,e.types.isRegExp=A,e.isObject=x,e.isDate=_,e.types.isDate=_,e.isError=E,e.types.isNativeError=E,e.isFunction=S,e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=r(81135);var C=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function j(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){var t,r;console.log("%s - %s",(r=[T((t=new Date).getHours()),T(t.getMinutes()),T(t.getSeconds())].join(":"),[t.getDate(),C[t.getMonth()],r].join(" ")),e.format.apply(e,arguments))},e.inherits=r(56698),e._extend=function(t,e){if(!e||!x(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t};var R="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function N(t,e){if(!t){var r=new Error("Promise was rejected with a falsy value");r.reason=t,t=r}return e(t)}e.promisify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');if(R&&t[R]){var e;if("function"!=typeof(e=t[R]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(e,R,{value:e,enumerable:!1,writable:!1,configurable:!0}),e}function e(){for(var e,r,n=new Promise(function(t,n){e=t,r=n}),o=[],i=0;i-1?e:"Object"===e&&function(t){var e=!1;return n(g,function(r,n){if(!e)try{r(t),e=h(n,1)}catch(t){}}),e}(t)}return s?function(t){var e=!1;return n(g,function(r,n){if(!e)try{"$"+r(t)===n&&(e=h(n,1))}catch(t){}}),e}(t):null}},57510(t){t.exports=function(){for(var t={},r=0;r{if(!r){var i=1/0;for(u=0;u=o)&&Object.keys(a.O).every(t=>a.O[t](r[c]))?r.splice(c--,1):(s=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,n,o]},a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var r in e)a.o(e,r)&&!a.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},a.f={},a.e=t=>Promise.all(Object.keys(a.f).reduce((e,r)=>(a.f[r](t,e),e),[])),a.u=t=>t+"-"+t+".js?v="+{1140:"490e17ed9c8948d5a9e8",2221:"428c2ff62c4b8b3c97fc",4508:"04b1afd183e5ecdd9cae",5448:"71cfe268d6f1213c4735",5528:"1445efe9cbaf4e4cbcb8",5862:"580b9c2e231a9169a12f",6015:"ebcb6885c1fc8c461988",7859:"740587c0c8c350dad157",7910:"de857920f8beb5205bbc",8815:"9a5c507c75429c9c04e4"}[t],a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r={},n="nextcloud-ui-legacy:",a.l=(t,e,o,i)=>{if(r[t])r[t].push(e);else{var s,c;if(void 0!==o)for(var l=document.getElementsByTagName("script"),u=0;u{s.onerror=s.onload=null,clearTimeout(h);var o=r[t];if(delete r[t],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach(t=>t(n)),e)return e(n)},h=setTimeout(f.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=f.bind(null,s.onerror),s.onload=f.bind(null,s.onload),c&&document.head.appendChild(s)}},a.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},a.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),a.j=7062,(()=>{var t;globalThis.importScripts&&(t=globalThis.location+"");var e=globalThis.document;if(!t&&e&&(e.currentScript&&"SCRIPT"===e.currentScript.tagName.toUpperCase()&&(t=e.currentScript.src),!t)){var r=e.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!t||!/^http(s?):/.test(t));)t=r[n--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=t})(),(()=>{a.b="undefined"!=typeof document&&document.baseURI||self.location.href;var t={7062:0};a.f.j=(e,r)=>{var n=a.o(t,e)?t[e]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise((r,o)=>n=t[e]=[r,o]);r.push(n[2]=o);var i=a.p+a.u(e),s=new Error;a.l(i,r=>{if(a.o(t,e)&&(0!==(n=t[e])&&(t[e]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),i=r&&r.target&&r.target.src;s.message="Loading chunk "+e+" failed.\n("+o+": "+i+")",s.name="ChunkLoadError",s.type=o,s.request=i,n[1](s)}},"chunk-"+e,e)}},a.O.j=e=>0===t[e];var e=(e,r)=>{var n,o,[i,s,c]=r,l=0;if(i.some(e=>0!==t[e])){for(n in s)a.o(s,n)&&(a.m[n]=s[n]);if(c)var u=c(a)}for(e&&e(r);la(48439));s=a.O(s)})(); -//# sourceMappingURL=comments-comments-app.js.map?v=7daaba264f7a7d5e0461 \ No newline at end of file +(()=>{var e,r,n,o={48439(e,r,n){"use strict";const o=(0,n(35947).YK)().setApp("comments").detectUser().build();var i=n(21777),a=n(53334),s=n(10810),l=n(85471),c=n(85168),u=n(57579),p=n(74095),f=n(42507),h=n(57578);const d={name:"MessageReplyTextOutlineIcon",emits:["click"],props:{title:{type:String},fillColor:{type:String,default:"currentColor"},size:{type:Number,default:24}}};var g=n(14486);const y=(0,g.A)(d,function(){var t=this,e=t._self._c;return e("span",t._b({staticClass:"material-design-icon message-reply-text-outline-icon",attrs:{"aria-hidden":t.title?null:"true","aria-label":t.title,role:"img"},on:{click:function(e){return t.$emit("click",e)}}},"span",t.$attrs,!1),[e("svg",{staticClass:"material-design-icon__svg",attrs:{fill:t.fillColor,width:t.size,height:t.size,viewBox:"0 0 24 24"}},[e("path",{attrs:{d:"M9 11H18V13H9V11M18 7H6V9H18V7M22 4V22L18 18H4C2.9 18 2 17.11 2 16V4C2 2.9 2.9 2 4 2H20C21.1 2 22 2.89 22 4M20 4H4V16H18.83L20 17.17V4Z"}},[t.title?e("title",[t._v(t._s(t.title))]):t._e()])])])},[],!1,null,null,null).exports;var m=n(83239),b=n(57505),v=n(24764),w=n(15502),A=n(41944),x=n(4604),E=n(88289),_=n(77764),S=n(33691),O=n(66001),T=n(16502),C=n(37793),j=n(61160);function R(t){if(!N(t))throw new Error("Parameter was not an error")}function N(t){return!!t&&"object"==typeof t&&"[object Error]"===(e=t,Object.prototype.toString.call(e))||t instanceof Error;var e}class P extends Error{constructor(t,e){const r=[...arguments],{options:n,shortMessage:o}=function(t){let e,r="";if(0===t.length)e={};else if(N(t[0]))e={cause:t[0]},r=t.slice(1).join(" ")||"";else if(t[0]&&"object"==typeof t[0])e=Object.assign({},t[0]),r=t.slice(1).join(" ")||"";else{if("string"!=typeof t[0])throw new Error("Invalid arguments passed to Layerr");e={},r=r=t.join(" ")||""}return{options:e,shortMessage:r}}(r);let i=o;if(n.cause&&(i=`${i}: ${n.cause.message}`),super(i),this.message=i,n.name&&"string"==typeof n.name?this.name=n.name:this.name="Layerr",n.cause&&Object.defineProperty(this,"_cause",{value:n.cause}),Object.defineProperty(this,"_info",{value:{}}),n.info&&"object"==typeof n.info&&Object.assign(this._info,n.info),Error.captureStackTrace){const t=n.constructorOpt||this.constructor;Error.captureStackTrace(this,t)}}static cause(t){return R(t),t._cause&&N(t._cause)?t._cause:null}static fullStack(t){R(t);const e=P.cause(t);return e?`${t.stack}\ncaused by: ${P.fullStack(e)}`:t.stack??""}static info(t){R(t);const e={},r=P.cause(t);return r&&Object.assign(e,P.info(r)),t._info&&Object.assign(e,t._info),e}toString(){let t=this.name||this.constructor.name||this.constructor.prototype.name;return this.message&&(t=`${t}: ${this.message}`),t}}var I=n(12692);const k="__PATH_SEPARATOR_POSIX__",M="__PATH_SEPARATOR_WINDOWS__";function L(t){try{const e=t.replace(/\//g,k).replace(/\\\\/g,M);return encodeURIComponent(e).split(M).join("\\\\").split(k).join("/")}catch(t){throw new P(t,"Failed encoding path")}}function D(t){return t.startsWith("/")?t:"/"+t}function $(t){let e=t;return"/"!==e[0]&&(e="/"+e),/^.+\/$/.test(e)&&(e=e.substr(0,e.length-1)),e}function U(t){let e=new j(t).pathname;return e.length<=0&&(e="/"),$(e)}function F(...t){return function(){return function(t){var e=[];if(0===t.length)return"";if("string"!=typeof t[0])throw new TypeError("Url must be a string. Received "+t[0]);if(t[0].match(/^[^/:]+:\/*$/)&&t.length>1){var r=t.shift();t[0]=r+t[0]}t[0].match(/^file:\/\/\//)?t[0]=t[0].replace(/^([^/:]+):\/*/,"$1:///"):t[0]=t[0].replace(/^([^/:]+):\/*/,"$1://");for(var n=0;n0&&(o=o.replace(/^[\/]+/,"")),o=n0?"?":"")+a.join("&")}("object"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}(t.reduce((t,e,r)=>((0===r||"/"!==e||"/"===e&&"/"!==t[t.length-1])&&t.push(e),t),[]))}var B=n(83503);function W(t,e){const r=t.url.replace("//",""),n=-1==r.indexOf("/")?"/":r.slice(r.indexOf("/")),o=t.method?t.method.toUpperCase():"GET",i=!!/(^|,)\s*auth\s*($|,)/.test(e.qop)&&"auth",a=`00000000${e.nc}`.slice(-8),s=function(t,e,r,n,o,i,a){const s=a||B(`${e}:${r}:${n}`);return t&&"md5-sess"===t.toLowerCase()?B(`${s}:${o}:${i}`):s}(e.algorithm,e.username,e.realm,e.password,e.nonce,e.cnonce,e.ha1),l=B(`${o}:${n}`),c=B(i?`${s}:${e.nonce}:${a}:${e.cnonce}:${i}:${l}`:`${s}:${e.nonce}:${l}`),u={username:e.username,realm:e.realm,nonce:e.nonce,uri:n,qop:i,response:c,nc:a,cnonce:e.cnonce,algorithm:e.algorithm,opaque:e.opaque},p=[];for(const t in u)u[t]&&("qop"===t||"nc"===t||"algorithm"===t?p.push(`${t}=${u[t]}`):p.push(`${t}="${u[t]}"`));return`Digest ${p.join(", ")}`}function q(t){return"digest"===(t.headers&&t.headers.get("www-authenticate")||"").split(/\s/)[0].toLowerCase()}var H,V,z,G,K,Y,X=n(85914);function Z(t){return X.decode(t)}function Q(t,e){var r;return`Basic ${r=`${t}:${e}`,X.encode(r)}`}new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),String.fromCodePoint,function(t){t[t.NUM=35]="NUM",t[t.SEMI=59]="SEMI",t[t.EQUALS=61]="EQUALS",t[t.ZERO=48]="ZERO",t[t.NINE=57]="NINE",t[t.LOWER_A=97]="LOWER_A",t[t.LOWER_F=102]="LOWER_F",t[t.LOWER_X=120]="LOWER_X",t[t.LOWER_Z=122]="LOWER_Z",t[t.UPPER_A=65]="UPPER_A",t[t.UPPER_F=70]="UPPER_F",t[t.UPPER_Z=90]="UPPER_Z"}(H||(H={})),function(t){t[t.VALUE_LENGTH=49152]="VALUE_LENGTH",t[t.BRANCH_LENGTH=16256]="BRANCH_LENGTH",t[t.JUMP_TABLE=127]="JUMP_TABLE"}(V||(V={})),function(t){t[t.EntityStart=0]="EntityStart",t[t.NumericStart=1]="NumericStart",t[t.NumericDecimal=2]="NumericDecimal",t[t.NumericHex=3]="NumericHex",t[t.NamedEntity=4]="NamedEntity"}(z||(z={})),function(t){t[t.Legacy=0]="Legacy",t[t.Strict=1]="Strict",t[t.Attribute=2]="Attribute"}(G||(G={})),new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]),String.prototype.codePointAt,new Map([[34,"""],[38,"&"],[160," "]]),new Map([[38,"&"],[60,"<"],[62,">"],[160," "]]),function(t){t[t.XML=0]="XML",t[t.HTML=1]="HTML"}(K||(K={})),function(t){t[t.UTF8=0]="UTF8",t[t.ASCII=1]="ASCII",t[t.Extensive=2]="Extensive",t[t.Attribute=3]="Attribute",t[t.Text=4]="Text"}(Y||(Y={}));const J="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:"undefined"!=typeof window?window:globalThis,tt=J.fetch.bind(J);var et,rt;function nt(t,e,r,n,o){switch(t.authType){case et.Auto:e&&r&&(t.headers.Authorization=Q(e,r));break;case et.Digest:t.digest=function(t,e,r){return{username:t,password:e,ha1:r,nc:0,algorithm:"md5",hasDigestAuth:!1}}(e,r,o);break;case et.None:break;case et.Password:t.headers.Authorization=Q(e,r);break;case et.Token:t.headers.Authorization=`${(i=n).token_type} ${i.access_token}`;break;default:throw new P({info:{code:rt.InvalidAuthType}},`Invalid auth type: ${t.authType}`)}var i}J.Headers,J.Request,J.Response,function(t){t.Auto="auto",t.Digest="digest",t.None="none",t.Password="password",t.Token="token"}(et||(et={})),function(t){t.DataTypeNoLength="data-type-no-length",t.InvalidAuthType="invalid-auth-type",t.InvalidOutputFormat="invalid-output-format",t.LinkUnsupportedAuthType="link-unsupported-auth",t.InvalidUpdateRange="invalid-update-range",t.NotSupported="not-supported"}(rt||(rt={}));var ot=n(11568),it=n(11083);const at="@@HOTPATCHER",st=()=>{};function lt(t){return{original:t,methods:[t],final:!1}}class ct{constructor(){this._configuration={registry:{},getEmptyAction:"null"},this.__type__=at}get configuration(){return this._configuration}get getEmptyAction(){return this.configuration.getEmptyAction}set getEmptyAction(t){this.configuration.getEmptyAction=t}control(t,e=!1){if(!t||t.__type__!==at)throw new Error("Failed taking control of target HotPatcher instance: Invalid type or object");return Object.keys(t.configuration.registry).forEach(r=>{this.configuration.registry.hasOwnProperty(r)?e&&(this.configuration.registry[r]=Object.assign({},t.configuration.registry[r])):this.configuration.registry[r]=Object.assign({},t.configuration.registry[r])}),t._configuration=this.configuration,this}execute(t,...e){return(this.get(t)||st)(...e)}get(t){const e=this.configuration.registry[t];if(!e)switch(this.getEmptyAction){case"null":return null;case"throw":throw new Error(`Failed handling method request: No method provided for override: ${t}`);default:throw new Error(`Failed handling request which resulted in an empty method: Invalid empty-action specified: ${this.getEmptyAction}`)}return function(...t){if(0===t.length)throw new Error("Failed creating sequence: No functions provided");return function(...e){let r=e;const n=this;for(;t.length>0;)r=[t.shift().apply(n,r)];return r[0]}}(...e.methods)}isPatched(t){return!!this.configuration.registry[t]}patch(t,e,r={}){const{chain:n=!1}=r;if(this.configuration.registry[t]&&this.configuration.registry[t].final)throw new Error(`Failed patching '${t}': Method marked as being final`);if("function"!=typeof e)throw new Error(`Failed patching '${t}': Provided method is not a function`);if(n)this.configuration.registry[t]?this.configuration.registry[t].methods.push(e):this.configuration.registry[t]=lt(e);else if(this.isPatched(t)){const{original:r}=this.configuration.registry[t];this.configuration.registry[t]=Object.assign(lt(e),{original:r})}else this.configuration.registry[t]=lt(e);return this}patchInline(t,e,...r){return this.isPatched(t)||this.patch(t,e),this.execute(t,...r)}plugin(t,...e){return e.forEach(e=>{this.patch(t,e,{chain:!0})}),this}restore(t){if(!this.isPatched(t))throw new Error(`Failed restoring method: No method present for key: ${t}`);if("function"!=typeof this.configuration.registry[t].original)throw new Error(`Failed restoring method: Original method not found or of invalid type for key: ${t}`);return this.configuration.registry[t].methods=[this.configuration.registry[t].original],this}setFinal(t){if(!this.configuration.registry.hasOwnProperty(t))throw new Error(`Failed marking '${t}' as final: No method found for key`);return this.configuration.registry[t].final=!0,this}}let ut=null;function pt(){return"string"==typeof TARGET&&"react-native"===TARGET}function ft(){return"string"==typeof TARGET&&"web"===TARGET}function ht(t){return function(t){if("object"!=typeof t||null===t||"[object Object]"!=Object.prototype.toString.call(t))return!1;if(null===Object.getPrototypeOf(t))return!0;let e=t;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}(t)?Object.assign({},t):Object.setPrototypeOf(Object.assign({},t),Object.getPrototypeOf(t))}function dt(...t){let e=null,r=[...t];for(;r.length>0;){const t=r.shift();e=e?gt(e,t):ht(t)}return e}function gt(t,e){const r=ht(t);return Object.keys(e).forEach(t=>{r.hasOwnProperty(t)?Array.isArray(e[t])?r[t]=Array.isArray(r[t])?[...r[t],...e[t]]:[...e[t]]:"object"==typeof e[t]&&e[t]?r[t]="object"==typeof r[t]&&r[t]?gt(r[t],e[t]):ht(e[t]):r[t]=e[t]:r[t]=e[t]}),r}function yt(t){const e={};for(const r of t.keys())e[r]=t.get(r);return e}function mt(...t){if(0===t.length)return{};const e={};return t.reduce((t,r)=>(Object.keys(r).forEach(n=>{const o=n.toLowerCase();e.hasOwnProperty(o)?t[e[o]]=r[n]:(e[o]=n,t[n]=r[n])}),t),{})}var bt=n(88310);const vt="function"==typeof ArrayBuffer,{toString:wt}=Object.prototype;function At(t){return vt&&(t instanceof ArrayBuffer||"[object ArrayBuffer]"===wt.call(t))}function xt(t){return null!=t&&null!=t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}function Et(t,e,r){const n=ht(t);return n.headers=mt(e.headers,n.headers||{},r.headers||{}),void 0!==r.data&&(n.data=r.data),r.signal&&(n.signal=r.signal),e.httpAgent&&(n.httpAgent=e.httpAgent),e.httpsAgent&&(n.httpsAgent=e.httpsAgent),e.digest&&(n._digest=e.digest),"boolean"==typeof e.withCredentials&&(n.withCredentials=e.withCredentials),n}async function _t(t,e){return e.authType===et.Auto?async function(t,e){const r=await Ot(t);return r.ok?(e.authType=et.Password,r):401==r.status&&q(r)?(e.authType=et.Digest,nt(e,e.username,e.password,void 0,void 0),t._digest=e.digest,St(t)):r}(t,e):t._digest?St(t):Ot(t)}async function St(t){const e=t._digest;delete t._digest,e.hasDigestAuth&&(t=dt(t,{headers:{Authorization:W(t,e)}}));const r=await Ot(t);if(401==r.status){if(e.hasDigestAuth=function(t,e){if(!q(t))return!1;const r=/([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi;for(;;){const n=t.headers&&t.headers.get("www-authenticate")||"",o=r.exec(n);if(!o)break;e[o[1]]=o[2]||o[3]}return e.nc+=1,e.cnonce=function(){let t="";for(let e=0;e<32;++e)t=`${t}${"abcdef0123456789"[Math.floor(16*Math.random())]}`;return t}(),!0}(r,e),e.hasDigestAuth){t=dt(t,{headers:{Authorization:W(t,e)}});const r=await Ot(t);return 401==r.status?e.hasDigestAuth=!1:e.nc++,r}}else e.nc++;return r}function Ot(t){const e=(ut||(ut=new ct),ut);return e.patchInline("request",t=>e.patchInline("fetch",tt,t.url,function(t){let e={};const r={method:t.method};if(t.headers&&(e=mt(e,t.headers)),void 0!==t.data){const[n,o]=function(t){if(!ft()&&!pt()&&t instanceof bt.Readable)return[t,{}];if("string"==typeof t)return[t,{}];if(xt(t))return[t,{}];if(At(t))return[t,{}];if(t&&"object"==typeof t)return[JSON.stringify(t),{"content-type":"application/json"}];throw new Error("Unable to convert request body: Unexpected body type: "+typeof t)}(t.data);r.body=n,e=mt(e,o)}return t.signal&&(r.signal=t.signal),t.withCredentials&&(r.credentials="include"),ft()||pt()||(t.httpAgent||t.httpsAgent)&&(r.agent=e=>"http:"===e.protocol?t.httpAgent||new ot.Agent:t.httpsAgent||new it.Agent),r.headers=e,r}(t)),t)}var Tt=n(68928);const Ct=t=>{if("string"!=typeof t)throw new TypeError("invalid pattern");if(t.length>65536)throw new TypeError("pattern is too long")},jt={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},Rt=t=>t.replace(/[[\]\\-]/g,"\\$&"),Nt=t=>t.join(""),Pt=(t,e)=>{const r=e;if("["!==t.charAt(r))throw new Error("not in a brace expression");const n=[],o=[];let i=r+1,a=!1,s=!1,l=!1,c=!1,u=r,p="";t:for(;ip?n.push(Rt(p)+"-"+Rt(e)):e===p&&n.push(Rt(e)),p="",i++):t.startsWith("-]",i+1)?(n.push(Rt(e+"-")),i+=2):t.startsWith("-",i+1)?(p=e,i+=2):(n.push(Rt(e)),i++)}else l=!0,i++}else c=!0,i++}if(ue?t.replace(/\[([^\/\\])\]/g,"$1"):t.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1"),kt=new Set(["!","?","+","*","@"]),Mt=t=>kt.has(t),Lt="(?!\\.)",Dt=new Set(["[","."]),$t=new Set(["..","."]),Ut=new Set("().*{}+?[]^$\\!"),Ft=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),Bt="[^/]",Wt=Bt+"*?",qt=Bt+"+?";class Ht{type;#t;#e;#r=!1;#n=[];#o;#i;#a;#s=!1;#l;#c;#u=!1;constructor(t,e,r={}){this.type=t,t&&(this.#e=!0),this.#o=e,this.#t=this.#o?this.#o.#t:this,this.#l=this.#t===this?r:this.#t.#l,this.#a=this.#t===this?[]:this.#t.#a,"!"!==t||this.#t.#s||this.#a.push(this),this.#i=this.#o?this.#o.#n.length:0}get hasMagic(){if(void 0!==this.#e)return this.#e;for(const t of this.#n)if("string"!=typeof t&&(t.type||t.hasMagic))return this.#e=!0;return this.#e}toString(){return void 0!==this.#c?this.#c:this.type?this.#c=this.type+"("+this.#n.map(t=>String(t)).join("|")+")":this.#c=this.#n.map(t=>String(t)).join("")}#p(){if(this!==this.#t)throw new Error("should only call on root");if(this.#s)return this;let t;for(this.toString(),this.#s=!0;t=this.#a.pop();){if("!"!==t.type)continue;let e=t,r=e.#o;for(;r;){for(let n=e.#i+1;!r.type&&n"string"==typeof t?t:t.toJSON()):[this.type,...this.#n.map(t=>t.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#s&&"!"===this.#o?.type)&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#o?.isStart())return!1;if(0===this.#i)return!0;const t=this.#o;for(let e=0;e{const[n,o,i,a]="string"==typeof e?Ht.#h(e,this.#e,r):e.toRegExpSource(t);return this.#e=this.#e||i,this.#r=this.#r||a,n}).join("");let o="";if(this.isStart()&&"string"==typeof this.#n[0]&&(1!==this.#n.length||!$t.has(this.#n[0]))){const r=Dt,i=e&&r.has(n.charAt(0))||n.startsWith("\\.")&&r.has(n.charAt(2))||n.startsWith("\\.\\.")&&r.has(n.charAt(4)),a=!e&&!t&&r.has(n.charAt(0));o=i?"(?!(?:^|/)\\.\\.?(?:$|/))":a?Lt:""}let i="";return this.isEnd()&&this.#t.#s&&"!"===this.#o?.type&&(i="(?:$|\\/)"),[o+n+i,It(n),this.#e=!!this.#e,this.#r]}const r="*"===this.type||"+"===this.type,n="!"===this.type?"(?:(?!(?:":"(?:";let o=this.#d(e);if(this.isStart()&&this.isEnd()&&!o&&"!"!==this.type){const t=this.toString();return this.#n=[t],this.type=null,this.#e=void 0,[t,It(this.toString()),!1,!1]}let i=!r||t||e?"":this.#d(!0);i===o&&(i=""),i&&(o=`(?:${o})(?:${i})*?`);let a="";return a="!"===this.type&&this.#u?(this.isStart()&&!e?Lt:"")+qt:n+o+("!"===this.type?"))"+(!this.isStart()||e||t?"":Lt)+Wt+")":"@"===this.type?")":"?"===this.type?")?":"+"===this.type&&i?")":"*"===this.type&&i?")?":`)${this.type}`),[a,It(o),this.#e=!!this.#e,this.#r]}#d(t){return this.#n.map(e=>{if("string"==typeof e)throw new Error("string type in extglob ast??");const[r,n,o,i]=e.toRegExpSource(t);return this.#r=this.#r||i,r}).filter(t=>!(this.isStart()&&this.isEnd()&&!t)).join("|")}static#h(t,e,r=!1){let n=!1,o="",i=!1;for(let a=0;a(Ct(e),!(!r.nocomment&&"#"===e.charAt(0))&&new be(e,r).match(t)),Gt=/^\*+([^+@!?\*\[\(]*)$/,Kt=t=>e=>!e.startsWith(".")&&e.endsWith(t),Yt=t=>e=>e.endsWith(t),Xt=t=>(t=t.toLowerCase(),e=>!e.startsWith(".")&&e.toLowerCase().endsWith(t)),Zt=t=>(t=t.toLowerCase(),e=>e.toLowerCase().endsWith(t)),Qt=/^\*+\.\*+$/,Jt=t=>!t.startsWith(".")&&t.includes("."),te=t=>"."!==t&&".."!==t&&t.includes("."),ee=/^\.\*+$/,re=t=>"."!==t&&".."!==t&&t.startsWith("."),ne=/^\*+$/,oe=t=>0!==t.length&&!t.startsWith("."),ie=t=>0!==t.length&&"."!==t&&".."!==t,ae=/^\?+([^+@!?\*\[\(]*)?$/,se=([t,e=""])=>{const r=pe([t]);return e?(e=e.toLowerCase(),t=>r(t)&&t.toLowerCase().endsWith(e)):r},le=([t,e=""])=>{const r=fe([t]);return e?(e=e.toLowerCase(),t=>r(t)&&t.toLowerCase().endsWith(e)):r},ce=([t,e=""])=>{const r=fe([t]);return e?t=>r(t)&&t.endsWith(e):r},ue=([t,e=""])=>{const r=pe([t]);return e?t=>r(t)&&t.endsWith(e):r},pe=([t])=>{const e=t.length;return t=>t.length===e&&!t.startsWith(".")},fe=([t])=>{const e=t.length;return t=>t.length===e&&"."!==t&&".."!==t},he="object"==typeof Vt&&Vt?"object"==typeof Vt.env&&Vt.env&&Vt.env.__MINIMATCH_TESTING_PLATFORM__||Vt.platform:"posix";zt.sep="win32"===he?"\\":"/";const de=Symbol("globstar **");zt.GLOBSTAR=de,zt.filter=(t,e={})=>r=>zt(r,t,e);const ge=(t,e={})=>Object.assign({},t,e);zt.defaults=t=>{if(!t||"object"!=typeof t||!Object.keys(t).length)return zt;const e=zt;return Object.assign((r,n,o={})=>e(r,n,ge(t,o)),{Minimatch:class extends e.Minimatch{constructor(e,r={}){super(e,ge(t,r))}static defaults(r){return e.defaults(ge(t,r)).Minimatch}},AST:class extends e.AST{constructor(e,r,n={}){super(e,r,ge(t,n))}static fromGlob(r,n={}){return e.AST.fromGlob(r,ge(t,n))}},unescape:(r,n={})=>e.unescape(r,ge(t,n)),escape:(r,n={})=>e.escape(r,ge(t,n)),filter:(r,n={})=>e.filter(r,ge(t,n)),defaults:r=>e.defaults(ge(t,r)),makeRe:(r,n={})=>e.makeRe(r,ge(t,n)),braceExpand:(r,n={})=>e.braceExpand(r,ge(t,n)),match:(r,n,o={})=>e.match(r,n,ge(t,o)),sep:e.sep,GLOBSTAR:de})};const ye=(t,e={})=>(Ct(t),e.nobrace||!/\{(?:(?!\{).)*\}/.test(t)?[t]:Tt(t));zt.braceExpand=ye,zt.makeRe=(t,e={})=>new be(t,e).makeRe(),zt.match=(t,e,r={})=>{const n=new be(e,r);return t=t.filter(t=>n.match(t)),n.options.nonull&&!t.length&&t.push(e),t};const me=/[?*]|[+@!]\(.*?\)|\[|\]/;class be{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t,e={}){Ct(t),e=e||{},this.options=e,this.pattern=t,this.platform=e.platform||he,this.isWindows="win32"===this.platform,this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||!1===e.allowWindowsEscape,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!e.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!e.nonegate,this.comment=!1,this.empty=!1,this.partial=!!e.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=void 0!==e.windowsNoMagicRoot?e.windowsNoMagicRoot:!(!this.isWindows||!this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(const t of this.set)for(const e of t)if("string"!=typeof e)return!0;return!1}debug(...t){}make(){const t=this.pattern,e=this.options;if(!e.nocomment&&"#"===t.charAt(0))return void(this.comment=!0);if(!t)return void(this.empty=!0);this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],e.debug&&(this.debug=(...t)=>console.error(...t)),this.debug(this.pattern,this.globSet);const r=this.globSet.map(t=>this.slashSplit(t));this.globParts=this.preprocess(r),this.debug(this.pattern,this.globParts);let n=this.globParts.map((t,e,r)=>{if(this.isWindows&&this.windowsNoMagicRoot){const e=!(""!==t[0]||""!==t[1]||"?"!==t[2]&&me.test(t[2])||me.test(t[3])),r=/^[a-z]:/i.test(t[0]);if(e)return[...t.slice(0,4),...t.slice(4).map(t=>this.parse(t))];if(r)return[t[0],...t.slice(1).map(t=>this.parse(t))]}return t.map(t=>this.parse(t))});if(this.debug(this.pattern,n),this.set=n.filter(t=>-1===t.indexOf(!1)),this.isWindows)for(let t=0;t=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):t=e>=1?this.levelOneOptimize(t):this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(t=>{let e=-1;for(;-1!==(e=t.indexOf("**",e+1));){let r=e;for(;"**"===t[r+1];)r++;r!==e&&t.splice(e,r-e)}return t})}levelOneOptimize(t){return t.map(t=>0===(t=t.reduce((t,e)=>{const r=t[t.length-1];return"**"===e&&"**"===r?t:".."===e&&r&&".."!==r&&"."!==r&&"**"!==r?(t.pop(),t):(t.push(e),t)},[])).length?[""]:t)}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let e=!1;do{if(e=!1,!this.preserveMultipleSlashes){for(let r=1;rn&&r.splice(n+1,o-n);let i=r[n+1];const a=r[n+2],s=r[n+3];if(".."!==i)continue;if(!a||"."===a||".."===a||!s||"."===s||".."===s)continue;e=!0,r.splice(n,1);const l=r.slice(0);l[n]="**",t.push(l),n--}if(!this.preserveMultipleSlashes){for(let t=1;tt.length)}partsMatch(t,e,r=!1){let n=0,o=0,i=[],a="";for(;ni?e=e.slice(a):i>a&&(t=t.slice(i)))}}const{optimizationLevel:o=1}=this.options;o>=2&&(t=this.levelTwoFileOptimize(t)),this.debug("matchOne",this,{file:t,pattern:e}),this.debug("matchOne",t.length,e.length);for(var i=0,a=0,s=t.length,l=e.length;i>> no match, partial?",t,p,e,f),p!==s))}let o;if("string"==typeof c?(o=u===c,this.debug("string match",c,u,o)):(o=c.test(u),this.debug("pattern match",c,u,o)),!o)return!1}if(i===s&&a===l)return!0;if(i===s)return r;if(a===l)return i===s-1&&""===t[i];throw new Error("wtf?")}braceExpand(){return ye(this.pattern,this.options)}parse(t){Ct(t);const e=this.options;if("**"===t)return de;if(""===t)return"";let r,n=null;(r=t.match(ne))?n=e.dot?ie:oe:(r=t.match(Gt))?n=(e.nocase?e.dot?Zt:Xt:e.dot?Yt:Kt)(r[1]):(r=t.match(ae))?n=(e.nocase?e.dot?le:se:e.dot?ce:ue)(r):(r=t.match(Qt))?n=e.dot?te:Jt:(r=t.match(ee))&&(n=re);const o=Ht.fromGlob(t,this.options).toMMPattern();return n&&"object"==typeof o&&Reflect.defineProperty(o,"test",{value:n}),o}makeRe(){if(this.regexp||!1===this.regexp)return this.regexp;const t=this.set;if(!t.length)return this.regexp=!1,this.regexp;const e=this.options,r=e.noglobstar?"[^/]*?":e.dot?"(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?":"(?:(?!(?:\\/|^)\\.).)*?",n=new Set(e.nocase?["i"]:[]);let o=t.map(t=>{const e=t.map(t=>{if(t instanceof RegExp)for(const e of t.flags.split(""))n.add(e);return"string"==typeof t?t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"):t===de?de:t._src});return e.forEach((t,n)=>{const o=e[n+1],i=e[n-1];t===de&&i!==de&&(void 0===i?void 0!==o&&o!==de?e[n+1]="(?:\\/|"+r+"\\/)?"+o:e[n]=r:void 0===o?e[n-1]=i+"(?:\\/|"+r+")?":o!==de&&(e[n-1]=i+"(?:\\/|\\/"+r+"\\/)"+o,e[n+1]=de))}),e.filter(t=>t!==de).join("/")}).join("|");const[i,a]=t.length>1?["(?:",")"]:["",""];o="^"+i+o+a+"$",this.negate&&(o="^(?!"+o+").+$");try{this.regexp=new RegExp(o,[...n].join(""))}catch(t){this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,e=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return""===t;if("/"===t&&e)return!0;const r=this.options;this.isWindows&&(t=t.split("\\").join("/"));const n=this.slashSplit(t);this.debug(this.pattern,"split",n);const o=this.set;this.debug(this.pattern,"set",o);let i=n[n.length-1];if(!i)for(let t=n.length-2;!i&&t>=0;t--)i=n[t];for(let t=0;t=400)throw ve(e);return e}function Ae(t,e,r=!1){return r?{data:e,headers:t.headers?yt(t.headers):{},status:t.status,statusText:t.statusText}:e}zt.AST=Ht,zt.Minimatch=be,zt.escape=(t,{windowsPathsNoEscape:e=!1}={})=>e?t.replace(/[?*()[\]]/g,"[$&]"):t.replace(/[?*()[\]\\]/g,"\\$&"),zt.unescape=It;const xe={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,r){return t},captureMetaData:!1};function Ee(t){return"boolean"==typeof t?{enabled:t,maxEntitySize:1e4,maxExpansionDepth:10,maxTotalExpansions:1e3,maxExpandedLength:1e5,allowedTags:null,tagFilter:null}:"object"==typeof t&&null!==t?{enabled:!1!==t.enabled,maxEntitySize:t.maxEntitySize??1e4,maxExpansionDepth:t.maxExpansionDepth??10,maxTotalExpansions:t.maxTotalExpansions??1e3,maxExpandedLength:t.maxExpandedLength??1e5,allowedTags:t.allowedTags??null,tagFilter:t.tagFilter??null}:Ee(!0)}const _e=function(t){const e=Object.assign({},xe,t);return e.processEntities=Ee(e.processEntities),e},Se=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",Oe=new RegExp("^["+Se+"]["+Se+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$");function Te(t,e){const r=[];let n=e.exec(t);for(;n;){const o=[];o.startIndex=e.lastIndex-n[0].length;const i=n.length;for(let t=0;t0?this.child.push({[t.tagname]:t.child,":@":t[":@"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][je]={startIndex:e})}static getMetaDataSymbol(){return je}}class Ne{constructor(t){this.suppressValidationErr=!t,this.options=t}readDocType(t,e){const r={};if("O"!==t[e+3]||"C"!==t[e+4]||"T"!==t[e+5]||"Y"!==t[e+6]||"P"!==t[e+7]||"E"!==t[e+8])throw new Error("Invalid Tag instead of DOCTYPE");{e+=9;let n=1,o=!1,i=!1,a="";for(;e"===t[e]){if(i?"-"===t[e-1]&&"-"===t[e-2]&&(i=!1,n--):n--,0===n)break}else"["===t[e]?o=!0:a+=t[e];else{if(o&&Ie(t,"!ENTITY",e)){let n,o;if(e+=7,[n,o,e]=this.readEntityExp(t,e+1,this.suppressValidationErr),-1===o.indexOf("&")){const t=n.replace(/[.\-+*:]/g,"\\.");r[n]={regx:RegExp(`&${t};`,"g"),val:o}}}else if(o&&Ie(t,"!ELEMENT",e)){e+=8;const{index:r}=this.readElementExp(t,e+1);e=r}else if(o&&Ie(t,"!ATTLIST",e))e+=8;else if(o&&Ie(t,"!NOTATION",e)){e+=9;const{index:r}=this.readNotationExp(t,e+1,this.suppressValidationErr);e=r}else{if(!Ie(t,"!--",e))throw new Error("Invalid DOCTYPE");i=!0}n++,a=""}if(0!==n)throw new Error("Unclosed DOCTYPE")}return{entities:r,i:e}}readEntityExp(t,e){e=Pe(t,e);let r="";for(;ethis.options.maxEntitySize)throw new Error(`Entity "${r}" size (${n.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return[r,n,--e]}readNotationExp(t,e){e=Pe(t,e);let r="";for(;e{for(;e{for(const r of t){if("string"==typeof r&&e===r)return!0;if(r instanceof RegExp&&r.test(e))return!0}}:()=>!1}class Fe{constructor(t){if(this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"Â¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>er(e,10,"&#")},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>er(e,16,"&#x")}},this.addExternalEntities=Be,this.parseXml=ze,this.parseTextData=We,this.resolveNameSpace=qe,this.buildAttributesMap=Ve,this.isItStopNode=Xe,this.replaceEntitiesValue=Ke,this.readStopNodeData=Je,this.saveTextToParentTag=Ye,this.addChild=Ge,this.ignoreAttributesFn=Ue(this.options.ignoreAttributes),this.entityExpansionCount=0,this.currentExpandedLength=0,this.options.stopNodes&&this.options.stopNodes.length>0){this.stopNodesExact=new Set,this.stopNodesWildcard=new Set;for(let t=0;t0)){a||(t=this.replaceEntitiesValue(t,e,r));const n=this.options.tagValueProcessor(e,t,r,o,i);return null==n?t:typeof n!=typeof t||n!==t?n:this.options.trimValues||t.trim()===t?tr(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function qe(t){if(this.options.removeNSPrefix){const e=t.split(":"),r="/"===t.charAt(0)?"/":"";if("xmlns"===e[0])return"";2===e.length&&(t=r+e[1])}return t}const He=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function Ve(t,e,r){if(!0!==this.options.ignoreAttributes&&"string"==typeof t){const n=Te(t,He),o=n.length,i={};for(let t=0;t",a,"Closing Tag is not closed.");let i=t.substring(a+2,e).trim();if(this.options.removeNSPrefix){const t=i.indexOf(":");-1!==t&&(i=i.substr(t+1))}this.options.transformTagName&&(i=this.options.transformTagName(i)),r&&(n=this.saveTextToParentTag(n,r,o));const s=o.substring(o.lastIndexOf(".")+1);if(i&&-1!==this.options.unpairedTags.indexOf(i))throw new Error(`Unpaired tag can not be used as closing tag: `);let l=0;s&&-1!==this.options.unpairedTags.indexOf(s)?(l=o.lastIndexOf(".",o.lastIndexOf(".")-1),this.tagsNodeStack.pop()):l=o.lastIndexOf("."),o=o.substring(0,l),r=this.tagsNodeStack.pop(),n="",a=e}else if("?"===t[a+1]){let e=Qe(t,a,!1,"?>");if(!e)throw new Error("Pi Tag is not closed.");if(n=this.saveTextToParentTag(n,r,o),this.options.ignoreDeclaration&&"?xml"===e.tagName||this.options.ignorePiTags);else{const t=new Re(e.tagName);t.add(this.options.textNodeName,""),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[":@"]=this.buildAttributesMap(e.tagExp,o,e.tagName)),this.addChild(r,t,o,a)}a=e.closeIndex+1}else if("!--"===t.substr(a+1,3)){const e=Ze(t,"--\x3e",a+4,"Comment is not closed.");if(this.options.commentPropName){const i=t.substring(a+4,e-2);n=this.saveTextToParentTag(n,r,o),r.add(this.options.commentPropName,[{[this.options.textNodeName]:i}])}a=e}else if("!D"===t.substr(a+1,2)){const e=i.readDocType(t,a);this.docTypeEntities=e.entities,a=e.i}else if("!["===t.substr(a+1,2)){const e=Ze(t,"]]>",a,"CDATA is not closed.")-2,i=t.substring(a+9,e);n=this.saveTextToParentTag(n,r,o);let s=this.parseTextData(i,r.tagname,o,!0,!1,!0,!0);null==s&&(s=""),this.options.cdataPropName?r.add(this.options.cdataPropName,[{[this.options.textNodeName]:i}]):r.add(this.options.textNodeName,s),a=e+2}else{let i=Qe(t,a,this.options.removeNSPrefix),s=i.tagName;const l=i.rawTagName;let c=i.tagExp,u=i.attrExpPresent,p=i.closeIndex;if(this.options.transformTagName){const t=this.options.transformTagName(s);c===s&&(c=t),s=t}r&&n&&"!xml"!==r.tagname&&(n=this.saveTextToParentTag(n,r,o,!1));const f=r;f&&-1!==this.options.unpairedTags.indexOf(f.tagname)&&(r=this.tagsNodeStack.pop(),o=o.substring(0,o.lastIndexOf("."))),s!==e.tagname&&(o+=o?"."+s:s);const h=a;if(this.isItStopNode(this.stopNodesExact,this.stopNodesWildcard,o,s)){let e="";if(c.length>0&&c.lastIndexOf("/")===c.length-1)"/"===s[s.length-1]?(s=s.substr(0,s.length-1),o=o.substr(0,o.length-1),c=s):c=c.substr(0,c.length-1),a=i.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(s))a=i.closeIndex;else{const r=this.readStopNodeData(t,l,p+1);if(!r)throw new Error(`Unexpected end of ${l}`);a=r.i,e=r.tagContent}const n=new Re(s);s!==c&&u&&(n[":@"]=this.buildAttributesMap(c,o,s)),e&&(e=this.parseTextData(e,s,o,!0,u,!0,!0)),o=o.substr(0,o.lastIndexOf(".")),n.add(this.options.textNodeName,e),this.addChild(r,n,o,h)}else{if(c.length>0&&c.lastIndexOf("/")===c.length-1){if("/"===s[s.length-1]?(s=s.substr(0,s.length-1),o=o.substr(0,o.length-1),c=s):c=c.substr(0,c.length-1),this.options.transformTagName){const t=this.options.transformTagName(s);c===s&&(c=t),s=t}const t=new Re(s);s!==c&&u&&(t[":@"]=this.buildAttributesMap(c,o,s)),this.addChild(r,t,o,h),o=o.substr(0,o.lastIndexOf("."))}else{const t=new Re(s);this.tagsNodeStack.push(r),s!==c&&u&&(t[":@"]=this.buildAttributesMap(c,o,s)),this.addChild(r,t,o,h),r=t}n="",a=p}}else n+=t[a];return e.child};function Ge(t,e,r,n){this.options.captureMetaData||(n=void 0);const o=this.options.updateTag(e.tagname,r,e[":@"]);!1===o||("string"==typeof o?(e.tagname=o,t.addChild(e,n)):t.addChild(e,n))}const Ke=function(t,e,r){if(-1===t.indexOf("&"))return t;const n=this.options.processEntities;if(!n.enabled)return t;if(n.allowedTags&&!n.allowedTags.includes(e))return t;if(n.tagFilter&&!n.tagFilter(e,r))return t;for(let e in this.docTypeEntities){const r=this.docTypeEntities[e],o=t.match(r.regx);if(o){if(this.entityExpansionCount+=o.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions)throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);const e=t.length;if(t=t.replace(r.regx,r.val),n.maxExpandedLength&&(this.currentExpandedLength+=t.length-e,this.currentExpandedLength>n.maxExpandedLength))throw new Error(`Total expanded content size exceeded: ${this.currentExpandedLength} > ${n.maxExpandedLength}`)}}if(-1===t.indexOf("&"))return t;for(let e in this.lastEntities){const r=this.lastEntities[e];t=t.replace(r.regex,r.val)}if(-1===t.indexOf("&"))return t;if(this.options.htmlEntities)for(let e in this.htmlEntities){const r=this.htmlEntities[e];t=t.replace(r.regex,r.val)}return t.replace(this.ampEntity.regex,this.ampEntity.val)};function Ye(t,e,r,n){return t&&(void 0===n&&(n=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,r,!1,!!e[":@"]&&0!==Object.keys(e[":@"]).length,n))&&""!==t&&e.add(this.options.textNodeName,t),t=""),t}function Xe(t,e,r,n){return!(!e||!e.has(n))||!(!t||!t.has(r))}function Ze(t,e,r,n){const o=t.indexOf(e,r);if(-1===o)throw new Error(n);return o+e.length-1}function Qe(t,e,r,n=">"){const o=function(t,e,r=">"){let n,o="";for(let i=e;i",r,`${e} is not closed`);if(t.substring(r+2,i).trim()===e&&(o--,0===o))return{tagContent:t.substring(n,r),i};r=i}else if("?"===t[r+1])r=Ze(t,"?>",r+1,"StopNode is not closed.");else if("!--"===t.substr(r+1,3))r=Ze(t,"--\x3e",r+3,"StopNode is not closed.");else if("!["===t.substr(r+1,2))r=Ze(t,"]]>",r,"StopNode is not closed.")-2;else{const n=Qe(t,r,">");n&&((n&&n.tagName)===e&&"/"!==n.tagExp[n.tagExp.length-1]&&o++,r=n.closeIndex)}}function tr(t,e,r){if(e&&"string"==typeof t){const e=t.trim();return"true"===e||"false"!==e&&function(t,e={}){if(e=Object.assign({},De,e),!t||"string"!=typeof t)return t;let r=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(r))return t;if("0"===t)return 0;if(e.hex&&Me.test(r))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}(r);if(r.includes("e")||r.includes("E"))return function(t,e,r){if(!r.eNotation)return t;const n=e.match($e);if(n){let o=n[1]||"";const i=-1===n[3].indexOf("e")?"E":"e",a=n[2],s=o?t[a.length+1]===i:t[a.length]===i;return a.length>1&&s?t:1!==a.length||!n[3].startsWith(`.${i}`)&&n[3][0]!==i?r.leadingZeros&&!s?(e=(n[1]||"")+n[3],Number(e)):t:Number(e)}return t}(t,r,e);{const o=Le.exec(r);if(o){const i=o[1]||"",a=o[2];let s=(n=o[3])&&-1!==n.indexOf(".")?("."===(n=n.replace(/0+$/,""))?n="0":"."===n[0]?n="0"+n:"."===n[n.length-1]&&(n=n.substring(0,n.length-1)),n):n;const l=i?"."===t[a.length+1]:"."===t[a.length];if(!e.leadingZeros&&(a.length>1||1===a.length&&!l))return t;{const n=Number(r),o=String(n);if(0===n)return n;if(-1!==o.search(/[eE]/))return e.eNotation?n:t;if(-1!==r.indexOf("."))return"0"===o||o===s||o===`${i}${s}`?n:t;let l=a?s:r;return a?l===o||i+l===o?n:t:l===o||l===i+o?n:t}}return t}var n}(t,r)}return void 0!==t?t:""}function er(t,e,r){const n=Number.parseInt(t,e);return n>=0&&n<=1114111?String.fromCodePoint(n):r+t+";"}const rr=Re.getMetaDataSymbol();function nr(t,e){return or(t,e)}function or(t,e,r){let n;const o={};for(let i=0;i0&&(o[e.textNodeName]=n):void 0!==n&&(o[e.textNodeName]=n),o}function ir(t){const e=Object.keys(t);for(let t=0;t5&&"xml"===n)return yr("InvalidXml","XML declaration allowed only at the start of the document.",vr(t,e));if("?"==t[e]&&">"==t[e+1]){e++;break}continue}return e}function pr(t,e){if(t.length>e+5&&"-"===t[e+1]&&"-"===t[e+2]){for(e+=3;e"===t[e+2]){e+=2;break}}else if(t.length>e+8&&"D"===t[e+1]&&"O"===t[e+2]&&"C"===t[e+3]&&"T"===t[e+4]&&"Y"===t[e+5]&&"P"===t[e+6]&&"E"===t[e+7]){let r=1;for(e+=8;e"===t[e]&&(r--,0===r))break}else if(t.length>e+9&&"["===t[e+1]&&"C"===t[e+2]&&"D"===t[e+3]&&"A"===t[e+4]&&"T"===t[e+5]&&"A"===t[e+6]&&"["===t[e+7])for(e+=8;e"===t[e+2]){e+=2;break}return e}function fr(t,e){let r="",n="",o=!1;for(;e"===t[e]&&""===n){o=!0;break}r+=t[e]}return""===n&&{value:r,index:e,tagClosed:o}}const hr=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function dr(t,e){const r=Te(t,hr),n={};for(let t=0;t"!==t[i]&&" "!==t[i]&&"\t"!==t[i]&&"\n"!==t[i]&&"\r"!==t[i];i++)l+=t[i];if(l=l.trim(),"/"===l[l.length-1]&&(l=l.substring(0,l.length-1),i--),!br(l)){let e;return e=0===l.trim().length?"Invalid space after '<'.":"Tag '"+l+"' is an invalid name.",yr("InvalidTag",e,vr(t,i))}const c=fr(t,i);if(!1===c)return yr("InvalidAttr","Attributes for '"+l+"' have open quote.",vr(t,i));let u=c.value;if(i=c.index,"/"===u[u.length-1]){const r=i-u.length;u=u.substring(0,u.length-1);const o=dr(u,e);if(!0!==o)return yr(o.err.code,o.err.msg,vr(t,r+o.err.line));n=!0}else if(s){if(!c.tagClosed)return yr("InvalidTag","Closing tag '"+l+"' doesn't have proper closing.",vr(t,i));if(u.trim().length>0)return yr("InvalidTag","Closing tag '"+l+"' can't have attributes or invalid starting.",vr(t,a));if(0===r.length)return yr("InvalidTag","Closing tag '"+l+"' has not been opened.",vr(t,a));{const e=r.pop();if(l!==e.tagName){let r=vr(t,e.tagStartPos);return yr("InvalidTag","Expected closing tag '"+e.tagName+"' (opened in line "+r.line+", col "+r.col+") instead of closing tag '"+l+"'.",vr(t,a))}0==r.length&&(o=!0)}}else{const s=dr(u,e);if(!0!==s)return yr(s.err.code,s.err.msg,vr(t,i-u.length+s.err.line));if(!0===o)return yr("InvalidXml","Multiple possible root nodes found.",vr(t,i));-1!==e.unpairedTags.indexOf(l)||r.push({tagName:l,tagStartPos:a}),n=!0}for(i++;i0)||yr("InvalidXml","Invalid '"+JSON.stringify(r.map(t=>t.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):yr("InvalidXml","Start tag expected.",1)}(t,e);if(!0!==r)throw Error(`${r.err.msg}:${r.err.line}:${r.err.col}`)}const r=new Fe(this.options);r.addExternalEntities(this.externalEntities);const n=r.parseXml(t);return this.options.preserveOrder||void 0===n?n:nr(n,this.options)}addEntity(t,e){if(-1!==e.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==t.indexOf("&")||-1!==t.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for ' '");if("&"===e)throw new Error("An entity with value '&' is not permitted");this.externalEntities[t]=e}static getMetaDataSymbol(){return Re.getMetaDataSymbol()}}var xr,Er=n(26602);function _r(t,e){if(!t.endsWith("propstat.prop.displayname"))return e}function Sr(t,e,r=xr.Original){const n=Er.get(t,e);return"array"===r&&!1===Array.isArray(n)?[n]:"object"===r&&Array.isArray(n)?n[0]:n}function Or(t,e){return e=e??{attributeNamePrefix:"@",attributeParsers:[],tagParsers:[_r]},new Promise(r=>{r(function(t){const{multistatus:e}=t;if(""===e)return{multistatus:{response:[]}};if(!e)throw new Error("Invalid response: No root multistatus found");const r={multistatus:Array.isArray(e)?e[0]:e};return Er.set(r,"multistatus.response",Sr(r,"multistatus.response",xr.Array)),Er.set(r,"multistatus.response",Er.get(r,"multistatus.response").map(t=>function(t){const e=Object.assign({},t);return e.status?Er.set(e,"status",Sr(e,"status",xr.Object)):(Er.set(e,"propstat",Sr(e,"propstat",xr.Object)),Er.set(e,"propstat.prop",Sr(e,"propstat.prop",xr.Object))),e}(t))),r}(function({attributeNamePrefix:t,attributeParsers:e,tagParsers:r}){return new Ar({allowBooleanAttributes:!0,attributeNamePrefix:t,textNodeName:"text",ignoreAttributes:!1,removeNSPrefix:!0,numberParseOptions:{hex:!0,leadingZeros:!1},attributeValueProcessor(t,r,n){for(const t of e)try{const e=t(n,r);if(e!==r)return e}catch(t){}return r},tagValueProcessor(t,e,n){for(const t of r)try{const r=t(n,e);if(r!==e)return r}catch(t){}return e}})}(e).parse(t)))})}function Tr(t,e,r=!1){const{getlastmodified:n=null,getcontentlength:o="0",resourcetype:i=null,getcontenttype:a=null,getetag:s=null}=t,l=i&&"object"==typeof i&&void 0!==i.collection?"directory":"file",c={filename:e,basename:I.basename(e),lastmod:n,size:parseInt(o,10),type:l,etag:"string"==typeof s?s.replace(/"/g,""):null};return"file"===l&&(c.mime=a&&"string"==typeof a?a.split(";")[0]:""),r&&(void 0!==t.displayname&&(t.displayname=String(t.displayname)),c.props=t),c}function Cr(t){switch(String(t)){case"-3":return"unlimited";case"-2":case"-1":return"unknown";default:return parseInt(String(t),10)}}async function jr(t,e,r={}){const{details:n=!1}=r,o=Et({url:F(t.remoteURL,L(e)),method:"PROPFIND",headers:{Accept:"text/plain,application/xml",Depth:"0"}},t,r),i=await _t(o,t);we(t,i);const a=await i.text(),s=function(t,e,r=!1){let n=null;try{t.multistatus.response[0].propstat&&(n=t.multistatus.response[0])}catch(t){}if(!n)throw new Error("Failed getting item stat: bad response");const{propstat:{prop:o,status:i}}=n,[a,s,l]=i.split(" ",3),c=parseInt(s,10);if(c>=400){const t=new Error(`Invalid response: ${c} ${l}`);throw t.status=c,t}return Tr(o,$(e),r)}(await Or(a,t.parsing),e,n);return Ae(i,s,n)}async function Rr(t,e,r={}){if(!0===r.recursive)return async function(t,e,r={}){const n=function(t){if(!t||"/"===t)return[];let e=t;const r=[];do{r.push(e),e=I.dirname(e)}while(e&&"/"!==e);return r}($(e));n.sort((t,e)=>t.length>e.length?1:e.length>t.length?-1:0);let o=!1;for(const i of n)if(o)await Rr(t,i,{...r,recursive:!1});else try{if("directory"!==(await jr(t,i)).type)throw new Error(`Path includes a file: ${e}`)}catch(e){if(404!==e.status)throw e;o=!0,await Rr(t,i,{...r,recursive:!1})}}(t,e,r);const n=Et({url:F(t.remoteURL,(o=L(e),o.endsWith("/")?o:o+"/")),method:"MKCOL"},t,r);var o;we(t,await _t(n,t))}!function(t){t.Array="array",t.Object="object",t.Original="original"}(xr||(xr={}));const Nr=()=>{};var Pr=n(62045).hp;const Ir=t=>t;function kr(t,e){let r="";return e.format&&e.indentBy.length>0&&(r="\n"),Mr(t,e,"",r)}function Mr(t,e,r,n){let o="",i=!1;for(let a=0;a`,i=!1;continue}if(l===e.commentPropName){o+=n+`\x3c!--${s[l][0][e.textNodeName]}--\x3e`,i=!0;continue}if("?"===l[0]){const t=Dr(s[":@"],e),r="?xml"===l?"":n;let a=s[l][0][e.textNodeName];a=0!==a.length?" "+a:"",o+=r+`<${l}${a}${t}?>`,i=!0;continue}let u=n;""!==u&&(u+=e.indentBy);const p=n+`<${l}${Dr(s[":@"],e)}`,f=Mr(s[l],e,c,u);-1!==e.unpairedTags.indexOf(l)?e.suppressUnpairedNode?o+=p+">":o+=p+"/>":f&&0!==f.length||!e.suppressEmptyNode?f&&f.endsWith(">")?o+=p+`>${f}${n}`:(o+=p+">",f&&""!==n&&(f.includes("/>")||f.includes("`):o+=p+"/>",i=!0}return o}function Lr(t){const e=Object.keys(t);for(let r=0;r0&&e.processEntities)for(let r=0;r","g"),val:">"},{regex:new RegExp("<","g"),val:"<"},{regex:new RegExp("'","g"),val:"'"},{regex:new RegExp('"',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1};function Br(t){this.options=Object.assign({},Fr,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=Ue(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=Hr),this.processTextOrObjNode=Wr,this.options.format?(this.indentate=qr,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function Wr(t,e,r,n){const o=this.j2x(t,r+1,n.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,o.attrStr,r):this.buildObjectNode(o.val,e,o.attrStr,r)}function qr(t){return this.options.indentBy.repeat(t)}function Hr(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}function Vr(t){return new Br({attributeNamePrefix:"@_",format:!0,ignoreAttributes:!1,suppressEmptyNode:!0}).build(zr({lockinfo:{"@_xmlns:d":"DAV:",lockscope:{exclusive:{}},locktype:{write:{}},owner:{href:t}}},"d"))}function zr(t,e){const r={...t};for(const t in r)r.hasOwnProperty(t)&&(r[t]&&"object"==typeof r[t]&&-1===t.indexOf(":")?(r[`${e}:${t}`]=zr(r[t],e),delete r[t]):!1===/^@_/.test(t)&&(r[`${e}:${t}`]=r[t],delete r[t]));return r}Br.prototype.build=function(t){return this.options.preserveOrder?kr(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},Br.prototype.j2x=function(t,e,r){let n="",o="";const i=r.join(".");for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))if(void 0===t[a])this.isAttribute(a)&&(o+="");else if(null===t[a])this.isAttribute(a)||a===this.options.cdataPropName?o+="":"?"===a[0]?o+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:o+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if(t[a]instanceof Date)o+=this.buildTextValNode(t[a],a,"",e);else if("object"!=typeof t[a]){const r=this.isAttribute(a);if(r&&!this.ignoreAttributesFn(r,i))n+=this.buildAttrPairStr(r,""+t[a]);else if(!r)if(a===this.options.textNodeName){let e=this.options.tagValueProcessor(a,""+t[a]);o+=this.replaceEntitiesValue(e)}else o+=this.buildTextValNode(t[a],a,"",e)}else if(Array.isArray(t[a])){const n=t[a].length;let i="",s="";for(let l=0;l"+t+o}},Br.prototype.closeTag=function(t){let e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(n)+`\x3c!--${t}--\x3e`+this.newLine;if("?"===e[0])return this.indentate(n)+"<"+e+r+"?"+this.tagEndChar;{let o=this.options.tagValueProcessor(e,t);return o=this.replaceEntitiesValue(o),""===o?this.indentate(n)+"<"+e+r+this.closeTag(e)+this.tagEndChar:this.indentate(n)+"<"+e+r+">"+o+"0&&this.options.processEntities)for(let e=0;et.trim()),server:o.headers.get("Server")??""}}const Xr="https://github.com/perry-mitchell/webdav-client/blob/master/LOCK_CONTACT.md";var Zr=n(63814);function Qr(){return(0,Zr.dC)("dav/comments")}const Jr=function(t,e={}){const{authType:r=null,remoteBasePath:n,contactHref:o=Xr,ha1:i,headers:a={},httpAgent:s,httpsAgent:l,password:c,token:u,username:p,withCredentials:f}=e;let h=r;h||(h=p||c?et.Password:et.None);const d={authType:h,remoteBasePath:n,contactHref:o,ha1:i,headers:Object.assign({},a),httpAgent:s,httpsAgent:l,password:c,parsing:{attributeNamePrefix:e.attributeNamePrefix??"@",attributeParsers:[],tagParsers:[_r]},remotePath:U(t),remoteURL:t,token:u,username:p,withCredentials:f};return nt(d,p,c,u,i),{copyFile:(t,e,r)=>async function(t,e,r,n={}){const o=Et({url:F(t.remoteURL,L(e)),method:"COPY",headers:{Destination:F(t.remoteURL,L(r)),Overwrite:!1===n.overwrite?"F":"T",Depth:n.shallow?"0":"infinity"}},t,n);we(t,await _t(o,t))}(d,t,e,r),createDirectory:(t,e)=>Rr(d,t,e),createReadStream:(t,e)=>function(t,e,r={}){const n=new(0,bt.PassThrough);return async function(t,e,r={}){const n={};if("object"==typeof r.range&&"number"==typeof r.range.start){let t=`bytes=${r.range.start}-`;"number"==typeof r.range.end&&(t=`${t}${r.range.end}`),n.Range=t}const o=Et({url:F(t.remoteURL,L(e)),method:"GET",headers:n},t,r),i=await _t(o,t);if(we(t,i),n.Range&&206!==i.status){const t=new Error(`Invalid response code for partial request: ${i.status}`);throw t.status=i.status,t}return r.callback&&setTimeout(()=>{r.callback(i)},0),i.body}(t,e,r).then(t=>{t.pipe(n)}).catch(t=>{n.emit("error",t)}),n}(d,t,e),createWriteStream:(t,e,r)=>function(t,e,r={},n=Nr){const o=new(0,bt.PassThrough),i={};return!1===r.overwrite&&(i["If-None-Match"]="*"),_t(Et({url:F(t.remoteURL,L(e)),method:"PUT",headers:i,data:o,maxRedirects:0},t,r),t).then(e=>we(t,e)).then(t=>{setTimeout(()=>{n(t)},0)}).catch(t=>{o.emit("error",t)}),o}(d,t,e,r),customRequest:(t,e)=>async function(t,e,r){r.url||(r.url=F(t.remoteURL,L(e)));const n=Et(r,t,{}),o=await _t(n,t);return we(t,o),o}(d,t,e),deleteFile:(t,e)=>async function(t,e,r={}){const n=Et({url:F(t.remoteURL,L(e)),method:"DELETE"},t,r);we(t,await _t(n,t))}(d,t,e),exists:(t,e)=>async function(t,e,r={}){try{return await jr(t,e,r),!0}catch(t){if(404===t.status)return!1;throw t}}(d,t,e),getDirectoryContents:(t,e)=>async function(t,e,r={}){const n=Et({url:F(t.remoteURL,L(e),"/"),method:"PROPFIND",headers:{Accept:"text/plain,application/xml",Depth:r.deep?"infinity":"1"}},t,r),o=await _t(n,t);we(t,o);const i=await o.text();if(!i)throw new Error("Failed parsing directory contents: Empty response");const a=await Or(i,t.parsing),s=D(e);let l=function(t,e,r,n=!1,o=!1){const i=I.join(e,"/"),{multistatus:{response:a}}=t,s=a.map(t=>{const e=function(t){try{return t.replace(/^https?:\/\/[^\/]+/,"")}catch(t){throw new P(t,"Failed normalising HREF")}}(t.href),{propstat:{prop:r}}=t;return Tr(r,"/"===i?decodeURIComponent($(e)):$(I.relative(decodeURIComponent(i),decodeURIComponent(e))),n)});return o?s:s.filter(t=>t.basename&&("file"===t.type||t.filename!==r.replace(/\/$/,"")))}(a,D(t.remoteBasePath||t.remotePath),s,r.details,r.includeSelf);return r.glob&&(l=function(t,e){return t.filter(t=>zt(t.filename,e,{matchBase:!0}))}(l,r.glob)),Ae(o,l,r.details)}(d,t,e),getFileContents:(t,e)=>async function(t,e,r={}){const{format:n="binary"}=r;if("binary"!==n&&"text"!==n)throw new P({info:{code:rt.InvalidOutputFormat}},`Invalid output format: ${n}`);return"text"===n?async function(t,e,r={}){const n=Et({url:F(t.remoteURL,L(e)),method:"GET",headers:{Accept:"text/plain"},transformResponse:[Ir]},t,r),o=await _t(n,t);we(t,o);const i=await o.text();return Ae(o,i,r.details)}(t,e,r):async function(t,e,r={}){const n=Et({url:F(t.remoteURL,L(e)),method:"GET"},t,r),o=await _t(n,t);let i;return we(t,o),i=ft()||pt()?await o.arrayBuffer():Pr.from(await o.arrayBuffer()),Ae(o,i,r.details)}(t,e,r)}(d,t,e),getFileDownloadLink:t=>function(t,e){let r=F(t.remoteURL,L(e));const n=/^https:/i.test(r)?"https":"http";switch(t.authType){case et.None:break;case et.Password:{const e=Z(t.headers.Authorization.replace(/^Basic /i,"").trim());r=r.replace(/^https?:\/\//,`${n}://${e}@`);break}default:throw new P({info:{code:rt.LinkUnsupportedAuthType}},`Unsupported auth type for file link: ${t.authType}`)}return r}(d,t),getFileUploadLink:t=>function(t,e){let r=`${F(t.remoteURL,L(e))}?Content-Type=application/octet-stream`;const n=/^https:/i.test(r)?"https":"http";switch(t.authType){case et.None:break;case et.Password:{const e=Z(t.headers.Authorization.replace(/^Basic /i,"").trim());r=r.replace(/^https?:\/\//,`${n}://${e}@`);break}default:throw new P({info:{code:rt.LinkUnsupportedAuthType}},`Unsupported auth type for file link: ${t.authType}`)}return r}(d,t),getHeaders:()=>Object.assign({},d.headers),getQuota:t=>async function(t,e={}){const r=e.path||"/",n=Et({url:F(t.remoteURL,r),method:"PROPFIND",headers:{Accept:"text/plain,application/xml",Depth:"0"}},t,e),o=await _t(n,t);we(t,o);const i=await o.text();return Ae(o,function(t){try{const[e]=t.multistatus.response,{propstat:{prop:{"quota-used-bytes":r,"quota-available-bytes":n}}}=e;return void 0!==r&&void 0!==n?{used:parseInt(String(r),10),available:Cr(n)}:null}catch(t){}return null}(await Or(i,t.parsing)),e.details)}(d,t),lock:(t,e)=>async function(t,e,r={}){const{refreshToken:n,timeout:o=Gr}=r,i={Accept:"text/plain,application/xml",Timeout:o};n&&(i.If=n);const a=Et({url:F(t.remoteURL,L(e)),method:"LOCK",headers:i,data:Vr(t.contactHref)},t,r),s=await _t(a,t);we(t,s);const l=(p=await s.text(),new Ar({removeNSPrefix:!0,parseAttributeValue:!0,parseTagValue:!0}).parse(p)),c=Er.get(l,"prop.lockdiscovery.activelock.locktoken.href"),u=Er.get(l,"prop.lockdiscovery.activelock.timeout");var p;if(!c)throw ve(s,"No lock token received: ");return{token:c,serverTimeout:u}}(d,t,e),moveFile:(t,e,r)=>async function(t,e,r,n={}){const o=Et({url:F(t.remoteURL,L(e)),method:"MOVE",headers:{Destination:F(t.remoteURL,L(r)),Overwrite:!1===n.overwrite?"F":"T"}},t,n);we(t,await _t(o,t))}(d,t,e,r),putFileContents:(t,e,r)=>async function(t,e,r,n={}){const{contentLength:o=!0,overwrite:i=!0}=n,a={"Content-Type":"application/octet-stream"};!ft()&&!pt()&&void 0!==bt&&void 0!==bt?.Readable&&r instanceof bt.Readable||!1===o||(a["Content-Length"]="number"==typeof o?`${o}`:`${function(t){if(At(t))return t.byteLength;if(xt(t))return t.length;if("string"==typeof t)return(0,Kr.d)(t);throw new P({info:{code:rt.DataTypeNoLength}},"Cannot calculate data length: Invalid type")}(r)}`),i||(a["If-None-Match"]="*");const s=Et({url:F(t.remoteURL,L(e)),method:"PUT",headers:a,data:r},t,n),l=await _t(s,t);try{we(t,l)}catch(t){const e=t;if(412!==e.status||i)throw e;return!1}return!0}(d,t,e,r),partialUpdateFileContents:(t,e,r,n,o)=>async function(t,e,r,n,o,i={}){const a=await Yr(t,e,i);if(a.compliance.includes("sabredav-partialupdate"))return await async function(t,e,r,n,o,i={}){if(r>n||r<0)throw new P({info:{code:rt.InvalidUpdateRange}},`Invalid update range ${r} for partial update`);const a={"Content-Type":"application/x-sabredav-partialupdate","Content-Length":""+(n-r+1),"X-Update-Range":`bytes=${r}-${n}`},s=Et({url:F(t.remoteURL,L(e)),method:"PATCH",headers:a,data:o},t,i);we(t,await _t(s,t))}(t,e,r,n,o,i);if(a.server.includes("Apache")&&a.compliance.includes(""))return await async function(t,e,r,n,o,i={}){if(r>n||r<0)throw new P({info:{code:rt.InvalidUpdateRange}},`Invalid update range ${r} for partial update`);const a={"Content-Type":"application/octet-stream","Content-Length":""+(n-r+1),"Content-Range":`bytes ${r}-${n}/*`},s=Et({url:F(t.remoteURL,L(e)),method:"PUT",headers:a,data:o},t,i);we(t,await _t(s,t))}(t,e,r,n,o,i);throw new P({info:{code:rt.NotSupported}},"Not supported")}(d,t,e,r,n,o),getDAVCompliance:t=>Yr(d,t),search:(t,e)=>async function(t,e,r={}){const{details:n=!1}=r,o=Et({url:F(t.remoteURL,L(e)),method:"SEARCH",headers:{Accept:"text/plain,application/xml","Content-Type":t.headers["Content-Type"]||"application/xml; charset=utf-8"}},t,r),i=await _t(o,t);we(t,i);const a=await i.text(),s=function(t,e,r){const n={truncated:!1,results:[]};return n.truncated=t.multistatus.response.some(t=>"507"===(t.status||t.propstat?.status).split(" ",3)?.[1]&&t.href.replace(/\/$/,"").endsWith(L(e).replace(/\/$/,""))),t.multistatus.response.forEach(t=>{if(void 0===t.propstat)return;const e=t.href.split("/").map(decodeURIComponent).join("/");n.results.push(Tr(t.propstat.prop,e,r))}),n}(await Or(a,t.parsing),e,n);return Ae(i,s,n)}(d,t,e),setHeaders:t=>{d.headers=Object.assign({},t)},stat:(t,e)=>jr(d,t,e),unlock:(t,e,r)=>async function(t,e,r,n={}){const o=Et({url:F(t.remoteURL,L(e)),method:"UNLOCK",headers:{"Lock-Token":r}},t,n),i=await _t(o,t);if(we(t,i),204!==i.status&&200!==i.status)throw ve(i)}(d,t,e,r),registerAttributeParser:t=>{d.parsing.attributeParsers.push(t)},registerTagParser:t=>{d.parsing.tagParsers.push(t)}}}(Qr());function tn(t){Jr.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:t??""})}(0,i.zo)(tn),tn((0,i.do)());const en=Jr;var rn=n(19051);function nn(t,e=1){const r=new DOMParser;let n=t;for(let t=0;t({idsInLimbo:[]}),actions:{addId(t){this.idsInLimbo.push(t)},removeId(t){const e=this.idsInLimbo.indexOf(t);e>-1&&this.idsInLimbo.splice(e,1)},checkForId(t){return this.idsInLimbo.includes(t)}}}),an={props:{id:{type:Number,default:null},message:{type:String,default:""},resourceId:{type:[String,Number],required:!0},resourceType:{type:String,default:"files"}},data:()=>({deleted:!1,editing:!1,loading:!1}),computed:{...(0,s.n2)(on)},methods:{onEdit(){this.editing=!0},onEditCancel(){this.editing=!1,this.updateLocalMessage(this.message)},async onEditComment(e){this.loading=!0;try{await async function(t,e,r,n){const o=["",t,e,r].join("/");return await en.customRequest(o,{method:"PROPPATCH",data:`\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${n}\n\t\t\t\t\n\t\t\t\n\t\t\t`})}(this.resourceType,this.resourceId,this.id,e),o.debug("Comment edited",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id,message:e}),this.$emit("update:message",e),this.editing=!1}catch(e){(0,c.Qg)(t("comments","An error occurred while trying to edit the comment")),o.error("An error occurred while trying to edit the comment",{error:e})}finally{this.loading=!1}},onDeleteWithUndo(){this.$emit("delete"),this.deleted=!0,this.deletedCommentLimboStore.addId(this.id);const e=setTimeout(this.onDelete,c.Br);(0,c._h)(t("comments","Comment deleted"),()=>{clearTimeout(e),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)})},async onDelete(){try{await async function(t,e,r){const n=["",t,e,r].join("/");await en.deleteFile(n)}(this.resourceType,this.resourceId,this.id),o.debug("Comment deleted",{resourceType:this.resourceType,resourceId:this.resourceId,id:this.id}),this.$emit("delete",this.id)}catch(e){(0,c.Qg)(t("comments","An error occurred while trying to delete the comment")),o.error("An error occurred while trying to delete the comment",{error:e}),this.deleted=!1,this.deletedCommentLimboStore.removeId(this.id)}},async onNewComment(e){this.loading=!0;try{const t=await async function(t,e,r){const n=["",t,e].join("/"),o=await rn.Ay.post(Qr()+n,{actorDisplayName:(0,i.HW)().displayName,actorId:(0,i.HW)().uid,actorType:"users",creationDateTime:(new Date).toUTCString(),message:r,objectType:t,verb:"comment"}),a=n+"/"+parseInt(o.headers["content-location"].split("/").pop()),s=await en.stat(a,{details:!0}),l=s.data.props;return l.actorDisplayName=nn(l.actorDisplayName,2),l.message=nn(l.message,2),s.data}(this.resourceType,this.resourceId,e);o.debug("New comment posted",{resourceType:this.resourceType,resourceId:this.resourceId,newComment:t}),this.$emit("new",t),this.$emit("update:message",""),this.localMessage=""}catch(e){(0,c.Qg)(t("comments","An error occurred while trying to create the comment")),o.error("An error occurred while trying to create the comment",{error:e})}finally{this.loading=!1}}}},sn={name:"Comment",components:{IconArrowRight:S.A,IconClose:O.A,IconTrashCanOutline:C.A,IconPencilOutline:T.A,NcActionButton:b.A,NcActions:v.A,NcActionSeparator:w.A,NcAvatar:A.A,NcButton:p.A,NcDateTime:x.A,NcLoadingIcon:E.A,NcRichContenteditable:()=>Promise.all([n.e(4208),n.e(5528)]).then(n.bind(n,95528)),NcRichText:()=>Promise.all([n.e(4208),n.e(4508)]).then(n.bind(n,64508))},mixins:[an],inheritAttrs:!1,props:{actorDisplayName:{type:String,required:!0},actorId:{type:String,required:!0},creationDateTime:{type:String,default:null},editor:{type:Boolean,default:!1},autoComplete:{type:Function,required:!0},userData:{type:Object,default:()=>({})},tag:{type:String,default:"div"}},data:()=>({expanded:!1,localMessage:"",submitted:!1}),computed:{...(0,s.n2)(on),isOwnComment(){return(0,i.HW)().uid===this.actorId},richContent(){const t={};let e=this.localMessage;return Object.keys(this.userData).forEach((r,n)=>{const o=`mention-${n}`,i=new RegExp(`@${r}|@"${r}"`,"g");e=e.replace(i,`{${o}}`),t[o]={component:_.A,props:{user:r,displayName:this.userData[r].label,primary:this.userData[r].primary}}}),{mentions:t,message:e}},isEmptyMessage(){return!this.localMessage||""===this.localMessage.trim()},timestamp(){return Date.parse(this.creationDateTime)},isLimbo(){return this.deletedCommentLimboStore.checkForId(this.id)}},watch:{message(t){this.updateLocalMessage(t)}},beforeMount(){this.updateLocalMessage(this.message)},methods:{t:a.Tl,updateLocalMessage(t){this.localMessage=t.toString(),this.submitted=!1},onSubmit(){if(""!==this.localMessage.trim())return this.editor?(this.onNewComment(this.localMessage.trim()),void this.$nextTick(()=>{this.$refs.editor.$el.focus()})):void this.onEditComment(this.localMessage.trim())},onExpand(){this.expanded=!0}}};var ln=n(85072),cn=n.n(ln),un=n(97825),pn=n.n(un),fn=n(77659),hn=n.n(fn),dn=n(55056),gn=n.n(dn),yn=n(10540),mn=n.n(yn),bn=n(41113),vn=n.n(bn),wn=n(22408),An={};An.styleTagTransform=vn(),An.setAttributes=gn(),An.insert=hn().bind(null,"head"),An.domAPI=pn(),An.insertStyleElement=mn(),cn()(wn.A,An),wn.A&&wn.A.locals&&wn.A.locals;var xn=(0,g.A)(sn,function(){var t=this,e=t._self._c;return e(t.tag,{directives:[{name:"show",rawName:"v-show",value:!t.deleted&&!t.isLimbo,expression:"!deleted && !isLimbo"}],tag:"component",staticClass:"comment",class:{"comment--loading":t.loading}},[e("div",{staticClass:"comment__side"},[e("NcAvatar",{staticClass:"comment__avatar",attrs:{"display-name":t.actorDisplayName,user:t.actorId,size:32}})],1),t._v(" "),e("div",{staticClass:"comment__body"},[e("div",{staticClass:"comment__header"},[e("span",{staticClass:"comment__author"},[t._v(t._s(t.actorDisplayName))]),t._v(" "),t.isOwnComment&&t.id&&!t.loading?e("NcActions",{staticClass:"comment__actions"},[t.editing?e("NcActionButton",{on:{click:t.onEditCancel},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconClose",{attrs:{size:20}})]},proxy:!0}],null,!1,2888946197)},[t._v("\n\t\t\t\t\t"+t._s(t.t("comments","Cancel edit"))+"\n\t\t\t\t")]):[e("NcActionButton",{attrs:{"close-after-click":""},on:{click:t.onEdit},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconPencilOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,3345211262)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("comments","Edit comment"))+"\n\t\t\t\t\t")]),t._v(" "),e("NcActionSeparator"),t._v(" "),e("NcActionButton",{attrs:{"close-after-click":""},on:{click:t.onDeleteWithUndo},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconTrashCanOutline",{attrs:{size:20}})]},proxy:!0}],null,!1,1034796883)},[t._v("\n\t\t\t\t\t\t"+t._s(t.t("comments","Delete comment"))+"\n\t\t\t\t\t")])]],2):t._e(),t._v(" "),t.id&&t.loading?e("div",{staticClass:"comment_loading icon-loading-small"}):t.creationDateTime?e("NcDateTime",{staticClass:"comment__timestamp",attrs:{timestamp:t.timestamp,"ignore-seconds":!0}}):t._e()],1),t._v(" "),t.editor||t.editing?e("form",{staticClass:"comment__editor",on:{submit:function(t){t.preventDefault()}}},[e("div",{staticClass:"comment__editor-group"},[e("NcRichContenteditable",{ref:"editor",attrs:{"auto-complete":t.autoComplete,contenteditable:!t.loading,label:t.editor?t.t("comments","New comment"):t.t("comments","Edit comment"),placeholder:t.t("comments","Write a comment …"),"model-value":t.localMessage,"user-data":t.userData,"aria-describedby":"tab-comments__editor-description"},on:{"update:value":t.updateLocalMessage,submit:t.onSubmit}}),t._v(" "),e("div",{staticClass:"comment__submit"},[e("NcButton",{attrs:{variant:"tertiary-no-background",type:"submit","aria-label":t.t("comments","Post comment"),disabled:t.isEmptyMessage},on:{click:t.onSubmit},scopedSlots:t._u([{key:"icon",fn:function(){return[t.loading?e("NcLoadingIcon"):e("IconArrowRight",{attrs:{size:20}})]},proxy:!0}],null,!1,758946661)})],1)],1),t._v(" "),e("div",{staticClass:"comment__editor-description",attrs:{id:"tab-comments__editor-description"}},[t._v("\n\t\t\t\t"+t._s(t.t("comments","@ for mentions, : for emoji, / for smart picker"))+"\n\t\t\t")])]):e("NcRichText",{staticClass:"comment__message",class:{"comment__message--expanded":t.expanded},attrs:{text:t.richContent.message,arguments:t.richContent.mentions,"use-markdown":""},nativeOn:{click:function(e){return t.onExpand.apply(null,arguments)}}})],1)])},[],!1,null,"70317f94",null);const En=xn.exports;var _n=n(81222);const Sn=(0,l.pM)({props:{resourceId:{type:Number,required:!0},resourceType:{type:String,default:"files"}},data(){return{editorData:{actorDisplayName:(0,i.HW)().displayName,actorId:(0,i.HW)().uid,key:"editor"},userData:{},currentResourceId:this.resourceId}},methods:{async autoComplete(t,e){const{data:r}=await rn.Ay.get((0,Zr.KT)("core/autocomplete/get"),{params:{search:t,itemType:this.resourceType,itemId:this.currentResourceId,sorter:"commenters|share-recipients",limit:(0,_n.C)("comments","maxAutoCompleteResults")}});return r.ocs.data.forEach(t=>{this.userData[t.id]=t}),e(Object.values(this.userData))},genMentionsData(t){return Object.values(t).flat().forEach(t=>{this.userData[t.mentionId]={icon:"icon-user",id:t.mentionId,label:t.mentionDisplayName,source:"users",primary:(0,i.HW)()?.uid===t.mentionId}}),this.userData}}});async function On({resourceType:t,resourceId:e},r){const n=["",t,e].join("/"),o=r.datetime?`${r.datetime.toISOString()}`:"",i=await en.customRequest(n,{method:"REPORT",data:`\n\t\t\t\n\t\t\t\t${r.limit??20}\n\t\t\t\t${r.offset||0}\n\t\t\t\t${o}\n\t\t\t`,...r}),a=await i.text();return Ae(i,function(t,e=!1){const{multistatus:{response:r}}=t;return r.map(t=>{const r=t.propstat.prop;return Tr(r,r.id.toString(),e)})}(await Or(a),!0),!0)}const Tn={name:"Comments",components:{Comment:En,NcEmptyContent:f.A,NcButton:p.A,IconRefresh:m.A,IconMessageReplyTextOutline:y,IconAlertCircleOutline:h.A},directives:{elementVisibility:u.Zx},mixins:[Sn],data:()=>({error:"",loading:!1,done:!1,offset:0,comments:[],cancelRequest:()=>{},Comment:En,userData:{}}),computed:{hasComments(){return this.comments.length>0},isFirstLoading(){return this.loading&&0===this.offset}},watch:{resourceId(){this.currentResourceId=this.resourceId}},methods:{t:a.Tl,async onVisibilityChange(t){if(t)try{await function(t,e,r){const n=["",t,e].join("/"),o=r.toUTCString();return en.customRequest(n,{method:"PROPPATCH",data:`\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${o}\n\t\t\t\t\n\t\t\t\n\t\t\t`})}(this.resourceType,this.currentResourceId,new Date)}catch(t){(0,c.Qg)(t.message||(0,a.Tl)("comments","Failed to mark comments as read"))}},async update(t){this.currentResourceId=t,this.resetState(),await this.getComments()},onScrollBottomReached(){this.error||this.done||this.loading||this.getComments()},async getComments(){this.cancelRequest("cancel");try{this.loading=!0,this.error="";const{request:t,abort:e}=function(t){const e=new AbortController,r=e.signal;return{request:async function(e,n){return await t(e,{signal:r,...n})},abort:()=>e.abort()}}(On);this.cancelRequest=e;const{data:r}=await t({resourceType:this.resourceType,resourceId:this.currentResourceId},{offset:this.offset})||{data:[]};this.logger.debug(`Processed ${r.length} comments`,{comments:r}),r.length<20&&(this.done=!0);for(const t of r)t.props.actorId=t.props.actorId.toString();this.comments=[...this.comments,...r],this.offset+=20}catch(t){if("cancel"===t.message)return;this.error=(0,a.Tl)("comments","Unable to load the comments list"),o.error("Error loading the comments list",{error:t})}finally{this.loading=!1}},onNewComment(t){this.comments.unshift(t)},onDelete(t){const e=this.comments.findIndex(e=>e.props.id===t);e>-1?this.comments.splice(e,1):o.error("Could not find the deleted comment in the list",{id:t})},resetState(){this.error="",this.loading=!1,this.done=!1,this.offset=0,this.comments=[]}}},Cn=Tn;var jn=n(94262),Rn={};Rn.styleTagTransform=vn(),Rn.setAttributes=gn(),Rn.insert=hn().bind(null,"head"),Rn.domAPI=pn(),Rn.insertStyleElement=mn(),cn()(jn.A,Rn),jn.A&&jn.A.locals&&jn.A.locals;const Nn=(0,g.A)(Cn,function(){var t=this,e=t._self._c;return e("div",{directives:[{name:"element-visibility",rawName:"v-element-visibility",value:t.onVisibilityChange,expression:"onVisibilityChange"}],staticClass:"comments",class:{"icon-loading":t.isFirstLoading}},[e("Comment",t._b({staticClass:"comments__writer",attrs:{"auto-complete":t.autoComplete,"resource-type":t.resourceType,editor:!0,"user-data":t.userData,"resource-id":t.currentResourceId},on:{new:t.onNewComment}},"Comment",t.editorData,!1)),t._v(" "),t.isFirstLoading?t._e():[!t.hasComments&&t.done?e("NcEmptyContent",{staticClass:"comments__empty",attrs:{name:t.t("comments","No comments yet, start the conversation!")},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconMessageReplyTextOutline")]},proxy:!0}],null,!1,326612300)}):e("ul",t._l(t.comments,function(r){return e("Comment",t._b({key:r.props.id,staticClass:"comments__list",attrs:{tag:"li","auto-complete":t.autoComplete,"resource-type":t.resourceType,message:r.props.message,"resource-id":t.currentResourceId,"user-data":t.genMentionsData(r.props.mentions)},on:{"update:message":function(e){return t.$set(r.props,"message",e)},delete:t.onDelete}},"Comment",r.props,!1))}),1),t._v(" "),t.loading&&!t.isFirstLoading?e("div",{staticClass:"comments__info icon-loading"}):t.hasComments&&t.done?e("div",{staticClass:"comments__info"},[t._v("\n\t\t\t"+t._s(t.t("comments","No more messages"))+"\n\t\t")]):t.error?[e("NcEmptyContent",{staticClass:"comments__error",attrs:{name:t.error},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconAlertCircleOutline")]},proxy:!0}],null,!1,3663249556)}),t._v(" "),e("NcButton",{staticClass:"comments__retry",on:{click:t.getComments},scopedSlots:t._u([{key:"icon",fn:function(){return[e("IconRefresh")]},proxy:!0}],null,!1,2997625269)},[t._v("\n\t\t\t\t"+t._s(t.t("comments","Retry"))+"\n\t\t\t")])]:t._e()]],2)},[],!1,null,"6c8c157a",null).exports;l.Ay.use(s.R2),n.nc=(0,i.aV)(),l.Ay.mixin({data:()=>({logger:o}),methods:{t:a.t,n:a.n}}),window.OCA&&!window.OCA.Comments&&Object.assign(window.OCA,{Comments:{}}),Object.assign(window.OCA.Comments,{View:class{constructor(t="files",e={}){const r=(0,s.Ey)();return e={...e,propsData:{...e.propsData??{},resourceType:t},pinia:r},new(l.Ay.extend(Nn))(e)}}}),o.debug("OCA.Comments.View initialized")},8505(t){"use strict";function e(t,e,o){t instanceof RegExp&&(t=r(t,o)),e instanceof RegExp&&(e=r(e,o));var i=n(t,e,o);return i&&{start:i[0],end:i[1],pre:o.slice(0,i[0]),body:o.slice(i[0]+t.length,i[1]),post:o.slice(i[1]+e.length)}}function r(t,e){var r=e.match(t);return r?r[0]:null}function n(t,e,r){var n,o,i,a,s,l=r.indexOf(t),c=r.indexOf(e,l+1),u=l;if(l>=0&&c>0){if(t===e)return[l,c];for(n=[],i=r.length;u>=0&&!s;)u==l?(n.push(u),l=r.indexOf(t,u+1)):1==n.length?s=[n.pop(),c]:((o=n.pop())=0?l:c;n.length&&(s=[i,a])}return s}t.exports=e,e.range=n},85914(t,e,r){var n;t=r.nmd(t),function(){var o=(t&&t.exports,"object"==typeof globalThis&&globalThis);o.global!==o&&o.window;var i=function(t){this.message=t};(i.prototype=new Error).name="InvalidCharacterError";var a=function(t){throw new i(t)},s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",l=/[\t\n\f\r ]/g,c={encode:function(t){t=String(t),/[^\0-\xFF]/.test(t)&&a("The string to be encoded contains characters outside of the Latin1 range.");for(var e,r,n,o,i=t.length%3,l="",c=-1,u=t.length-i;++c>18&63)+s.charAt(o>>12&63)+s.charAt(o>>6&63)+s.charAt(63&o);return 2==i?(e=t.charCodeAt(c)<<8,r=t.charCodeAt(++c),l+=s.charAt((o=e+r)>>10)+s.charAt(o>>4&63)+s.charAt(o<<2&63)+"="):1==i&&(o=t.charCodeAt(c),l+=s.charAt(o>>2)+s.charAt(o<<4&63)+"=="),l},decode:function(t){var e=(t=String(t).replace(l,"")).length;e%4==0&&(e=(t=t.replace(/==?$/,"")).length),(e%4==1||/[^+a-zA-Z0-9/]/.test(t))&&a("Invalid character: the string to be decoded is not correctly encoded.");for(var r,n,o=0,i="",c=-1;++c>(-2*o&6)));return i},version:"1.0.0"};void 0===(n=function(){return c}.call(e,r,e,t))||(t.exports=n)}()},68928(t,e,r){var n=r(8505);t.exports=function(t){return t?("{}"===t.substr(0,2)&&(t="\\{\\}"+t.substr(2)),y(function(t){return t.split("\\\\").join(o).split("\\{").join(i).split("\\}").join(a).split("\\,").join(s).split("\\.").join(l)}(t),!0).map(u)):[]};var o="\0SLASH"+Math.random()+"\0",i="\0OPEN"+Math.random()+"\0",a="\0CLOSE"+Math.random()+"\0",s="\0COMMA"+Math.random()+"\0",l="\0PERIOD"+Math.random()+"\0";function c(t){return parseInt(t,10)==t?parseInt(t,10):t.charCodeAt(0)}function u(t){return t.split(o).join("\\").split(i).join("{").split(a).join("}").split(s).join(",").split(l).join(".")}function p(t){if(!t)return[""];var e=[],r=n("{","}",t);if(!r)return t.split(",");var o=r.pre,i=r.body,a=r.post,s=o.split(",");s[s.length-1]+="{"+i+"}";var l=p(a);return a.length&&(s[s.length-1]+=l.shift(),s.push.apply(s,l)),e.push.apply(e,s),e}function f(t){return"{"+t+"}"}function h(t){return/^-?0\d/.test(t)}function d(t,e){return t<=e}function g(t,e){return t>=e}function y(t,e){var r=[],o=n("{","}",t);if(!o)return[t];var i=o.pre,s=o.post.length?y(o.post,!1):[""];if(/\$$/.test(o.pre))for(var l=0;l=0;if(!A&&!x)return o.post.match(/,(?!,).*\}/)?y(t=o.pre+"{"+o.body+a+o.post):[t];if(A)m=o.body.split(/\.\./);else if(1===(m=p(o.body)).length&&1===(m=y(m[0],!1).map(f)).length)return s.map(function(t){return o.pre+m[0]+t});if(A){var E=c(m[0]),_=c(m[1]),S=Math.max(m[0].length,m[1].length),O=3==m.length?Math.abs(c(m[2])):1,T=d;_0){var P=new Array(N+1).join("0");R=j<0?"-"+P+R.slice(1):P+R}}b.push(R)}}else{b=[];for(var I=0;I0?r:0),!0)},o?o(t.exports,"apply",{value:a}):t.exports.apply=a},36556(t,e,r){"use strict";var n=r(70453),o=r(73126),i=o([n("%String.prototype.indexOf%")]);t.exports=function(t,e){var r=n(t,!!e);return"function"==typeof r&&i(t,".prototype.")>-1?o([r]):r}},22408(t,e,r){"use strict";r.d(e,{A:()=>s});var n=r(71354),o=r.n(n),i=r(76314),a=r.n(i)()(o());a.push([t.id,".comment[data-v-70317f94]{display:flex;gap:8px;padding:5px 10px}.comment__side[data-v-70317f94]{display:flex;align-items:flex-start;padding-top:6px}.comment__body[data-v-70317f94]{display:flex;flex-grow:1;flex-direction:column;container-type:inline-size}.comment__header[data-v-70317f94]{display:flex;align-items:center;min-height:44px}.comment__actions[data-v-70317f94]{margin-inline-start:10px !important}.comment__author[data-v-70317f94]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.comment_loading[data-v-70317f94],.comment__timestamp[data-v-70317f94]{margin-inline-start:auto;text-align:end;white-space:nowrap;color:var(--color-text-maxcontrast)}.comment__editor-group[data-v-70317f94]{position:relative}.comment__editor-description[data-v-70317f94]{color:var(--color-text-maxcontrast);padding-block:var(--default-grid-baseline)}.comment__submit[data-v-70317f94]{position:absolute !important;bottom:5px;inset-inline-end:0}.comment__message[data-v-70317f94]{white-space:pre-wrap;word-break:normal;max-height:200px;overflow:auto;scrollbar-gutter:stable;scrollbar-width:thin;margin-top:-6px}.comment__message--expanded[data-v-70317f94]{max-height:none;overflow:visible}.comment__message[data-v-70317f94] img{max-width:100%;height:auto}.rich-contenteditable__input[data-v-70317f94]{min-height:44px;margin:0;padding:10px}","",{version:3,sources:["webpack://./apps/comments/src/components/Comment.vue"],names:[],mappings:"AAKA,0BACC,YAAA,CACA,OAAA,CACA,gBAAA,CAEA,gCACC,YAAA,CACA,sBAAA,CACA,eAAA,CAGD,gCACC,YAAA,CACA,WAAA,CACA,qBAAA,CACA,0BAAA,CAGD,kCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAGD,mCACC,mCAAA,CAGD,kCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,uEAEC,wBAAA,CACA,cAAA,CACA,kBAAA,CACA,mCAAA,CAGD,wCACC,iBAAA,CAGD,8CACC,mCAAA,CACA,0CAAA,CAGD,kCACC,4BAAA,CACA,UAAA,CACA,kBAAA,CAGD,mCACC,oBAAA,CACA,iBAAA,CACA,gBAAA,CACA,aAAA,CACA,uBAAA,CACA,oBAAA,CACA,eAAA,CACA,6CACC,eAAA,CACA,gBAAA,CAED,uCACC,cAAA,CACA,WAAA,CAKH,8CACC,eAAA,CACA,QAAA,CACA,YAlFiB",sourcesContent:['\n@use "sass:math";\n\n$comment-padding: 10px;\n\n.comment {\n\tdisplay: flex;\n\tgap: 8px;\n\tpadding: 5px $comment-padding;\n\n\t&__side {\n\t\tdisplay: flex;\n\t\talign-items: flex-start;\n\t\tpadding-top: 6px;\n\t}\n\n\t&__body {\n\t\tdisplay: flex;\n\t\tflex-grow: 1;\n\t\tflex-direction: column;\n\t\tcontainer-type: inline-size;\n\t}\n\n\t&__header {\n\t\tdisplay: flex;\n\t\talign-items: center;\n\t\tmin-height: 44px;\n\t}\n\n\t&__actions {\n\t\tmargin-inline-start: $comment-padding !important;\n\t}\n\n\t&__author {\n\t\toverflow: hidden;\n\t\twhite-space: nowrap;\n\t\ttext-overflow: ellipsis;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&_loading,\n\t&__timestamp {\n\t\tmargin-inline-start: auto;\n\t\ttext-align: end;\n\t\twhite-space: nowrap;\n\t\tcolor: var(--color-text-maxcontrast);\n\t}\n\n\t&__editor-group {\n\t\tposition: relative;\n\t}\n\n\t&__editor-description {\n\t\tcolor: var(--color-text-maxcontrast);\n\t\tpadding-block: var(--default-grid-baseline);\n\t}\n\n\t&__submit {\n\t\tposition: absolute !important;\n\t\tbottom: 5px;\n\t\tinset-inline-end: 0;\n\t}\n\n\t&__message {\n\t\twhite-space: pre-wrap;\n\t\tword-break: normal;\n\t\tmax-height: 200px;\n\t\toverflow: auto;\n\t\tscrollbar-gutter: stable;\n\t\tscrollbar-width: thin;\n\t\tmargin-top: -6px;\n\t\t&--expanded {\n\t\t\tmax-height: none;\n\t\t\toverflow: visible;\n\t\t}\n\t\t:deep(img) {\n\t\t\tmax-width: 100%;\n\t\t\theight: auto;\n\t\t}\n\t}\n}\n\n.rich-contenteditable__input {\n\tmin-height: 44px;\n\tmargin: 0;\n\tpadding: $comment-padding;\n}\n\n'],sourceRoot:""}]);const s=a},94262(t,e,r){"use strict";r.d(e,{A:()=>s});var n=r(71354),o=r.n(n),i=r(76314),a=r.n(i)()(o());a.push([t.id,".comments[data-v-6c8c157a]{min-height:100%;display:flex;flex-direction:column}.comments__empty[data-v-6c8c157a],.comments__error[data-v-6c8c157a]{flex:1 0}.comments__retry[data-v-6c8c157a]{margin:0 auto}.comments__info[data-v-6c8c157a]{height:60px;color:var(--color-text-maxcontrast);text-align:center;line-height:60px}","",{version:3,sources:["webpack://./apps/comments/src/views/Comments.vue"],names:[],mappings:"AACA,2BACC,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,oEAEC,QAAA,CAGD,kCACC,aAAA,CAGD,iCACC,WAAA,CACA,mCAAA,CACA,iBAAA,CACA,gBAAA",sourcesContent:["\n.comments {\n\tmin-height: 100%;\n\tdisplay: flex;\n\tflex-direction: column;\n\n\t&__empty,\n\t&__error {\n\t\tflex: 1 0;\n\t}\n\n\t&__retry {\n\t\tmargin: 0 auto;\n\t}\n\n\t&__info {\n\t\theight: 60px;\n\t\tcolor: var(--color-text-maxcontrast);\n\t\ttext-align: center;\n\t\tline-height: 60px;\n\t}\n}\n"],sourceRoot:""}]);const s=a},30041(t,e,r){"use strict";var n=r(30655),o=r(58068),i=r(69675),a=r(75795);t.exports=function(t,e,r){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new i("`obj` must be an object or a function`");if("string"!=typeof e&&"symbol"!=typeof e)throw new i("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new i("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new i("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new i("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new i("`loose`, if provided, must be a boolean");var s=arguments.length>3?arguments[3]:null,l=arguments.length>4?arguments[4]:null,c=arguments.length>5?arguments[5]:null,u=arguments.length>6&&arguments[6],p=!!a&&a(t,e);if(n)n(t,e,{configurable:null===c&&p?p.configurable:!c,enumerable:null===s&&p?p.enumerable:!s,value:r,writable:null===l&&p?p.writable:!l});else{if(!u&&(s||l||c))throw new o("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");t[e]=r}}},7176(t,e,r){"use strict";var n,o=r(73126),i=r(75795);try{n=[].__proto__===Array.prototype}catch(t){if(!t||"object"!=typeof t||!("code"in t)||"ERR_PROTO_ACCESS"!==t.code)throw t}var a=!!n&&i&&i(Object.prototype,"__proto__"),s=Object,l=s.getPrototypeOf;t.exports=a&&"function"==typeof a.get?o([a.get]):"function"==typeof l&&function(t){return l(null==t?t:s(t))}},30655(t){"use strict";var e=Object.defineProperty||!1;if(e)try{e({},"a",{value:1})}catch(t){e=!1}t.exports=e},41237(t){"use strict";t.exports=EvalError},69383(t){"use strict";t.exports=Error},79290(t){"use strict";t.exports=RangeError},79538(t){"use strict";t.exports=ReferenceError},58068(t){"use strict";t.exports=SyntaxError},69675(t){"use strict";t.exports=TypeError},35345(t){"use strict";t.exports=URIError},79612(t){"use strict";t.exports=Object},82682(t,e,r){"use strict";var n=r(69600),o=Object.prototype.toString,i=Object.prototype.hasOwnProperty;t.exports=function(t,e,r){if(!n(e))throw new TypeError("iterator must be a function");var a,s;arguments.length>=3&&(a=r),s=t,"[object Array]"===o.call(s)?function(t,e,r){for(var n=0,o=t.length;ne},70453(t,e,r){"use strict";var n,o=r(79612),i=r(69383),a=r(41237),s=r(79290),l=r(79538),c=r(58068),u=r(69675),p=r(35345),f=r(71514),h=r(58968),d=r(6188),g=r(68002),y=r(75880),m=r(70414),b=r(73093),v=Function,w=function(t){try{return v('"use strict"; return ('+t+").constructor;")()}catch(t){}},A=r(75795),x=r(30655),E=function(){throw new u},_=A?function(){try{return E}catch(t){try{return A(arguments,"callee").get}catch(t){return E}}}():E,S=r(64039)(),O=r(93628),T=r(71064),C=r(48648),j=r(11002),R=r(10076),N={},P="undefined"!=typeof Uint8Array&&O?O(Uint8Array):n,I={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?n:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer,"%ArrayIteratorPrototype%":S&&O?O([][Symbol.iterator]()):n,"%AsyncFromSyncIteratorPrototype%":n,"%AsyncFunction%":N,"%AsyncGenerator%":N,"%AsyncGeneratorFunction%":N,"%AsyncIteratorPrototype%":N,"%Atomics%":"undefined"==typeof Atomics?n:Atomics,"%BigInt%":"undefined"==typeof BigInt?n:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?n:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?n:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?n:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":i,"%eval%":eval,"%EvalError%":a,"%Float16Array%":"undefined"==typeof Float16Array?n:Float16Array,"%Float32Array%":"undefined"==typeof Float32Array?n:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?n:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?n:FinalizationRegistry,"%Function%":v,"%GeneratorFunction%":N,"%Int8Array%":"undefined"==typeof Int8Array?n:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?n:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?n:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":S&&O?O(O([][Symbol.iterator]())):n,"%JSON%":"object"==typeof JSON?JSON:n,"%Map%":"undefined"==typeof Map?n:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&S&&O?O((new Map)[Symbol.iterator]()):n,"%Math%":Math,"%Number%":Number,"%Object%":o,"%Object.getOwnPropertyDescriptor%":A,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?n:Promise,"%Proxy%":"undefined"==typeof Proxy?n:Proxy,"%RangeError%":s,"%ReferenceError%":l,"%Reflect%":"undefined"==typeof Reflect?n:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?n:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&S&&O?O((new Set)[Symbol.iterator]()):n,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":S&&O?O(""[Symbol.iterator]()):n,"%Symbol%":S?Symbol:n,"%SyntaxError%":c,"%ThrowTypeError%":_,"%TypedArray%":P,"%TypeError%":u,"%Uint8Array%":"undefined"==typeof Uint8Array?n:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?n:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?n:Uint32Array,"%URIError%":p,"%WeakMap%":"undefined"==typeof WeakMap?n:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?n:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?n:WeakSet,"%Function.prototype.call%":R,"%Function.prototype.apply%":j,"%Object.defineProperty%":x,"%Object.getPrototypeOf%":T,"%Math.abs%":f,"%Math.floor%":h,"%Math.max%":d,"%Math.min%":g,"%Math.pow%":y,"%Math.round%":m,"%Math.sign%":b,"%Reflect.getPrototypeOf%":C};if(O)try{null.error}catch(t){var k=O(O(t));I["%Error.prototype%"]=k}var M=function t(e){var r;if("%AsyncFunction%"===e)r=w("async function () {}");else if("%GeneratorFunction%"===e)r=w("function* () {}");else if("%AsyncGeneratorFunction%"===e)r=w("async function* () {}");else if("%AsyncGenerator%"===e){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if("%AsyncIteratorPrototype%"===e){var o=t("%AsyncGenerator%");o&&O&&(r=O(o.prototype))}return I[e]=r,r},L={__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"]},D=r(66743),$=r(9957),U=D.call(R,Array.prototype.concat),F=D.call(j,Array.prototype.splice),B=D.call(R,String.prototype.replace),W=D.call(R,String.prototype.slice),q=D.call(R,RegExp.prototype.exec),H=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,V=/\\(\\)?/g,z=function(t,e){var r,n=t;if($(L,n)&&(n="%"+(r=L[n])[0]+"%"),$(I,n)){var o=I[n];if(o===N&&(o=M(n)),void 0===o&&!e)throw new u("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:r,name:n,value:o}}throw new c("intrinsic "+t+" does not exist!")};t.exports=function(t,e){if("string"!=typeof t||0===t.length)throw new u("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof e)throw new u('"allowMissing" argument must be a boolean');if(null===q(/^%?[^%]*%?$/,t))throw new c("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=function(t){var e=W(t,0,1),r=W(t,-1);if("%"===e&&"%"!==r)throw new c("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==e)throw new c("invalid intrinsic syntax, expected opening `%`");var n=[];return B(t,H,function(t,e,r,o){n[n.length]=r?B(o,V,"$1"):e||t}),n}(t),n=r.length>0?r[0]:"",o=z("%"+n+"%",e),i=o.name,a=o.value,s=!1,l=o.alias;l&&(n=l[0],F(r,U([0,1],l)));for(var p=1,f=!0;p=r.length){var y=A(a,h);a=(f=!!y)&&"get"in y&&!("originalValue"in y.get)?y.get:a[h]}else f=$(a,h),a=a[h];f&&!s&&(I[i]=a)}}return a}},71064(t,e,r){"use strict";var n=r(79612);t.exports=n.getPrototypeOf||null},48648(t){"use strict";t.exports="undefined"!=typeof Reflect&&Reflect.getPrototypeOf||null},93628(t,e,r){"use strict";var n=r(48648),o=r(71064),i=r(7176);t.exports=n?function(t){return n(t)}:o?function(t){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("getProto: not an object");return o(t)}:i?function(t){return i(t)}:null},6549(t){"use strict";t.exports=Object.getOwnPropertyDescriptor},75795(t,e,r){"use strict";var n=r(6549);if(n)try{n([],"length")}catch(t){n=null}t.exports=n},30592(t,e,r){"use strict";var n=r(30655),o=function(){return!!n};o.hasArrayLengthDefineBug=function(){if(!n)return null;try{return 1!==n([],"length",{value:1}).length}catch(t){return!0}},t.exports=o},64039(t,e,r){"use strict";var n="undefined"!=typeof Symbol&&Symbol,o=r(41333);t.exports=function(){return"function"==typeof n&&"function"==typeof Symbol&&"symbol"==typeof n("foo")&&"symbol"==typeof Symbol("bar")&&o()}},41333(t){"use strict";t.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var t={},e=Symbol("test"),r=Object(e);if("string"==typeof e)return!1;if("[object Symbol]"!==Object.prototype.toString.call(e))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(var n in t[e]=42,t)return!1;if("function"==typeof Object.keys&&0!==Object.keys(t).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var o=Object.getOwnPropertySymbols(t);if(1!==o.length||o[0]!==e)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(t,e);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},49092(t,e,r){"use strict";var n=r(41333);t.exports=function(){return n()&&!!Symbol.toStringTag}},9957(t,e,r){"use strict";var n=Function.prototype.call,o=Object.prototype.hasOwnProperty,i=r(66743);t.exports=i.call(n,o)},11083(t,e,r){var n=r(11568),o=r(88835),i=t.exports;for(var a in n)n.hasOwnProperty(a)&&(i[a]=n[a]);function s(t){if("string"==typeof t&&(t=o.parse(t)),t.protocol||(t.protocol="https:"),"https:"!==t.protocol)throw new Error('Protocol "'+t.protocol+'" not supported. Expected "https:"');return t}i.request=function(t,e){return t=s(t),n.request.call(this,t,e)},i.get=function(t,e){return t=s(t),n.get.call(this,t,e)}},47244(t,e,r){"use strict";var n=r(49092)(),o=r(36556)("Object.prototype.toString"),i=function(t){return!(n&&t&&"object"==typeof t&&Symbol.toStringTag in t)&&"[object Arguments]"===o(t)},a=function(t){return!!i(t)||null!==t&&"object"==typeof t&&"length"in t&&"number"==typeof t.length&&t.length>=0&&"[object Array]"!==o(t)&&"callee"in t&&"[object Function]"===o(t.callee)},s=function(){return i(arguments)}();i.isLegacyArguments=a,t.exports=s?i:a},69600(t){"use strict";var e,r,n=Function.prototype.toString,o="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof o&&"function"==typeof Object.defineProperty)try{e=Object.defineProperty({},"length",{get:function(){throw r}}),r={},o(function(){throw 42},null,e)}catch(t){t!==r&&(o=null)}else o=null;var i=/^\s*class\b/,a=function(t){try{var e=n.call(t);return i.test(e)}catch(t){return!1}},s=function(t){try{return!a(t)&&(n.call(t),!0)}catch(t){return!1}},l=Object.prototype.toString,c="function"==typeof Symbol&&!!Symbol.toStringTag,u=!(0 in[,]),p=function(){return!1};if("object"==typeof document){var f=document.all;l.call(f)===l.call(document.all)&&(p=function(t){if((u||!t)&&(void 0===t||"object"==typeof t))try{var e=l.call(t);return("[object HTMLAllCollection]"===e||"[object HTML document.all class]"===e||"[object HTMLCollection]"===e||"[object Object]"===e)&&null==t("")}catch(t){}return!1})}t.exports=o?function(t){if(p(t))return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;try{o(t,null,e)}catch(t){if(t!==r)return!1}return!a(t)&&s(t)}:function(t){if(p(t))return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;if(c)return s(t);if(a(t))return!1;var e=l.call(t);return!("[object Function]"!==e&&"[object GeneratorFunction]"!==e&&!/^\[object HTML/.test(e))&&s(t)}},48184(t,e,r){"use strict";var n=r(36556),o=r(99721)(/^\s*(?:function)?\*/),i=r(49092)(),a=r(93628),s=n("Object.prototype.toString"),l=n("Function.prototype.toString"),c=r(4233);t.exports=function(t){if("function"!=typeof t)return!1;if(o(l(t)))return!0;if(!i)return"[object GeneratorFunction]"===s(t);if(!a)return!1;var e=c();return e&&a(t)===e.prototype}},14035(t,e,r){"use strict";var n,o=r(36556),i=r(49092)(),a=r(9957),s=r(75795);if(i){var l=o("RegExp.prototype.exec"),c={},u=function(){throw c},p={toString:u,valueOf:u};"symbol"==typeof Symbol.toPrimitive&&(p[Symbol.toPrimitive]=u),n=function(t){if(!t||"object"!=typeof t)return!1;var e=s(t,"lastIndex");if(!e||!a(e,"value"))return!1;try{l(t,p)}catch(t){return t===c}}}else{var f=o("Object.prototype.toString");n=function(t){return!(!t||"object"!=typeof t&&"function"!=typeof t)&&"[object RegExp]"===f(t)}}t.exports=n},35680(t,e,r){"use strict";var n=r(25767);t.exports=function(t){return!!n(t)}},71514(t){"use strict";t.exports=Math.abs},58968(t){"use strict";t.exports=Math.floor},94459(t){"use strict";t.exports=Number.isNaN||function(t){return t!=t}},6188(t){"use strict";t.exports=Math.max},68002(t){"use strict";t.exports=Math.min},75880(t){"use strict";t.exports=Math.pow},70414(t){"use strict";t.exports=Math.round},73093(t,e,r){"use strict";var n=r(94459);t.exports=function(t){return n(t)||0===t?t:t<0?-1:1}},26602(t){"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function r(t){var e="function"==typeof Map?new Map:void 0;return r=function(t){if(null===t||(r=t,-1===Function.toString.call(r).indexOf("[native code]")))return t;var r;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,a)}function a(){return n(t,arguments,i(this).constructor)}return a.prototype=Object.create(t.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),o(a,t)},r(t)}function n(t,e,r){return n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}()?Reflect.construct:function(t,e,r){var n=[null];n.push.apply(n,e);var i=new(Function.bind.apply(t,n));return r&&o(i,r.prototype),i},n.apply(null,arguments)}function o(t,e){return o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},o(t,e)}function i(t){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},i(t)}var a=function(t){function r(t){var n;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),(n=function(t,r){return!r||"object"!==e(r)&&"function"!=typeof r?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):r}(this,i(r).call(this,t))).name="ObjectPrototypeMutationError",n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(r,t),r}(r(Error));function s(t,r){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},o=r.split("."),i=o.length,a=function(e){var r=o[e];if(!t)return{v:void 0};if("+"===r){if(Array.isArray(t))return{v:t.map(function(r,i){var a=o.slice(e+1);return a.length>0?s(r,a.join("."),n):n(t,i,o,e)})};var i=o.slice(0,e).join(".");throw new Error("Object at wildcard (".concat(i,") is not an array"))}t=n(t,r,o,e)},l=0;l2&&void 0!==arguments[2]?arguments[2]:{};if("object"!=e(t)||null===t)return!1;if(void 0===r)return!1;if("number"==typeof r)return r in t;try{var o=!1;return s(t,r,function(t,e,r,i){if(!l(r,i))return t&&t[e];o=n.own?t.hasOwnProperty(e):e in t}),o}catch(t){return!1}},hasOwn:function(t,e,r){return this.has(t,e,r||{own:!0})},isIn:function(t,r,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if("object"!=e(t)||null===t)return!1;if(void 0===r)return!1;try{var i=!1,a=!1;return s(t,r,function(t,r,o,s){return i=i||t===n||!!t&&t[r]===n,a=l(o,s)&&"object"===e(t)&&r in t,t&&t[r]}),o.validPath?i&&a:i}catch(t){return!1}},ObjectPrototypeMutationError:a}},58859(t,e,r){var n="function"==typeof Map&&Map.prototype,o=Object.getOwnPropertyDescriptor&&n?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,i=n&&o&&"function"==typeof o.get?o.get:null,a=n&&Map.prototype.forEach,s="function"==typeof Set&&Set.prototype,l=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,c=s&&l&&"function"==typeof l.get?l.get:null,u=s&&Set.prototype.forEach,p="function"==typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,f="function"==typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,h="function"==typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,d=Boolean.prototype.valueOf,g=Object.prototype.toString,y=Function.prototype.toString,m=String.prototype.match,b=String.prototype.slice,v=String.prototype.replace,w=String.prototype.toUpperCase,A=String.prototype.toLowerCase,x=RegExp.prototype.test,E=Array.prototype.concat,_=Array.prototype.join,S=Array.prototype.slice,O=Math.floor,T="function"==typeof BigInt?BigInt.prototype.valueOf:null,C=Object.getOwnPropertySymbols,j="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,R="function"==typeof Symbol&&"object"==typeof Symbol.iterator,N="function"==typeof Symbol&&Symbol.toStringTag&&(Symbol.toStringTag,1)?Symbol.toStringTag:null,P=Object.prototype.propertyIsEnumerable,I=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function k(t,e){if(t===1/0||t===-1/0||t!=t||t&&t>-1e3&&t<1e3||x.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"==typeof t){var n=t<0?-O(-t):O(t);if(n!==t){var o=String(n),i=b.call(e,o.length+1);return v.call(o,r,"$&_")+"."+v.call(v.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return v.call(e,r,"$&_")}var M=r(42634),L=M.custom,D=V(L)?L:null,$={__proto__:null,double:'"',single:"'"},U={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};function F(t,e,r){var n=r.quoteStyle||e,o=$[n];return o+t+o}function B(t){return v.call(String(t),/"/g,""")}function W(t){return!N||!("object"==typeof t&&(N in t||void 0!==t[N]))}function q(t){return"[object Array]"===K(t)&&W(t)}function H(t){return"[object RegExp]"===K(t)&&W(t)}function V(t){if(R)return t&&"object"==typeof t&&t instanceof Symbol;if("symbol"==typeof t)return!0;if(!t||"object"!=typeof t||!j)return!1;try{return j.call(t),!0}catch(t){}return!1}t.exports=function t(e,r,n,o){var s=r||{};if(G(s,"quoteStyle")&&!G($,s.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(G(s,"maxStringLength")&&("number"==typeof s.maxStringLength?s.maxStringLength<0&&s.maxStringLength!==1/0:null!==s.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var l=!G(s,"customInspect")||s.customInspect;if("boolean"!=typeof l&&"symbol"!==l)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(G(s,"indent")&&null!==s.indent&&"\t"!==s.indent&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(G(s,"numericSeparator")&&"boolean"!=typeof s.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var g=s.numericSeparator;if(void 0===e)return"undefined";if(null===e)return"null";if("boolean"==typeof e)return e?"true":"false";if("string"==typeof e)return X(e,s);if("number"==typeof e){if(0===e)return 1/0/e>0?"0":"-0";var w=String(e);return g?k(e,w):w}if("bigint"==typeof e){var x=String(e)+"n";return g?k(e,x):x}var O=void 0===s.depth?5:s.depth;if(void 0===n&&(n=0),n>=O&&O>0&&"object"==typeof e)return q(e)?"[Array]":"[Object]";var C,L=function(t,e){var r;if("\t"===t.indent)r="\t";else{if(!("number"==typeof t.indent&&t.indent>0))return null;r=_.call(Array(t.indent+1)," ")}return{base:r,prev:_.call(Array(e+1),r)}}(s,n);if(void 0===o)o=[];else if(Y(o,e)>=0)return"[Circular]";function U(e,r,i){if(r&&(o=S.call(o)).push(r),i){var a={depth:s.depth};return G(s,"quoteStyle")&&(a.quoteStyle=s.quoteStyle),t(e,a,n+1,o)}return t(e,s,n+1,o)}if("function"==typeof e&&!H(e)){var z=function(t){if(t.name)return t.name;var e=m.call(y.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}(e),Z=rt(e,U);return"[Function"+(z?": "+z:" (anonymous)")+"]"+(Z.length>0?" { "+_.call(Z,", ")+" }":"")}if(V(e)){var nt=R?v.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):j.call(e);return"object"!=typeof e||R?nt:Q(nt)}if((C=e)&&"object"==typeof C&&("undefined"!=typeof HTMLElement&&C instanceof HTMLElement||"string"==typeof C.nodeName&&"function"==typeof C.getAttribute)){for(var ot="<"+A.call(String(e.nodeName)),it=e.attributes||[],at=0;at"}if(q(e)){if(0===e.length)return"[]";var st=rt(e,U);return L&&!function(t){for(var e=0;e=0)return!1;return!0}(st)?"["+et(st,L)+"]":"[ "+_.call(st,", ")+" ]"}if(function(t){return"[object Error]"===K(t)&&W(t)}(e)){var lt=rt(e,U);return"cause"in Error.prototype||!("cause"in e)||P.call(e,"cause")?0===lt.length?"["+String(e)+"]":"{ ["+String(e)+"] "+_.call(lt,", ")+" }":"{ ["+String(e)+"] "+_.call(E.call("[cause]: "+U(e.cause),lt),", ")+" }"}if("object"==typeof e&&l){if(D&&"function"==typeof e[D]&&M)return M(e,{depth:O-n});if("symbol"!==l&&"function"==typeof e.inspect)return e.inspect()}if(function(t){if(!i||!t||"object"!=typeof t)return!1;try{i.call(t);try{c.call(t)}catch(t){return!0}return t instanceof Map}catch(t){}return!1}(e)){var ct=[];return a&&a.call(e,function(t,r){ct.push(U(r,e,!0)+" => "+U(t,e))}),tt("Map",i.call(e),ct,L)}if(function(t){if(!c||!t||"object"!=typeof t)return!1;try{c.call(t);try{i.call(t)}catch(t){return!0}return t instanceof Set}catch(t){}return!1}(e)){var ut=[];return u&&u.call(e,function(t){ut.push(U(t,e))}),tt("Set",c.call(e),ut,L)}if(function(t){if(!p||!t||"object"!=typeof t)return!1;try{p.call(t,p);try{f.call(t,f)}catch(t){return!0}return t instanceof WeakMap}catch(t){}return!1}(e))return J("WeakMap");if(function(t){if(!f||!t||"object"!=typeof t)return!1;try{f.call(t,f);try{p.call(t,p)}catch(t){return!0}return t instanceof WeakSet}catch(t){}return!1}(e))return J("WeakSet");if(function(t){if(!h||!t||"object"!=typeof t)return!1;try{return h.call(t),!0}catch(t){}return!1}(e))return J("WeakRef");if(function(t){return"[object Number]"===K(t)&&W(t)}(e))return Q(U(Number(e)));if(function(t){if(!t||"object"!=typeof t||!T)return!1;try{return T.call(t),!0}catch(t){}return!1}(e))return Q(U(T.call(e)));if(function(t){return"[object Boolean]"===K(t)&&W(t)}(e))return Q(d.call(e));if(function(t){return"[object String]"===K(t)&&W(t)}(e))return Q(U(String(e)));if("undefined"!=typeof window&&e===window)return"{ [object Window] }";if("undefined"!=typeof globalThis&&e===globalThis||"undefined"!=typeof globalThis&&e===globalThis)return"{ [object globalThis] }";if(!function(t){return"[object Date]"===K(t)&&W(t)}(e)&&!H(e)){var pt=rt(e,U),ft=I?I(e)===Object.prototype:e instanceof Object||e.constructor===Object,ht=e instanceof Object?"":"null prototype",dt=!ft&&N&&Object(e)===e&&N in e?b.call(K(e),8,-1):ht?"Object":"",gt=(ft||"function"!=typeof e.constructor?"":e.constructor.name?e.constructor.name+" ":"")+(dt||ht?"["+_.call(E.call([],dt||[],ht||[]),": ")+"] ":"");return 0===pt.length?gt+"{}":L?gt+"{"+et(pt,L)+"}":gt+"{ "+_.call(pt,", ")+" }"}return String(e)};var z=Object.prototype.hasOwnProperty||function(t){return t in this};function G(t,e){return z.call(t,e)}function K(t){return g.call(t)}function Y(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 X(b.call(t,0,e.maxStringLength),e)+n}var o=U[e.quoteStyle||"single"];return o.lastIndex=0,F(v.call(v.call(t,o,"\\$1"),/[\x00-\x1f]/g,Z),"single",e)}function Z(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":"")+w.call(e.toString(16))}function Q(t){return"Object("+t+")"}function J(t){return t+" { ? }"}function tt(t,e,r,n){return t+" ("+e+") {"+(n?et(r,n):_.call(r,", "))+"}"}function et(t,e){if(0===t.length)return"";var r="\n"+e.prev+e.base;return r+_.call(t,","+r)+"\n"+e.prev}function rt(t,e){var r=q(t),n=[];if(r){n.length=t.length;for(var o=0;o=-1&&!e;r--){var o=r>=0?arguments[r]:n.cwd();if(!i(o))throw new TypeError("Arguments to path.resolve must be strings");o&&(t=o+"/"+t,e="/"===o.charAt(0))}return(e?"/":"")+(t=a(t.split("/"),!e).join("/"))||"."},l.normalize=function(t){var e=l.isAbsolute(t),r="/"===t.substr(-1);return(t=a(t.split("/"),!e).join("/"))||e||(t="."),t&&r&&(t+="/"),(e?"/":"")+t},l.isAbsolute=function(t){return"/"===t.charAt(0)},l.join=function(){for(var t="",e=0;e=0&&""===t[r];r--);return e>r?[]:t.slice(e,r+1)}t=l.resolve(t).substr(1),e=l.resolve(e).substr(1);for(var n=r(t.split("/")),o=r(e.split("/")),i=Math.min(n.length,o.length),a=i,s=0;s= 0x80 (not a basic code point)","invalid-input":"Invalid input"},f=Math.floor,h=String.fromCharCode;function d(t){throw new RangeError(p[t])}function g(t,e){for(var r=t.length,n=[];r--;)n[r]=e(t[r]);return n}function y(t,e){var r=t.split("@"),n="";return r.length>1&&(n=r[0]+"@",t=r[1]),n+g((t=t.replace(u,".")).split("."),e).join(".")}function m(t){for(var e,r,n=[],o=0,i=t.length;o=55296&&e<=56319&&o65535&&(e+=h((t-=65536)>>>10&1023|55296),t=56320|1023&t),e+h(t)}).join("")}function v(t){return t-48<10?t-22:t-65<26?t-65:t-97<26?t-97:s}function w(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function A(t,e,r){var n=0;for(t=r?f(t/700):t>>1,t+=f(t/e);t>455;n+=s)t=f(t/35);return f(n+36*t/(t+38))}function x(t){var e,r,n,o,i,l,c,u,p,h,g=[],y=t.length,m=0,w=128,x=72;for((r=t.lastIndexOf("-"))<0&&(r=0),n=0;n=128&&d("not-basic"),g.push(t.charCodeAt(n));for(o=r>0?r+1:0;o=y&&d("invalid-input"),((u=v(t.charCodeAt(o++)))>=s||u>f((a-m)/l))&&d("overflow"),m+=u*l,!(u<(p=c<=x?1:c>=x+26?26:c-x));c+=s)l>f(a/(h=s-p))&&d("overflow"),l*=h;x=A(m-i,e=g.length+1,0==i),f(m/e)>a-w&&d("overflow"),w+=f(m/e),m%=e,g.splice(m++,0,w)}return b(g)}function E(t){var e,r,n,o,i,l,c,u,p,g,y,b,v,x,E,_=[];for(b=(t=m(t)).length,e=128,r=0,i=72,l=0;l=e&&yf((a-r)/(v=n+1))&&d("overflow"),r+=(c-e)*v,e=c,l=0;la&&d("overflow"),y==e){for(u=r,p=s;!(u<(g=p<=i?1:p>=i+26?26:p-i));p+=s)E=u-g,x=s-g,_.push(h(w(g+E%x,0))),u=f(E/x);_.push(h(w(u,0))),i=A(r,v,n==o),r=0,++n}++r,++e}return _.join("")}i={version:"1.4.1",ucs2:{decode:m,encode:b},decode:x,encode:E,toASCII:function(t){return y(t,function(t){return c.test(t)?"xn--"+E(t):t})},toUnicode:function(t){return y(t,function(t){return l.test(t)?x(t.slice(4).toLowerCase()):t})}},void 0===(n=function(){return i}.call(e,r,e,t))||(t.exports=n)}()},74765(t){"use strict";var e=String.prototype.replace,r=/%20/g,n="RFC3986";t.exports={default:n,formatters:{RFC1738:function(t){return e.call(t,r,"+")},RFC3986:function(t){return String(t)}},RFC1738:"RFC1738",RFC3986:n}},55373(t,e,r){"use strict";var n=r(98636),o=r(62642),i=r(74765);t.exports={formats:i,parse:o,stringify:n}},62642(t,e,r){"use strict";var n=r(37720),o=Object.prototype.hasOwnProperty,i=Array.isArray,a={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:n.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},s=function(t){return t.replace(/&#(\d+);/g,function(t,e){return String.fromCharCode(parseInt(e,10))})},l=function(t,e,r){if(t&&"string"==typeof t&&e.comma&&t.indexOf(",")>-1)return t.split(",");if(e.throwOnLimitExceeded&&r>=e.arrayLimit)throw new RangeError("Array limit exceeded. Only "+e.arrayLimit+" element"+(1===e.arrayLimit?"":"s")+" allowed in an array.");return t},c=function(t,e,r,i){if(t){var a=function(t,e){var r=e.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t;if(e.depth<=0){if(!e.plainObjects&&o.call(Object.prototype,r)&&!e.allowPrototypes)return;return[r]}var n=/(\[[^[\]]*])/g,i=/(\[[^[\]]*])/.exec(r),a=i?r.slice(0,i.index):r,s=[];if(a){if(!e.plainObjects&&o.call(Object.prototype,a)&&!e.allowPrototypes)return;s[s.length]=a}for(var l=0;null!==(i=n.exec(r))&&l0&&"[]"===t[t.length-1]){var a=t.slice(0,-1).join("");i=Array.isArray(e)&&e[a]?e[a].length:0}for(var s=o?e:l(e,r,i),c=t.length-1;c>=0;--c){var u,p=t[c];if("[]"===p&&r.parseArrays)u=n.isOverflow(s)?s:r.allowEmptyArrays&&(""===s||r.strictNullHandling&&null===s)?[]:n.combine([],s,r.arrayLimit,r.plainObjects);else{u=r.plainObjects?{__proto__:null}:{};var f="["===p.charAt(0)&&"]"===p.charAt(p.length-1)?p.slice(1,-1):p,h=r.decodeDotInKeys?f.replace(/%2E/g,"."):f,d=parseInt(h,10),g=!isNaN(d)&&p!==h&&String(d)===h&&d>=0&&r.parseArrays;if(r.parseArrays||""!==h)if(g&&du)throw new RangeError("Parameter limit exceeded. Only "+u+" parameter"+(1===u?"":"s")+" allowed.");var f,h=-1,d=e.charset;if(e.charsetSentinel)for(f=0;f-1&&(y=i(y)?[y]:y),e.comma&&i(y)&&y.length>e.arrayLimit){if(e.throwOnLimitExceeded)throw new RangeError("Array limit exceeded. Only "+e.arrayLimit+" element"+(1===e.arrayLimit?"":"s")+" allowed in an array.");y=n.combine([],y,e.arrayLimit,e.plainObjects)}if(null!==g){var w=o.call(r,g);w&&"combine"===e.duplicates?r[g]=n.combine(r[g],y,e.arrayLimit,e.plainObjects):w&&"last"!==e.duplicates||(r[g]=y)}}return r}(t,r):t,p=r.plainObjects?{__proto__:null}:{},f=Object.keys(u),h=0;h0?O.join(",")||null:void 0}];else if(l(y))N=y;else{var I=Object.keys(O);N=m?I.sort(m):I}var k=f?String(r).replace(/\./g,"%2E"):String(r),M=a&&l(O)&&1===O.length?k+"[]":k;if(s&&l(O)&&0===O.length)return M+"[]";for(var L=0;L0?A+w:""}},37720(t,e,r){"use strict";var n=r(74765),o=r(920),i=Object.prototype.hasOwnProperty,a=Array.isArray,s=o(),l=function(t,e){return s.set(t,e),t},c=function(t){return s.has(t)},u=function(t){return s.get(t)},p=function(t,e){s.set(t,e)},f=function(){for(var t=[],e=0;e<256;++e)t[t.length]="%"+((e<16?"0":"")+e.toString(16)).toUpperCase();return t}(),h=function(t,e){for(var r=e&&e.plainObjects?{__proto__:null}:{},n=0;nr?l(h(i,{plainObjects:n}),i.length-1):i},compact:function(t){for(var e=[{obj:{o:t},prop:"o"}],r=[],n=0;n1;){var e=t.pop(),r=e.obj[e.prop];if(a(r)){for(var n=[],o=0;o=d?a.slice(l,l+d):a,u=[],p=0;p=48&&h<=57||h>=65&&h<=90||h>=97&&h<=122||i===n.RFC1738&&(40===h||41===h)?u[u.length]=c.charAt(p):h<128?u[u.length]=f[h]:h<2048?u[u.length]=f[192|h>>6]+f[128|63&h]:h<55296||h>=57344?u[u.length]=f[224|h>>12]+f[128|h>>6&63]+f[128|63&h]:(p+=1,h=65536+((1023&h)<<10|1023&c.charCodeAt(p)),u[u.length]=f[240|h>>18]+f[128|h>>12&63]+f[128|h>>6&63]+f[128|63&h])}s+=u.join("")}return s},isBuffer:function(t){return!(!t||"object"!=typeof t||!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t)))},isOverflow:c,isRegExp:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},markOverflow:l,maybeMap:function(t,e){if(a(t)){for(var r=[],n=0;nn.arrayLimit)return l(h(e.concat(r),n),o);e[o]=r}else{if(!e||"object"!=typeof e)return[e,r];if(c(e)){var s=u(e)+1;e[s]=r,p(e,s)}else(n&&(n.plainObjects||n.allowPrototypes)||!i.call(Object.prototype,r))&&(e[r]=!0)}return e}if(!e||"object"!=typeof e){if(c(r)){for(var f=Object.keys(r),d=n&&n.plainObjects?{__proto__:null,0:e}:{0:e},g=0;gn.arrayLimit?l(h(y,n),y.length-1):y}var m=e;return a(e)&&!a(r)&&(m=h(e,n)),a(e)&&a(r)?(r.forEach(function(r,o){if(i.call(e,o)){var a=e[o];a&&"object"==typeof a&&r&&"object"==typeof r?e[o]=t(a,r,n):e[e.length]=r}else e[o]=r}),e):Object.keys(r).reduce(function(e,o){var a=r[o];if(i.call(e,o)?e[o]=t(e[o],a,n):e[o]=a,c(r)&&!c(e)&&l(e,u(r)),c(e)){var s=parseInt(o,10);String(s)===o&&s>=0&&s>u(e)&&p(e,s)}return e},m)}}},73992(t,e){"use strict";var r=Object.prototype.hasOwnProperty;function n(t){try{return decodeURIComponent(t.replace(/\+/g," "))}catch(t){return null}}function o(t){try{return encodeURIComponent(t)}catch(t){return null}}e.stringify=function(t,e){e=e||"";var n,i,a=[];for(i in"string"!=typeof e&&(e="?"),t)if(r.call(t,i)){if((n=t[i])||null!=n&&!isNaN(n)||(n=""),i=o(i),n=o(n),null===i||null===n)continue;a.push(i+"="+n)}return a.length?e+a.join("&"):""},e.parse=function(t){for(var e,r=/([^=?#&]+)=?([^&]*)/g,o={};e=r.exec(t);){var i=n(e[1]),a=n(e[2]);null===i||null===a||i in o||(o[i]=a)}return o}},92063(t){"use strict";t.exports=function(t,e){if(e=e.split(":")[0],!(t=+t))return!1;switch(e){case"http":case"ws":return 80!==t;case"https":case"wss":return 443!==t;case"ftp":return 21!==t;case"gopher":return 70!==t;case"file":return!1}return 0!==t}},99721(t,e,r){"use strict";var n=r(36556),o=r(14035),i=n("RegExp.prototype.exec"),a=r(69675);t.exports=function(t){if(!o(t))throw new a("`regex` must be a RegExp");return function(e){return null!==i(t,e)}}},96897(t,e,r){"use strict";var n=r(70453),o=r(30041),i=r(30592)(),a=r(75795),s=r(69675),l=n("%Math.floor%");t.exports=function(t,e){if("function"!=typeof t)throw new s("`fn` is not a function");if("number"!=typeof e||e<0||e>4294967295||l(e)!==e)throw new s("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],n=!0,c=!0;if("length"in t&&a){var u=a(t,"length");u&&!u.configurable&&(n=!1),u&&!u.writable&&(c=!1)}return(n||c||!r)&&(i?o(t,"length",e,!0,!0):o(t,"length",e)),t}},14803(t,e,r){"use strict";var n=r(58859),o=r(69675),i=function(t,e,r){for(var n,o=t;null!=(n=o.next);o=n)if(n.key===e)return o.next=n.next,r||(n.next=t.next,t.next=n),n};t.exports=function(){var t,e={assert:function(t){if(!e.has(t))throw new o("Side channel does not contain "+n(t))},delete:function(e){var r=t&&t.next,n=function(t,e){if(t)return i(t,e,!0)}(t,e);return n&&r&&r===n&&(t=void 0),!!n},get:function(e){return function(t,e){if(t){var r=i(t,e);return r&&r.value}}(t,e)},has:function(e){return function(t,e){return!!t&&!!i(t,e)}(t,e)},set:function(e,r){t||(t={next:void 0}),function(t,e,r){var n=i(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}}(t,e,r)}};return e}},80507(t,e,r){"use strict";var n=r(70453),o=r(36556),i=r(58859),a=r(69675),s=n("%Map%",!0),l=o("Map.prototype.get",!0),c=o("Map.prototype.set",!0),u=o("Map.prototype.has",!0),p=o("Map.prototype.delete",!0),f=o("Map.prototype.size",!0);t.exports=!!s&&function(){var t,e={assert:function(t){if(!e.has(t))throw new a("Side channel does not contain "+i(t))},delete:function(e){if(t){var r=p(t,e);return 0===f(t)&&(t=void 0),r}return!1},get:function(e){if(t)return l(t,e)},has:function(e){return!!t&&u(t,e)},set:function(e,r){t||(t=new s),c(t,e,r)}};return e}},72271(t,e,r){"use strict";var n=r(70453),o=r(36556),i=r(58859),a=r(80507),s=r(69675),l=n("%WeakMap%",!0),c=o("WeakMap.prototype.get",!0),u=o("WeakMap.prototype.set",!0),p=o("WeakMap.prototype.has",!0),f=o("WeakMap.prototype.delete",!0);t.exports=l?function(){var t,e,r={assert:function(t){if(!r.has(t))throw new s("Side channel does not contain "+i(t))},delete:function(r){if(l&&r&&("object"==typeof r||"function"==typeof r)){if(t)return f(t,r)}else if(a&&e)return e.delete(r);return!1},get:function(r){return l&&r&&("object"==typeof r||"function"==typeof r)&&t?c(t,r):e&&e.get(r)},has:function(r){return l&&r&&("object"==typeof r||"function"==typeof r)&&t?p(t,r):!!e&&e.has(r)},set:function(r,n){l&&r&&("object"==typeof r||"function"==typeof r)?(t||(t=new l),u(t,r,n)):a&&(e||(e=a()),e.set(r,n))}};return r}:a},920(t,e,r){"use strict";var n=r(69675),o=r(58859),i=r(14803),a=r(80507),s=r(72271)||a||i;t.exports=function(){var t,e={assert:function(t){if(!e.has(t))throw new n("Side channel does not contain "+o(t))},delete:function(e){return!!t&&t.delete(e)},get:function(e){return t&&t.get(e)},has:function(e){return!!t&&t.has(e)},set:function(e,r){t||(t=s()),t.set(e,r)}};return e}},11568(t,e,r){var n=r(55537),o=r(6917),i=r(57510),a=r(86866),s=r(88835),l=e;l.request=function(t,e){t="string"==typeof t?s.parse(t):i(t);var r=-1===globalThis.location.protocol.search(/^https?:$/)?"http:":"",o=t.protocol||r,a=t.hostname||t.host,l=t.port,c=t.path||"/";a&&-1!==a.indexOf(":")&&(a="["+a+"]"),t.url=(a?o+"//"+a:"")+(l?":"+l:"")+c,t.method=(t.method||"GET").toUpperCase(),t.headers=t.headers||{};var u=new n(t);return e&&u.on("response",e),u},l.get=function(t,e){var r=l.request(t,e);return r.end(),r},l.ClientRequest=n,l.IncomingMessage=o.IncomingMessage,l.Agent=function(){},l.Agent.defaultMaxSockets=4,l.globalAgent=new l.Agent,l.STATUS_CODES=a,l.METHODS=["CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REPORT","SEARCH","SUBSCRIBE","TRACE","UNLOCK","UNSUBSCRIBE"]},6688(t,e){var r;function n(){if(void 0!==r)return r;if(globalThis.XMLHttpRequest){r=new globalThis.XMLHttpRequest;try{r.open("GET",globalThis.XDomainRequest?"/":"https://example.com")}catch(t){r=null}}else r=null;return r}function o(t){var e=n();if(!e)return!1;try{return e.responseType=t,e.responseType===t}catch(t){}return!1}function i(t){return"function"==typeof t}e.fetch=i(globalThis.fetch)&&i(globalThis.ReadableStream),e.writableStream=i(globalThis.WritableStream),e.abortController=i(globalThis.AbortController),e.arraybuffer=e.fetch||o("arraybuffer"),e.msstream=!e.fetch&&o("ms-stream"),e.mozchunkedarraybuffer=!e.fetch&&o("moz-chunked-arraybuffer"),e.overrideMimeType=e.fetch||!!n()&&i(n().overrideMimeType),r=null},55537(t,e,r){var n=r(62045).hp,o=r(65606),i=r(6688),a=r(56698),s=r(6917),l=r(63242),c=s.IncomingMessage,u=s.readyStates,p=t.exports=function(t){var e,r=this;l.Writable.call(r),r._opts=t,r._body=[],r._headers={},t.auth&&r.setHeader("Authorization","Basic "+n.from(t.auth).toString("base64")),Object.keys(t.headers).forEach(function(e){r.setHeader(e,t.headers[e])});var o=!0;if("disable-fetch"===t.mode||"requestTimeout"in t&&!i.abortController)o=!1,e=!0;else if("prefer-streaming"===t.mode)e=!1;else if("allow-wrong-content-type"===t.mode)e=!i.overrideMimeType;else{if(t.mode&&"default"!==t.mode&&"prefer-fast"!==t.mode)throw new Error("Invalid value for opts.mode");e=!0}r._mode=function(t,e){return i.fetch&&e?"fetch":i.mozchunkedarraybuffer?"moz-chunked-arraybuffer":i.msstream?"ms-stream":i.arraybuffer&&t?"arraybuffer":"text"}(e,o),r._fetchTimer=null,r._socketTimeout=null,r._socketTimer=null,r.on("finish",function(){r._onFinish()})};a(p,l.Writable),p.prototype.setHeader=function(t,e){var r=t.toLowerCase();-1===f.indexOf(r)&&(this._headers[r]={name:t,value:e})},p.prototype.getHeader=function(t){var e=this._headers[t.toLowerCase()];return e?e.value:null},p.prototype.removeHeader=function(t){delete this._headers[t.toLowerCase()]},p.prototype._onFinish=function(){var t=this;if(!t._destroyed){var e=t._opts;"timeout"in e&&0!==e.timeout&&t.setTimeout(e.timeout);var r=t._headers,n=null;"GET"!==e.method&&"HEAD"!==e.method&&(n=new Blob(t._body,{type:(r["content-type"]||{}).value||""}));var a=[];if(Object.keys(r).forEach(function(t){var e=r[t].name,n=r[t].value;Array.isArray(n)?n.forEach(function(t){a.push([e,t])}):a.push([e,n])}),"fetch"===t._mode){var s=null;if(i.abortController){var l=new AbortController;s=l.signal,t._fetchAbortController=l,"requestTimeout"in e&&0!==e.requestTimeout&&(t._fetchTimer=globalThis.setTimeout(function(){t.emit("requestTimeout"),t._fetchAbortController&&t._fetchAbortController.abort()},e.requestTimeout))}globalThis.fetch(t._opts.url,{method:t._opts.method,headers:a,body:n||void 0,mode:"cors",credentials:e.withCredentials?"include":"same-origin",signal:s}).then(function(e){t._fetchResponse=e,t._resetTimers(!1),t._connect()},function(e){t._resetTimers(!0),t._destroyed||t.emit("error",e)})}else{var c=t._xhr=new globalThis.XMLHttpRequest;try{c.open(t._opts.method,t._opts.url,!0)}catch(e){return void o.nextTick(function(){t.emit("error",e)})}"responseType"in c&&(c.responseType=t._mode),"withCredentials"in c&&(c.withCredentials=!!e.withCredentials),"text"===t._mode&&"overrideMimeType"in c&&c.overrideMimeType("text/plain; charset=x-user-defined"),"requestTimeout"in e&&(c.timeout=e.requestTimeout,c.ontimeout=function(){t.emit("requestTimeout")}),a.forEach(function(t){c.setRequestHeader(t[0],t[1])}),t._response=null,c.onreadystatechange=function(){switch(c.readyState){case u.LOADING:case u.DONE:t._onXHRProgress()}},"moz-chunked-arraybuffer"===t._mode&&(c.onprogress=function(){t._onXHRProgress()}),c.onerror=function(){t._destroyed||(t._resetTimers(!0),t.emit("error",new Error("XHR error")))};try{c.send(n)}catch(e){return void o.nextTick(function(){t.emit("error",e)})}}}},p.prototype._onXHRProgress=function(){var t=this;t._resetTimers(!1),function(t){try{var e=t.status;return null!==e&&0!==e}catch(t){return!1}}(t._xhr)&&!t._destroyed&&(t._response||t._connect(),t._response._onXHRProgress(t._resetTimers.bind(t)))},p.prototype._connect=function(){var t=this;t._destroyed||(t._response=new c(t._xhr,t._fetchResponse,t._mode,t._resetTimers.bind(t)),t._response.on("error",function(e){t.emit("error",e)}),t.emit("response",t._response))},p.prototype._write=function(t,e,r){this._body.push(t),r()},p.prototype._resetTimers=function(t){var e=this;globalThis.clearTimeout(e._socketTimer),e._socketTimer=null,t?(globalThis.clearTimeout(e._fetchTimer),e._fetchTimer=null):e._socketTimeout&&(e._socketTimer=globalThis.setTimeout(function(){e.emit("timeout")},e._socketTimeout))},p.prototype.abort=p.prototype.destroy=function(t){var e=this;e._destroyed=!0,e._resetTimers(!0),e._response&&(e._response._destroyed=!0),e._xhr?e._xhr.abort():e._fetchAbortController&&e._fetchAbortController.abort(),t&&e.emit("error",t)},p.prototype.end=function(t,e,r){"function"==typeof t&&(r=t,t=void 0),l.Writable.prototype.end.call(this,t,e,r)},p.prototype.setTimeout=function(t,e){var r=this;e&&r.once("timeout",e),r._socketTimeout=t,r._resetTimers(!1)},p.prototype.flushHeaders=function(){},p.prototype.setNoDelay=function(){},p.prototype.setSocketKeepAlive=function(){};var f=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]},6917(t,e,r){var n=r(65606),o=r(62045).hp,i=r(6688),a=r(56698),s=r(63242),l=e.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},c=e.IncomingMessage=function(t,e,r,a){var l=this;if(s.Readable.call(l),l._mode=r,l.headers={},l.rawHeaders=[],l.trailers={},l.rawTrailers=[],l.on("end",function(){n.nextTick(function(){l.emit("close")})}),"fetch"===r){if(l._fetchResponse=e,l.url=e.url,l.statusCode=e.status,l.statusMessage=e.statusText,e.headers.forEach(function(t,e){l.headers[e.toLowerCase()]=t,l.rawHeaders.push(e,t)}),i.writableStream){var c=new WritableStream({write:function(t){return a(!1),new Promise(function(e,r){l._destroyed?r():l.push(o.from(t))?e():l._resumeFetch=e})},close:function(){a(!0),l._destroyed||l.push(null)},abort:function(t){a(!0),l._destroyed||l.emit("error",t)}});try{return void e.body.pipeTo(c).catch(function(t){a(!0),l._destroyed||l.emit("error",t)})}catch(t){}}var u=e.body.getReader();!function t(){u.read().then(function(e){l._destroyed||(a(e.done),e.done?l.push(null):(l.push(o.from(e.value)),t()))}).catch(function(t){a(!0),l._destroyed||l.emit("error",t)})}()}else if(l._xhr=t,l._pos=0,l.url=t.responseURL,l.statusCode=t.status,l.statusMessage=t.statusText,t.getAllResponseHeaders().split(/\r?\n/).forEach(function(t){var e=t.match(/^([^:]+):\s*(.*)/);if(e){var r=e[1].toLowerCase();"set-cookie"===r?(void 0===l.headers[r]&&(l.headers[r]=[]),l.headers[r].push(e[2])):void 0!==l.headers[r]?l.headers[r]+=", "+e[2]:l.headers[r]=e[2],l.rawHeaders.push(e[1],e[2])}}),l._charset="x-user-defined",!i.overrideMimeType){var p=l.rawHeaders["mime-type"];if(p){var f=p.match(/;\s*charset=([^;])(;|$)/);f&&(l._charset=f[1].toLowerCase())}l._charset||(l._charset="utf-8")}};a(c,s.Readable),c.prototype._read=function(){var t=this._resumeFetch;t&&(this._resumeFetch=null,t())},c.prototype._onXHRProgress=function(t){var e=this,r=e._xhr,n=null;switch(e._mode){case"text":if((n=r.responseText).length>e._pos){var i=n.substr(e._pos);if("x-user-defined"===e._charset){for(var a=o.alloc(i.length),s=0;se._pos&&(e.push(o.from(new Uint8Array(c.result.slice(e._pos)))),e._pos=c.result.byteLength)},c.onload=function(){t(!0),e.push(null)},c.readAsArrayBuffer(n)}e._xhr.readyState===l.DONE&&"ms-stream"!==e._mode&&(t(!0),e.push(null))}},73157(t){"use strict";var e={};function r(t,r,n){n||(n=Error);var o=function(t){var e,n;function o(e,n,o){return t.call(this,function(t,e,n){return"string"==typeof r?r:r(t,e,n)}(e,n,o))||this}return n=t,(e=o).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n,o}(n);o.prototype.name=n.name,o.prototype.code=t,e[t]=o}function n(t,e){if(Array.isArray(t)){var r=t.length;return t=t.map(function(t){return String(t)}),r>2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:2===r?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}r("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError),r("ERR_INVALID_ARG_TYPE",function(t,e,r){var o,i,a,s,l;if("string"==typeof e&&(i="not ",e.substr(0,4)===i)?(o="must not be",e=e.replace(/^not /,"")):o="must be",function(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-9,r)===e}(t," argument"))a="The ".concat(t," ").concat(o," ").concat(n(e,"type"));else{var c=("number"!=typeof l&&(l=0),l+1>(s=t).length||-1===s.indexOf(".",l)?"argument":"property");a='The "'.concat(t,'" ').concat(c," ").concat(o," ").concat(n(e,"type"))}return a+". Received type ".concat(typeof r)},TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"}),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"}),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.F=e},63527(t,e,r){"use strict";var n=r(65606),o=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=u;var i=r(52341),a=r(9573);r(56698)(u,i);for(var s=o(a.prototype),l=0;l0)if("string"==typeof e||s.objectMode||Object.getPrototypeOf(e)===l.prototype||(e=function(t){return l.from(t)}(e)),n)s.endEmitted?x(t,new A):T(t,s,e,!0);else if(s.ended)x(t,new v);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!r?(e=s.decoder.write(e),s.objectMode||0!==e.length?T(t,s,e,!1):P(t,s)):T(t,s,e,!1)}else n||(s.reading=!1,P(t,s));return!s.ended&&(s.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=C?t=C:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function R(t){var e=t._readableState;i("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(i("emitReadable",e.flowing),e.emittedReadable=!0,o.nextTick(N,t))}function N(t){var e=t._readableState;i("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,D(t)}function P(t,e){e.readingMore||(e.readingMore=!0,o.nextTick(I,t,e))}function I(t,e){for(;!e.reading&&!e.ended&&(e.length0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function M(t){i("readable nexttick read 0"),t.read(0)}function L(t,e){i("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),D(t),e.flowing&&!e.reading&&t.read(0)}function D(t){var e=t._readableState;for(i("flow",e.flowing);e.flowing&&null!==t.read(););}function $(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r);var r}function U(t){var e=t._readableState;i("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,o.nextTick(F,e,t))}function F(t,e){if(i("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}function B(t,e){for(var r=0,n=t.length;r=e.highWaterMark:e.length>0)||e.ended))return i("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?U(this):R(this),null;if(0===(t=j(t,e))&&e.ended)return 0===e.length&&U(this),null;var n,o=e.needReadable;return i("need readable",o),(0===e.length||e.length-t0?$(t,e):null)?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&U(this)),null!==n&&this.emit("data",n),n},S.prototype._read=function(t){x(this,new w("_read()"))},S.prototype.pipe=function(t,e){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=t;break;case 1:n.pipes=[n.pipes,t];break;default:n.pipes.push(t)}n.pipesCount+=1,i("pipe count=%d opts=%j",n.pipesCount,e);var s=e&&!1===e.end||t===o.stdout||t===o.stderr?g:l;function l(){i("onend"),t.end()}n.endEmitted?o.nextTick(s):r.once("end",s),t.on("unpipe",function e(o,a){i("onunpipe"),o===r&&a&&!1===a.hasUnpiped&&(a.hasUnpiped=!0,i("cleanup"),t.removeListener("close",h),t.removeListener("finish",d),t.removeListener("drain",c),t.removeListener("error",f),t.removeListener("unpipe",e),r.removeListener("end",l),r.removeListener("end",g),r.removeListener("data",p),u=!0,!n.awaitDrain||t._writableState&&!t._writableState.needDrain||c())});var c=function(t){return function(){var e=t._readableState;i("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&a(t,"data")&&(e.flowing=!0,D(t))}}(r);t.on("drain",c);var u=!1;function p(e){i("ondata");var o=t.write(e);i("dest.write",o),!1===o&&((1===n.pipesCount&&n.pipes===t||n.pipesCount>1&&-1!==B(n.pipes,t))&&!u&&(i("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function f(e){i("onerror",e),g(),t.removeListener("error",f),0===a(t,"error")&&x(t,e)}function h(){t.removeListener("finish",d),g()}function d(){i("onfinish"),t.removeListener("close",h),g()}function g(){i("unpipe"),r.unpipe(t)}return r.on("data",p),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",f),t.once("close",h),t.once("finish",d),t.emit("pipe",r),n.flowing||(i("pipe resume"),r.resume()),t},S.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,o=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var i=0;i0,!1!==n.flowing&&this.resume()):"readable"===t&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,i("on readable",n.length,n.reading),n.length?R(this):n.reading||o.nextTick(M,this))),r},S.prototype.addListener=S.prototype.on,S.prototype.removeListener=function(t,e){var r=s.prototype.removeListener.call(this,t,e);return"readable"===t&&o.nextTick(k,this),r},S.prototype.removeAllListeners=function(t){var e=s.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||o.nextTick(k,this),e},S.prototype.resume=function(){var t=this._readableState;return t.flowing||(i("resume"),t.flowing=!t.readableListening,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,o.nextTick(L,t,e))}(this,t)),t.paused=!1,this},S.prototype.pause=function(){return i("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(i("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},S.prototype.wrap=function(t){var e=this,r=this._readableState,n=!1;for(var o in t.on("end",function(){if(i("wrapped end"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)}),t.on("data",function(o){i("wrapped data"),r.decoder&&(o=r.decoder.write(o)),r.objectMode&&null==o||(r.objectMode||o&&o.length)&&(e.push(o)||(n=!0,t.pause()))}),t)void 0===this[o]&&"function"==typeof t[o]&&(this[o]=function(e){return function(){return t[e].apply(t,arguments)}}(o));for(var a=0;a-1))throw new A(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(S.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(S.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),S.prototype._write=function(t,e,r){r(new g("_write()"))},S.prototype._writev=null,S.prototype.end=function(t,e,r){var n=this._writableState;return"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||function(t,e,r){e.ending=!0,N(t,e),r&&(e.finished?o.nextTick(r):t.once("finish",r)),e.ended=!0,t.writable=!1}(this,n,r),this},Object.defineProperty(S.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(S.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),S.prototype.destroy=p.destroy,S.prototype._undestroy=p.undestroy,S.prototype._destroy=function(t,e){e(t)}},17356(t,e,r){"use strict";var n,o=r(65606);function i(t,e,r){return(e=function(t){var e=function(t){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var a=r(19959),s=Symbol("lastResolve"),l=Symbol("lastReject"),c=Symbol("error"),u=Symbol("ended"),p=Symbol("lastPromise"),f=Symbol("handlePromise"),h=Symbol("stream");function d(t,e){return{value:t,done:e}}function g(t){var e=t[s];if(null!==e){var r=t[h].read();null!==r&&(t[p]=null,t[s]=null,t[l]=null,e(d(r,!1)))}}function y(t){o.nextTick(g,t)}var m=Object.getPrototypeOf(function(){}),b=Object.setPrototypeOf((i(n={get stream(){return this[h]},next:function(){var t=this,e=this[c];if(null!==e)return Promise.reject(e);if(this[u])return Promise.resolve(d(void 0,!0));if(this[h].destroyed)return new Promise(function(e,r){o.nextTick(function(){t[c]?r(t[c]):e(d(void 0,!0))})});var r,n=this[p];if(n)r=new Promise(function(t,e){return function(r,n){t.then(function(){e[u]?r(d(void 0,!0)):e[f](r,n)},n)}}(n,this));else{var i=this[h].read();if(null!==i)return Promise.resolve(d(i,!1));r=new Promise(this[f])}return this[p]=r,r}},Symbol.asyncIterator,function(){return this}),i(n,"return",function(){var t=this;return new Promise(function(e,r){t[h].destroy(null,function(t){t?r(t):e(d(void 0,!0))})})}),n),m);t.exports=function(t){var e,r=Object.create(b,(i(e={},h,{value:t,writable:!0}),i(e,s,{value:null,writable:!0}),i(e,l,{value:null,writable:!0}),i(e,c,{value:null,writable:!0}),i(e,u,{value:t._readableState.endEmitted,writable:!0}),i(e,f,{value:function(t,e){var n=r[h].read();n?(r[p]=null,r[s]=null,r[l]=null,t(d(n,!1))):(r[s]=t,r[l]=e)},writable:!0}),e));return r[p]=null,a(t,function(t){if(t&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code){var e=r[l];return null!==e&&(r[p]=null,r[s]=null,r[l]=null,e(t)),void(r[c]=t)}var n=r[s];null!==n&&(r[p]=null,r[s]=null,r[l]=null,n(d(void 0,!0))),r[u]=!0}),t.on("readable",y.bind(null,r)),r}},10272(t,e,r){"use strict";function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function o(t){for(var e=1;e0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r}},{key:"concat",value:function(t){if(0===this.length)return l.alloc(0);for(var e=l.allocUnsafe(t>>>0),r=this.head,n=0;r;)p(r.data,e,n),n+=r.data.length,r=r.next;return e}},{key:"consume",value:function(t,e){var r;return to.length?o.length:t;if(i===o.length?n+=o:n+=o.slice(0,t),0===(t-=i)){i===o.length?(++r,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=o.slice(i));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(t){var e=l.allocUnsafe(t),r=this.head,n=1;for(r.data.copy(e),t-=r.data.length;r=r.next;){var o=r.data,i=t>o.length?o.length:t;if(o.copy(e,e.length-t,0,i),0===(t-=i)){i===o.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=o.slice(i));break}++n}return this.length-=n,e}},{key:u,value:function(t,e){return c(this,o(o({},e),{},{depth:0,customInspect:!1}))}}])&&a(e.prototype,r),Object.defineProperty(e,"prototype",{writable:!1}),t}()},16057(t,e,r){"use strict";var n=r(65606);function o(t,e){a(t,e),i(t)}function i(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function a(t,e){t.emit("error",e)}t.exports={destroy:function(t,e){var r=this,s=this._readableState&&this._readableState.destroyed,l=this._writableState&&this._writableState.destroyed;return s||l?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,n.nextTick(a,this,t)):n.nextTick(a,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(t){!e&&t?r._writableState?r._writableState.errorEmitted?n.nextTick(i,r):(r._writableState.errorEmitted=!0,n.nextTick(o,r,t)):n.nextTick(o,r,t):e?(n.nextTick(i,r),e(t)):n.nextTick(i,r)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(t,e){var r=t._readableState,n=t._writableState;r&&r.autoDestroy||n&&n.autoDestroy?t.destroy(e):t.emit("error",e)}}},19959(t,e,r){"use strict";var n=r(73157).F.ERR_STREAM_PREMATURE_CLOSE;function o(){}t.exports=function t(e,r,i){if("function"==typeof r)return t(e,null,r);r||(r={}),i=function(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,n=new Array(r),o=0;o0,function(t){u||(u=t),t&&f.forEach(l),i||(f.forEach(l),p(u))})});return e.reduce(c)}},11922(t,e,r){"use strict";var n=r(73157).F.ERR_INVALID_OPT_VALUE;t.exports={getHighWaterMark:function(t,e,r,o){var i=function(t,e,r){return null!=t.highWaterMark?t.highWaterMark:e?t[r]:null}(e,o,r);if(null!=i){if(!isFinite(i)||Math.floor(i)!==i||i<0)throw new n(o?r:"highWaterMark",i);return Math.floor(i)}return t.objectMode?16:16384}}},81914(t,e,r){t.exports=r(37007).EventEmitter},63242(t,e,r){(e=t.exports=r(52341)).Stream=e,e.Readable=e,e.Writable=r(9573),e.Duplex=r(63527),e.Transform=r(95689),e.PassThrough=r(82571),e.finished=r(19959),e.pipeline=r(37413)},61160(t,e,r){"use strict";var n=r(92063),o=r(73992),i=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,a=/[\n\r\t]/g,s=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,l=/:\d+$/,c=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,u=/^[a-zA-Z]:/;function p(t){return(t||"").toString().replace(i,"")}var f=[["#","hash"],["?","query"],function(t,e){return g(e.protocol)?t.replace(/\\/g,"/"):t},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d*)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],h={hash:1,query:1};function d(t){var e,r=("undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{}).location||{},n={},o=typeof(t=t||r);if("blob:"===t.protocol)n=new m(unescape(t.pathname),{});else if("string"===o)for(e in n=new m(t,{}),h)delete n[e];else if("object"===o){for(e in t)e in h||(n[e]=t[e]);void 0===n.slashes&&(n.slashes=s.test(t.href))}return n}function g(t){return"file:"===t||"ftp:"===t||"http:"===t||"https:"===t||"ws:"===t||"wss:"===t}function y(t,e){t=(t=p(t)).replace(a,""),e=e||{};var r,n=c.exec(t),o=n[1]?n[1].toLowerCase():"",i=!!n[2],s=!!n[3],l=0;return i?s?(r=n[2]+n[3]+n[4],l=n[2].length+n[3].length):(r=n[2]+n[4],l=n[2].length):s?(r=n[3]+n[4],l=n[3].length):r=n[4],"file:"===o?l>=2&&(r=r.slice(2)):g(o)?r=n[4]:o?i&&(r=r.slice(2)):l>=2&&g(e.protocol)&&(r=n[4]),{protocol:o,slashes:i||g(o),slashesCount:l,rest:r}}function m(t,e,r){if(t=(t=p(t)).replace(a,""),!(this instanceof m))return new m(t,e,r);var i,s,l,c,h,b,v=f.slice(),w=typeof e,A=this,x=0;for("object"!==w&&"string"!==w&&(r=e,e=null),r&&"function"!=typeof r&&(r=o.parse),i=!(s=y(t||"",e=d(e))).protocol&&!s.slashes,A.slashes=s.slashes||i&&e.slashes,A.protocol=s.protocol||e.protocol||"",t=s.rest,("file:"===s.protocol&&(2!==s.slashesCount||u.test(t))||!s.slashes&&(s.protocol||s.slashesCount<2||!g(A.protocol)))&&(v[3]=[/(.*)/,"pathname"]);x",'"',"`"," ","\r","\n","\t"]),c=["'"].concat(l),u=["%","/","?",";","#"].concat(c),p=["/","?","#"],f=/^[+a-z0-9A-Z_-]{0,63}$/,h=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,d={javascript:!0,"javascript:":!0},g={javascript:!0,"javascript:":!0},y={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},m=r(55373);function b(t,e,r){if(t&&"object"==typeof t&&t instanceof o)return t;var n=new o;return n.parse(t,e,r),n}o.prototype.parse=function(t,e,r){if("string"!=typeof t)throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var o=t.indexOf("?"),a=-1!==o&&o127?P+="x":P+=N[I];if(!P.match(f)){var M=j.slice(0,O),L=j.slice(O+1),D=N.match(h);D&&(M.push(D[1]),L.unshift(D[2])),L.length&&(b="/"+L.join(".")+b),this.hostname=M.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),C||(this.hostname=n.toASCII(this.hostname));var $=this.port?":"+this.port:"",U=this.hostname||"";this.host=U+$,this.href+=this.host,C&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==b[0]&&(b="/"+b))}if(!d[A])for(O=0,R=c.length;O0)&&r.host.split("@"))&&(r.auth=C.shift(),r.hostname=C.shift(),r.host=r.hostname)),r.search=t.search,r.query=t.query,null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!x.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var _=x.slice(-1)[0],S=(r.host||t.host||x.length>1)&&("."===_||".."===_)||""===_,O=0,T=x.length;T>=0;T--)"."===(_=x[T])?x.splice(T,1):".."===_?(x.splice(T,1),O++):O&&(x.splice(T,1),O--);if(!w&&!A)for(;O--;O)x.unshift("..");!w||""===x[0]||x[0]&&"/"===x[0].charAt(0)||x.unshift(""),S&&"/"!==x.join("/").substr(-1)&&x.push("");var C,j=""===x[0]||x[0]&&"/"===x[0].charAt(0);return E&&(r.hostname=j?"":x.length?x.shift():"",r.host=r.hostname,(C=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=C.shift(),r.hostname=C.shift(),r.host=r.hostname)),(w=w||r.host&&x.length)&&!j&&x.unshift(""),x.length>0?r.pathname=x.join("/"):(r.pathname=null,r.path=null),null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r},o.prototype.parseHost=function(){var t=this.host,e=a.exec(t);e&&(":"!==(e=e[0])&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)},e.parse=b,e.resolve=function(t,e){return b(t,!1,!0).resolve(e)},e.resolveObject=function(t,e){return t?b(t,!1,!0).resolveObject(e):e},e.format=function(t){return"string"==typeof t&&(t=b(t)),t instanceof o?t.format():o.prototype.format.call(t)},e.Url=o},81135(t){t.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},49032(t,e,r){"use strict";var n=r(47244),o=r(48184),i=r(25767),a=r(35680);function s(t){return t.call.bind(t)}var l="undefined"!=typeof BigInt,c="undefined"!=typeof Symbol,u=s(Object.prototype.toString),p=s(Number.prototype.valueOf),f=s(String.prototype.valueOf),h=s(Boolean.prototype.valueOf);if(l)var d=s(BigInt.prototype.valueOf);if(c)var g=s(Symbol.prototype.valueOf);function y(t,e){if("object"!=typeof t)return!1;try{return e(t),!0}catch(t){return!1}}function m(t){return"[object Map]"===u(t)}function b(t){return"[object Set]"===u(t)}function v(t){return"[object WeakMap]"===u(t)}function w(t){return"[object WeakSet]"===u(t)}function A(t){return"[object ArrayBuffer]"===u(t)}function x(t){return"undefined"!=typeof ArrayBuffer&&(A.working?A(t):t instanceof ArrayBuffer)}function E(t){return"[object DataView]"===u(t)}function _(t){return"undefined"!=typeof DataView&&(E.working?E(t):t instanceof DataView)}e.isArgumentsObject=n,e.isGeneratorFunction=o,e.isTypedArray=a,e.isPromise=function(t){return"undefined"!=typeof Promise&&t instanceof Promise||null!==t&&"object"==typeof t&&"function"==typeof t.then&&"function"==typeof t.catch},e.isArrayBufferView=function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):a(t)||_(t)},e.isUint8Array=function(t){return"Uint8Array"===i(t)},e.isUint8ClampedArray=function(t){return"Uint8ClampedArray"===i(t)},e.isUint16Array=function(t){return"Uint16Array"===i(t)},e.isUint32Array=function(t){return"Uint32Array"===i(t)},e.isInt8Array=function(t){return"Int8Array"===i(t)},e.isInt16Array=function(t){return"Int16Array"===i(t)},e.isInt32Array=function(t){return"Int32Array"===i(t)},e.isFloat32Array=function(t){return"Float32Array"===i(t)},e.isFloat64Array=function(t){return"Float64Array"===i(t)},e.isBigInt64Array=function(t){return"BigInt64Array"===i(t)},e.isBigUint64Array=function(t){return"BigUint64Array"===i(t)},m.working="undefined"!=typeof Map&&m(new Map),e.isMap=function(t){return"undefined"!=typeof Map&&(m.working?m(t):t instanceof Map)},b.working="undefined"!=typeof Set&&b(new Set),e.isSet=function(t){return"undefined"!=typeof Set&&(b.working?b(t):t instanceof Set)},v.working="undefined"!=typeof WeakMap&&v(new WeakMap),e.isWeakMap=function(t){return"undefined"!=typeof WeakMap&&(v.working?v(t):t instanceof WeakMap)},w.working="undefined"!=typeof WeakSet&&w(new WeakSet),e.isWeakSet=function(t){return w(t)},A.working="undefined"!=typeof ArrayBuffer&&A(new ArrayBuffer),e.isArrayBuffer=x,E.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&E(new DataView(new ArrayBuffer(1),0,1)),e.isDataView=_;var S="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function O(t){return"[object SharedArrayBuffer]"===u(t)}function T(t){return void 0!==S&&(void 0===O.working&&(O.working=O(new S)),O.working?O(t):t instanceof S)}function C(t){return y(t,p)}function j(t){return y(t,f)}function R(t){return y(t,h)}function N(t){return l&&y(t,d)}function P(t){return c&&y(t,g)}e.isSharedArrayBuffer=T,e.isAsyncFunction=function(t){return"[object AsyncFunction]"===u(t)},e.isMapIterator=function(t){return"[object Map Iterator]"===u(t)},e.isSetIterator=function(t){return"[object Set Iterator]"===u(t)},e.isGeneratorObject=function(t){return"[object Generator]"===u(t)},e.isWebAssemblyCompiledModule=function(t){return"[object WebAssembly.Module]"===u(t)},e.isNumberObject=C,e.isStringObject=j,e.isBooleanObject=R,e.isBigIntObject=N,e.isSymbolObject=P,e.isBoxedPrimitive=function(t){return C(t)||j(t)||R(t)||N(t)||P(t)},e.isAnyArrayBuffer=function(t){return"undefined"!=typeof Uint8Array&&(x(t)||T(t))},["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(t){Object.defineProperty(e,t,{enumerable:!1,value:function(){throw new Error(t+" is not supported in userland")}})})},40537(t,e,r){var n=r(65606),o=Object.getOwnPropertyDescriptors||function(t){for(var e=Object.keys(t),r={},n=0;n=o)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}}),s=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),y(r)?n.showHidden=r:r&&e._extend(n,r),w(n.showHidden)&&(n.showHidden=!1),w(n.depth)&&(n.depth=2),w(n.colors)&&(n.colors=!1),w(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=u),f(n,t,n.depth)}function u(t,e){var r=c.styles[e];return r?"["+c.colors[r][0]+"m"+t+"["+c.colors[r][1]+"m":t}function p(t,e){return t}function f(t,r,n){if(t.customInspect&&r&&S(r.inspect)&&r.inspect!==e.inspect&&(!r.constructor||r.constructor.prototype!==r)){var o=r.inspect(n,t);return v(o)||(o=f(t,o,n)),o}var i=function(t,e){if(w(e))return t.stylize("undefined","undefined");if(v(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}return b(e)?t.stylize(""+e,"number"):y(e)?t.stylize(""+e,"boolean"):m(e)?t.stylize("null","null"):void 0}(t,r);if(i)return i;var a=Object.keys(r),s=function(t){var e={};return t.forEach(function(t,r){e[t]=!0}),e}(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(r)),_(r)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return h(r);if(0===a.length){if(S(r)){var l=r.name?": "+r.name:"";return t.stylize("[Function"+l+"]","special")}if(A(r))return t.stylize(RegExp.prototype.toString.call(r),"regexp");if(E(r))return t.stylize(Date.prototype.toString.call(r),"date");if(_(r))return h(r)}var c,u="",p=!1,x=["{","}"];return g(r)&&(p=!0,x=["[","]"]),S(r)&&(u=" [Function"+(r.name?": "+r.name:"")+"]"),A(r)&&(u=" "+RegExp.prototype.toString.call(r)),E(r)&&(u=" "+Date.prototype.toUTCString.call(r)),_(r)&&(u=" "+h(r)),0!==a.length||p&&0!=r.length?n<0?A(r)?t.stylize(RegExp.prototype.toString.call(r),"regexp"):t.stylize("[Object]","special"):(t.seen.push(r),c=p?function(t,e,r,n,o){for(var i=[],a=0,s=e.length;a60?r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n ")+" "+r[1]:r[0]+e+" "+t.join(", ")+" "+r[1]}(c,u,x)):x[0]+u+x[1]}function h(t){return"["+Error.prototype.toString.call(t)+"]"}function d(t,e,r,n,o,i){var a,s,l;if((l=Object.getOwnPropertyDescriptor(e,o)||{value:e[o]}).get?s=l.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):l.set&&(s=t.stylize("[Setter]","special")),j(n,o)||(a="["+o+"]"),s||(t.seen.indexOf(l.value)<0?(s=m(r)?f(t,l.value,null):f(t,l.value,r-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map(function(t){return" "+t}).join("\n").slice(2):"\n"+s.split("\n").map(function(t){return" "+t}).join("\n")):s=t.stylize("[Circular]","special")),w(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.slice(1,-1),a=t.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=t.stylize(a,"string"))}return a+": "+s}function g(t){return Array.isArray(t)}function y(t){return"boolean"==typeof t}function m(t){return null===t}function b(t){return"number"==typeof t}function v(t){return"string"==typeof t}function w(t){return void 0===t}function A(t){return x(t)&&"[object RegExp]"===O(t)}function x(t){return"object"==typeof t&&null!==t}function E(t){return x(t)&&"[object Date]"===O(t)}function _(t){return x(t)&&("[object Error]"===O(t)||t instanceof Error)}function S(t){return"function"==typeof t}function O(t){return Object.prototype.toString.call(t)}function T(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(t){if(t=t.toUpperCase(),!a[t])if(s.test(t)){var r=n.pid;a[t]=function(){var n=e.format.apply(e,arguments);console.error("%s %d: %s",t,r,n)}}else a[t]=function(){};return a[t]},e.inspect=c,c.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},c.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.types=r(49032),e.isArray=g,e.isBoolean=y,e.isNull=m,e.isNullOrUndefined=function(t){return null==t},e.isNumber=b,e.isString=v,e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=w,e.isRegExp=A,e.types.isRegExp=A,e.isObject=x,e.isDate=E,e.types.isDate=E,e.isError=_,e.types.isNativeError=_,e.isFunction=S,e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=r(81135);var C=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function j(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){var t,r;console.log("%s - %s",(r=[T((t=new Date).getHours()),T(t.getMinutes()),T(t.getSeconds())].join(":"),[t.getDate(),C[t.getMonth()],r].join(" ")),e.format.apply(e,arguments))},e.inherits=r(56698),e._extend=function(t,e){if(!e||!x(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t};var R="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function N(t,e){if(!t){var r=new Error("Promise was rejected with a falsy value");r.reason=t,t=r}return e(t)}e.promisify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');if(R&&t[R]){var e;if("function"!=typeof(e=t[R]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(e,R,{value:e,enumerable:!1,writable:!1,configurable:!0}),e}function e(){for(var e,r,n=new Promise(function(t,n){e=t,r=n}),o=[],i=0;i-1?e:"Object"===e&&function(t){var e=!1;return n(g,function(r,n){if(!e)try{r(t),e=h(n,1)}catch(t){}}),e}(t)}return s?function(t){var e=!1;return n(g,function(r,n){if(!e)try{"$"+r(t)===n&&(e=h(n,1))}catch(t){}}),e}(t):null}},57510(t){t.exports=function(){for(var t={},r=0;r{if(!r){var i=1/0;for(u=0;u=o)&&Object.keys(a.O).every(t=>a.O[t](r[l]))?r.splice(l--,1):(s=!1,o0&&e[u-1][2]>o;u--)e[u]=e[u-1];e[u]=[r,n,o]},a.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return a.d(e,{a:e}),e},a.d=(t,e)=>{for(var r in e)a.o(e,r)&&!a.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},a.f={},a.e=t=>Promise.all(Object.keys(a.f).reduce((e,r)=>(a.f[r](t,e),e),[])),a.u=t=>t+"-"+t+".js?v="+{1140:"490e17ed9c8948d5a9e8",2221:"428c2ff62c4b8b3c97fc",4508:"04b1afd183e5ecdd9cae",5448:"71cfe268d6f1213c4735",5528:"1445efe9cbaf4e4cbcb8",5862:"580b9c2e231a9169a12f",6015:"ebcb6885c1fc8c461988",7859:"740587c0c8c350dad157",7910:"de857920f8beb5205bbc",8815:"9a5c507c75429c9c04e4"}[t],a.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),r={},n="nextcloud-ui-legacy:",a.l=(t,e,o,i)=>{if(r[t])r[t].push(e);else{var s,l;if(void 0!==o)for(var c=document.getElementsByTagName("script"),u=0;u{s.onerror=s.onload=null,clearTimeout(h);var o=r[t];if(delete r[t],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach(t=>t(n)),e)return e(n)},h=setTimeout(f.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=f.bind(null,s.onerror),s.onload=f.bind(null,s.onload),l&&document.head.appendChild(s)}},a.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},a.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),a.j=7062,(()=>{var t;globalThis.importScripts&&(t=globalThis.location+"");var e=globalThis.document;if(!t&&e&&(e.currentScript&&"SCRIPT"===e.currentScript.tagName.toUpperCase()&&(t=e.currentScript.src),!t)){var r=e.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!t||!/^http(s?):/.test(t));)t=r[n--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),a.p=t})(),(()=>{a.b="undefined"!=typeof document&&document.baseURI||self.location.href;var t={7062:0};a.f.j=(e,r)=>{var n=a.o(t,e)?t[e]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise((r,o)=>n=t[e]=[r,o]);r.push(n[2]=o);var i=a.p+a.u(e),s=new Error;a.l(i,r=>{if(a.o(t,e)&&(0!==(n=t[e])&&(t[e]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),i=r&&r.target&&r.target.src;s.message="Loading chunk "+e+" failed.\n("+o+": "+i+")",s.name="ChunkLoadError",s.type=o,s.request=i,n[1](s)}},"chunk-"+e,e)}},a.O.j=e=>0===t[e];var e=(e,r)=>{var n,o,[i,s,l]=r,c=0;if(i.some(e=>0!==t[e])){for(n in s)a.o(s,n)&&(a.m[n]=s[n]);if(l)var u=l(a)}for(e&&e(r);ca(48439));s=a.O(s)})(); +//# sourceMappingURL=comments-comments-app.js.map?v=b5dc9d315e4ebaa02ed5 \ No newline at end of file diff --git a/dist/comments-comments-app.js.license b/dist/comments-comments-app.js.license index 18bb4bb07879d..b0026f845e255 100644 --- a/dist/comments-comments-app.js.license +++ b/dist/comments-comments-app.js.license @@ -230,7 +230,7 @@ This file is generated from multiple sources. Included packages: - version: 3.3.0 - license: MIT - fast-xml-parser - - version: 5.3.4 + - version: 5.3.6 - license: MIT - floating-vue - version: 1.0.0-beta.19 diff --git a/dist/comments-comments-app.js.map b/dist/comments-comments-app.js.map index 3851705eb347a..06a5c531980cd 100644 --- a/dist/comments-comments-app.js.map +++ b/dist/comments-comments-app.js.map @@ -1 +1 @@ -{"version":3,"file":"comments-comments-app.js?v=7daaba264f7a7d5e0461","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/comments/src/logger.js","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyTextOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyTextOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/MessageReplyTextOutline.vue?87e1","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyTextOutline.vue?vue&type=template&id=5d6c4e92","webpack:///nextcloud/node_modules/layerr/dist/error.js","webpack:///nextcloud/node_modules/layerr/dist/layerr.js","webpack:///nextcloud/node_modules/layerr/dist/tools.js","webpack:///nextcloud/node_modules/layerr/dist/global.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/path.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/url.js","webpack:///nextcloud/node_modules/url-join/lib/url-join.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/digest.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/crypto.js","webpack:///nextcloud/node_modules/webdav/node_modules/entities/dist/esm/decode.js","webpack:///nextcloud/node_modules/webdav/node_modules/entities/dist/esm/index.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/encode.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/basic.js","webpack:///nextcloud/node_modules/webdav/node_modules/entities/dist/esm/decode-codepoint.js","webpack:///nextcloud/node_modules/webdav/node_modules/entities/dist/esm/escape.js","webpack:///nextcloud/node_modules/@buttercup/fetch/dist/index.browser.js","webpack:///nextcloud/node_modules/webdav/dist/node/types.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/index.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/oauth.js","webpack:///nextcloud/node_modules/hot-patcher/dist/patcher.js","webpack:///nextcloud/node_modules/hot-patcher/dist/functions.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/patcher.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/env.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/merge.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/headers.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/arrayBuffer.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/buffer.js","webpack:///nextcloud/node_modules/webdav/dist/node/request.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/body.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/assert-valid-pattern.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/brace-expressions.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/unescape.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/ast.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/index.js","webpack:///nextcloud/node_modules/webdav/dist/node/response.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/escape.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/util.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js","webpack:///nextcloud/node_modules/strnum/strnum.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/ignoreAttributes.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/node2json.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/validator.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/dav.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/stat.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/createDirectory.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/createStream.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/getFileContents.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/xml.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/lock.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/getDAVCompliance.js","webpack:///nextcloud/node_modules/webdav/dist/node/factory.js","webpack:///nextcloud/apps/comments/src/utils/davUtils.js","webpack:///nextcloud/apps/comments/src/services/DavClient.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/copyFile.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/customRequest.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/deleteFile.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/exists.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/directoryContents.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/putFileContents.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/getQuota.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/quota.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/moveFile.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/size.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/partialUpdateFileContents.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/search.js","webpack:///nextcloud/apps/comments/src/utils/decodeHtmlEntities.js","webpack:///nextcloud/apps/comments/src/store/deletedCommentLimbo.js","webpack:///nextcloud/apps/comments/src/mixins/CommentMixin.js","webpack:///nextcloud/apps/comments/src/services/EditComment.js","webpack:///nextcloud/apps/comments/src/services/DeleteComment.js","webpack:///nextcloud/apps/comments/src/services/NewComment.js","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/comments/src/components/Comment.vue","webpack://nextcloud/./apps/comments/src/components/Comment.vue?7275","webpack://nextcloud/./apps/comments/src/components/Comment.vue?7f26","webpack://nextcloud/./apps/comments/src/components/Comment.vue?d1f7","webpack:///nextcloud/apps/comments/src/mixins/CommentView.ts","webpack:///nextcloud/apps/comments/src/services/GetComments.ts","webpack:///nextcloud/apps/comments/src/utils/cancelableRequest.js","webpack:///nextcloud/apps/comments/src/views/Comments.vue","webpack:///nextcloud/apps/comments/src/services/ReadComments.ts","webpack:///nextcloud/apps/comments/src/views/Comments.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/comments/src/views/Comments.vue?4d55","webpack://nextcloud/./apps/comments/src/views/Comments.vue?f45b","webpack://nextcloud/./apps/comments/src/views/Comments.vue?0e41","webpack:///nextcloud/apps/comments/src/services/CommentsInstance.js","webpack:///nextcloud/apps/comments/src/comments-app.js","webpack:///nextcloud/node_modules/balanced-match/index.js","webpack:///nextcloud/node_modules/base-64/base64.js","webpack:///nextcloud/node_modules/brace-expansion/index.js","webpack:///nextcloud/node_modules/builtin-status-codes/browser.js","webpack:///nextcloud/node_modules/byte-length/dist/index.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/actualApply.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/applyBind.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/functionApply.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/functionCall.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/index.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/reflectApply.js","webpack:///nextcloud/node_modules/call-bind/index.js","webpack:///nextcloud/node_modules/call-bound/index.js","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=70317f94&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/comments/src/views/Comments.vue?vue&type=style&index=0&id=6c8c157a&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/define-data-property/index.js","webpack:///nextcloud/node_modules/dunder-proto/get.js","webpack:///nextcloud/node_modules/es-define-property/index.js","webpack:///nextcloud/node_modules/es-errors/eval.js","webpack:///nextcloud/node_modules/es-errors/index.js","webpack:///nextcloud/node_modules/es-errors/range.js","webpack:///nextcloud/node_modules/es-errors/ref.js","webpack:///nextcloud/node_modules/es-errors/syntax.js","webpack:///nextcloud/node_modules/es-errors/type.js","webpack:///nextcloud/node_modules/es-errors/uri.js","webpack:///nextcloud/node_modules/es-object-atoms/index.js","webpack:///nextcloud/node_modules/for-each/index.js","webpack:///nextcloud/node_modules/function-bind/implementation.js","webpack:///nextcloud/node_modules/function-bind/index.js","webpack:///nextcloud/node_modules/generator-function/index.js","webpack:///nextcloud/node_modules/get-intrinsic/index.js","webpack:///nextcloud/node_modules/get-proto/Object.getPrototypeOf.js","webpack:///nextcloud/node_modules/get-proto/Reflect.getPrototypeOf.js","webpack:///nextcloud/node_modules/get-proto/index.js","webpack:///nextcloud/node_modules/gopd/gOPD.js","webpack:///nextcloud/node_modules/gopd/index.js","webpack:///nextcloud/node_modules/has-property-descriptors/index.js","webpack:///nextcloud/node_modules/has-symbols/index.js","webpack:///nextcloud/node_modules/has-symbols/shams.js","webpack:///nextcloud/node_modules/has-tostringtag/shams.js","webpack:///nextcloud/node_modules/hasown/index.js","webpack:///nextcloud/node_modules/https-browserify/index.js","webpack:///nextcloud/node_modules/is-arguments/index.js","webpack:///nextcloud/node_modules/is-callable/index.js","webpack:///nextcloud/node_modules/is-generator-function/index.js","webpack:///nextcloud/node_modules/is-regex/index.js","webpack:///nextcloud/node_modules/is-typed-array/index.js","webpack:///nextcloud/node_modules/math-intrinsics/abs.js","webpack:///nextcloud/node_modules/math-intrinsics/floor.js","webpack:///nextcloud/node_modules/math-intrinsics/isNaN.js","webpack:///nextcloud/node_modules/math-intrinsics/max.js","webpack:///nextcloud/node_modules/math-intrinsics/min.js","webpack:///nextcloud/node_modules/math-intrinsics/pow.js","webpack:///nextcloud/node_modules/math-intrinsics/round.js","webpack:///nextcloud/node_modules/math-intrinsics/sign.js","webpack:///nextcloud/node_modules/nested-property/dist/nested-property.js","webpack:///nextcloud/node_modules/object-inspect/index.js","webpack:///nextcloud/node_modules/path-posix/index.js","webpack:///nextcloud/node_modules/possible-typed-array-names/index.js","webpack:///nextcloud/node_modules/punycode/punycode.js","webpack:///nextcloud/node_modules/qs/lib/formats.js","webpack:///nextcloud/node_modules/qs/lib/index.js","webpack:///nextcloud/node_modules/qs/lib/parse.js","webpack:///nextcloud/node_modules/qs/lib/stringify.js","webpack:///nextcloud/node_modules/qs/lib/utils.js","webpack:///nextcloud/node_modules/querystringify/index.js","webpack:///nextcloud/node_modules/requires-port/index.js","webpack:///nextcloud/node_modules/safe-regex-test/index.js","webpack:///nextcloud/node_modules/set-function-length/index.js","webpack:///nextcloud/node_modules/side-channel-list/index.js","webpack:///nextcloud/node_modules/side-channel-map/index.js","webpack:///nextcloud/node_modules/side-channel-weakmap/index.js","webpack:///nextcloud/node_modules/side-channel/index.js","webpack:///nextcloud/node_modules/stream-http/index.js","webpack:///nextcloud/node_modules/stream-http/lib/capability.js","webpack:///nextcloud/node_modules/stream-http/lib/request.js","webpack:///nextcloud/node_modules/stream-http/lib/response.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/errors-browser.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_readable.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_transform.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_writable.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/readable-browser.js","webpack:///nextcloud/node_modules/url-parse/index.js","webpack:///nextcloud/node_modules/url/url.js","webpack:///nextcloud/node_modules/util/support/isBufferBrowser.js","webpack:///nextcloud/node_modules/util/support/types.js","webpack:///nextcloud/node_modules/util/util.js","webpack:///nextcloud/node_modules/which-typed-array/index.js","webpack:///nextcloud/node_modules/xtend/immutable.js","webpack:///nextcloud/node_modules/available-typed-arrays/index.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('comments')\n\t.detectUser()\n\t.build()\n","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./MessageReplyTextOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./MessageReplyTextOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MessageReplyTextOutline.vue?vue&type=template&id=5d6c4e92\"\nimport script from \"./MessageReplyTextOutline.vue?vue&type=script&lang=js\"\nexport * from \"./MessageReplyTextOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon message-reply-text-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9 11H18V13H9V11M18 7H6V9H18V7M22 4V22L18 18H4C2.9 18 2 17.11 2 16V4C2 2.9 2.9 2 4 2H20C21.1 2 22 2.89 22 4M20 4H4V16H18.83L20 17.17V4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export function assertError(err) {\n if (!isError(err)) {\n throw new Error(\"Parameter was not an error\");\n }\n}\nexport function isError(err) {\n return ((!!err &&\n typeof err === \"object\" &&\n objectToString(err) === \"[object Error]\") ||\n err instanceof Error);\n}\nfunction objectToString(obj) {\n return Object.prototype.toString.call(obj);\n}\n","import { assertError, isError } from \"./error.js\";\nimport { getGlobalName } from \"./global.js\";\nimport { parseArguments } from \"./tools.js\";\nexport class Layerr extends Error {\n constructor(errorOptionsOrMessage, messageText) {\n const args = [...arguments];\n const { options, shortMessage } = parseArguments(args);\n let message = shortMessage;\n if (options.cause) {\n message = `${message}: ${options.cause.message}`;\n }\n super(message);\n this.message = message;\n if (options.name && typeof options.name === \"string\") {\n this.name = options.name;\n }\n else {\n this.name = getGlobalName();\n }\n if (options.cause) {\n Object.defineProperty(this, \"_cause\", { value: options.cause });\n }\n Object.defineProperty(this, \"_info\", { value: {} });\n if (options.info && typeof options.info === \"object\") {\n Object.assign(this._info, options.info);\n }\n if (Error.captureStackTrace) {\n const ctor = options.constructorOpt || this.constructor;\n Error.captureStackTrace(this, ctor);\n }\n }\n static cause(err) {\n assertError(err);\n if (!err._cause)\n return null;\n return isError(err._cause)\n ? err._cause\n : null;\n }\n static fullStack(err) {\n assertError(err);\n const cause = Layerr.cause(err);\n if (cause) {\n return `${err.stack}\\ncaused by: ${Layerr.fullStack(cause)}`;\n }\n return err.stack ?? \"\";\n }\n static info(err) {\n assertError(err);\n const output = {};\n const cause = Layerr.cause(err);\n if (cause) {\n Object.assign(output, Layerr.info(cause));\n }\n if (err._info) {\n Object.assign(output, err._info);\n }\n return output;\n }\n toString() {\n let output = this.name ||\n this.constructor.name ||\n this.constructor.prototype.name;\n if (this.message) {\n output = `${output}: ${this.message}`;\n }\n return output;\n }\n}\n","import { isError } from \"./error.js\";\nexport function parseArguments(args) {\n let options, shortMessage = \"\";\n if (args.length === 0) {\n options = {};\n }\n else if (isError(args[0])) {\n options = {\n cause: args[0],\n };\n shortMessage = args.slice(1).join(\" \") || \"\";\n }\n else if (args[0] && typeof args[0] === \"object\") {\n options = Object.assign({}, args[0]);\n shortMessage = args.slice(1).join(\" \") || \"\";\n }\n else if (typeof args[0] === \"string\") {\n options = {};\n shortMessage = shortMessage = args.join(\" \") || \"\";\n }\n else {\n throw new Error(\"Invalid arguments passed to Layerr\");\n }\n return {\n options,\n shortMessage,\n };\n}\n","const NAME = \"Layerr\";\nlet __name = NAME;\nexport function getGlobalName() {\n return __name;\n}\nexport function setGlobalName(name = null) {\n __name = name ?? NAME;\n}\n","import { Layerr } from \"layerr\";\nimport path from \"path-posix\";\nconst SEP_PATH_POSIX = \"__PATH_SEPARATOR_POSIX__\";\nconst SEP_PATH_WINDOWS = \"__PATH_SEPARATOR_WINDOWS__\";\nexport function encodePath(filePath) {\n try {\n const replaced = filePath.replace(/\\//g, SEP_PATH_POSIX).replace(/\\\\\\\\/g, SEP_PATH_WINDOWS);\n const formatted = encodeURIComponent(replaced);\n return formatted.split(SEP_PATH_WINDOWS).join(\"\\\\\\\\\").split(SEP_PATH_POSIX).join(\"/\");\n }\n catch (err) {\n throw new Layerr(err, \"Failed encoding path\");\n }\n}\nexport function getAllDirectories(directory) {\n if (!directory || directory === \"/\")\n return [];\n let currentPath = directory;\n const output = [];\n do {\n output.push(currentPath);\n currentPath = path.dirname(currentPath);\n } while (currentPath && currentPath !== \"/\");\n return output;\n}\nexport function makePathAbsolute(pathStr) {\n return pathStr.startsWith(\"/\") ? pathStr : \"/\" + pathStr;\n}\nexport function normalisePath(pathStr) {\n let normalisedPath = pathStr;\n if (normalisedPath[0] !== \"/\") {\n normalisedPath = \"/\" + normalisedPath;\n }\n if (/^.+\\/$/.test(normalisedPath)) {\n normalisedPath = normalisedPath.substr(0, normalisedPath.length - 1);\n }\n return normalisedPath;\n}\n","import URL from \"url-parse\";\nimport { Layerr } from \"layerr\";\nimport _joinURL from \"url-join\";\nimport { normalisePath } from \"./path.js\";\nexport function extractURLPath(fullURL) {\n const url = new URL(fullURL);\n let urlPath = url.pathname;\n if (urlPath.length <= 0) {\n urlPath = \"/\";\n }\n return normalisePath(urlPath);\n}\nexport function joinURL(...parts) {\n return _joinURL(parts.reduce((output, nextPart, partIndex) => {\n if (partIndex === 0 ||\n nextPart !== \"/\" ||\n (nextPart === \"/\" && output[output.length - 1] !== \"/\")) {\n output.push(nextPart);\n }\n return output;\n }, []));\n}\nexport function normaliseHREF(href) {\n try {\n const normalisedHref = href.replace(/^https?:\\/\\/[^\\/]+/, \"\");\n return normalisedHref;\n }\n catch (err) {\n throw new Layerr(err, \"Failed normalising HREF\");\n }\n}\n","function normalize (strArray) {\n var resultArray = [];\n if (strArray.length === 0) { return ''; }\n\n if (typeof strArray[0] !== 'string') {\n throw new TypeError('Url must be a string. Received ' + strArray[0]);\n }\n\n // If the first part is a plain protocol, we combine it with the next part.\n if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n var first = strArray.shift();\n strArray[0] = first + strArray[0];\n }\n\n // There must be two or three slashes in the file protocol, two slashes in anything else.\n if (strArray[0].match(/^file:\\/\\/\\//)) {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n } else {\n strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n }\n\n for (var i = 0; i < strArray.length; i++) {\n var component = strArray[i];\n\n if (typeof component !== 'string') {\n throw new TypeError('Url must be a string. Received ' + component);\n }\n\n if (component === '') { continue; }\n\n if (i > 0) {\n // Removing the starting slashes for each component but the first.\n component = component.replace(/^[\\/]+/, '');\n }\n if (i < strArray.length - 1) {\n // Removing the ending slashes for each component but the last.\n component = component.replace(/[\\/]+$/, '');\n } else {\n // For the last component we will combine multiple slashes to a single one.\n component = component.replace(/[\\/]+$/, '/');\n }\n\n resultArray.push(component);\n\n }\n\n var str = resultArray.join('/');\n // Each input component is now separated by a single slash except the possible first plain protocol part.\n\n // remove trailing slash before parameters or hash\n str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n\n // replace ? in parameters with &\n var parts = str.split('?');\n str = parts.shift() + (parts.length > 0 ? '?': '') + parts.join('&');\n\n return str;\n}\n\nexport default function urlJoin() {\n var input;\n\n if (typeof arguments[0] === 'object') {\n input = arguments[0];\n } else {\n input = [].slice.call(arguments);\n }\n\n return normalize(input);\n}\n","import md5 from \"md5\";\nimport { ha1Compute } from \"../tools/crypto.js\";\nconst NONCE_CHARS = \"abcdef0123456789\";\nconst NONCE_SIZE = 32;\nexport function createDigestContext(username, password, ha1) {\n return { username, password, ha1, nc: 0, algorithm: \"md5\", hasDigestAuth: false };\n}\nexport function generateDigestAuthHeader(options, digest) {\n const url = options.url.replace(\"//\", \"\");\n const uri = url.indexOf(\"/\") == -1 ? \"/\" : url.slice(url.indexOf(\"/\"));\n const method = options.method ? options.method.toUpperCase() : \"GET\";\n const qop = /(^|,)\\s*auth\\s*($|,)/.test(digest.qop) ? \"auth\" : false;\n const ncString = `00000000${digest.nc}`.slice(-8);\n const ha1 = ha1Compute(digest.algorithm, digest.username, digest.realm, digest.password, digest.nonce, digest.cnonce, digest.ha1);\n const ha2 = md5(`${method}:${uri}`);\n const digestResponse = qop\n ? md5(`${ha1}:${digest.nonce}:${ncString}:${digest.cnonce}:${qop}:${ha2}`)\n : md5(`${ha1}:${digest.nonce}:${ha2}`);\n const authValues = {\n username: digest.username,\n realm: digest.realm,\n nonce: digest.nonce,\n uri,\n qop,\n response: digestResponse,\n nc: ncString,\n cnonce: digest.cnonce,\n algorithm: digest.algorithm,\n opaque: digest.opaque\n };\n const authHeader = [];\n for (const k in authValues) {\n if (authValues[k]) {\n if (k === \"qop\" || k === \"nc\" || k === \"algorithm\") {\n authHeader.push(`${k}=${authValues[k]}`);\n }\n else {\n authHeader.push(`${k}=\"${authValues[k]}\"`);\n }\n }\n }\n return `Digest ${authHeader.join(\", \")}`;\n}\nfunction makeNonce() {\n let uid = \"\";\n for (let i = 0; i < NONCE_SIZE; ++i) {\n uid = `${uid}${NONCE_CHARS[Math.floor(Math.random() * NONCE_CHARS.length)]}`;\n }\n return uid;\n}\nexport function parseDigestAuth(response, _digest) {\n const isDigest = responseIndicatesDigestAuth(response);\n if (!isDigest) {\n return false;\n }\n const re = /([a-z0-9_-]+)=(?:\"([^\"]+)\"|([a-z0-9_-]+))/gi;\n for (;;) {\n const authHeader = (response.headers && response.headers.get(\"www-authenticate\")) || \"\";\n const match = re.exec(authHeader);\n if (!match) {\n break;\n }\n _digest[match[1]] = match[2] || match[3];\n }\n _digest.nc += 1;\n _digest.cnonce = makeNonce();\n return true;\n}\nexport function responseIndicatesDigestAuth(response) {\n const authHeader = (response.headers && response.headers.get(\"www-authenticate\")) || \"\";\n return authHeader.split(/\\s/)[0].toLowerCase() === \"digest\";\n}\n","import md5 from \"md5\";\nexport function ha1Compute(algorithm, user, realm, pass, nonce, cnonce, ha1) {\n const ha1Hash = ha1 || md5(`${user}:${realm}:${pass}`);\n if (algorithm && algorithm.toLowerCase() === \"md5-sess\") {\n return md5(`${ha1Hash}:${nonce}:${cnonce}`);\n }\n return ha1Hash;\n}\n","import { htmlDecodeTree } from \"./generated/decode-data-html.js\";\nimport { xmlDecodeTree } from \"./generated/decode-data-xml.js\";\nimport { replaceCodePoint, fromCodePoint } from \"./decode-codepoint.js\";\nvar CharCodes;\n(function (CharCodes) {\n CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 32;\nexport var BinTrieFlags;\n(function (BinTrieFlags) {\n BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags || (BinTrieFlags = {}));\nfunction isNumber(code) {\n return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nexport var DecodingMode;\n(function (DecodingMode) {\n /** Entities in text nodes that can end with any character. */\n DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n /** Only allow entities terminated with a semicolon. */\n DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n /** Entities in attributes have limitations on ending characters. */\n DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode || (DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nexport class EntityDecoder {\n constructor(\n /** The tree used to decode entities. */\n decodeTree, \n /**\n * The function that is called when a codepoint is decoded.\n *\n * For multi-byte named entities, this will be called multiple times,\n * with the second codepoint, and the same `consumed` value.\n *\n * @param codepoint The decoded codepoint.\n * @param consumed The number of bytes consumed by the decoder.\n */\n emitCodePoint, \n /** An object that is used to produce errors. */\n errors) {\n this.decodeTree = decodeTree;\n this.emitCodePoint = emitCodePoint;\n this.errors = errors;\n /** The current state of the decoder. */\n this.state = EntityDecoderState.EntityStart;\n /** Characters that were consumed while parsing an entity. */\n this.consumed = 1;\n /**\n * The result of the entity.\n *\n * Either the result index of a numeric entity, or the codepoint of a\n * numeric entity.\n */\n this.result = 0;\n /** The current index in the decode tree. */\n this.treeIndex = 0;\n /** The number of characters that were consumed in excess. */\n this.excess = 1;\n /** The mode in which the decoder is operating. */\n this.decodeMode = DecodingMode.Strict;\n }\n /** Resets the instance to make it reusable. */\n startEntity(decodeMode) {\n this.decodeMode = decodeMode;\n this.state = EntityDecoderState.EntityStart;\n this.result = 0;\n this.treeIndex = 0;\n this.excess = 1;\n this.consumed = 1;\n }\n /**\n * Write an entity to the decoder. This can be called multiple times with partial entities.\n * If the entity is incomplete, the decoder will return -1.\n *\n * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n * entity is incomplete, and resume when the next string is written.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n write(input, offset) {\n switch (this.state) {\n case EntityDecoderState.EntityStart: {\n if (input.charCodeAt(offset) === CharCodes.NUM) {\n this.state = EntityDecoderState.NumericStart;\n this.consumed += 1;\n return this.stateNumericStart(input, offset + 1);\n }\n this.state = EntityDecoderState.NamedEntity;\n return this.stateNamedEntity(input, offset);\n }\n case EntityDecoderState.NumericStart: {\n return this.stateNumericStart(input, offset);\n }\n case EntityDecoderState.NumericDecimal: {\n return this.stateNumericDecimal(input, offset);\n }\n case EntityDecoderState.NumericHex: {\n return this.stateNumericHex(input, offset);\n }\n case EntityDecoderState.NamedEntity: {\n return this.stateNamedEntity(input, offset);\n }\n }\n }\n /**\n * Switches between the numeric decimal and hexadecimal states.\n *\n * Equivalent to the `Numeric character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericStart(input, offset) {\n if (offset >= input.length) {\n return -1;\n }\n if ((input.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n this.state = EntityDecoderState.NumericHex;\n this.consumed += 1;\n return this.stateNumericHex(input, offset + 1);\n }\n this.state = EntityDecoderState.NumericDecimal;\n return this.stateNumericDecimal(input, offset);\n }\n addToNumericResult(input, start, end, base) {\n if (start !== end) {\n const digitCount = end - start;\n this.result =\n this.result * Math.pow(base, digitCount) +\n Number.parseInt(input.substr(start, digitCount), base);\n this.consumed += digitCount;\n }\n }\n /**\n * Parses a hexadecimal numeric entity.\n *\n * Equivalent to the `Hexademical character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericHex(input, offset) {\n const startIndex = offset;\n while (offset < input.length) {\n const char = input.charCodeAt(offset);\n if (isNumber(char) || isHexadecimalCharacter(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(input, startIndex, offset, 16);\n return this.emitNumericEntity(char, 3);\n }\n }\n this.addToNumericResult(input, startIndex, offset, 16);\n return -1;\n }\n /**\n * Parses a decimal numeric entity.\n *\n * Equivalent to the `Decimal character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNumericDecimal(input, offset) {\n const startIndex = offset;\n while (offset < input.length) {\n const char = input.charCodeAt(offset);\n if (isNumber(char)) {\n offset += 1;\n }\n else {\n this.addToNumericResult(input, startIndex, offset, 10);\n return this.emitNumericEntity(char, 2);\n }\n }\n this.addToNumericResult(input, startIndex, offset, 10);\n return -1;\n }\n /**\n * Validate and emit a numeric entity.\n *\n * Implements the logic from the `Hexademical character reference start\n * state` and `Numeric character reference end state` in the HTML spec.\n *\n * @param lastCp The last code point of the entity. Used to see if the\n * entity was terminated with a semicolon.\n * @param expectedLength The minimum number of characters that should be\n * consumed. Used to validate that at least one digit\n * was consumed.\n * @returns The number of characters that were consumed.\n */\n emitNumericEntity(lastCp, expectedLength) {\n var _a;\n // Ensure we consumed at least one digit.\n if (this.consumed <= expectedLength) {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n // Figure out if this is a legit end of the entity\n if (lastCp === CharCodes.SEMI) {\n this.consumed += 1;\n }\n else if (this.decodeMode === DecodingMode.Strict) {\n return 0;\n }\n this.emitCodePoint(replaceCodePoint(this.result), this.consumed);\n if (this.errors) {\n if (lastCp !== CharCodes.SEMI) {\n this.errors.missingSemicolonAfterCharacterReference();\n }\n this.errors.validateNumericCharacterReference(this.result);\n }\n return this.consumed;\n }\n /**\n * Parses a named entity.\n *\n * Equivalent to the `Named character reference state` in the HTML spec.\n *\n * @param input The string containing the entity (or a continuation of the entity).\n * @param offset The current offset.\n * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n */\n stateNamedEntity(input, offset) {\n const { decodeTree } = this;\n let current = decodeTree[this.treeIndex];\n // The mask is the number of bytes of the value, including the current byte.\n let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n for (; offset < input.length; offset++, this.excess++) {\n const char = input.charCodeAt(offset);\n this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n if (this.treeIndex < 0) {\n return this.result === 0 ||\n // If we are parsing an attribute\n (this.decodeMode === DecodingMode.Attribute &&\n // We shouldn't have consumed any characters after the entity,\n (valueLength === 0 ||\n // And there should be no invalid characters.\n isEntityInAttributeInvalidEnd(char)))\n ? 0\n : this.emitNotTerminatedNamedEntity();\n }\n current = decodeTree[this.treeIndex];\n valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n // If the branch is a value, store it and continue\n if (valueLength !== 0) {\n // If the entity is terminated by a semicolon, we are done.\n if (char === CharCodes.SEMI) {\n return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n }\n // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n if (this.decodeMode !== DecodingMode.Strict) {\n this.result = this.treeIndex;\n this.consumed += this.excess;\n this.excess = 0;\n }\n }\n }\n return -1;\n }\n /**\n * Emit a named entity that was not terminated with a semicolon.\n *\n * @returns The number of characters consumed.\n */\n emitNotTerminatedNamedEntity() {\n var _a;\n const { result, decodeTree } = this;\n const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n this.emitNamedEntityData(result, valueLength, this.consumed);\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n return this.consumed;\n }\n /**\n * Emit a named entity.\n *\n * @param result The index of the entity in the decode tree.\n * @param valueLength The number of bytes in the entity.\n * @param consumed The number of characters consumed.\n *\n * @returns The number of characters consumed.\n */\n emitNamedEntityData(result, valueLength, consumed) {\n const { decodeTree } = this;\n this.emitCodePoint(valueLength === 1\n ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n : decodeTree[result + 1], consumed);\n if (valueLength === 3) {\n // For multi-byte values, we need to emit the second byte.\n this.emitCodePoint(decodeTree[result + 2], consumed);\n }\n return consumed;\n }\n /**\n * Signal to the parser that the end of the input was reached.\n *\n * Remaining data will be emitted and relevant errors will be produced.\n *\n * @returns The number of characters consumed.\n */\n end() {\n var _a;\n switch (this.state) {\n case EntityDecoderState.NamedEntity: {\n // Emit a named entity if we have one.\n return this.result !== 0 &&\n (this.decodeMode !== DecodingMode.Attribute ||\n this.result === this.treeIndex)\n ? this.emitNotTerminatedNamedEntity()\n : 0;\n }\n // Otherwise, emit a numeric entity if we have one.\n case EntityDecoderState.NumericDecimal: {\n return this.emitNumericEntity(0, 2);\n }\n case EntityDecoderState.NumericHex: {\n return this.emitNumericEntity(0, 3);\n }\n case EntityDecoderState.NumericStart: {\n (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n return 0;\n }\n case EntityDecoderState.EntityStart: {\n // Return 0 if we have no entity.\n return 0;\n }\n }\n }\n}\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n let returnValue = \"\";\n const decoder = new EntityDecoder(decodeTree, (data) => (returnValue += fromCodePoint(data)));\n return function decodeWithTrie(input, decodeMode) {\n let lastIndex = 0;\n let offset = 0;\n while ((offset = input.indexOf(\"&\", offset)) >= 0) {\n returnValue += input.slice(lastIndex, offset);\n decoder.startEntity(decodeMode);\n const length = decoder.write(input, \n // Skip the \"&\"\n offset + 1);\n if (length < 0) {\n lastIndex = offset + decoder.end();\n break;\n }\n lastIndex = offset + length;\n // If `length` is 0, skip the current `&` and continue.\n offset = length === 0 ? lastIndex + 1 : lastIndex;\n }\n const result = returnValue + input.slice(lastIndex);\n // Make sure we don't keep a reference to the final string.\n returnValue = \"\";\n return result;\n };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nexport function determineBranch(decodeTree, current, nodeIndex, char) {\n const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n const jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n // Case 1: Single branch encoded in jump offset\n if (branchCount === 0) {\n return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1;\n }\n // Case 2: Multiple branches encoded in jump table\n if (jumpOffset) {\n const value = char - jumpOffset;\n return value < 0 || value >= branchCount\n ? -1\n : decodeTree[nodeIndex + value] - 1;\n }\n // Case 3: Multiple branches encoded in dictionary\n // Binary search for the character.\n let lo = nodeIndex;\n let hi = lo + branchCount - 1;\n while (lo <= hi) {\n const mid = (lo + hi) >>> 1;\n const midValue = decodeTree[mid];\n if (midValue < char) {\n lo = mid + 1;\n }\n else if (midValue > char) {\n hi = mid - 1;\n }\n else {\n return decodeTree[mid + branchCount];\n }\n }\n return -1;\n}\nconst htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);\nconst xmlDecoder = /* #__PURE__ */ getDecoder(xmlDecodeTree);\n/**\n * Decodes an HTML string.\n *\n * @param htmlString The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nexport function decodeHTML(htmlString, mode = DecodingMode.Legacy) {\n return htmlDecoder(htmlString, mode);\n}\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param htmlAttribute The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLAttribute(htmlAttribute) {\n return htmlDecoder(htmlAttribute, DecodingMode.Attribute);\n}\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param htmlString The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLStrict(htmlString) {\n return htmlDecoder(htmlString, DecodingMode.Strict);\n}\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param xmlString The string to decode.\n * @returns The decoded string.\n */\nexport function decodeXML(xmlString) {\n return xmlDecoder(xmlString, DecodingMode.Strict);\n}\n// Re-export for use by eg. htmlparser2\nexport { htmlDecodeTree } from \"./generated/decode-data-html.js\";\nexport { xmlDecodeTree } from \"./generated/decode-data-xml.js\";\nexport { decodeCodePoint, replaceCodePoint, fromCodePoint, } from \"./decode-codepoint.js\";\n//# sourceMappingURL=decode.js.map","import { decodeXML, decodeHTML, DecodingMode } from \"./decode.js\";\nimport { encodeHTML, encodeNonAsciiHTML } from \"./encode.js\";\nimport { encodeXML, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\n/** The level of entities to support. */\nexport var EntityLevel;\n(function (EntityLevel) {\n /** Support only XML entities. */\n EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n /** Support HTML entities, which are a superset of XML entities. */\n EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel || (EntityLevel = {}));\nexport var EncodingMode;\n(function (EncodingMode) {\n /**\n * The output is UTF-8 encoded. Only characters that need escaping within\n * XML will be escaped.\n */\n EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n /**\n * The output consists only of ASCII characters. Characters that need\n * escaping within HTML, and characters that aren't ASCII characters will\n * be escaped.\n */\n EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n /**\n * Encode all characters that have an equivalent entity, as well as all\n * characters that are not ASCII characters.\n */\n EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n /**\n * Encode all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n /**\n * Encode all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n */\n EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode || (EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param input String to decode.\n * @param options Decoding options.\n */\nexport function decode(input, options = EntityLevel.XML) {\n const level = typeof options === \"number\" ? options : options.level;\n if (level === EntityLevel.HTML) {\n const mode = typeof options === \"object\" ? options.mode : undefined;\n return decodeHTML(input, mode);\n }\n return decodeXML(input);\n}\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param input String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nexport function decodeStrict(input, options = EntityLevel.XML) {\n var _a;\n const normalizedOptions = typeof options === \"number\" ? { level: options } : options;\n (_a = normalizedOptions.mode) !== null && _a !== void 0 ? _a : (normalizedOptions.mode = DecodingMode.Strict);\n return decode(input, normalizedOptions);\n}\n/**\n * Encodes a string with entities.\n *\n * @param input String to encode.\n * @param options Encoding options.\n */\nexport function encode(input, options = EntityLevel.XML) {\n const { mode = EncodingMode.Extensive, level = EntityLevel.XML } = typeof options === \"number\" ? { level: options } : options;\n switch (mode) {\n case EncodingMode.UTF8: {\n return escapeUTF8(input);\n }\n case EncodingMode.Attribute: {\n return escapeAttribute(input);\n }\n case EncodingMode.Text: {\n return escapeText(input);\n }\n case EncodingMode.ASCII: {\n return level === EntityLevel.HTML\n ? encodeNonAsciiHTML(input)\n : encodeXML(input);\n }\n // eslint-disable-next-line unicorn/no-useless-switch-case\n case EncodingMode.Extensive:\n default: {\n return level === EntityLevel.HTML\n ? encodeHTML(input)\n : encodeXML(input);\n }\n }\n}\nexport { encodeXML, escape, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\nexport { encodeHTML, encodeNonAsciiHTML, \n// Legacy aliases (deprecated)\nencodeHTML as encodeHTML4, encodeHTML as encodeHTML5, } from \"./encode.js\";\nexport { EntityDecoder, DecodingMode, decodeXML, decodeHTML, decodeHTMLStrict, decodeHTMLAttribute, \n// Legacy aliases (deprecated)\ndecodeHTML as decodeHTML4, decodeHTML as decodeHTML5, decodeHTMLStrict as decodeHTML4Strict, decodeHTMLStrict as decodeHTML5Strict, decodeXML as decodeXMLStrict, } from \"./decode.js\";\n//# sourceMappingURL=index.js.map","import base64 from \"base-64\";\nimport { decodeHTML } from \"entities\";\nimport { isWeb } from \"../compat/env.js\";\nexport function decodeHTMLEntities(text) {\n if (isWeb()) {\n const txt = document.createElement(\"textarea\");\n txt.innerHTML = text;\n return txt.value;\n }\n return decodeHTML(text);\n}\nexport function fromBase64(text) {\n return base64.decode(text);\n}\nexport function toBase64(text) {\n return base64.encode(text);\n}\n","import { toBase64 } from \"../tools/encode.js\";\nexport function generateBasicAuthHeader(username, password) {\n const encoded = toBase64(`${username}:${password}`);\n return `Basic ${encoded}`;\n}\n","// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nconst decodeMap = new Map([\n [0, 65533],\n // C1 Unicode control character reference replacements\n [128, 8364],\n [130, 8218],\n [131, 402],\n [132, 8222],\n [133, 8230],\n [134, 8224],\n [135, 8225],\n [136, 710],\n [137, 8240],\n [138, 352],\n [139, 8249],\n [140, 338],\n [142, 381],\n [145, 8216],\n [146, 8217],\n [147, 8220],\n [148, 8221],\n [149, 8226],\n [150, 8211],\n [151, 8212],\n [152, 732],\n [153, 8482],\n [154, 353],\n [155, 8250],\n [156, 339],\n [158, 382],\n [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexport const fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n let output = \"\";\n if (codePoint > 65535) {\n codePoint -= 65536;\n output += String.fromCharCode(((codePoint >>> 10) & 1023) | 55296);\n codePoint = 56320 | (codePoint & 1023);\n }\n output += String.fromCharCode(codePoint);\n return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nexport function replaceCodePoint(codePoint) {\n var _a;\n if ((codePoint >= 55296 && codePoint <= 57343) ||\n codePoint > 1114111) {\n return 65533;\n }\n return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nexport function decodeCodePoint(codePoint) {\n return fromCodePoint(replaceCodePoint(codePoint));\n}\n//# sourceMappingURL=decode-codepoint.js.map","export const xmlReplacer = /[\"$&'<>\\u0080-\\uFFFF]/g;\nconst xmlCodeMap = new Map([\n [34, \""\"],\n [38, \"&\"],\n [39, \"'\"],\n [60, \"<\"],\n [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexport const getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt == null\n ? (c, index) => (c.charCodeAt(index) & 64512) === 55296\n ? (c.charCodeAt(index) - 55296) * 1024 +\n c.charCodeAt(index + 1) -\n 56320 +\n 65536\n : c.charCodeAt(index)\n : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n (input, index) => input.codePointAt(index);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexport function encodeXML(input) {\n let returnValue = \"\";\n let lastIndex = 0;\n let match;\n while ((match = xmlReplacer.exec(input)) !== null) {\n const { index } = match;\n const char = input.charCodeAt(index);\n const next = xmlCodeMap.get(char);\n if (next === undefined) {\n returnValue += `${input.substring(lastIndex, index)}&#x${getCodePoint(input, index).toString(16)};`;\n // Increase by 1 if we have a surrogate pair\n lastIndex = xmlReplacer.lastIndex += Number((char & 64512) === 55296);\n }\n else {\n returnValue += input.substring(lastIndex, index) + next;\n lastIndex = index + 1;\n }\n }\n return returnValue + input.substr(lastIndex);\n}\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexport const escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n return function escape(data) {\n let match;\n let lastIndex = 0;\n let result = \"\";\n while ((match = regex.exec(data))) {\n if (lastIndex !== match.index) {\n result += data.substring(lastIndex, match.index);\n }\n // We know that this character will be in the map.\n result += map.get(match[0].charCodeAt(0));\n // Every match will be of length 1\n lastIndex = match.index + 1;\n }\n return result + data.substring(lastIndex);\n };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexport const escapeUTF8 = /* #__PURE__ */ getEscaper(/[\"&'<>]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeAttribute = \n/* #__PURE__ */ getEscaper(/[\"&\\u00A0]/g, new Map([\n [34, \""\"],\n [38, \"&\"],\n [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeText = /* #__PURE__ */ getEscaper(/[&<>\\u00A0]/g, new Map([\n [38, \"&\"],\n [60, \"<\"],\n [62, \">\"],\n [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","const inWebWorker = typeof WorkerGlobalScope !== \"undefined\" &&\n self instanceof WorkerGlobalScope;\nconst root = inWebWorker\n ? self\n : typeof window !== \"undefined\"\n ? window\n : globalThis;\nexport const fetch = root.fetch.bind(root);\nexport const Headers = root.Headers;\nexport const Request = root.Request;\nexport const Response = root.Response;\n","export { Request, Response } from \"@buttercup/fetch\";\nexport var AuthType;\n(function (AuthType) {\n AuthType[\"Auto\"] = \"auto\";\n AuthType[\"Digest\"] = \"digest\";\n AuthType[\"None\"] = \"none\";\n AuthType[\"Password\"] = \"password\";\n AuthType[\"Token\"] = \"token\";\n})(AuthType || (AuthType = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n ErrorCode[\"DataTypeNoLength\"] = \"data-type-no-length\";\n ErrorCode[\"InvalidAuthType\"] = \"invalid-auth-type\";\n ErrorCode[\"InvalidOutputFormat\"] = \"invalid-output-format\";\n ErrorCode[\"LinkUnsupportedAuthType\"] = \"link-unsupported-auth\";\n ErrorCode[\"InvalidUpdateRange\"] = \"invalid-update-range\";\n ErrorCode[\"NotSupported\"] = \"not-supported\";\n})(ErrorCode || (ErrorCode = {}));\n","import { Layerr } from \"layerr\";\nimport { createDigestContext } from \"./digest.js\";\nimport { generateBasicAuthHeader } from \"./basic.js\";\nimport { generateTokenAuthHeader } from \"./oauth.js\";\nimport { AuthType, ErrorCode } from \"../types.js\";\nexport function setupAuth(context, username, password, oauthToken, ha1) {\n switch (context.authType) {\n case AuthType.Auto:\n if (username && password) {\n context.headers.Authorization = generateBasicAuthHeader(username, password);\n }\n break;\n case AuthType.Digest:\n context.digest = createDigestContext(username, password, ha1);\n break;\n case AuthType.None:\n // Do nothing\n break;\n case AuthType.Password:\n context.headers.Authorization = generateBasicAuthHeader(username, password);\n break;\n case AuthType.Token:\n context.headers.Authorization = generateTokenAuthHeader(oauthToken);\n break;\n default:\n throw new Layerr({\n info: {\n code: ErrorCode.InvalidAuthType\n }\n }, `Invalid auth type: ${context.authType}`);\n }\n}\n","export function generateTokenAuthHeader(token) {\n return `${token.token_type} ${token.access_token}`;\n}\n","import { sequence } from \"./functions.js\";\nconst HOT_PATCHER_TYPE = \"@@HOTPATCHER\";\nconst NOOP = () => { };\nfunction createNewItem(method) {\n return {\n original: method,\n methods: [method],\n final: false\n };\n}\n/**\n * Hot patching manager class\n */\nexport class HotPatcher {\n constructor() {\n this._configuration = {\n registry: {},\n getEmptyAction: \"null\"\n };\n this.__type__ = HOT_PATCHER_TYPE;\n }\n /**\n * Configuration object reference\n * @readonly\n */\n get configuration() {\n return this._configuration;\n }\n /**\n * The action to take when a non-set method is requested\n * Possible values: null/throw\n */\n get getEmptyAction() {\n return this.configuration.getEmptyAction;\n }\n set getEmptyAction(newAction) {\n this.configuration.getEmptyAction = newAction;\n }\n /**\n * Control another hot-patcher instance\n * Force the remote instance to use patched methods from calling instance\n * @param target The target instance to control\n * @param allowTargetOverrides Allow the target to override patched methods on\n * the controller (default is false)\n * @returns Returns self\n * @throws {Error} Throws if the target is invalid\n */\n control(target, allowTargetOverrides = false) {\n if (!target || target.__type__ !== HOT_PATCHER_TYPE) {\n throw new Error(\"Failed taking control of target HotPatcher instance: Invalid type or object\");\n }\n Object.keys(target.configuration.registry).forEach(foreignKey => {\n if (this.configuration.registry.hasOwnProperty(foreignKey)) {\n if (allowTargetOverrides) {\n this.configuration.registry[foreignKey] = Object.assign({}, target.configuration.registry[foreignKey]);\n }\n }\n else {\n this.configuration.registry[foreignKey] = Object.assign({}, target.configuration.registry[foreignKey]);\n }\n });\n target._configuration = this.configuration;\n return this;\n }\n /**\n * Execute a patched method\n * @param key The method key\n * @param args Arguments to pass to the method (optional)\n * @see HotPatcher#get\n * @returns The output of the called method\n */\n execute(key, ...args) {\n const method = this.get(key) || NOOP;\n return method(...args);\n }\n /**\n * Get a method for a key\n * @param key The method key\n * @returns Returns the requested function or null if the function\n * does not exist and the host is configured to return null (and not throw)\n * @throws {Error} Throws if the configuration specifies to throw and the method\n * does not exist\n * @throws {Error} Throws if the `getEmptyAction` value is invalid\n */\n get(key) {\n const item = this.configuration.registry[key];\n if (!item) {\n switch (this.getEmptyAction) {\n case \"null\":\n return null;\n case \"throw\":\n throw new Error(`Failed handling method request: No method provided for override: ${key}`);\n default:\n throw new Error(`Failed handling request which resulted in an empty method: Invalid empty-action specified: ${this.getEmptyAction}`);\n }\n }\n return sequence(...item.methods);\n }\n /**\n * Check if a method has been patched\n * @param key The function key\n * @returns True if already patched\n */\n isPatched(key) {\n return !!this.configuration.registry[key];\n }\n /**\n * Patch a method name\n * @param key The method key to patch\n * @param method The function to set\n * @param opts Patch options\n * @returns Returns self\n */\n patch(key, method, opts = {}) {\n const { chain = false } = opts;\n if (this.configuration.registry[key] && this.configuration.registry[key].final) {\n throw new Error(`Failed patching '${key}': Method marked as being final`);\n }\n if (typeof method !== \"function\") {\n throw new Error(`Failed patching '${key}': Provided method is not a function`);\n }\n if (chain) {\n // Add new method to the chain\n if (!this.configuration.registry[key]) {\n // New key, create item\n this.configuration.registry[key] = createNewItem(method);\n }\n else {\n // Existing, push the method\n this.configuration.registry[key].methods.push(method);\n }\n }\n else {\n // Replace the original\n if (this.isPatched(key)) {\n const { original } = this.configuration.registry[key];\n this.configuration.registry[key] = Object.assign(createNewItem(method), {\n original\n });\n }\n else {\n this.configuration.registry[key] = createNewItem(method);\n }\n }\n return this;\n }\n /**\n * Patch a method inline, execute it and return the value\n * Used for patching contents of functions. This method will not apply a patched\n * function if it has already been patched, allowing for external overrides to\n * function. It also means that the function is cached so that it is not\n * instantiated every time the outer function is invoked.\n * @param key The function key to use\n * @param method The function to patch (once, only if not patched)\n * @param args Arguments to pass to the function\n * @returns The output of the patched function\n * @example\n * function mySpecialFunction(a, b) {\n * return hotPatcher.patchInline(\"func\", (a, b) => {\n * return a + b;\n * }, a, b);\n * }\n */\n patchInline(key, method, ...args) {\n if (!this.isPatched(key)) {\n this.patch(key, method);\n }\n return this.execute(key, ...args);\n }\n /**\n * Patch a method (or methods) in sequential-mode\n * See `patch()` with the option `chain: true`\n * @see patch\n * @param key The key to patch\n * @param methods The methods to patch\n * @returns Returns self\n */\n plugin(key, ...methods) {\n methods.forEach(method => {\n this.patch(key, method, { chain: true });\n });\n return this;\n }\n /**\n * Restore a patched method if it has been overridden\n * @param key The method key\n * @returns Returns self\n */\n restore(key) {\n if (!this.isPatched(key)) {\n throw new Error(`Failed restoring method: No method present for key: ${key}`);\n }\n else if (typeof this.configuration.registry[key].original !== \"function\") {\n throw new Error(`Failed restoring method: Original method not found or of invalid type for key: ${key}`);\n }\n this.configuration.registry[key].methods = [this.configuration.registry[key].original];\n return this;\n }\n /**\n * Set a method as being final\n * This sets a method as having been finally overridden. Attempts at overriding\n * again will fail with an error.\n * @param key The key to make final\n * @returns Returns self\n */\n setFinal(key) {\n if (!this.configuration.registry.hasOwnProperty(key)) {\n throw new Error(`Failed marking '${key}' as final: No method found for key`);\n }\n this.configuration.registry[key].final = true;\n return this;\n }\n}\n","export function sequence(...methods) {\n if (methods.length === 0) {\n throw new Error(\"Failed creating sequence: No functions provided\");\n }\n return function __executeSequence(...args) {\n let result = args;\n const _this = this;\n while (methods.length > 0) {\n const method = methods.shift();\n result = [method.apply(_this, result)];\n }\n return result[0];\n };\n}\n","import { HotPatcher } from \"hot-patcher\";\nlet __patcher = null;\nexport function getPatcher() {\n if (!__patcher) {\n __patcher = new HotPatcher();\n }\n return __patcher;\n}\n","export function isReactNative() {\n return typeof TARGET === \"string\" && TARGET === \"react-native\";\n}\nexport function isWeb() {\n return typeof TARGET === \"string\" && TARGET === \"web\";\n}\n","export function cloneShallow(obj) {\n return isPlainObject(obj)\n ? Object.assign({}, obj)\n : Object.setPrototypeOf(Object.assign({}, obj), Object.getPrototypeOf(obj));\n}\nfunction isPlainObject(obj) {\n if (typeof obj !== \"object\" ||\n obj === null ||\n Object.prototype.toString.call(obj) != \"[object Object]\") {\n // Not an object\n return false;\n }\n if (Object.getPrototypeOf(obj) === null) {\n return true;\n }\n let proto = obj;\n // Find the prototype\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n return Object.getPrototypeOf(obj) === proto;\n}\nexport function merge(...args) {\n let output = null, items = [...args];\n while (items.length > 0) {\n const nextItem = items.shift();\n if (!output) {\n output = cloneShallow(nextItem);\n }\n else {\n output = mergeObjects(output, nextItem);\n }\n }\n return output;\n}\nfunction mergeObjects(obj1, obj2) {\n const output = cloneShallow(obj1);\n Object.keys(obj2).forEach(key => {\n if (!output.hasOwnProperty(key)) {\n output[key] = obj2[key];\n return;\n }\n if (Array.isArray(obj2[key])) {\n output[key] = Array.isArray(output[key])\n ? [...output[key], ...obj2[key]]\n : [...obj2[key]];\n }\n else if (typeof obj2[key] === \"object\" && !!obj2[key]) {\n output[key] =\n typeof output[key] === \"object\" && !!output[key]\n ? mergeObjects(output[key], obj2[key])\n : cloneShallow(obj2[key]);\n }\n else {\n output[key] = obj2[key];\n }\n });\n return output;\n}\n","export function convertResponseHeaders(headers) {\n const output = {};\n for (const key of headers.keys()) {\n output[key] = headers.get(key);\n }\n return output;\n}\nexport function mergeHeaders(...headerPayloads) {\n if (headerPayloads.length === 0)\n return {};\n const headerKeys = {};\n return headerPayloads.reduce((output, headers) => {\n Object.keys(headers).forEach(header => {\n const lowerHeader = header.toLowerCase();\n if (headerKeys.hasOwnProperty(lowerHeader)) {\n output[headerKeys[lowerHeader]] = headers[header];\n }\n else {\n headerKeys[lowerHeader] = header;\n output[header] = headers[header];\n }\n });\n return output;\n }, {});\n}\n","const hasArrayBuffer = typeof ArrayBuffer === \"function\";\nconst { toString: objToString } = Object.prototype;\n// Taken from: https://github.com/fengyuanchen/is-array-buffer/blob/master/src/index.js\nexport function isArrayBuffer(value) {\n return (hasArrayBuffer &&\n (value instanceof ArrayBuffer || objToString.call(value) === \"[object ArrayBuffer]\"));\n}\n","export function isBuffer(value) {\n return (value != null &&\n value.constructor != null &&\n typeof value.constructor.isBuffer === \"function\" &&\n value.constructor.isBuffer(value));\n}\n","import { Agent as HTTPAgent } from \"http\";\nimport { Agent as HTTPSAgent } from \"https\";\nimport { fetch } from \"@buttercup/fetch\";\nimport { getPatcher } from \"./compat/patcher.js\";\nimport { isReactNative, isWeb } from \"./compat/env.js\";\nimport { generateDigestAuthHeader, parseDigestAuth, responseIndicatesDigestAuth } from \"./auth/digest.js\";\nimport { cloneShallow, merge } from \"./tools/merge.js\";\nimport { mergeHeaders } from \"./tools/headers.js\";\nimport { requestDataToFetchBody } from \"./tools/body.js\";\nimport { AuthType } from \"./types.js\";\nimport { setupAuth } from \"./auth/index.js\";\nfunction getFetchOptions(requestOptions) {\n let headers = {};\n // Handle standard options\n const opts = {\n method: requestOptions.method\n };\n if (requestOptions.headers) {\n headers = mergeHeaders(headers, requestOptions.headers);\n }\n if (typeof requestOptions.data !== \"undefined\") {\n const [body, newHeaders] = requestDataToFetchBody(requestOptions.data);\n opts.body = body;\n headers = mergeHeaders(headers, newHeaders);\n }\n if (requestOptions.signal) {\n opts.signal = requestOptions.signal;\n }\n if (requestOptions.withCredentials) {\n opts.credentials = \"include\";\n }\n // Check for node-specific options\n if (!isWeb() && !isReactNative()) {\n if (requestOptions.httpAgent || requestOptions.httpsAgent) {\n opts.agent = (parsedURL) => {\n if (parsedURL.protocol === \"http:\") {\n return requestOptions.httpAgent || new HTTPAgent();\n }\n return requestOptions.httpsAgent || new HTTPSAgent();\n };\n }\n }\n // Attach headers\n opts.headers = headers;\n return opts;\n}\nexport function prepareRequestOptions(requestOptions, context, userOptions) {\n const finalOptions = cloneShallow(requestOptions);\n finalOptions.headers = mergeHeaders(context.headers, finalOptions.headers || {}, userOptions.headers || {});\n if (typeof userOptions.data !== \"undefined\") {\n finalOptions.data = userOptions.data;\n }\n if (userOptions.signal) {\n finalOptions.signal = userOptions.signal;\n }\n if (context.httpAgent) {\n finalOptions.httpAgent = context.httpAgent;\n }\n if (context.httpsAgent) {\n finalOptions.httpsAgent = context.httpsAgent;\n }\n if (context.digest) {\n finalOptions._digest = context.digest;\n }\n if (typeof context.withCredentials === \"boolean\") {\n finalOptions.withCredentials = context.withCredentials;\n }\n return finalOptions;\n}\nexport async function request(requestOptions, context) {\n if (context.authType === AuthType.Auto) {\n return requestAuto(requestOptions, context);\n }\n if (requestOptions._digest) {\n return requestDigest(requestOptions);\n }\n return requestStandard(requestOptions);\n}\nasync function requestAuto(requestOptions, context) {\n const response = await requestStandard(requestOptions);\n if (response.ok) {\n context.authType = AuthType.Password;\n return response;\n }\n if (response.status == 401 && responseIndicatesDigestAuth(response)) {\n context.authType = AuthType.Digest;\n setupAuth(context, context.username, context.password, undefined, undefined);\n requestOptions._digest = context.digest;\n return requestDigest(requestOptions);\n }\n return response;\n}\nasync function requestDigest(requestOptions) {\n // Remove client's digest authentication object from request options\n const _digest = requestOptions._digest;\n delete requestOptions._digest;\n // If client is already using digest authentication, include the digest authorization header\n if (_digest.hasDigestAuth) {\n requestOptions = merge(requestOptions, {\n headers: {\n Authorization: generateDigestAuthHeader(requestOptions, _digest)\n }\n });\n }\n // Perform digest request + check\n const response = await requestStandard(requestOptions);\n if (response.status == 401) {\n _digest.hasDigestAuth = parseDigestAuth(response, _digest);\n if (_digest.hasDigestAuth) {\n requestOptions = merge(requestOptions, {\n headers: {\n Authorization: generateDigestAuthHeader(requestOptions, _digest)\n }\n });\n const response2 = await requestStandard(requestOptions);\n if (response2.status == 401) {\n _digest.hasDigestAuth = false;\n }\n else {\n _digest.nc++;\n }\n return response2;\n }\n }\n else {\n _digest.nc++;\n }\n return response;\n}\nfunction requestStandard(requestOptions) {\n const patcher = getPatcher();\n return patcher.patchInline(\"request\", (options) => patcher.patchInline(\"fetch\", fetch, options.url, getFetchOptions(options)), requestOptions);\n}\n","import Stream from \"stream\";\nimport { isArrayBuffer } from \"../compat/arrayBuffer.js\";\nimport { isBuffer } from \"../compat/buffer.js\";\nimport { isReactNative, isWeb } from \"../compat/env.js\";\nexport function requestDataToFetchBody(data) {\n if (!isWeb() && !isReactNative() && data instanceof Stream.Readable) {\n // @ts-ignore\n return [data, {}];\n }\n if (typeof data === \"string\") {\n return [data, {}];\n }\n else if (isBuffer(data)) {\n return [data, {}];\n }\n else if (isArrayBuffer(data)) {\n return [data, {}];\n }\n else if (data && typeof data === \"object\") {\n return [\n JSON.stringify(data),\n {\n \"content-type\": \"application/json\"\n }\n ];\n }\n throw new Error(`Unable to convert request body: Unexpected body type: ${typeof data}`);\n}\n","const MAX_PATTERN_LENGTH = 1024 * 64;\nexport const assertValidPattern = (pattern) => {\n if (typeof pattern !== 'string') {\n throw new TypeError('invalid pattern');\n }\n if (pattern.length > MAX_PATTERN_LENGTH) {\n throw new TypeError('pattern is too long');\n }\n};\n//# sourceMappingURL=assert-valid-pattern.js.map","// translate the various posix character classes into unicode properties\n// this works across all unicode locales\n// { : [, /u flag required, negated]\nconst posixClasses = {\n '[:alnum:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}', true],\n '[:alpha:]': ['\\\\p{L}\\\\p{Nl}', true],\n '[:ascii:]': ['\\\\x' + '00-\\\\x' + '7f', false],\n '[:blank:]': ['\\\\p{Zs}\\\\t', true],\n '[:cntrl:]': ['\\\\p{Cc}', true],\n '[:digit:]': ['\\\\p{Nd}', true],\n '[:graph:]': ['\\\\p{Z}\\\\p{C}', true, true],\n '[:lower:]': ['\\\\p{Ll}', true],\n '[:print:]': ['\\\\p{C}', true],\n '[:punct:]': ['\\\\p{P}', true],\n '[:space:]': ['\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f', true],\n '[:upper:]': ['\\\\p{Lu}', true],\n '[:word:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}', true],\n '[:xdigit:]': ['A-Fa-f0-9', false],\n};\n// only need to escape a few things inside of brace expressions\n// escapes: [ \\ ] -\nconst braceEscape = (s) => s.replace(/[[\\]\\\\-]/g, '\\\\$&');\n// escape all regexp magic characters\nconst regexpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// everything has already been escaped, we just have to join\nconst rangesToString = (ranges) => ranges.join('');\n// takes a glob string at a posix brace expression, and returns\n// an equivalent regular expression source, and boolean indicating\n// whether the /u flag needs to be applied, and the number of chars\n// consumed to parse the character class.\n// This also removes out of order ranges, and returns ($.) if the\n// entire class just no good.\nexport const parseClass = (glob, position) => {\n const pos = position;\n /* c8 ignore start */\n if (glob.charAt(pos) !== '[') {\n throw new Error('not in a brace expression');\n }\n /* c8 ignore stop */\n const ranges = [];\n const negs = [];\n let i = pos + 1;\n let sawStart = false;\n let uflag = false;\n let escaping = false;\n let negate = false;\n let endPos = pos;\n let rangeStart = '';\n WHILE: while (i < glob.length) {\n const c = glob.charAt(i);\n if ((c === '!' || c === '^') && i === pos + 1) {\n negate = true;\n i++;\n continue;\n }\n if (c === ']' && sawStart && !escaping) {\n endPos = i + 1;\n break;\n }\n sawStart = true;\n if (c === '\\\\') {\n if (!escaping) {\n escaping = true;\n i++;\n continue;\n }\n // escaped \\ char, fall through and treat like normal char\n }\n if (c === '[' && !escaping) {\n // either a posix class, a collation equivalent, or just a [\n for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {\n if (glob.startsWith(cls, i)) {\n // invalid, [a-[] is fine, but not [a-[:alpha]]\n if (rangeStart) {\n return ['$.', false, glob.length - pos, true];\n }\n i += cls.length;\n if (neg)\n negs.push(unip);\n else\n ranges.push(unip);\n uflag = uflag || u;\n continue WHILE;\n }\n }\n }\n // now it's just a normal character, effectively\n escaping = false;\n if (rangeStart) {\n // throw this range away if it's not valid, but others\n // can still match.\n if (c > rangeStart) {\n ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c));\n }\n else if (c === rangeStart) {\n ranges.push(braceEscape(c));\n }\n rangeStart = '';\n i++;\n continue;\n }\n // now might be the start of a range.\n // can be either c-d or c-] or c] or c] at this point\n if (glob.startsWith('-]', i + 1)) {\n ranges.push(braceEscape(c + '-'));\n i += 2;\n continue;\n }\n if (glob.startsWith('-', i + 1)) {\n rangeStart = c;\n i += 2;\n continue;\n }\n // not the start of a range, just a single character\n ranges.push(braceEscape(c));\n i++;\n }\n if (endPos < i) {\n // didn't see the end of the class, not a valid class,\n // but might still be valid as a literal match.\n return ['', false, 0, false];\n }\n // if we got no ranges and no negates, then we have a range that\n // cannot possibly match anything, and that poisons the whole glob\n if (!ranges.length && !negs.length) {\n return ['$.', false, glob.length - pos, true];\n }\n // if we got one positive range, and it's a single character, then that's\n // not actually a magic pattern, it's just that one literal character.\n // we should not treat that as \"magic\", we should just return the literal\n // character. [_] is a perfectly valid way to escape glob magic chars.\n if (negs.length === 0 &&\n ranges.length === 1 &&\n /^\\\\?.$/.test(ranges[0]) &&\n !negate) {\n const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0];\n return [regexpEscape(r), false, endPos - pos, false];\n }\n const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']';\n const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']';\n const comb = ranges.length && negs.length\n ? '(' + sranges + '|' + snegs + ')'\n : ranges.length\n ? sranges\n : snegs;\n return [comb, uflag, endPos - pos, true];\n};\n//# sourceMappingURL=brace-expressions.js.map","/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link windowsPathsNoEscape} option is used, then square-brace\n * escapes are removed, but not backslash escapes. For example, it will turn\n * the string `'[*]'` into `*`, but it will not turn `'\\\\*'` into `'*'`,\n * becuase `\\` is a path separator in `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both brace escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n */\nexport const unescape = (s, { windowsPathsNoEscape = false, } = {}) => {\n return windowsPathsNoEscape\n ? s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n : s.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2').replace(/\\\\([^\\/])/g, '$1');\n};\n//# sourceMappingURL=unescape.js.map","// parse a single path portion\nimport { parseClass } from './brace-expressions.js';\nimport { unescape } from './unescape.js';\nconst types = new Set(['!', '?', '+', '*', '@']);\nconst isExtglobType = (c) => types.has(c);\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))';\nconst startNoDot = '(?!\\\\.)';\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.']);\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.']);\nconst reSpecials = new Set('().*{}+?[]^$\\\\!');\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// any single thing other than /\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?';\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\nexport class AST {\n type;\n #root;\n #hasMagic;\n #uflag = false;\n #parts = [];\n #parent;\n #parentIndex;\n #negs;\n #filledNegs = false;\n #options;\n #toString;\n // set to true if it's an extglob with no children\n // (which really means one child of '')\n #emptyExt = false;\n constructor(type, parent, options = {}) {\n this.type = type;\n // extglobs are inherently magical\n if (type)\n this.#hasMagic = true;\n this.#parent = parent;\n this.#root = this.#parent ? this.#parent.#root : this;\n this.#options = this.#root === this ? options : this.#root.#options;\n this.#negs = this.#root === this ? [] : this.#root.#negs;\n if (type === '!' && !this.#root.#filledNegs)\n this.#negs.push(this);\n this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0;\n }\n get hasMagic() {\n /* c8 ignore start */\n if (this.#hasMagic !== undefined)\n return this.#hasMagic;\n /* c8 ignore stop */\n for (const p of this.#parts) {\n if (typeof p === 'string')\n continue;\n if (p.type || p.hasMagic)\n return (this.#hasMagic = true);\n }\n // note: will be undefined until we generate the regexp src and find out\n return this.#hasMagic;\n }\n // reconstructs the pattern\n toString() {\n if (this.#toString !== undefined)\n return this.#toString;\n if (!this.type) {\n return (this.#toString = this.#parts.map(p => String(p)).join(''));\n }\n else {\n return (this.#toString =\n this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')');\n }\n }\n #fillNegs() {\n /* c8 ignore start */\n if (this !== this.#root)\n throw new Error('should only call on root');\n if (this.#filledNegs)\n return this;\n /* c8 ignore stop */\n // call toString() once to fill this out\n this.toString();\n this.#filledNegs = true;\n let n;\n while ((n = this.#negs.pop())) {\n if (n.type !== '!')\n continue;\n // walk up the tree, appending everthing that comes AFTER parentIndex\n let p = n;\n let pp = p.#parent;\n while (pp) {\n for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) {\n for (const part of n.#parts) {\n /* c8 ignore start */\n if (typeof part === 'string') {\n throw new Error('string part in extglob AST??');\n }\n /* c8 ignore stop */\n part.copyIn(pp.#parts[i]);\n }\n }\n p = pp;\n pp = p.#parent;\n }\n }\n return this;\n }\n push(...parts) {\n for (const p of parts) {\n if (p === '')\n continue;\n /* c8 ignore start */\n if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {\n throw new Error('invalid part: ' + p);\n }\n /* c8 ignore stop */\n this.#parts.push(p);\n }\n }\n toJSON() {\n const ret = this.type === null\n ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))\n : [this.type, ...this.#parts.map(p => p.toJSON())];\n if (this.isStart() && !this.type)\n ret.unshift([]);\n if (this.isEnd() &&\n (this === this.#root ||\n (this.#root.#filledNegs && this.#parent?.type === '!'))) {\n ret.push({});\n }\n return ret;\n }\n isStart() {\n if (this.#root === this)\n return true;\n // if (this.type) return !!this.#parent?.isStart()\n if (!this.#parent?.isStart())\n return false;\n if (this.#parentIndex === 0)\n return true;\n // if everything AHEAD of this is a negation, then it's still the \"start\"\n const p = this.#parent;\n for (let i = 0; i < this.#parentIndex; i++) {\n const pp = p.#parts[i];\n if (!(pp instanceof AST && pp.type === '!')) {\n return false;\n }\n }\n return true;\n }\n isEnd() {\n if (this.#root === this)\n return true;\n if (this.#parent?.type === '!')\n return true;\n if (!this.#parent?.isEnd())\n return false;\n if (!this.type)\n return this.#parent?.isEnd();\n // if not root, it'll always have a parent\n /* c8 ignore start */\n const pl = this.#parent ? this.#parent.#parts.length : 0;\n /* c8 ignore stop */\n return this.#parentIndex === pl - 1;\n }\n copyIn(part) {\n if (typeof part === 'string')\n this.push(part);\n else\n this.push(part.clone(this));\n }\n clone(parent) {\n const c = new AST(this.type, parent);\n for (const p of this.#parts) {\n c.copyIn(p);\n }\n return c;\n }\n static #parseAST(str, ast, pos, opt) {\n let escaping = false;\n let inBrace = false;\n let braceStart = -1;\n let braceNeg = false;\n if (ast.type === null) {\n // outside of a extglob, append until we find a start\n let i = pos;\n let acc = '';\n while (i < str.length) {\n const c = str.charAt(i++);\n // still accumulate escapes at this point, but we do ignore\n // starts that are escaped\n if (escaping || c === '\\\\') {\n escaping = !escaping;\n acc += c;\n continue;\n }\n if (inBrace) {\n if (i === braceStart + 1) {\n if (c === '^' || c === '!') {\n braceNeg = true;\n }\n }\n else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n inBrace = false;\n }\n acc += c;\n continue;\n }\n else if (c === '[') {\n inBrace = true;\n braceStart = i;\n braceNeg = false;\n acc += c;\n continue;\n }\n if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') {\n ast.push(acc);\n acc = '';\n const ext = new AST(c, ast);\n i = AST.#parseAST(str, ext, i, opt);\n ast.push(ext);\n continue;\n }\n acc += c;\n }\n ast.push(acc);\n return i;\n }\n // some kind of extglob, pos is at the (\n // find the next | or )\n let i = pos + 1;\n let part = new AST(null, ast);\n const parts = [];\n let acc = '';\n while (i < str.length) {\n const c = str.charAt(i++);\n // still accumulate escapes at this point, but we do ignore\n // starts that are escaped\n if (escaping || c === '\\\\') {\n escaping = !escaping;\n acc += c;\n continue;\n }\n if (inBrace) {\n if (i === braceStart + 1) {\n if (c === '^' || c === '!') {\n braceNeg = true;\n }\n }\n else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n inBrace = false;\n }\n acc += c;\n continue;\n }\n else if (c === '[') {\n inBrace = true;\n braceStart = i;\n braceNeg = false;\n acc += c;\n continue;\n }\n if (isExtglobType(c) && str.charAt(i) === '(') {\n part.push(acc);\n acc = '';\n const ext = new AST(c, part);\n part.push(ext);\n i = AST.#parseAST(str, ext, i, opt);\n continue;\n }\n if (c === '|') {\n part.push(acc);\n acc = '';\n parts.push(part);\n part = new AST(null, ast);\n continue;\n }\n if (c === ')') {\n if (acc === '' && ast.#parts.length === 0) {\n ast.#emptyExt = true;\n }\n part.push(acc);\n acc = '';\n ast.push(...parts, part);\n return i;\n }\n acc += c;\n }\n // unfinished extglob\n // if we got here, it was a malformed extglob! not an extglob, but\n // maybe something else in there.\n ast.type = null;\n ast.#hasMagic = undefined;\n ast.#parts = [str.substring(pos - 1)];\n return i;\n }\n static fromGlob(pattern, options = {}) {\n const ast = new AST(null, undefined, options);\n AST.#parseAST(pattern, ast, 0, options);\n return ast;\n }\n // returns the regular expression if there's magic, or the unescaped\n // string if not.\n toMMPattern() {\n // should only be called on root\n /* c8 ignore start */\n if (this !== this.#root)\n return this.#root.toMMPattern();\n /* c8 ignore stop */\n const glob = this.toString();\n const [re, body, hasMagic, uflag] = this.toRegExpSource();\n // if we're in nocase mode, and not nocaseMagicOnly, then we do\n // still need a regular expression if we have to case-insensitively\n // match capital/lowercase characters.\n const anyMagic = hasMagic ||\n this.#hasMagic ||\n (this.#options.nocase &&\n !this.#options.nocaseMagicOnly &&\n glob.toUpperCase() !== glob.toLowerCase());\n if (!anyMagic) {\n return body;\n }\n const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '');\n return Object.assign(new RegExp(`^${re}$`, flags), {\n _src: re,\n _glob: glob,\n });\n }\n get options() {\n return this.#options;\n }\n // returns the string match, the regexp source, whether there's magic\n // in the regexp (so a regular expression is required) and whether or\n // not the uflag is needed for the regular expression (for posix classes)\n // TODO: instead of injecting the start/end at this point, just return\n // the BODY of the regexp, along with the start/end portions suitable\n // for binding the start/end in either a joined full-path makeRe context\n // (where we bind to (^|/), or a standalone matchPart context (where\n // we bind to ^, and not /). Otherwise slashes get duped!\n //\n // In part-matching mode, the start is:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n // - if dots allowed or not possible: ^\n // - if dots possible and not allowed: ^(?!\\.)\n // end is:\n // - if not isEnd(): nothing\n // - else: $\n //\n // In full-path matching mode, we put the slash at the START of the\n // pattern, so start is:\n // - if first pattern: same as part-matching mode\n // - if not isStart(): nothing\n // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n // - if dots allowed or not possible: /\n // - if dots possible and not allowed: /(?!\\.)\n // end is:\n // - if last pattern, same as part-matching mode\n // - else nothing\n //\n // Always put the (?:$|/) on negated tails, though, because that has to be\n // there to bind the end of the negated pattern portion, and it's easier to\n // just stick it in now rather than try to inject it later in the middle of\n // the pattern.\n //\n // We can just always return the same end, and leave it up to the caller\n // to know whether it's going to be used joined or in parts.\n // And, if the start is adjusted slightly, can do the same there:\n // - if not isStart: nothing\n // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n // - if dots allowed or not possible: (?:/|^)\n // - if dots possible and not allowed: (?:/|^)(?!\\.)\n //\n // But it's better to have a simpler binding without a conditional, for\n // performance, so probably better to return both start options.\n //\n // Then the caller just ignores the end if it's not the first pattern,\n // and the start always gets applied.\n //\n // But that's always going to be $ if it's the ending pattern, or nothing,\n // so the caller can just attach $ at the end of the pattern when building.\n //\n // So the todo is:\n // - better detect what kind of start is needed\n // - return both flavors of starting pattern\n // - attach $ at the end of the pattern when creating the actual RegExp\n //\n // Ah, but wait, no, that all only applies to the root when the first pattern\n // is not an extglob. If the first pattern IS an extglob, then we need all\n // that dot prevention biz to live in the extglob portions, because eg\n // +(*|.x*) can match .xy but not .yx.\n //\n // So, return the two flavors if it's #root and the first child is not an\n // AST, otherwise leave it to the child AST to handle it, and there,\n // use the (?:^|/) style of start binding.\n //\n // Even simplified further:\n // - Since the start for a join is eg /(?!\\.) and the start for a part\n // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n // or start or whatever) and prepend ^ or / at the Regexp construction.\n toRegExpSource(allowDot) {\n const dot = allowDot ?? !!this.#options.dot;\n if (this.#root === this)\n this.#fillNegs();\n if (!this.type) {\n const noEmpty = this.isStart() && this.isEnd();\n const src = this.#parts\n .map(p => {\n const [re, _, hasMagic, uflag] = typeof p === 'string'\n ? AST.#parseGlob(p, this.#hasMagic, noEmpty)\n : p.toRegExpSource(allowDot);\n this.#hasMagic = this.#hasMagic || hasMagic;\n this.#uflag = this.#uflag || uflag;\n return re;\n })\n .join('');\n let start = '';\n if (this.isStart()) {\n if (typeof this.#parts[0] === 'string') {\n // this is the string that will match the start of the pattern,\n // so we need to protect against dots and such.\n // '.' and '..' cannot match unless the pattern is that exactly,\n // even if it starts with . or dot:true is set.\n const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]);\n if (!dotTravAllowed) {\n const aps = addPatternStart;\n // check if we have a possibility of matching . or ..,\n // and prevent that.\n const needNoTrav = \n // dots are allowed, and the pattern starts with [ or .\n (dot && aps.has(src.charAt(0))) ||\n // the pattern starts with \\., and then [ or .\n (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n // the pattern starts with \\.\\., and then [ or .\n (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)));\n // no need to prevent dots if it can't match a dot, or if a\n // sub-pattern will be preventing it anyway.\n const needNoDot = !dot && !allowDot && aps.has(src.charAt(0));\n start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : '';\n }\n }\n }\n // append the \"end of path portion\" pattern to negation tails\n let end = '';\n if (this.isEnd() &&\n this.#root.#filledNegs &&\n this.#parent?.type === '!') {\n end = '(?:$|\\\\/)';\n }\n const final = start + src + end;\n return [\n final,\n unescape(src),\n (this.#hasMagic = !!this.#hasMagic),\n this.#uflag,\n ];\n }\n // We need to calculate the body *twice* if it's a repeat pattern\n // at the start, once in nodot mode, then again in dot mode, so a\n // pattern like *(?) can match 'x.y'\n const repeated = this.type === '*' || this.type === '+';\n // some kind of extglob\n const start = this.type === '!' ? '(?:(?!(?:' : '(?:';\n let body = this.#partsToRegExp(dot);\n if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n // invalid extglob, has to at least be *something* present, if it's\n // the entire path portion.\n const s = this.toString();\n this.#parts = [s];\n this.type = null;\n this.#hasMagic = undefined;\n return [s, unescape(this.toString()), false, false];\n }\n // XXX abstract out this map method\n let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot\n ? ''\n : this.#partsToRegExp(true);\n if (bodyDotAllowed === body) {\n bodyDotAllowed = '';\n }\n if (bodyDotAllowed) {\n body = `(?:${body})(?:${bodyDotAllowed})*?`;\n }\n // an empty !() is exactly equivalent to a starNoEmpty\n let final = '';\n if (this.type === '!' && this.#emptyExt) {\n final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty;\n }\n else {\n const close = this.type === '!'\n ? // !() must match something,but !(x) can match ''\n '))' +\n (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n star +\n ')'\n : this.type === '@'\n ? ')'\n : this.type === '?'\n ? ')?'\n : this.type === '+' && bodyDotAllowed\n ? ')'\n : this.type === '*' && bodyDotAllowed\n ? `)?`\n : `)${this.type}`;\n final = start + body + close;\n }\n return [\n final,\n unescape(body),\n (this.#hasMagic = !!this.#hasMagic),\n this.#uflag,\n ];\n }\n #partsToRegExp(dot) {\n return this.#parts\n .map(p => {\n // extglob ASTs should only contain parent ASTs\n /* c8 ignore start */\n if (typeof p === 'string') {\n throw new Error('string type in extglob ast??');\n }\n /* c8 ignore stop */\n // can ignore hasMagic, because extglobs are already always magic\n const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot);\n this.#uflag = this.#uflag || uflag;\n return re;\n })\n .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n .join('|');\n }\n static #parseGlob(glob, hasMagic, noEmpty = false) {\n let escaping = false;\n let re = '';\n let uflag = false;\n for (let i = 0; i < glob.length; i++) {\n const c = glob.charAt(i);\n if (escaping) {\n escaping = false;\n re += (reSpecials.has(c) ? '\\\\' : '') + c;\n continue;\n }\n if (c === '\\\\') {\n if (i === glob.length - 1) {\n re += '\\\\\\\\';\n }\n else {\n escaping = true;\n }\n continue;\n }\n if (c === '[') {\n const [src, needUflag, consumed, magic] = parseClass(glob, i);\n if (consumed) {\n re += src;\n uflag = uflag || needUflag;\n i += consumed - 1;\n hasMagic = hasMagic || magic;\n continue;\n }\n }\n if (c === '*') {\n if (noEmpty && glob === '*')\n re += starNoEmpty;\n else\n re += star;\n hasMagic = true;\n continue;\n }\n if (c === '?') {\n re += qmark;\n hasMagic = true;\n continue;\n }\n re += regExpEscape(c);\n }\n return [re, unescape(glob), !!hasMagic, uflag];\n }\n}\n//# sourceMappingURL=ast.js.map","import expand from 'brace-expansion';\nimport { assertValidPattern } from './assert-valid-pattern.js';\nimport { AST } from './ast.js';\nimport { escape } from './escape.js';\nimport { unescape } from './unescape.js';\nexport const minimatch = (p, pattern, options = {}) => {\n assertValidPattern(pattern);\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false;\n }\n return new Minimatch(pattern, options).match(p);\n};\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/;\nconst starDotExtTest = (ext) => (f) => !f.startsWith('.') && f.endsWith(ext);\nconst starDotExtTestDot = (ext) => (f) => f.endsWith(ext);\nconst starDotExtTestNocase = (ext) => {\n ext = ext.toLowerCase();\n return (f) => !f.startsWith('.') && f.toLowerCase().endsWith(ext);\n};\nconst starDotExtTestNocaseDot = (ext) => {\n ext = ext.toLowerCase();\n return (f) => f.toLowerCase().endsWith(ext);\n};\nconst starDotStarRE = /^\\*+\\.\\*+$/;\nconst starDotStarTest = (f) => !f.startsWith('.') && f.includes('.');\nconst starDotStarTestDot = (f) => f !== '.' && f !== '..' && f.includes('.');\nconst dotStarRE = /^\\.\\*+$/;\nconst dotStarTest = (f) => f !== '.' && f !== '..' && f.startsWith('.');\nconst starRE = /^\\*+$/;\nconst starTest = (f) => f.length !== 0 && !f.startsWith('.');\nconst starTestDot = (f) => f.length !== 0 && f !== '.' && f !== '..';\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/;\nconst qmarksTestNocase = ([$0, ext = '']) => {\n const noext = qmarksTestNoExt([$0]);\n if (!ext)\n return noext;\n ext = ext.toLowerCase();\n return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestNocaseDot = ([$0, ext = '']) => {\n const noext = qmarksTestNoExtDot([$0]);\n if (!ext)\n return noext;\n ext = ext.toLowerCase();\n return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestDot = ([$0, ext = '']) => {\n const noext = qmarksTestNoExtDot([$0]);\n return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTest = ([$0, ext = '']) => {\n const noext = qmarksTestNoExt([$0]);\n return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTestNoExt = ([$0]) => {\n const len = $0.length;\n return (f) => f.length === len && !f.startsWith('.');\n};\nconst qmarksTestNoExtDot = ([$0]) => {\n const len = $0.length;\n return (f) => f.length === len && f !== '.' && f !== '..';\n};\n/* c8 ignore start */\nconst defaultPlatform = (typeof process === 'object' && process\n ? (typeof process.env === 'object' &&\n process.env &&\n process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n process.platform\n : 'posix');\nconst path = {\n win32: { sep: '\\\\' },\n posix: { sep: '/' },\n};\n/* c8 ignore stop */\nexport const sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep;\nminimatch.sep = sep;\nexport const GLOBSTAR = Symbol('globstar **');\nminimatch.GLOBSTAR = GLOBSTAR;\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?';\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?';\nexport const filter = (pattern, options = {}) => (p) => minimatch(p, pattern, options);\nminimatch.filter = filter;\nconst ext = (a, b = {}) => Object.assign({}, a, b);\nexport const defaults = (def) => {\n if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n return minimatch;\n }\n const orig = minimatch;\n const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options));\n return Object.assign(m, {\n Minimatch: class Minimatch extends orig.Minimatch {\n constructor(pattern, options = {}) {\n super(pattern, ext(def, options));\n }\n static defaults(options) {\n return orig.defaults(ext(def, options)).Minimatch;\n }\n },\n AST: class AST extends orig.AST {\n /* c8 ignore start */\n constructor(type, parent, options = {}) {\n super(type, parent, ext(def, options));\n }\n /* c8 ignore stop */\n static fromGlob(pattern, options = {}) {\n return orig.AST.fromGlob(pattern, ext(def, options));\n }\n },\n unescape: (s, options = {}) => orig.unescape(s, ext(def, options)),\n escape: (s, options = {}) => orig.escape(s, ext(def, options)),\n filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)),\n defaults: (options) => orig.defaults(ext(def, options)),\n makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)),\n braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)),\n match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)),\n sep: orig.sep,\n GLOBSTAR: GLOBSTAR,\n });\n};\nminimatch.defaults = defaults;\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nexport const braceExpand = (pattern, options = {}) => {\n assertValidPattern(pattern);\n // Thanks to Yeting Li for\n // improving this regexp to avoid a ReDOS vulnerability.\n if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n // shortcut. no need to expand.\n return [pattern];\n }\n return expand(pattern);\n};\nminimatch.braceExpand = braceExpand;\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nexport const makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe();\nminimatch.makeRe = makeRe;\nexport const match = (list, pattern, options = {}) => {\n const mm = new Minimatch(pattern, options);\n list = list.filter(f => mm.match(f));\n if (mm.options.nonull && !list.length) {\n list.push(pattern);\n }\n return list;\n};\nminimatch.match = match;\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/;\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\nexport class Minimatch {\n options;\n set;\n pattern;\n windowsPathsNoEscape;\n nonegate;\n negate;\n comment;\n empty;\n preserveMultipleSlashes;\n partial;\n globSet;\n globParts;\n nocase;\n isWindows;\n platform;\n windowsNoMagicRoot;\n regexp;\n constructor(pattern, options = {}) {\n assertValidPattern(pattern);\n options = options || {};\n this.options = options;\n this.pattern = pattern;\n this.platform = options.platform || defaultPlatform;\n this.isWindows = this.platform === 'win32';\n this.windowsPathsNoEscape =\n !!options.windowsPathsNoEscape || options.allowWindowsEscape === false;\n if (this.windowsPathsNoEscape) {\n this.pattern = this.pattern.replace(/\\\\/g, '/');\n }\n this.preserveMultipleSlashes = !!options.preserveMultipleSlashes;\n this.regexp = null;\n this.negate = false;\n this.nonegate = !!options.nonegate;\n this.comment = false;\n this.empty = false;\n this.partial = !!options.partial;\n this.nocase = !!this.options.nocase;\n this.windowsNoMagicRoot =\n options.windowsNoMagicRoot !== undefined\n ? options.windowsNoMagicRoot\n : !!(this.isWindows && this.nocase);\n this.globSet = [];\n this.globParts = [];\n this.set = [];\n // make the set of regexps etc.\n this.make();\n }\n hasMagic() {\n if (this.options.magicalBraces && this.set.length > 1) {\n return true;\n }\n for (const pattern of this.set) {\n for (const part of pattern) {\n if (typeof part !== 'string')\n return true;\n }\n }\n return false;\n }\n debug(..._) { }\n make() {\n const pattern = this.pattern;\n const options = this.options;\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true;\n return;\n }\n if (!pattern) {\n this.empty = true;\n return;\n }\n // step 1: figure out negation, etc.\n this.parseNegate();\n // step 2: expand braces\n this.globSet = [...new Set(this.braceExpand())];\n if (options.debug) {\n this.debug = (...args) => console.error(...args);\n }\n this.debug(this.pattern, this.globSet);\n // step 3: now we have a set, so turn each one into a series of\n // path-portion matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n //\n // First, we preprocess to make the glob pattern sets a bit simpler\n // and deduped. There are some perf-killing patterns that can cause\n // problems with a glob walk, but we can simplify them down a bit.\n const rawGlobParts = this.globSet.map(s => this.slashSplit(s));\n this.globParts = this.preprocess(rawGlobParts);\n this.debug(this.pattern, this.globParts);\n // glob --> regexps\n let set = this.globParts.map((s, _, __) => {\n if (this.isWindows && this.windowsNoMagicRoot) {\n // check if it's a drive or unc path.\n const isUNC = s[0] === '' &&\n s[1] === '' &&\n (s[2] === '?' || !globMagic.test(s[2])) &&\n !globMagic.test(s[3]);\n const isDrive = /^[a-z]:/i.test(s[0]);\n if (isUNC) {\n return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))];\n }\n else if (isDrive) {\n return [s[0], ...s.slice(1).map(ss => this.parse(ss))];\n }\n }\n return s.map(ss => this.parse(ss));\n });\n this.debug(this.pattern, set);\n // filter out everything that didn't compile properly.\n this.set = set.filter(s => s.indexOf(false) === -1);\n // do not treat the ? in UNC paths as magic\n if (this.isWindows) {\n for (let i = 0; i < this.set.length; i++) {\n const p = this.set[i];\n if (p[0] === '' &&\n p[1] === '' &&\n this.globParts[i][2] === '?' &&\n typeof p[3] === 'string' &&\n /^[a-z]:$/i.test(p[3])) {\n p[2] = '?';\n }\n }\n }\n this.debug(this.pattern, this.set);\n }\n // various transforms to equivalent pattern sets that are\n // faster to process in a filesystem walk. The goal is to\n // eliminate what we can, and push all ** patterns as far\n // to the right as possible, even if it increases the number\n // of patterns that we have to process.\n preprocess(globParts) {\n // if we're not in globstar mode, then turn all ** into *\n if (this.options.noglobstar) {\n for (let i = 0; i < globParts.length; i++) {\n for (let j = 0; j < globParts[i].length; j++) {\n if (globParts[i][j] === '**') {\n globParts[i][j] = '*';\n }\n }\n }\n }\n const { optimizationLevel = 1 } = this.options;\n if (optimizationLevel >= 2) {\n // aggressive optimization for the purpose of fs walking\n globParts = this.firstPhasePreProcess(globParts);\n globParts = this.secondPhasePreProcess(globParts);\n }\n else if (optimizationLevel >= 1) {\n // just basic optimizations to remove some .. parts\n globParts = this.levelOneOptimize(globParts);\n }\n else {\n // just collapse multiple ** portions into one\n globParts = this.adjascentGlobstarOptimize(globParts);\n }\n return globParts;\n }\n // just get rid of adjascent ** portions\n adjascentGlobstarOptimize(globParts) {\n return globParts.map(parts => {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let i = gs;\n while (parts[i + 1] === '**') {\n i++;\n }\n if (i !== gs) {\n parts.splice(gs, i - gs);\n }\n }\n return parts;\n });\n }\n // get rid of adjascent ** and resolve .. portions\n levelOneOptimize(globParts) {\n return globParts.map(parts => {\n parts = parts.reduce((set, part) => {\n const prev = set[set.length - 1];\n if (part === '**' && prev === '**') {\n return set;\n }\n if (part === '..') {\n if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n set.pop();\n return set;\n }\n }\n set.push(part);\n return set;\n }, []);\n return parts.length === 0 ? [''] : parts;\n });\n }\n levelTwoFileOptimize(parts) {\n if (!Array.isArray(parts)) {\n parts = this.slashSplit(parts);\n }\n let didSomething = false;\n do {\n didSomething = false;\n //
// -> 
/\n            if (!this.preserveMultipleSlashes) {\n                for (let i = 1; i < parts.length - 1; i++) {\n                    const p = parts[i];\n                    // don't squeeze out UNC patterns\n                    if (i === 1 && p === '' && parts[0] === '')\n                        continue;\n                    if (p === '.' || p === '') {\n                        didSomething = true;\n                        parts.splice(i, 1);\n                        i--;\n                    }\n                }\n                if (parts[0] === '.' &&\n                    parts.length === 2 &&\n                    (parts[1] === '.' || parts[1] === '')) {\n                    didSomething = true;\n                    parts.pop();\n                }\n            }\n            // 
/

/../ ->

/\n            let dd = 0;\n            while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                const p = parts[dd - 1];\n                if (p && p !== '.' && p !== '..' && p !== '**') {\n                    didSomething = true;\n                    parts.splice(dd - 1, 2);\n                    dd -= 2;\n                }\n            }\n        } while (didSomething);\n        return parts.length === 0 ? [''] : parts;\n    }\n    // First phase: single-pattern processing\n    // 
 is 1 or more portions\n    //  is 1 or more portions\n    // 

is any portion other than ., .., '', or **\n // is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n //

// -> 
/\n    // 
/

/../ ->

/\n    // **/**/ -> **/\n    //\n    // **/*/ -> */**/ <== not valid because ** doesn't follow\n    // this WOULD be allowed if ** did follow symlinks, or * didn't\n    firstPhasePreProcess(globParts) {\n        let didSomething = false;\n        do {\n            didSomething = false;\n            // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n for (let parts of globParts) {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let gss = gs;\n while (parts[gss + 1] === '**') {\n //

/**/**/ -> 
/**/\n                        gss++;\n                    }\n                    // eg, if gs is 2 and gss is 4, that means we have 3 **\n                    // parts, and can remove 2 of them.\n                    if (gss > gs) {\n                        parts.splice(gs + 1, gss - gs);\n                    }\n                    let next = parts[gs + 1];\n                    const p = parts[gs + 2];\n                    const p2 = parts[gs + 3];\n                    if (next !== '..')\n                        continue;\n                    if (!p ||\n                        p === '.' ||\n                        p === '..' ||\n                        !p2 ||\n                        p2 === '.' ||\n                        p2 === '..') {\n                        continue;\n                    }\n                    didSomething = true;\n                    // edit parts in place, and push the new one\n                    parts.splice(gs, 1);\n                    const other = parts.slice(0);\n                    other[gs] = '**';\n                    globParts.push(other);\n                    gs--;\n                }\n                // 
// -> 
/\n                if (!this.preserveMultipleSlashes) {\n                    for (let i = 1; i < parts.length - 1; i++) {\n                        const p = parts[i];\n                        // don't squeeze out UNC patterns\n                        if (i === 1 && p === '' && parts[0] === '')\n                            continue;\n                        if (p === '.' || p === '') {\n                            didSomething = true;\n                            parts.splice(i, 1);\n                            i--;\n                        }\n                    }\n                    if (parts[0] === '.' &&\n                        parts.length === 2 &&\n                        (parts[1] === '.' || parts[1] === '')) {\n                        didSomething = true;\n                        parts.pop();\n                    }\n                }\n                // 
/

/../ ->

/\n                let dd = 0;\n                while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                    const p = parts[dd - 1];\n                    if (p && p !== '.' && p !== '..' && p !== '**') {\n                        didSomething = true;\n                        const needDot = dd === 1 && parts[dd + 1] === '**';\n                        const splin = needDot ? ['.'] : [];\n                        parts.splice(dd - 1, 2, ...splin);\n                        if (parts.length === 0)\n                            parts.push('');\n                        dd -= 2;\n                    }\n                }\n            }\n        } while (didSomething);\n        return globParts;\n    }\n    // second phase: multi-pattern dedupes\n    // {
/*/,
/

/} ->

/*/\n    // {
/,
/} -> 
/\n    // {
/**/,
/} -> 
/**/\n    //\n    // {
/**/,
/**/

/} ->

/**/\n    // ^-- not valid because ** doens't follow symlinks\n    secondPhasePreProcess(globParts) {\n        for (let i = 0; i < globParts.length - 1; i++) {\n            for (let j = i + 1; j < globParts.length; j++) {\n                const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);\n                if (matched) {\n                    globParts[i] = [];\n                    globParts[j] = matched;\n                    break;\n                }\n            }\n        }\n        return globParts.filter(gs => gs.length);\n    }\n    partsMatch(a, b, emptyGSMatch = false) {\n        let ai = 0;\n        let bi = 0;\n        let result = [];\n        let which = '';\n        while (ai < a.length && bi < b.length) {\n            if (a[ai] === b[bi]) {\n                result.push(which === 'b' ? b[bi] : a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n                result.push(a[ai]);\n                ai++;\n            }\n            else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n                result.push(b[bi]);\n                bi++;\n            }\n            else if (a[ai] === '*' &&\n                b[bi] &&\n                (this.options.dot || !b[bi].startsWith('.')) &&\n                b[bi] !== '**') {\n                if (which === 'b')\n                    return false;\n                which = 'a';\n                result.push(a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (b[bi] === '*' &&\n                a[ai] &&\n                (this.options.dot || !a[ai].startsWith('.')) &&\n                a[ai] !== '**') {\n                if (which === 'a')\n                    return false;\n                which = 'b';\n                result.push(b[bi]);\n                ai++;\n                bi++;\n            }\n            else {\n                return false;\n            }\n        }\n        // if we fall out of the loop, it means they two are identical\n        // as long as their lengths match\n        return a.length === b.length && result;\n    }\n    parseNegate() {\n        if (this.nonegate)\n            return;\n        const pattern = this.pattern;\n        let negate = false;\n        let negateOffset = 0;\n        for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n            negate = !negate;\n            negateOffset++;\n        }\n        if (negateOffset)\n            this.pattern = pattern.slice(negateOffset);\n        this.negate = negate;\n    }\n    // set partial to true to test if, for example,\n    // \"/a/b\" matches the start of \"/*/b/*/d\"\n    // Partial means, if you run out of file before you run\n    // out of pattern, then that's fine, as long as all\n    // the parts match.\n    matchOne(file, pattern, partial = false) {\n        const options = this.options;\n        // UNC paths like //?/X:/... can match X:/... and vice versa\n        // Drive letters in absolute drive or unc paths are always compared\n        // case-insensitively.\n        if (this.isWindows) {\n            const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0]);\n            const fileUNC = !fileDrive &&\n                file[0] === '' &&\n                file[1] === '' &&\n                file[2] === '?' &&\n                /^[a-z]:$/i.test(file[3]);\n            const patternDrive = typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0]);\n            const patternUNC = !patternDrive &&\n                pattern[0] === '' &&\n                pattern[1] === '' &&\n                pattern[2] === '?' &&\n                typeof pattern[3] === 'string' &&\n                /^[a-z]:$/i.test(pattern[3]);\n            const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined;\n            const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined;\n            if (typeof fdi === 'number' && typeof pdi === 'number') {\n                const [fd, pd] = [file[fdi], pattern[pdi]];\n                if (fd.toLowerCase() === pd.toLowerCase()) {\n                    pattern[pdi] = fd;\n                    if (pdi > fdi) {\n                        pattern = pattern.slice(pdi);\n                    }\n                    else if (fdi > pdi) {\n                        file = file.slice(fdi);\n                    }\n                }\n            }\n        }\n        // resolve and reduce . and .. portions in the file as well.\n        // dont' need to do the second phase, because it's only one string[]\n        const { optimizationLevel = 1 } = this.options;\n        if (optimizationLevel >= 2) {\n            file = this.levelTwoFileOptimize(file);\n        }\n        this.debug('matchOne', this, { file, pattern });\n        this.debug('matchOne', file.length, pattern.length);\n        for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {\n            this.debug('matchOne loop');\n            var p = pattern[pi];\n            var f = file[fi];\n            this.debug(pattern, p, f);\n            // should be impossible.\n            // some invalid regexp stuff in the set.\n            /* c8 ignore start */\n            if (p === false) {\n                return false;\n            }\n            /* c8 ignore stop */\n            if (p === GLOBSTAR) {\n                this.debug('GLOBSTAR', [pattern, p, f]);\n                // \"**\"\n                // a/**/b/**/c would match the following:\n                // a/b/x/y/z/c\n                // a/x/y/z/b/c\n                // a/b/x/b/x/c\n                // a/b/c\n                // To do this, take the rest of the pattern after\n                // the **, and see if it would match the file remainder.\n                // If so, return success.\n                // If not, the ** \"swallows\" a segment, and try again.\n                // This is recursively awful.\n                //\n                // a/**/b/**/c matching a/b/x/y/z/c\n                // - a matches a\n                // - doublestar\n                //   - matchOne(b/x/y/z/c, b/**/c)\n                //     - b matches b\n                //     - doublestar\n                //       - matchOne(x/y/z/c, c) -> no\n                //       - matchOne(y/z/c, c) -> no\n                //       - matchOne(z/c, c) -> no\n                //       - matchOne(c, c) yes, hit\n                var fr = fi;\n                var pr = pi + 1;\n                if (pr === pl) {\n                    this.debug('** at the end');\n                    // a ** at the end will just swallow the rest.\n                    // We have found a match.\n                    // however, it will not swallow /.x, unless\n                    // options.dot is set.\n                    // . and .. are *never* matched by **, for explosively\n                    // exponential reasons.\n                    for (; fi < fl; fi++) {\n                        if (file[fi] === '.' ||\n                            file[fi] === '..' ||\n                            (!options.dot && file[fi].charAt(0) === '.'))\n                            return false;\n                    }\n                    return true;\n                }\n                // ok, let's see if we can swallow whatever we can.\n                while (fr < fl) {\n                    var swallowee = file[fr];\n                    this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee);\n                    // XXX remove this slice.  Just pass the start index.\n                    if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n                        this.debug('globstar found match!', fr, fl, swallowee);\n                        // found a match.\n                        return true;\n                    }\n                    else {\n                        // can't swallow \".\" or \"..\" ever.\n                        // can only swallow \".foo\" when explicitly asked.\n                        if (swallowee === '.' ||\n                            swallowee === '..' ||\n                            (!options.dot && swallowee.charAt(0) === '.')) {\n                            this.debug('dot detected!', file, fr, pattern, pr);\n                            break;\n                        }\n                        // ** swallows a segment, and continue.\n                        this.debug('globstar swallow a segment, and continue');\n                        fr++;\n                    }\n                }\n                // no match was found.\n                // However, in partial mode, we can't say this is necessarily over.\n                /* c8 ignore start */\n                if (partial) {\n                    // ran out of file\n                    this.debug('\\n>>> no match, partial?', file, fr, pattern, pr);\n                    if (fr === fl) {\n                        return true;\n                    }\n                }\n                /* c8 ignore stop */\n                return false;\n            }\n            // something other than **\n            // non-magic patterns just have to match exactly\n            // patterns with magic have been turned into regexps.\n            let hit;\n            if (typeof p === 'string') {\n                hit = f === p;\n                this.debug('string match', p, f, hit);\n            }\n            else {\n                hit = p.test(f);\n                this.debug('pattern match', p, f, hit);\n            }\n            if (!hit)\n                return false;\n        }\n        // Note: ending in / means that we'll get a final \"\"\n        // at the end of the pattern.  This can only match a\n        // corresponding \"\" at the end of the file.\n        // If the file ends in /, then it can only match a\n        // a pattern that ends in /, unless the pattern just\n        // doesn't have any more for it. But, a/b/ should *not*\n        // match \"a/b/*\", even though \"\" matches against the\n        // [^/]*? pattern, except in partial mode, where it might\n        // simply not be reached yet.\n        // However, a/b/ should still satisfy a/*\n        // now either we fell off the end of the pattern, or we're done.\n        if (fi === fl && pi === pl) {\n            // ran out of pattern and filename at the same time.\n            // an exact hit!\n            return true;\n        }\n        else if (fi === fl) {\n            // ran out of file, but still had pattern left.\n            // this is ok if we're doing the match as part of\n            // a glob fs traversal.\n            return partial;\n        }\n        else if (pi === pl) {\n            // ran out of pattern, still have file left.\n            // this is only acceptable if we're on the very last\n            // empty segment of a file with a trailing slash.\n            // a/* should match a/b/\n            return fi === fl - 1 && file[fi] === '';\n            /* c8 ignore start */\n        }\n        else {\n            // should be unreachable.\n            throw new Error('wtf?');\n        }\n        /* c8 ignore stop */\n    }\n    braceExpand() {\n        return braceExpand(this.pattern, this.options);\n    }\n    parse(pattern) {\n        assertValidPattern(pattern);\n        const options = this.options;\n        // shortcuts\n        if (pattern === '**')\n            return GLOBSTAR;\n        if (pattern === '')\n            return '';\n        // far and away, the most common glob pattern parts are\n        // *, *.*, and *.  Add a fast check method for those.\n        let m;\n        let fastTest = null;\n        if ((m = pattern.match(starRE))) {\n            fastTest = options.dot ? starTestDot : starTest;\n        }\n        else if ((m = pattern.match(starDotExtRE))) {\n            fastTest = (options.nocase\n                ? options.dot\n                    ? starDotExtTestNocaseDot\n                    : starDotExtTestNocase\n                : options.dot\n                    ? starDotExtTestDot\n                    : starDotExtTest)(m[1]);\n        }\n        else if ((m = pattern.match(qmarksRE))) {\n            fastTest = (options.nocase\n                ? options.dot\n                    ? qmarksTestNocaseDot\n                    : qmarksTestNocase\n                : options.dot\n                    ? qmarksTestDot\n                    : qmarksTest)(m);\n        }\n        else if ((m = pattern.match(starDotStarRE))) {\n            fastTest = options.dot ? starDotStarTestDot : starDotStarTest;\n        }\n        else if ((m = pattern.match(dotStarRE))) {\n            fastTest = dotStarTest;\n        }\n        const re = AST.fromGlob(pattern, this.options).toMMPattern();\n        if (fastTest && typeof re === 'object') {\n            // Avoids overriding in frozen environments\n            Reflect.defineProperty(re, 'test', { value: fastTest });\n        }\n        return re;\n    }\n    makeRe() {\n        if (this.regexp || this.regexp === false)\n            return this.regexp;\n        // at this point, this.set is a 2d array of partial\n        // pattern strings, or \"**\".\n        //\n        // It's better to use .match().  This function shouldn't\n        // be used, really, but it's pretty convenient sometimes,\n        // when you just want to work with a regex.\n        const set = this.set;\n        if (!set.length) {\n            this.regexp = false;\n            return this.regexp;\n        }\n        const options = this.options;\n        const twoStar = options.noglobstar\n            ? star\n            : options.dot\n                ? twoStarDot\n                : twoStarNoDot;\n        const flags = new Set(options.nocase ? ['i'] : []);\n        // regexpify non-globstar patterns\n        // if ** is only item, then we just do one twoStar\n        // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n        // if ** is last, append (\\/twoStar|) to previous\n        // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n        // then filter out GLOBSTAR symbols\n        let re = set\n            .map(pattern => {\n            const pp = pattern.map(p => {\n                if (p instanceof RegExp) {\n                    for (const f of p.flags.split(''))\n                        flags.add(f);\n                }\n                return typeof p === 'string'\n                    ? regExpEscape(p)\n                    : p === GLOBSTAR\n                        ? GLOBSTAR\n                        : p._src;\n            });\n            pp.forEach((p, i) => {\n                const next = pp[i + 1];\n                const prev = pp[i - 1];\n                if (p !== GLOBSTAR || prev === GLOBSTAR) {\n                    return;\n                }\n                if (prev === undefined) {\n                    if (next !== undefined && next !== GLOBSTAR) {\n                        pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next;\n                    }\n                    else {\n                        pp[i] = twoStar;\n                    }\n                }\n                else if (next === undefined) {\n                    pp[i - 1] = prev + '(?:\\\\/|' + twoStar + ')?';\n                }\n                else if (next !== GLOBSTAR) {\n                    pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next;\n                    pp[i + 1] = GLOBSTAR;\n                }\n            });\n            return pp.filter(p => p !== GLOBSTAR).join('/');\n        })\n            .join('|');\n        // need to wrap in parens if we had more than one thing with |,\n        // otherwise only the first will be anchored to ^ and the last to $\n        const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', ''];\n        // must match entire pattern\n        // ending in a * or ** will make it less strict.\n        re = '^' + open + re + close + '$';\n        // can match anything, as long as it's not this.\n        if (this.negate)\n            re = '^(?!' + re + ').+$';\n        try {\n            this.regexp = new RegExp(re, [...flags].join(''));\n            /* c8 ignore start */\n        }\n        catch (ex) {\n            // should be impossible\n            this.regexp = false;\n        }\n        /* c8 ignore stop */\n        return this.regexp;\n    }\n    slashSplit(p) {\n        // if p starts with // on windows, we preserve that\n        // so that UNC paths aren't broken.  Otherwise, any number of\n        // / characters are coalesced into one, unless\n        // preserveMultipleSlashes is set to true.\n        if (this.preserveMultipleSlashes) {\n            return p.split('/');\n        }\n        else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n            // add an extra '' for the one we lose\n            return ['', ...p.split(/\\/+/)];\n        }\n        else {\n            return p.split(/\\/+/);\n        }\n    }\n    match(f, partial = this.partial) {\n        this.debug('match', f, this.pattern);\n        // short-circuit in the case of busted things.\n        // comments, etc.\n        if (this.comment) {\n            return false;\n        }\n        if (this.empty) {\n            return f === '';\n        }\n        if (f === '/' && partial) {\n            return true;\n        }\n        const options = this.options;\n        // windows: need to use /, not \\\n        if (this.isWindows) {\n            f = f.split('\\\\').join('/');\n        }\n        // treat the test path as a set of pathparts.\n        const ff = this.slashSplit(f);\n        this.debug(this.pattern, 'split', ff);\n        // just ONE of the pattern sets in this.set needs to match\n        // in order for it to be valid.  If negating, then just one\n        // match means that we have failed.\n        // Either way, return on the first hit.\n        const set = this.set;\n        this.debug(this.pattern, 'set', set);\n        // Find the basename of the path by looking for the last non-empty segment\n        let filename = ff[ff.length - 1];\n        if (!filename) {\n            for (let i = ff.length - 2; !filename && i >= 0; i--) {\n                filename = ff[i];\n            }\n        }\n        for (let i = 0; i < set.length; i++) {\n            const pattern = set[i];\n            let file = ff;\n            if (options.matchBase && pattern.length === 1) {\n                file = [filename];\n            }\n            const hit = this.matchOne(file, pattern, partial);\n            if (hit) {\n                if (options.flipNegate) {\n                    return true;\n                }\n                return !this.negate;\n            }\n        }\n        // didn't get any hits.  this is success if it's a negative\n        // pattern, failure otherwise.\n        if (options.flipNegate) {\n            return false;\n        }\n        return this.negate;\n    }\n    static defaults(def) {\n        return minimatch.defaults(def).Minimatch;\n    }\n}\n/* c8 ignore start */\nexport { AST } from './ast.js';\nexport { escape } from './escape.js';\nexport { unescape } from './unescape.js';\n/* c8 ignore stop */\nminimatch.AST = AST;\nminimatch.Minimatch = Minimatch;\nminimatch.escape = escape;\nminimatch.unescape = unescape;\n//# sourceMappingURL=index.js.map","import { minimatch } from \"minimatch\";\nimport { convertResponseHeaders } from \"./tools/headers.js\";\nexport function createErrorFromResponse(response, prefix = \"\") {\n    const err = new Error(`${prefix}Invalid response: ${response.status} ${response.statusText}`);\n    err.status = response.status;\n    err.response = response;\n    return err;\n}\nexport function handleResponseCode(context, response) {\n    const { status } = response;\n    if (status === 401 && context.digest)\n        return response;\n    if (status >= 400) {\n        const err = createErrorFromResponse(response);\n        throw err;\n    }\n    return response;\n}\nexport function processGlobFilter(files, glob) {\n    return files.filter(file => minimatch(file.filename, glob, { matchBase: true }));\n}\n/**\n * Process a response payload (eg. from `customRequest`) and\n *  prepare it for further processing. Exposed for custom\n *  request handling.\n * @param response The response for a request\n * @param data The data returned\n * @param isDetailed Whether or not a detailed result is\n *  requested\n * @returns The response data, or a detailed response object\n *  if required\n */\nexport function processResponsePayload(response, data, isDetailed = false) {\n    return isDetailed\n        ? {\n            data,\n            headers: response.headers ? convertResponseHeaders(response.headers) : {},\n            status: response.status,\n            statusText: response.statusText\n        }\n        : data;\n}\n","/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character.  In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n */\nexport const escape = (s, { windowsPathsNoEscape = false, } = {}) => {\n    // don't need to escape +@! because we escape the parens\n    // that make those magic, and escaping ! as [!] isn't valid,\n    // because [!]] is a valid glob class meaning not ']'.\n    return windowsPathsNoEscape\n        ? s.replace(/[?*()[\\]]/g, '[$&]')\n        : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&');\n};\n//# sourceMappingURL=escape.js.map","\nexport const defaultOptions = {\n    preserveOrder: false,\n    attributeNamePrefix: '@_',\n    attributesGroupName: false,\n    textNodeName: '#text',\n    ignoreAttributes: true,\n    removeNSPrefix: false, // remove NS from tag name or attribute name if true\n    allowBooleanAttributes: false, //a tag can have attributes without any value\n    //ignoreRootElement : false,\n    parseTagValue: true,\n    parseAttributeValue: false,\n    trimValues: true, //Trim string values of tag and attributes\n    cdataPropName: false,\n    numberParseOptions: {\n      hex: true,\n      leadingZeros: true,\n      eNotation: true\n    },\n    tagValueProcessor: function(tagName, val) {\n      return val;\n    },\n    attributeValueProcessor: function(attrName, val) {\n      return val;\n    },\n    stopNodes: [], //nested tags will not be parsed even for errors\n    alwaysCreateTextNode: false,\n    isArray: () => false,\n    commentPropName: false,\n    unpairedTags: [],\n    processEntities: true,\n    htmlEntities: false,\n    ignoreDeclaration: false,\n    ignorePiTags: false,\n    transformTagName: false,\n    transformAttributeName: false,\n    updateTag: function(tagName, jPath, attrs){\n      return tagName\n    },\n    // skipEmptyListItem: false\n    captureMetaData: false,\n};\n   \nexport const buildOptions = function(options) {\n    return Object.assign({}, defaultOptions, options);\n};\n","'use strict';\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nexport const nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*';\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nexport function getAllMatches(string, regex) {\n  const matches = [];\n  let match = regex.exec(string);\n  while (match) {\n    const allmatches = [];\n    allmatches.startIndex = regex.lastIndex - match[0].length;\n    const len = match.length;\n    for (let index = 0; index < len; index++) {\n      allmatches.push(match[index]);\n    }\n    matches.push(allmatches);\n    match = regex.exec(string);\n  }\n  return matches;\n}\n\nexport const isName = function(string) {\n  const match = regexName.exec(string);\n  return !(match === null || typeof match === 'undefined');\n}\n\nexport function isExist(v) {\n  return typeof v !== 'undefined';\n}\n\nexport function isEmptyObject(obj) {\n  return Object.keys(obj).length === 0;\n}\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexport function merge(target, a, arrayMode) {\n  if (a) {\n    const keys = Object.keys(a); // will return an array of own properties\n    const len = keys.length; //don't make it inline\n    for (let i = 0; i < len; i++) {\n      if (arrayMode === 'strict') {\n        target[keys[i]] = [ a[keys[i]] ];\n      } else {\n        target[keys[i]] = a[keys[i]];\n      }\n    }\n  }\n}\n/* exports.merge =function (b,a){\n  return Object.assign(b,a);\n} */\n\nexport function getValue(v) {\n  if (exports.isExist(v)) {\n    return v;\n  } else {\n    return '';\n  }\n}\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};","'use strict';\n\nlet METADATA_SYMBOL;\n\nif (typeof Symbol !== \"function\") {\n  METADATA_SYMBOL = \"@@xmlMetadata\";\n} else {\n  METADATA_SYMBOL = Symbol(\"XML Node Metadata\");\n}\n\nexport default class XmlNode{\n  constructor(tagname) {\n    this.tagname = tagname;\n    this.child = []; //nested tags, text, cdata, comments in order\n    this[\":@\"] = {}; //attributes map\n  }\n  add(key,val){\n    // this.child.push( {name : key, val: val, isCdata: isCdata });\n    if(key === \"__proto__\") key = \"#__proto__\";\n    this.child.push( {[key]: val });\n  }\n  addChild(node, startIndex) {\n    if(node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n    if(node[\":@\"] && Object.keys(node[\":@\"]).length > 0){\n      this.child.push( { [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n    }else{\n      this.child.push( { [node.tagname]: node.child });\n    }\n    // if requested, add the startIndex\n    if (startIndex !== undefined) {\n      // Note: for now we just overwrite the metadata. If we had more complex metadata,\n      // we might need to do an object append here:  metadata = { ...metadata, startIndex }\n      this.child[this.child.length - 1][METADATA_SYMBOL] = { startIndex };\n    }\n  }\n  /** symbol used for metadata */\n  static getMetaDataSymbol() {\n    return METADATA_SYMBOL;\n  }\n}\n","import {isName} from '../util.js';\n\nexport default class DocTypeReader{\n    constructor(processEntities){\n        this.suppressValidationErr = !processEntities;\n    }\n    \n    readDocType(xmlData, i){\n    \n        const entities = {};\n        if( xmlData[i + 3] === 'O' &&\n            xmlData[i + 4] === 'C' &&\n            xmlData[i + 5] === 'T' &&\n            xmlData[i + 6] === 'Y' &&\n            xmlData[i + 7] === 'P' &&\n            xmlData[i + 8] === 'E')\n        {    \n            i = i+9;\n            let angleBracketsCount = 1;\n            let hasBody = false, comment = false;\n            let exp = \"\";\n            for(;i') { //Read tag content\n                    if(comment){\n                        if( xmlData[i - 1] === \"-\" && xmlData[i - 2] === \"-\"){\n                            comment = false;\n                            angleBracketsCount--;\n                        }\n                    }else{\n                        angleBracketsCount--;\n                    }\n                    if (angleBracketsCount === 0) {\n                    break;\n                    }\n                }else if( xmlData[i] === '['){\n                    hasBody = true;\n                }else{\n                    exp += xmlData[i];\n                }\n            }\n            if(angleBracketsCount !== 0){\n                throw new Error(`Unclosed DOCTYPE`);\n            }\n        }else{\n            throw new Error(`Invalid Tag instead of DOCTYPE`);\n        }\n        return {entities, i};\n    }\n    readEntityExp(xmlData, i) {    \n        //External entities are not supported\n        //    \n\n        //Parameter entities are not supported\n        //    \n\n        //Internal entities are supported\n        //    \n\n        // Skip leading whitespace after \n        // \n        // \n        // \n        // \n        \n        // Skip leading whitespace after  {\n    while (index < data.length && /\\s/.test(data[index])) {\n        index++;\n    }\n    return index;\n};\n\n\n\nfunction hasSeq(data, seq,i){\n    for(let j=0;j [ , '+', '00', '.123', ..\n        if(match){\n            const sign = match[1] || \"\";\n            const leadingZeros = match[2];\n            let numTrimmedByZeros = trimZeros(match[3]); //complete num without leading zeros\n            const decimalAdjacentToLeadingZeros = sign ? // 0., -00., 000.\n                str[leadingZeros.length+1] === \".\" \n                : str[leadingZeros.length] === \".\";\n\n            //trim ending zeros for floating number\n            if(!options.leadingZeros //leading zeros are not allowed\n                && (leadingZeros.length > 1 \n                    || (leadingZeros.length === 1 && !decimalAdjacentToLeadingZeros))){\n                // 00, 00.3, +03.24, 03, 03.24\n                return str;\n            }\n            else{//no leading zeros or leading zeros are allowed\n                const num = Number(trimmedStr);\n                const parsedStr = String(num);\n\n                if( num === 0) return num;\n                if(parsedStr.search(/[eE]/) !== -1){ //given number is long and parsed to eNotation\n                    if(options.eNotation) return num;\n                    else return str;\n                }else if(trimmedStr.indexOf(\".\") !== -1){ //floating number\n                    if(parsedStr === \"0\") return num; //0.0\n                    else if(parsedStr === numTrimmedByZeros) return num; //0.456. 0.79000\n                    else if( parsedStr === `${sign}${numTrimmedByZeros}`) return num;\n                    else return str;\n                }\n                \n                let n = leadingZeros? numTrimmedByZeros : trimmedStr;\n                if(leadingZeros){\n                    // -009 => -9\n                    return (n === parsedStr) || (sign+n === parsedStr) ? num : str\n                }else  {\n                    // +9\n                    return (n === parsedStr) || (n === sign+parsedStr) ? num : str\n                }\n            }\n        }else{ //non-numeric string\n            return str;\n        }\n    }\n}\n\nconst eNotationRegx = /^([-+])?(0*)(\\d*(\\.\\d*)?[eE][-\\+]?\\d+)$/;\nfunction resolveEnotation(str,trimmedStr,options){\n    if(!options.eNotation) return str;\n    const notation = trimmedStr.match(eNotationRegx); \n    if(notation){\n        let sign = notation[1] || \"\";\n        const eChar = notation[3].indexOf(\"e\") === -1 ? \"E\" : \"e\";\n        const leadingZeros = notation[2];\n        const eAdjacentToLeadingZeros = sign ? // 0E.\n            str[leadingZeros.length+1] === eChar \n            : str[leadingZeros.length] === eChar;\n\n        if(leadingZeros.length > 1 && eAdjacentToLeadingZeros) return str;\n        else if(leadingZeros.length === 1 \n            && (notation[3].startsWith(`.${eChar}`) || notation[3][0] === eChar)){\n                return Number(trimmedStr);\n        }else if(options.leadingZeros && !eAdjacentToLeadingZeros){ //accept with leading zeros\n            //remove leading 0s\n            trimmedStr = (notation[1] || \"\") + notation[3];\n            return Number(trimmedStr);\n        }else return str;\n    }else{\n        return str;\n    }\n}\n\n/**\n * \n * @param {string} numStr without leading zeros\n * @returns \n */\nfunction trimZeros(numStr){\n    if(numStr && numStr.indexOf(\".\") !== -1){//float\n        numStr = numStr.replace(/0+$/, \"\"); //remove ending zeros\n        if(numStr === \".\")  numStr = \"0\";\n        else if(numStr[0] === \".\")  numStr = \"0\"+numStr;\n        else if(numStr[numStr.length-1] === \".\")  numStr = numStr.substring(0,numStr.length-1);\n        return numStr;\n    }\n    return numStr;\n}\n\nfunction parse_int(numStr, base){\n    //polyfill\n    if(parseInt) return parseInt(numStr, base);\n    else if(Number.parseInt) return Number.parseInt(numStr, base);\n    else if(window && window.parseInt) return window.parseInt(numStr, base);\n    else throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")\n}","export default function getIgnoreAttributesFn(ignoreAttributes) {\n    if (typeof ignoreAttributes === 'function') {\n        return ignoreAttributes\n    }\n    if (Array.isArray(ignoreAttributes)) {\n        return (attrName) => {\n            for (const pattern of ignoreAttributes) {\n                if (typeof pattern === 'string' && attrName === pattern) {\n                    return true\n                }\n                if (pattern instanceof RegExp && pattern.test(attrName)) {\n                    return true\n                }\n            }\n        }\n    }\n    return () => false\n}","'use strict';\n///@ts-check\n\nimport {getAllMatches, isExist} from '../util.js';\nimport xmlNode from './xmlNode.js';\nimport DocTypeReader from './DocTypeReader.js';\nimport toNumber from \"strnum\";\nimport getIgnoreAttributesFn from \"../ignoreAttributes.js\";\n\n// const regx =\n//   '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n//   .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\nexport default class OrderedObjParser{\n  constructor(options){\n    this.options = options;\n    this.currentNode = null;\n    this.tagsNodeStack = [];\n    this.docTypeEntities = {};\n    this.lastEntities = {\n      \"apos\" : { regex: /&(apos|#39|#x27);/g, val : \"'\"},\n      \"gt\" : { regex: /&(gt|#62|#x3E);/g, val : \">\"},\n      \"lt\" : { regex: /&(lt|#60|#x3C);/g, val : \"<\"},\n      \"quot\" : { regex: /&(quot|#34|#x22);/g, val : \"\\\"\"},\n    };\n    this.ampEntity = { regex: /&(amp|#38|#x26);/g, val : \"&\"};\n    this.htmlEntities = {\n      \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n      // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n      // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n      // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n      // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n      // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n      \"cent\" : { regex: /&(cent|#162);/g, val: \"¢\" },\n      \"pound\" : { regex: /&(pound|#163);/g, val: \"£\" },\n      \"yen\" : { regex: /&(yen|#165);/g, val: \"Â¥\" },\n      \"euro\" : { regex: /&(euro|#8364);/g, val: \"€\" },\n      \"copyright\" : { regex: /&(copy|#169);/g, val: \"©\" },\n      \"reg\" : { regex: /&(reg|#174);/g, val: \"®\" },\n      \"inr\" : { regex: /&(inr|#8377);/g, val: \"₹\" },\n      \"num_dec\": { regex: /&#([0-9]{1,7});/g, val : (_, str) => fromCodePoint(str, 10, \"&#\") },\n      \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val : (_, str) => fromCodePoint(str, 16, \"&#x\") },\n    };\n    this.addExternalEntities = addExternalEntities;\n    this.parseXml = parseXml;\n    this.parseTextData = parseTextData;\n    this.resolveNameSpace = resolveNameSpace;\n    this.buildAttributesMap = buildAttributesMap;\n    this.isItStopNode = isItStopNode;\n    this.replaceEntitiesValue = replaceEntitiesValue;\n    this.readStopNodeData = readStopNodeData;\n    this.saveTextToParentTag = saveTextToParentTag;\n    this.addChild = addChild;\n    this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes)\n\n    if(this.options.stopNodes && this.options.stopNodes.length > 0){\n      this.stopNodesExact = new Set();\n      this.stopNodesWildcard = new Set();\n      for(let i = 0; i < this.options.stopNodes.length; i++){\n        const stopNodeExp = this.options.stopNodes[i];\n        if(typeof stopNodeExp !== 'string') continue;\n        if(stopNodeExp.startsWith(\"*.\")){\n          this.stopNodesWildcard.add(stopNodeExp.substring(2));\n        }else{\n          this.stopNodesExact.add(stopNodeExp);\n        }\n      }\n    }\n  }\n\n}\n\nfunction addExternalEntities(externalEntities){\n  const entKeys = Object.keys(externalEntities);\n  for (let i = 0; i < entKeys.length; i++) {\n    const ent = entKeys[i];\n    this.lastEntities[ent] = {\n       regex: new RegExp(\"&\"+ent+\";\",\"g\"),\n       val : externalEntities[ent]\n    }\n  }\n}\n\n/**\n * @param {string} val\n * @param {string} tagName\n * @param {string} jPath\n * @param {boolean} dontTrim\n * @param {boolean} hasAttributes\n * @param {boolean} isLeafNode\n * @param {boolean} escapeEntities\n */\nfunction parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n  if (val !== undefined) {\n    if (this.options.trimValues && !dontTrim) {\n      val = val.trim();\n    }\n    if(val.length > 0){\n      if(!escapeEntities) val = this.replaceEntitiesValue(val);\n      \n      const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n      if(newval === null || newval === undefined){\n        //don't parse\n        return val;\n      }else if(typeof newval !== typeof val || newval !== val){\n        //overwrite\n        return newval;\n      }else if(this.options.trimValues){\n        return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n      }else{\n        const trimmedVal = val.trim();\n        if(trimmedVal === val){\n          return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n        }else{\n          return val;\n        }\n      }\n    }\n  }\n}\n\nfunction resolveNameSpace(tagname) {\n  if (this.options.removeNSPrefix) {\n    const tags = tagname.split(':');\n    const prefix = tagname.charAt(0) === '/' ? '/' : '';\n    if (tags[0] === 'xmlns') {\n      return '';\n    }\n    if (tags.length === 2) {\n      tagname = prefix + tags[1];\n    }\n  }\n  return tagname;\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nfunction buildAttributesMap(attrStr, jPath) {\n  if (this.options.ignoreAttributes !== true && typeof attrStr === 'string') {\n    // attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n    //attrStr = attrStr || attrStr.trim();\n\n    const matches = getAllMatches(attrStr, attrsRegx);\n    const len = matches.length; //don't make it inline\n    const attrs = {};\n    for (let i = 0; i < len; i++) {\n      const attrName = this.resolveNameSpace(matches[i][1]);\n      if (this.ignoreAttributesFn(attrName, jPath)) {\n        continue\n      }\n      let oldVal = matches[i][4];\n      let aName = this.options.attributeNamePrefix + attrName;\n      if (attrName.length) {\n        if (this.options.transformAttributeName) {\n          aName = this.options.transformAttributeName(aName);\n        }\n        if(aName === \"__proto__\") aName  = \"#__proto__\";\n        if (oldVal !== undefined) {\n          if (this.options.trimValues) {\n            oldVal = oldVal.trim();\n          }\n          oldVal = this.replaceEntitiesValue(oldVal);\n          const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n          if(newVal === null || newVal === undefined){\n            //don't parse\n            attrs[aName] = oldVal;\n          }else if(typeof newVal !== typeof oldVal || newVal !== oldVal){\n            //overwrite\n            attrs[aName] = newVal;\n          }else{\n            //parse\n            attrs[aName] = parseValue(\n              oldVal,\n              this.options.parseAttributeValue,\n              this.options.numberParseOptions\n            );\n          }\n        } else if (this.options.allowBooleanAttributes) {\n          attrs[aName] = true;\n        }\n      }\n    }\n    if (!Object.keys(attrs).length) {\n      return;\n    }\n    if (this.options.attributesGroupName) {\n      const attrCollection = {};\n      attrCollection[this.options.attributesGroupName] = attrs;\n      return attrCollection;\n    }\n    return attrs\n  }\n}\n\nconst parseXml = function(xmlData) {\n  xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\"); //TODO: remove this line\n  const xmlObj = new xmlNode('!xml');\n  let currentNode = xmlObj;\n  let textData = \"\";\n  let jPath = \"\";\n  const docTypeReader = new DocTypeReader(this.options.processEntities);\n  for(let i=0; i< xmlData.length; i++){//for each char in XML data\n    const ch = xmlData[i];\n    if(ch === '<'){\n      // const nextIndex = i+1;\n      // const _2ndChar = xmlData[nextIndex];\n      if( xmlData[i+1] === '/') {//Closing Tag\n        const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n        let tagName = xmlData.substring(i+2,closeIndex).trim();\n\n        if(this.options.removeNSPrefix){\n          const colonIndex = tagName.indexOf(\":\");\n          if(colonIndex !== -1){\n            tagName = tagName.substr(colonIndex+1);\n          }\n        }\n\n        if(this.options.transformTagName) {\n          tagName = this.options.transformTagName(tagName);\n        }\n\n        if(currentNode){\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        }\n\n        //check if last tag of nested tag was unpaired tag\n        const lastTagName = jPath.substring(jPath.lastIndexOf(\".\")+1);\n        if(tagName && this.options.unpairedTags.indexOf(tagName) !== -1 ){\n          throw new Error(`Unpaired tag can not be used as closing tag: `);\n        }\n        let propIndex = 0\n        if(lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1 ){\n          propIndex = jPath.lastIndexOf('.', jPath.lastIndexOf('.')-1)\n          this.tagsNodeStack.pop();\n        }else{\n          propIndex = jPath.lastIndexOf(\".\");\n        }\n        jPath = jPath.substring(0, propIndex);\n\n        currentNode = this.tagsNodeStack.pop();//avoid recursion, set the parent tag scope\n        textData = \"\";\n        i = closeIndex;\n      } else if( xmlData[i+1] === '?') {\n\n        let tagData = readTagExp(xmlData,i, false, \"?>\");\n        if(!tagData) throw new Error(\"Pi Tag is not closed.\");\n\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        if( (this.options.ignoreDeclaration && tagData.tagName === \"?xml\") || this.options.ignorePiTags){\n          //do nothing\n        }else{\n  \n          const childNode = new xmlNode(tagData.tagName);\n          childNode.add(this.options.textNodeName, \"\");\n          \n          if(tagData.tagName !== tagData.tagExp && tagData.attrExpPresent){\n            childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath);\n          }\n          this.addChild(currentNode, childNode, jPath, i);\n        }\n\n\n        i = tagData.closeIndex + 1;\n      } else if(xmlData.substr(i + 1, 3) === '!--') {\n        const endIndex = findClosingIndex(xmlData, \"-->\", i+4, \"Comment is not closed.\")\n        if(this.options.commentPropName){\n          const comment = xmlData.substring(i + 4, endIndex - 2);\n\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n          currentNode.add(this.options.commentPropName, [ { [this.options.textNodeName] : comment } ]);\n        }\n        i = endIndex;\n      } else if( xmlData.substr(i + 1, 2) === '!D') {\n        const result = docTypeReader.readDocType(xmlData, i);\n        this.docTypeEntities = result.entities;\n        i = result.i;\n      }else if(xmlData.substr(i + 1, 2) === '![') {\n        const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n        const tagExp = xmlData.substring(i + 9,closeIndex);\n\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n        let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n        if(val == undefined) val = \"\";\n\n        //cdata should be set even if it is 0 length string\n        if(this.options.cdataPropName){\n          currentNode.add(this.options.cdataPropName, [ { [this.options.textNodeName] : tagExp } ]);\n        }else{\n          currentNode.add(this.options.textNodeName, val);\n        }\n        \n        i = closeIndex + 2;\n      }else {//Opening tag\n        let result = readTagExp(xmlData,i, this.options.removeNSPrefix);\n        let tagName= result.tagName;\n        const rawTagName = result.rawTagName;\n        let tagExp = result.tagExp;\n        let attrExpPresent = result.attrExpPresent;\n        let closeIndex = result.closeIndex;\n\n        if (this.options.transformTagName) {\n          //console.log(tagExp, tagName)\n          const newTagName = this.options.transformTagName(tagName);\n          if(tagExp === tagName) {\n            tagExp = newTagName\n          }\n          tagName = newTagName;\n        }\n        \n        //save text as child node\n        if (currentNode && textData) {\n          if(currentNode.tagname !== '!xml'){\n            //when nested tag is found\n            textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n          }\n        }\n\n        //check if last tag was unpaired tag\n        const lastTag = currentNode;\n        if(lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1 ){\n          currentNode = this.tagsNodeStack.pop();\n          jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n        }\n        if(tagName !== xmlObj.tagname){\n          jPath += jPath ? \".\" + tagName : tagName;\n        }\n        const startIndex = i;\n        if (this.isItStopNode(this.stopNodesExact, this.stopNodesWildcard, jPath, tagName)) {\n          let tagContent = \"\";\n          //self-closing tag\n          if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n            if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            }else{\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n            i = result.closeIndex;\n          }\n          //unpaired tag\n          else if(this.options.unpairedTags.indexOf(tagName) !== -1){\n            \n            i = result.closeIndex;\n          }\n          //normal tag\n          else{\n            //read until closing tag is found\n            const result = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n            if(!result) throw new Error(`Unexpected end of ${rawTagName}`);\n            i = result.i;\n            tagContent = result.tagContent;\n          }\n\n          const childNode = new xmlNode(tagName);\n\n          if(tagName !== tagExp && attrExpPresent){\n            childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath\n            );\n          }\n          if(tagContent) {\n            tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n          }\n          \n          jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          childNode.add(this.options.textNodeName, tagContent);\n          \n          this.addChild(currentNode, childNode, jPath, startIndex);\n        }else{\n  //selfClosing tag\n          if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n            if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            }else{\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n            \n            if(this.options.transformTagName) {\n              const newTagName = this.options.transformTagName(tagName);\n              if(tagExp === tagName) {\n                tagExp = newTagName\n              }\n              tagName = newTagName;\n            }\n\n            const childNode = new xmlNode(tagName);\n            if(tagName !== tagExp && attrExpPresent){\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath);\n            }\n            this.addChild(currentNode, childNode, jPath, startIndex);\n            jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          }\n    //opening tag\n          else{\n            const childNode = new xmlNode( tagName);\n            this.tagsNodeStack.push(currentNode);\n            \n            if(tagName !== tagExp && attrExpPresent){\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath);\n            }\n            this.addChild(currentNode, childNode, jPath, startIndex);\n            currentNode = childNode;\n          }\n          textData = \"\";\n          i = closeIndex;\n        }\n      }\n    }else{\n      textData += xmlData[i];\n    }\n  }\n  return xmlObj.child;\n}\n\nfunction addChild(currentNode, childNode, jPath, startIndex){\n  // unset startIndex if not requested\n  if (!this.options.captureMetaData) startIndex = undefined;\n  const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"])\n  if(result === false){\n    //do nothing\n  } else if(typeof result === \"string\"){\n    childNode.tagname = result\n    currentNode.addChild(childNode, startIndex);\n  }else{\n    currentNode.addChild(childNode, startIndex);\n  }\n}\n\nconst replaceEntitiesValue = function(val){\n\n  if(this.options.processEntities){\n    for(let entityName in this.docTypeEntities){\n      const entity = this.docTypeEntities[entityName];\n      val = val.replace( entity.regx, entity.val);\n    }\n    for(let entityName in this.lastEntities){\n      const entity = this.lastEntities[entityName];\n      val = val.replace( entity.regex, entity.val);\n    }\n    if(this.options.htmlEntities){\n      for(let entityName in this.htmlEntities){\n        const entity = this.htmlEntities[entityName];\n        val = val.replace( entity.regex, entity.val);\n      }\n    }\n    val = val.replace( this.ampEntity.regex, this.ampEntity.val);\n  }\n  return val;\n}\nfunction saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n  if (textData) { //store previously collected data as textNode\n    if(isLeafNode === undefined) isLeafNode = currentNode.child.length === 0\n    \n    textData = this.parseTextData(textData,\n      currentNode.tagname,\n      jPath,\n      false,\n      currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n      isLeafNode);\n\n    if (textData !== undefined && textData !== \"\")\n      currentNode.add(this.options.textNodeName, textData);\n    textData = \"\";\n  }\n  return textData;\n}\n\n//TODO: use jPath to simplify the logic\n/**\n * @param {Set} stopNodesExact\n * @param {Set} stopNodesWildcard\n * @param {string} jPath\n * @param {string} currentTagName\n */\nfunction isItStopNode(stopNodesExact, stopNodesWildcard, jPath, currentTagName){\n  if(stopNodesWildcard && stopNodesWildcard.has(currentTagName)) return true;\n  if(stopNodesExact && stopNodesExact.has(jPath)) return true;\n  return false;\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-double quotes situation\n * @param {string} xmlData \n * @param {number} i starting index\n * @returns \n */\nfunction tagExpWithClosingIndex(xmlData, i, closingChar = \">\"){\n  let attrBoundary;\n  let tagExp = \"\";\n  for (let index = i; index < xmlData.length; index++) {\n    let ch = xmlData[index];\n    if (attrBoundary) {\n        if (ch === attrBoundary) attrBoundary = \"\";//reset\n    } else if (ch === '\"' || ch === \"'\") {\n        attrBoundary = ch;\n    } else if (ch === closingChar[0]) {\n      if(closingChar[1]){\n        if(xmlData[index + 1] === closingChar[1]){\n          return {\n            data: tagExp,\n            index: index\n          }\n        }\n      }else{\n        return {\n          data: tagExp,\n          index: index\n        }\n      }\n    } else if (ch === '\\t') {\n      ch = \" \"\n    }\n    tagExp += ch;\n  }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg){\n  const closingIndex = xmlData.indexOf(str, i);\n  if(closingIndex === -1){\n    throw new Error(errMsg)\n  }else{\n    return closingIndex + str.length - 1;\n  }\n}\n\nfunction readTagExp(xmlData,i, removeNSPrefix, closingChar = \">\"){\n  const result = tagExpWithClosingIndex(xmlData, i+1, closingChar);\n  if(!result) return;\n  let tagExp = result.data;\n  const closeIndex = result.index;\n  const separatorIndex = tagExp.search(/\\s/);\n  let tagName = tagExp;\n  let attrExpPresent = true;\n  if(separatorIndex !== -1){//separate tag name and attributes expression\n    tagName = tagExp.substring(0, separatorIndex);\n    tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n  }\n\n  const rawTagName = tagName;\n  if(removeNSPrefix){\n    const colonIndex = tagName.indexOf(\":\");\n    if(colonIndex !== -1){\n      tagName = tagName.substr(colonIndex+1);\n      attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n    }\n  }\n\n  return {\n    tagName: tagName,\n    tagExp: tagExp,\n    closeIndex: closeIndex,\n    attrExpPresent: attrExpPresent,\n    rawTagName: rawTagName,\n  }\n}\n/**\n * find paired tag for a stop node\n * @param {string} xmlData \n * @param {string} tagName \n * @param {number} i \n */\nfunction readStopNodeData(xmlData, tagName, i){\n  const startIndex = i;\n  // Starting at 1 since we already have an open tag\n  let openTagCount = 1;\n\n  for (; i < xmlData.length; i++) {\n    if( xmlData[i] === \"<\"){ \n      if (xmlData[i+1] === \"/\") {//close tag\n          const closeIndex = findClosingIndex(xmlData, \">\", i, `${tagName} is not closed`);\n          let closeTagName = xmlData.substring(i+2,closeIndex).trim();\n          if(closeTagName === tagName){\n            openTagCount--;\n            if (openTagCount === 0) {\n              return {\n                tagContent: xmlData.substring(startIndex, i),\n                i : closeIndex\n              }\n            }\n          }\n          i=closeIndex;\n        } else if(xmlData[i+1] === '?') { \n          const closeIndex = findClosingIndex(xmlData, \"?>\", i+1, \"StopNode is not closed.\")\n          i=closeIndex;\n        } else if(xmlData.substr(i + 1, 3) === '!--') { \n          const closeIndex = findClosingIndex(xmlData, \"-->\", i+3, \"StopNode is not closed.\")\n          i=closeIndex;\n        } else if(xmlData.substr(i + 1, 2) === '![') { \n          const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"StopNode is not closed.\") - 2;\n          i=closeIndex;\n        } else {\n          const tagData = readTagExp(xmlData, i, '>')\n\n          if (tagData) {\n            const openTagName = tagData && tagData.tagName;\n            if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length-1] !== \"/\") {\n              openTagCount++;\n            }\n            i=tagData.closeIndex;\n          }\n        }\n      }\n  }//end for loop\n}\n\nfunction parseValue(val, shouldParse, options) {\n  if (shouldParse && typeof val === 'string') {\n    //console.log(options)\n    const newval = val.trim();\n    if(newval === 'true' ) return true;\n    else if(newval === 'false' ) return false;\n    else return toNumber(val, options);\n  } else {\n    if (isExist(val)) {\n      return val;\n    } else {\n      return '';\n    }\n  }\n}\n\nfunction fromCodePoint(str, base, prefix){\n  const codePoint = Number.parseInt(str, base);\n\n  if (codePoint >= 0 && codePoint <= 0x10FFFF) {\n      return String.fromCodePoint(codePoint);\n  } else {\n      return prefix +str + \";\";\n  }\n}","'use strict';\n\nimport XmlNode from './xmlNode.js';\n\nconst METADATA_SYMBOL = XmlNode.getMetaDataSymbol();\n\n/**\n * \n * @param {array} node \n * @param {any} options \n * @returns \n */\nexport default function prettify(node, options){\n  return compress( node, options);\n}\n\n/**\n * \n * @param {array} arr \n * @param {object} options \n * @param {string} jPath \n * @returns object\n */\nfunction compress(arr, options, jPath){\n  let text;\n  const compressedObj = {};\n  for (let i = 0; i < arr.length; i++) {\n    const tagObj = arr[i];\n    const property = propName(tagObj);\n    let newJpath = \"\";\n    if(jPath === undefined) newJpath = property;\n    else newJpath = jPath + \".\" + property;\n\n    if(property === options.textNodeName){\n      if(text === undefined) text = tagObj[property];\n      else text += \"\" + tagObj[property];\n    }else if(property === undefined){\n      continue;\n    }else if(tagObj[property]){\n      \n      let val = compress(tagObj[property], options, newJpath);\n      const isLeaf = isLeafTag(val, options);\n      if (tagObj[METADATA_SYMBOL] !== undefined) {\n        val[METADATA_SYMBOL] = tagObj[METADATA_SYMBOL]; // copy over metadata\n      }\n\n      if(tagObj[\":@\"]){\n        assignAttributes( val, tagObj[\":@\"], newJpath, options);\n      }else if(Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode){\n        val = val[options.textNodeName];\n      }else if(Object.keys(val).length === 0){\n        if(options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n        else val = \"\";\n      }\n\n      if(compressedObj[property] !== undefined && compressedObj.hasOwnProperty(property)) {\n        if(!Array.isArray(compressedObj[property])) {\n            compressedObj[property] = [ compressedObj[property] ];\n        }\n        compressedObj[property].push(val);\n      }else{\n        //TODO: if a node is not an array, then check if it should be an array\n        //also determine if it is a leaf node\n        if (options.isArray(property, newJpath, isLeaf )) {\n          compressedObj[property] = [val];\n        }else{\n          compressedObj[property] = val;\n        }\n      }\n    }\n    \n  }\n  // if(text && text.length > 0) compressedObj[options.textNodeName] = text;\n  if(typeof text === \"string\"){\n    if(text.length > 0) compressedObj[options.textNodeName] = text;\n  }else if(text !== undefined) compressedObj[options.textNodeName] = text;\n  return compressedObj;\n}\n\nfunction propName(obj){\n  const keys = Object.keys(obj);\n  for (let i = 0; i < keys.length; i++) {\n    const key = keys[i];\n    if(key !== \":@\") return key;\n  }\n}\n\nfunction assignAttributes(obj, attrMap, jpath, options){\n  if (attrMap) {\n    const keys = Object.keys(attrMap);\n    const len = keys.length; //don't make it inline\n    for (let i = 0; i < len; i++) {\n      const atrrName = keys[i];\n      if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n        obj[atrrName] = [ attrMap[atrrName] ];\n      } else {\n        obj[atrrName] = attrMap[atrrName];\n      }\n    }\n  }\n}\n\nfunction isLeafTag(obj, options){\n  const { textNodeName } = options;\n  const propCount = Object.keys(obj).length;\n  \n  if (propCount === 0) {\n    return true;\n  }\n\n  if (\n    propCount === 1 &&\n    (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)\n  ) {\n    return true;\n  }\n\n  return false;\n}\n","'use strict';\n\nimport {getAllMatches, isName} from './util.js';\n\nconst defaultOptions = {\n  allowBooleanAttributes: false, //A tag can have attributes without any value\n  unpairedTags: []\n};\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexport function validate(xmlData, options) {\n  options = Object.assign({}, defaultOptions, options);\n\n  //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n  //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n  //xmlData = xmlData.replace(/()/g,\"\");//Remove DOCTYPE\n  const tags = [];\n  let tagFound = false;\n\n  //indicates that the root tag has been closed (aka. depth 0 has been reached)\n  let reachedRoot = false;\n\n  if (xmlData[0] === '\\ufeff') {\n    // check for byte order mark (BOM)\n    xmlData = xmlData.substr(1);\n  }\n  \n  for (let i = 0; i < xmlData.length; i++) {\n\n    if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n      i+=2;\n      i = readPI(xmlData,i);\n      if (i.err) return i;\n    }else if (xmlData[i] === '<') {\n      //starting of tag\n      //read until you reach to '>' avoiding any '>' in attribute value\n      let tagStartPos = i;\n      i++;\n      \n      if (xmlData[i] === '!') {\n        i = readCommentAndCDATA(xmlData, i);\n        continue;\n      } else {\n        let closingTag = false;\n        if (xmlData[i] === '/') {\n          //closing tag\n          closingTag = true;\n          i++;\n        }\n        //read tagname\n        let tagName = '';\n        for (; i < xmlData.length &&\n          xmlData[i] !== '>' &&\n          xmlData[i] !== ' ' &&\n          xmlData[i] !== '\\t' &&\n          xmlData[i] !== '\\n' &&\n          xmlData[i] !== '\\r'; i++\n        ) {\n          tagName += xmlData[i];\n        }\n        tagName = tagName.trim();\n        //console.log(tagName);\n\n        if (tagName[tagName.length - 1] === '/') {\n          //self closing tag without attributes\n          tagName = tagName.substring(0, tagName.length - 1);\n          //continue;\n          i--;\n        }\n        if (!validateTagName(tagName)) {\n          let msg;\n          if (tagName.trim().length === 0) {\n            msg = \"Invalid space after '<'.\";\n          } else {\n            msg = \"Tag '\"+tagName+\"' is an invalid name.\";\n          }\n          return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n        }\n\n        const result = readAttributeStr(xmlData, i);\n        if (result === false) {\n          return getErrorObject('InvalidAttr', \"Attributes for '\"+tagName+\"' have open quote.\", getLineNumberForPosition(xmlData, i));\n        }\n        let attrStr = result.value;\n        i = result.index;\n\n        if (attrStr[attrStr.length - 1] === '/') {\n          //self closing tag\n          const attrStrStart = i - attrStr.length;\n          attrStr = attrStr.substring(0, attrStr.length - 1);\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid === true) {\n            tagFound = true;\n            //continue; //text may presents after self closing tag\n          } else {\n            //the result from the nested function returns the position of the error within the attribute\n            //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n            //this gives us the absolute index in the entire xml, which we can use to find the line at last\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n          }\n        } else if (closingTag) {\n          if (!result.tagClosed) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n          } else if (attrStr.trim().length > 0) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else if (tags.length === 0) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else {\n            const otg = tags.pop();\n            if (tagName !== otg.tagName) {\n              let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n              return getErrorObject('InvalidTag',\n                \"Expected closing tag '\"+otg.tagName+\"' (opened in line \"+openPos.line+\", col \"+openPos.col+\") instead of closing tag '\"+tagName+\"'.\",\n                getLineNumberForPosition(xmlData, tagStartPos));\n            }\n\n            //when there are no more tags, we reached the root level.\n            if (tags.length == 0) {\n              reachedRoot = true;\n            }\n          }\n        } else {\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid !== true) {\n            //the result from the nested function returns the position of the error within the attribute\n            //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n            //this gives us the absolute index in the entire xml, which we can use to find the line at last\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n          }\n\n          //if the root level has been reached before ...\n          if (reachedRoot === true) {\n            return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n          } else if(options.unpairedTags.indexOf(tagName) !== -1){\n            //don't push into stack\n          } else {\n            tags.push({tagName, tagStartPos});\n          }\n          tagFound = true;\n        }\n\n        //skip tag text value\n        //It may include comments and CDATA value\n        for (i++; i < xmlData.length; i++) {\n          if (xmlData[i] === '<') {\n            if (xmlData[i + 1] === '!') {\n              //comment or CADATA\n              i++;\n              i = readCommentAndCDATA(xmlData, i);\n              continue;\n            } else if (xmlData[i+1] === '?') {\n              i = readPI(xmlData, ++i);\n              if (i.err) return i;\n            } else{\n              break;\n            }\n          } else if (xmlData[i] === '&') {\n            const afterAmp = validateAmpersand(xmlData, i);\n            if (afterAmp == -1)\n              return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n            i = afterAmp;\n          }else{\n            if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n              return getErrorObject('InvalidXml', \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n            }\n          }\n        } //end of reading tag text value\n        if (xmlData[i] === '<') {\n          i--;\n        }\n      }\n    } else {\n      if ( isWhiteSpace(xmlData[i])) {\n        continue;\n      }\n      return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n    }\n  }\n\n  if (!tagFound) {\n    return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n  }else if (tags.length == 1) {\n      return getErrorObject('InvalidTag', \"Unclosed tag '\"+tags[0].tagName+\"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n  }else if (tags.length > 0) {\n      return getErrorObject('InvalidXml', \"Invalid '\"+\n          JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '')+\n          \"' found.\", {line: 1, col: 1});\n  }\n\n  return true;\n};\n\nfunction isWhiteSpace(char){\n  return char === ' ' || char === '\\t' || char === '\\n'  || char === '\\r';\n}\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n  const start = i;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] == '?' || xmlData[i] == ' ') {\n      //tagname\n      const tagname = xmlData.substr(start, i - start);\n      if (i > 5 && tagname === 'xml') {\n        return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n      } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n        //check if valid attribut string\n        i++;\n        break;\n      } else {\n        continue;\n      }\n    }\n  }\n  return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n  if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n    //comment\n    for (i += 3; i < xmlData.length; i++) {\n      if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n        i += 2;\n        break;\n      }\n    }\n  } else if (\n    xmlData.length > i + 8 &&\n    xmlData[i + 1] === 'D' &&\n    xmlData[i + 2] === 'O' &&\n    xmlData[i + 3] === 'C' &&\n    xmlData[i + 4] === 'T' &&\n    xmlData[i + 5] === 'Y' &&\n    xmlData[i + 6] === 'P' &&\n    xmlData[i + 7] === 'E'\n  ) {\n    let angleBracketsCount = 1;\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === '<') {\n        angleBracketsCount++;\n      } else if (xmlData[i] === '>') {\n        angleBracketsCount--;\n        if (angleBracketsCount === 0) {\n          break;\n        }\n      }\n    }\n  } else if (\n    xmlData.length > i + 9 &&\n    xmlData[i + 1] === '[' &&\n    xmlData[i + 2] === 'C' &&\n    xmlData[i + 3] === 'D' &&\n    xmlData[i + 4] === 'A' &&\n    xmlData[i + 5] === 'T' &&\n    xmlData[i + 6] === 'A' &&\n    xmlData[i + 7] === '['\n  ) {\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n        i += 2;\n        break;\n      }\n    }\n  }\n\n  return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n  let attrStr = '';\n  let startChar = '';\n  let tagClosed = false;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n      if (startChar === '') {\n        startChar = xmlData[i];\n      } else if (startChar !== xmlData[i]) {\n        //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n      } else {\n        startChar = '';\n      }\n    } else if (xmlData[i] === '>') {\n      if (startChar === '') {\n        tagClosed = true;\n        break;\n      }\n    }\n    attrStr += xmlData[i];\n  }\n  if (startChar !== '') {\n    return false;\n  }\n\n  return {\n    value: attrStr,\n    index: i,\n    tagClosed: tagClosed\n  };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab  cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n  //console.log(\"start:\"+attrStr+\":end\");\n\n  //if(attrStr.trim().length === 0) return true; //empty string\n\n  const matches = getAllMatches(attrStr, validAttrStrRegxp);\n  const attrNames = {};\n\n  for (let i = 0; i < matches.length; i++) {\n    if (matches[i][1].length === 0) {\n      //nospace before attribute name: a=\"sd\"b=\"saf\"\n      return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(matches[i]))\n    } else if (matches[i][3] !== undefined && matches[i][4] === undefined) {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' is without value.\", getPositionFromMatch(matches[i]));\n    } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n      //independent attribute: ab\n      return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(matches[i]));\n    }\n    /* else if(matches[i][6] === undefined){//attribute without value: ab=\n                    return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n                } */\n    const attrName = matches[i][2];\n    if (!validateAttrName(attrName)) {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(matches[i]));\n    }\n    if (!attrNames.hasOwnProperty(attrName)) {\n      //check for duplicate attribute.\n      attrNames[attrName] = 1;\n    } else {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(matches[i]));\n    }\n  }\n\n  return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n  let re = /\\d/;\n  if (xmlData[i] === 'x') {\n    i++;\n    re = /[\\da-fA-F]/;\n  }\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === ';')\n      return i;\n    if (!xmlData[i].match(re))\n      break;\n  }\n  return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n  // https://www.w3.org/TR/xml/#dt-charref\n  i++;\n  if (xmlData[i] === ';')\n    return -1;\n  if (xmlData[i] === '#') {\n    i++;\n    return validateNumberAmpersand(xmlData, i);\n  }\n  let count = 0;\n  for (; i < xmlData.length; i++, count++) {\n    if (xmlData[i].match(/\\w/) && count < 20)\n      continue;\n    if (xmlData[i] === ';')\n      break;\n    return -1;\n  }\n  return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n  return {\n    err: {\n      code: code,\n      msg: message,\n      line: lineNumber.line || lineNumber,\n      col: lineNumber.col,\n    },\n  };\n}\n\nfunction validateAttrName(attrName) {\n  return isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n  return isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n  const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n  return {\n    line: lines.length,\n\n    // column number is last line's length + 1, because column numbering starts at 1:\n    col: lines[lines.length - 1].length + 1\n  };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n  return match.startIndex + match[1].length;\n}\n","import { buildOptions} from './OptionsBuilder.js';\nimport OrderedObjParser from './OrderedObjParser.js';\nimport prettify from './node2json.js';\nimport {validate} from \"../validator.js\";\nimport XmlNode from './xmlNode.js';\n\nexport default class XMLParser{\n    \n    constructor(options){\n        this.externalEntities = {};\n        this.options = buildOptions(options);\n        \n    }\n    /**\n     * Parse XML dats to JS object \n     * @param {string|Uint8Array} xmlData \n     * @param {boolean|Object} validationOption \n     */\n    parse(xmlData,validationOption){\n        if(typeof xmlData !== \"string\" && xmlData.toString){\n            xmlData = xmlData.toString();\n        }else if(typeof xmlData !== \"string\"){\n            throw new Error(\"XML data is accepted in String or Bytes[] form.\")\n        }\n        \n        if( validationOption){\n            if(validationOption === true) validationOption = {}; //validate with default options\n            \n            const result = validate(xmlData, validationOption);\n            if (result !== true) {\n              throw Error( `${result.err.msg}:${result.err.line}:${result.err.col}` )\n            }\n          }\n        const orderedObjParser = new OrderedObjParser(this.options);\n        orderedObjParser.addExternalEntities(this.externalEntities);\n        const orderedResult = orderedObjParser.parseXml(xmlData);\n        if(this.options.preserveOrder || orderedResult === undefined) return orderedResult;\n        else return prettify(orderedResult, this.options);\n    }\n\n    /**\n     * Add Entity which is not by default supported by this library\n     * @param {string} key \n     * @param {string} value \n     */\n    addEntity(key, value){\n        if(value.indexOf(\"&\") !== -1){\n            throw new Error(\"Entity value can't have '&'\")\n        }else if(key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1){\n            throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '
'\")\n        }else if(value === \"&\"){\n            throw new Error(\"An entity with value '&' is not permitted\");\n        }else{\n            this.externalEntities[key] = value;\n        }\n    }\n\n    /**\n     * Returns a Symbol that can be used to access the metadata\n     * property on a node.\n     * \n     * If Symbol is not available in the environment, an ordinary property is used\n     * and the name of the property is here returned.\n     * \n     * The XMLMetaData property is only present when `captureMetaData`\n     * is true in the options.\n     */\n    static getMetaDataSymbol() {\n        return XmlNode.getMetaDataSymbol();\n    }\n}\n","import path from \"path-posix\";\nimport { XMLParser } from \"fast-xml-parser\";\nimport nestedProp from \"nested-property\";\nimport { encodePath, normalisePath } from \"./path.js\";\nvar PropertyType;\n(function (PropertyType) {\n    PropertyType[\"Array\"] = \"array\";\n    PropertyType[\"Object\"] = \"object\";\n    PropertyType[\"Original\"] = \"original\";\n})(PropertyType || (PropertyType = {}));\nfunction getParser({ attributeNamePrefix, attributeParsers, tagParsers }) {\n    return new XMLParser({\n        allowBooleanAttributes: true,\n        attributeNamePrefix,\n        textNodeName: \"text\",\n        ignoreAttributes: false,\n        removeNSPrefix: true,\n        numberParseOptions: {\n            hex: true,\n            leadingZeros: false\n        },\n        attributeValueProcessor(_, attrValue, jPath) {\n            for (const processor of attributeParsers) {\n                try {\n                    const value = processor(jPath, attrValue);\n                    if (value !== attrValue) {\n                        return value;\n                    }\n                }\n                catch (error) {\n                    // skipping this invalid parser\n                }\n            }\n            return attrValue;\n        },\n        tagValueProcessor(tagName, tagValue, jPath) {\n            for (const processor of tagParsers) {\n                try {\n                    const value = processor(jPath, tagValue);\n                    if (value !== tagValue) {\n                        return value;\n                    }\n                }\n                catch (error) {\n                    // skipping this invalid parser\n                }\n            }\n            return tagValue;\n        }\n    });\n}\n/**\n * Tag parser for the displayname prop.\n * Ensure that the displayname is not parsed and always handled as is.\n * @param path The jPath of the tag\n * @param value The text value of the tag\n */\nexport function displaynameTagParser(path, value) {\n    if (path.endsWith(\"propstat.prop.displayname\")) {\n        // Do not parse the displayname, because this causes e.g. '2024.10' to result in number 2024.1\n        return;\n    }\n    return value;\n}\nfunction getPropertyOfType(obj, prop, type = PropertyType.Original) {\n    const val = nestedProp.get(obj, prop);\n    if (type === \"array\" && Array.isArray(val) === false) {\n        return [val];\n    }\n    else if (type === \"object\" && Array.isArray(val)) {\n        return val[0];\n    }\n    return val;\n}\nfunction normaliseResponse(response) {\n    const output = Object.assign({}, response);\n    // Only either status OR propstat is allowed\n    if (output.status) {\n        nestedProp.set(output, \"status\", getPropertyOfType(output, \"status\", PropertyType.Object));\n    }\n    else {\n        nestedProp.set(output, \"propstat\", getPropertyOfType(output, \"propstat\", PropertyType.Object));\n        nestedProp.set(output, \"propstat.prop\", getPropertyOfType(output, \"propstat.prop\", PropertyType.Object));\n    }\n    return output;\n}\nfunction normaliseResult(result) {\n    const { multistatus } = result;\n    if (multistatus === \"\") {\n        return {\n            multistatus: {\n                response: []\n            }\n        };\n    }\n    if (!multistatus) {\n        throw new Error(\"Invalid response: No root multistatus found\");\n    }\n    const output = {\n        multistatus: Array.isArray(multistatus) ? multistatus[0] : multistatus\n    };\n    nestedProp.set(output, \"multistatus.response\", getPropertyOfType(output, \"multistatus.response\", PropertyType.Array));\n    nestedProp.set(output, \"multistatus.response\", nestedProp.get(output, \"multistatus.response\").map(response => normaliseResponse(response)));\n    return output;\n}\n/**\n * Parse an XML response from a WebDAV service,\n *  converting it to an internal DAV result\n * @param xml The raw XML string\n * @param context The current client context\n * @returns A parsed and processed DAV result\n */\nexport function parseXML(xml, context) {\n    // backwards compatibility as this method is exported from the package\n    context = context ?? {\n        attributeNamePrefix: \"@\",\n        attributeParsers: [],\n        tagParsers: [displaynameTagParser]\n    };\n    return new Promise(resolve => {\n        const result = getParser(context).parse(xml);\n        resolve(normaliseResult(result));\n    });\n}\n/**\n * Get a file stat result from given DAV properties\n * @param props DAV properties\n * @param filename The filename for the file stat\n * @param isDetailed Whether or not the raw props of the resource should be returned\n * @returns A file stat result\n */\nexport function prepareFileFromProps(props, filename, isDetailed = false) {\n    // Last modified time, raw size, item type and mime\n    const { getlastmodified: lastMod = null, getcontentlength: rawSize = \"0\", resourcetype: resourceType = null, getcontenttype: mimeType = null, getetag: etag = null } = props;\n    const type = resourceType &&\n        typeof resourceType === \"object\" &&\n        typeof resourceType.collection !== \"undefined\"\n        ? \"directory\"\n        : \"file\";\n    const stat = {\n        filename,\n        basename: path.basename(filename),\n        lastmod: lastMod,\n        size: parseInt(rawSize, 10),\n        type,\n        etag: typeof etag === \"string\" ? etag.replace(/\"/g, \"\") : null\n    };\n    if (type === \"file\") {\n        stat.mime = mimeType && typeof mimeType === \"string\" ? mimeType.split(\";\")[0] : \"\";\n    }\n    if (isDetailed) {\n        // The XML parser tries to interpret values, but the display name is required to be a string\n        if (typeof props.displayname !== \"undefined\") {\n            props.displayname = String(props.displayname);\n        }\n        stat.props = props;\n    }\n    return stat;\n}\n/**\n * Parse a DAV result for file stats\n * @param result The resulting DAV response\n * @param filename The filename that was stat'd\n * @param isDetailed Whether or not the raw props of\n *  the resource should be returned\n * @returns A file stat result\n */\nexport function parseStat(result, filename, isDetailed = false) {\n    let responseItem = null;\n    try {\n        // should be a propstat response, if not the if below will throw an error\n        if (result.multistatus.response[0].propstat) {\n            responseItem = result.multistatus.response[0];\n        }\n    }\n    catch (e) {\n        /* ignore */\n    }\n    if (!responseItem) {\n        throw new Error(\"Failed getting item stat: bad response\");\n    }\n    const { propstat: { prop: props, status: statusLine } } = responseItem;\n    // As defined in https://tools.ietf.org/html/rfc2068#section-6.1\n    const [_, statusCodeStr, statusText] = statusLine.split(\" \", 3);\n    const statusCode = parseInt(statusCodeStr, 10);\n    if (statusCode >= 400) {\n        const err = new Error(`Invalid response: ${statusCode} ${statusText}`);\n        err.status = statusCode;\n        throw err;\n    }\n    const filePath = normalisePath(filename);\n    return prepareFileFromProps(props, filePath, isDetailed);\n}\n/**\n * Parse a DAV result for a search request\n *\n * @param result The resulting DAV response\n * @param searchArbiter The collection path that was searched\n * @param isDetailed Whether or not the raw props of the resource should be returned\n */\nexport function parseSearch(result, searchArbiter, isDetailed) {\n    const response = {\n        truncated: false,\n        results: []\n    };\n    response.truncated = result.multistatus.response.some(v => {\n        return ((v.status || v.propstat?.status).split(\" \", 3)?.[1] === \"507\" &&\n            v.href.replace(/\\/$/, \"\").endsWith(encodePath(searchArbiter).replace(/\\/$/, \"\")));\n    });\n    result.multistatus.response.forEach(result => {\n        if (result.propstat === undefined) {\n            return;\n        }\n        const filename = result.href.split(\"/\").map(decodeURIComponent).join(\"/\");\n        response.results.push(prepareFileFromProps(result.propstat.prop, filename, isDetailed));\n    });\n    return response;\n}\n/**\n * Translate a disk quota indicator to a recognised\n *  value (includes \"unlimited\" and \"unknown\")\n * @param value The quota indicator, eg. \"-3\"\n * @returns The value in bytes, or another indicator\n */\nexport function translateDiskSpace(value) {\n    switch (String(value)) {\n        case \"-3\":\n            return \"unlimited\";\n        case \"-2\":\n        /* falls-through */\n        case \"-1\":\n            // -1 is non-computed\n            return \"unknown\";\n        default:\n            return parseInt(String(value), 10);\n    }\n}\n","import { parseStat, parseXML } from \"../tools/dav.js\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode, processResponsePayload } from \"../response.js\";\nexport async function getStat(context, filename, options = {}) {\n    const { details: isDetailed = false } = options;\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filename)),\n        method: \"PROPFIND\",\n        headers: {\n            Accept: \"text/plain,application/xml\",\n            Depth: \"0\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseData = await response.text();\n    const result = await parseXML(responseData, context.parsing);\n    const stat = parseStat(result, filename, isDetailed);\n    return processResponsePayload(response, stat, isDetailed);\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath, getAllDirectories, normalisePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nimport { getStat } from \"./stat.js\";\nexport async function createDirectory(context, dirPath, options = {}) {\n    if (options.recursive === true)\n        return createDirectoryRecursively(context, dirPath, options);\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, ensureCollectionPath(encodePath(dirPath))),\n        method: \"MKCOL\"\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n/**\n * Ensure the path is a proper \"collection\" path by ensuring it has a trailing \"/\".\n * The proper format of collection according to the specification does contain the trailing slash.\n * http://www.webdav.org/specs/rfc4918.html#rfc.section.5.2\n * @param path Path of the collection\n * @return string Path of the collection with appended trailing \"/\" in case the `path` does not have it.\n */\nfunction ensureCollectionPath(path) {\n    if (!path.endsWith(\"/\")) {\n        return path + \"/\";\n    }\n    return path;\n}\nasync function createDirectoryRecursively(context, dirPath, options = {}) {\n    const paths = getAllDirectories(normalisePath(dirPath));\n    paths.sort((a, b) => {\n        if (a.length > b.length) {\n            return 1;\n        }\n        else if (b.length > a.length) {\n            return -1;\n        }\n        return 0;\n    });\n    let creating = false;\n    for (const testPath of paths) {\n        if (creating) {\n            await createDirectory(context, testPath, {\n                ...options,\n                recursive: false\n            });\n            continue;\n        }\n        try {\n            const testStat = (await getStat(context, testPath));\n            if (testStat.type !== \"directory\") {\n                throw new Error(`Path includes a file: ${dirPath}`);\n            }\n        }\n        catch (err) {\n            const error = err;\n            if (error.status === 404) {\n                creating = true;\n                await createDirectory(context, testPath, {\n                    ...options,\n                    recursive: false\n                });\n            }\n            else {\n                throw err;\n            }\n        }\n    }\n}\n","import Stream from \"stream\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nconst NOOP = () => { };\nexport function createReadStream(context, filePath, options = {}) {\n    const PassThroughStream = Stream.PassThrough;\n    const outStream = new PassThroughStream();\n    getFileStream(context, filePath, options)\n        .then(stream => {\n        stream.pipe(outStream);\n    })\n        .catch(err => {\n        outStream.emit(\"error\", err);\n    });\n    return outStream;\n}\nexport function createWriteStream(context, filePath, options = {}, callback = NOOP) {\n    const PassThroughStream = Stream.PassThrough;\n    const writeStream = new PassThroughStream();\n    const headers = {};\n    if (options.overwrite === false) {\n        headers[\"If-None-Match\"] = \"*\";\n    }\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"PUT\",\n        headers,\n        data: writeStream,\n        maxRedirects: 0\n    }, context, options);\n    request(requestOptions, context)\n        .then(response => handleResponseCode(context, response))\n        .then(response => {\n        // Fire callback asynchronously to avoid errors\n        setTimeout(() => {\n            callback(response);\n        }, 0);\n    })\n        .catch(err => {\n        writeStream.emit(\"error\", err);\n    });\n    return writeStream;\n}\nasync function getFileStream(context, filePath, options = {}) {\n    const headers = {};\n    if (typeof options.range === \"object\" && typeof options.range.start === \"number\") {\n        let rangeHeader = `bytes=${options.range.start}-`;\n        if (typeof options.range.end === \"number\") {\n            rangeHeader = `${rangeHeader}${options.range.end}`;\n        }\n        headers.Range = rangeHeader;\n    }\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"GET\",\n        headers\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    if (headers.Range && response.status !== 206) {\n        const responseError = new Error(`Invalid response code for partial request: ${response.status}`);\n        responseError.status = response.status;\n        throw responseError;\n    }\n    if (options.callback) {\n        setTimeout(() => {\n            options.callback(response);\n        }, 0);\n    }\n    // @ts-ignore\n    return response.body;\n}\n","import { Layerr } from \"layerr\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { fromBase64 } from \"../tools/encode.js\";\nimport { isReactNative, isWeb } from \"../compat/env.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode, processResponsePayload } from \"../response.js\";\nimport { AuthType, ErrorCode } from \"../types.js\";\nconst TRANSFORM_RETAIN_FORMAT = (v) => v;\nexport async function getFileContents(context, filePath, options = {}) {\n    const { format = \"binary\" } = options;\n    if (format !== \"binary\" && format !== \"text\") {\n        throw new Layerr({\n            info: {\n                code: ErrorCode.InvalidOutputFormat\n            }\n        }, `Invalid output format: ${format}`);\n    }\n    return format === \"text\"\n        ? getFileContentsString(context, filePath, options)\n        : getFileContentsBuffer(context, filePath, options);\n}\nasync function getFileContentsBuffer(context, filePath, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"GET\"\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    let body;\n    if (isWeb() || isReactNative()) {\n        body = await response.arrayBuffer();\n    }\n    else {\n        body = Buffer.from(await response.arrayBuffer());\n    }\n    return processResponsePayload(response, body, options.details);\n}\nasync function getFileContentsString(context, filePath, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"GET\",\n        headers: {\n            Accept: \"text/plain\"\n        },\n        transformResponse: [TRANSFORM_RETAIN_FORMAT]\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const body = await response.text();\n    return processResponsePayload(response, body, options.details);\n}\nexport function getFileDownloadLink(context, filePath) {\n    let url = joinURL(context.remoteURL, encodePath(filePath));\n    const protocol = /^https:/i.test(url) ? \"https\" : \"http\";\n    switch (context.authType) {\n        case AuthType.None:\n            // Do nothing\n            break;\n        case AuthType.Password: {\n            const authPart = context.headers.Authorization.replace(/^Basic /i, \"\").trim();\n            const authContents = fromBase64(authPart);\n            url = url.replace(/^https?:\\/\\//, `${protocol}://${authContents}@`);\n            break;\n        }\n        default:\n            throw new Layerr({\n                info: {\n                    code: ErrorCode.LinkUnsupportedAuthType\n                }\n            }, `Unsupported auth type for file link: ${context.authType}`);\n    }\n    return url;\n}\n","const EOL = \"\\n\";\n\n/**\n * \n * @param {array} jArray \n * @param {any} options \n * @returns \n */\nexport default function toXml(jArray, options) {\n    let indentation = \"\";\n    if (options.format && options.indentBy.length > 0) {\n        indentation = EOL;\n    }\n    return arrToStr(jArray, options, \"\", indentation);\n}\n\nfunction arrToStr(arr, options, jPath, indentation) {\n    let xmlStr = \"\";\n    let isPreviousElementTag = false;\n\n    for (let i = 0; i < arr.length; i++) {\n        const tagObj = arr[i];\n        const tagName = propName(tagObj);\n        if(tagName === undefined) continue;\n\n        let newJPath = \"\";\n        if (jPath.length === 0) newJPath = tagName\n        else newJPath = `${jPath}.${tagName}`;\n\n        if (tagName === options.textNodeName) {\n            let tagText = tagObj[tagName];\n            if (!isStopNode(newJPath, options)) {\n                tagText = options.tagValueProcessor(tagName, tagText);\n                tagText = replaceEntitiesValue(tagText, options);\n            }\n            if (isPreviousElementTag) {\n                xmlStr += indentation;\n            }\n            xmlStr += tagText;\n            isPreviousElementTag = false;\n            continue;\n        } else if (tagName === options.cdataPropName) {\n            if (isPreviousElementTag) {\n                xmlStr += indentation;\n            }\n            xmlStr += ``;\n            isPreviousElementTag = false;\n            continue;\n        } else if (tagName === options.commentPropName) {\n            xmlStr += indentation + ``;\n            isPreviousElementTag = true;\n            continue;\n        } else if (tagName[0] === \"?\") {\n            const attStr = attr_to_str(tagObj[\":@\"], options);\n            const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n            let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n            piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\"; //remove extra spacing\n            xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr}?>`;\n            isPreviousElementTag = true;\n            continue;\n        }\n        let newIdentation = indentation;\n        if (newIdentation !== \"\") {\n            newIdentation += options.indentBy;\n        }\n        const attStr = attr_to_str(tagObj[\":@\"], options);\n        const tagStart = indentation + `<${tagName}${attStr}`;\n        const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n        if (options.unpairedTags.indexOf(tagName) !== -1) {\n            if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n            else xmlStr += tagStart + \"/>\";\n        } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n            xmlStr += tagStart + \"/>\";\n        } else if (tagValue && tagValue.endsWith(\">\")) {\n            xmlStr += tagStart + `>${tagValue}${indentation}`;\n        } else {\n            xmlStr += tagStart + \">\";\n            if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"`;\n        }\n        isPreviousElementTag = true;\n    }\n\n    return xmlStr;\n}\n\nfunction propName(obj) {\n    const keys = Object.keys(obj);\n    for (let i = 0; i < keys.length; i++) {\n        const key = keys[i];\n        if(!obj.hasOwnProperty(key)) continue;\n        if (key !== \":@\") return key;\n    }\n}\n\nfunction attr_to_str(attrMap, options) {\n    let attrStr = \"\";\n    if (attrMap && !options.ignoreAttributes) {\n        for (let attr in attrMap) {\n            if(!attrMap.hasOwnProperty(attr)) continue;\n            let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n            attrVal = replaceEntitiesValue(attrVal, options);\n            if (attrVal === true && options.suppressBooleanAttributes) {\n                attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n            } else {\n                attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n            }\n        }\n    }\n    return attrStr;\n}\n\nfunction isStopNode(jPath, options) {\n    jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n    let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n    for (let index in options.stopNodes) {\n        if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n    }\n    return false;\n}\n\nfunction replaceEntitiesValue(textValue, options) {\n    if (textValue && textValue.length > 0 && options.processEntities) {\n        for (let i = 0; i < options.entities.length; i++) {\n            const entity = options.entities[i];\n            textValue = textValue.replace(entity.regex, entity.val);\n        }\n    }\n    return textValue;\n}\n","'use strict';\n//parse Empty Node as self closing node\nimport buildFromOrderedJs from './orderedJs2Xml.js';\nimport getIgnoreAttributesFn from \"../ignoreAttributes.js\";\n\nconst defaultOptions = {\n  attributeNamePrefix: '@_',\n  attributesGroupName: false,\n  textNodeName: '#text',\n  ignoreAttributes: true,\n  cdataPropName: false,\n  format: false,\n  indentBy: '  ',\n  suppressEmptyNode: false,\n  suppressUnpairedNode: true,\n  suppressBooleanAttributes: true,\n  tagValueProcessor: function(key, a) {\n    return a;\n  },\n  attributeValueProcessor: function(attrName, a) {\n    return a;\n  },\n  preserveOrder: false,\n  commentPropName: false,\n  unpairedTags: [],\n  entities: [\n    { regex: new RegExp(\"&\", \"g\"), val: \"&\" },//it must be on top\n    { regex: new RegExp(\">\", \"g\"), val: \">\" },\n    { regex: new RegExp(\"<\", \"g\"), val: \"<\" },\n    { regex: new RegExp(\"\\'\", \"g\"), val: \"'\" },\n    { regex: new RegExp(\"\\\"\", \"g\"), val: \""\" }\n  ],\n  processEntities: true,\n  stopNodes: [],\n  // transformTagName: false,\n  // transformAttributeName: false,\n  oneListGroup: false\n};\n\nexport default function Builder(options) {\n  this.options = Object.assign({}, defaultOptions, options);\n  if (this.options.ignoreAttributes === true || this.options.attributesGroupName) {\n    this.isAttribute = function(/*a*/) {\n      return false;\n    };\n  } else {\n    this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes)\n    this.attrPrefixLen = this.options.attributeNamePrefix.length;\n    this.isAttribute = isAttribute;\n  }\n\n  this.processTextOrObjNode = processTextOrObjNode\n\n  if (this.options.format) {\n    this.indentate = indentate;\n    this.tagEndChar = '>\\n';\n    this.newLine = '\\n';\n  } else {\n    this.indentate = function() {\n      return '';\n    };\n    this.tagEndChar = '>';\n    this.newLine = '';\n  }\n}\n\nBuilder.prototype.build = function(jObj) {\n  if(this.options.preserveOrder){\n    return buildFromOrderedJs(jObj, this.options);\n  }else {\n    if(Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1){\n      jObj = {\n        [this.options.arrayNodeName] : jObj\n      }\n    }\n    return this.j2x(jObj, 0, []).val;\n  }\n};\n\nBuilder.prototype.j2x = function(jObj, level, ajPath) {\n  let attrStr = '';\n  let val = '';\n  const jPath = ajPath.join('.')\n  for (let key in jObj) {\n    if(!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n    if (typeof jObj[key] === 'undefined') {\n      // supress undefined node only if it is not an attribute\n      if (this.isAttribute(key)) {\n        val += '';\n      }\n    } else if (jObj[key] === null) {\n      // null attribute should be ignored by the attribute list, but should not cause the tag closing\n      if (this.isAttribute(key)) {\n        val += '';\n      } else if (key === this.options.cdataPropName) {\n        val += '';\n      } else if (key[0] === '?') {\n        val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n      } else {\n        val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n      }\n      // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n    } else if (jObj[key] instanceof Date) {\n      val += this.buildTextValNode(jObj[key], key, '', level);\n    } else if (typeof jObj[key] !== 'object') {\n      //premitive type\n      const attr = this.isAttribute(key);\n      if (attr && !this.ignoreAttributesFn(attr, jPath)) {\n        attrStr += this.buildAttrPairStr(attr, '' + jObj[key]);\n      } else if (!attr) {\n        //tag value\n        if (key === this.options.textNodeName) {\n          let newval = this.options.tagValueProcessor(key, '' + jObj[key]);\n          val += this.replaceEntitiesValue(newval);\n        } else {\n          val += this.buildTextValNode(jObj[key], key, '', level);\n        }\n      }\n    } else if (Array.isArray(jObj[key])) {\n      //repeated nodes\n      const arrLen = jObj[key].length;\n      let listTagVal = \"\";\n      let listTagAttr = \"\";\n      for (let j = 0; j < arrLen; j++) {\n        const item = jObj[key][j];\n        if (typeof item === 'undefined') {\n          // supress undefined node\n        } else if (item === null) {\n          if(key[0] === \"?\") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n          else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n          // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n        } else if (typeof item === 'object') {\n          if(this.options.oneListGroup){\n            const result = this.j2x(item, level + 1, ajPath.concat(key));\n            listTagVal += result.val;\n            if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n              listTagAttr += result.attrStr\n            }\n          }else{\n            listTagVal += this.processTextOrObjNode(item, key, level, ajPath)\n          }\n        } else {\n          if (this.options.oneListGroup) {\n            let textValue = this.options.tagValueProcessor(key, item);\n            textValue = this.replaceEntitiesValue(textValue);\n            listTagVal += textValue;\n          } else {\n            listTagVal += this.buildTextValNode(item, key, '', level);\n          }\n        }\n      }\n      if(this.options.oneListGroup){\n        listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);\n      }\n      val += listTagVal;\n    } else {\n      //nested node\n      if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n        const Ks = Object.keys(jObj[key]);\n        const L = Ks.length;\n        for (let j = 0; j < L; j++) {\n          attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]);\n        }\n      } else {\n        val += this.processTextOrObjNode(jObj[key], key, level, ajPath)\n      }\n    }\n  }\n  return {attrStr: attrStr, val: val};\n};\n\nBuilder.prototype.buildAttrPairStr = function(attrName, val){\n  val = this.options.attributeValueProcessor(attrName, '' + val);\n  val = this.replaceEntitiesValue(val);\n  if (this.options.suppressBooleanAttributes && val === \"true\") {\n    return ' ' + attrName;\n  } else return ' ' + attrName + '=\"' + val + '\"';\n}\n\nfunction processTextOrObjNode (object, key, level, ajPath) {\n  const result = this.j2x(object, level + 1, ajPath.concat(key));\n  if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n    return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n  } else {\n    return this.buildObjectNode(result.val, key, result.attrStr, level);\n  }\n}\n\nBuilder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n  if(val === \"\"){\n    if(key[0] === \"?\") return  this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n    else {\n      return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    }\n  }else{\n\n    let tagEndExp = '' + val + tagEndExp );\n    } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n      return this.indentate(level) + `` + this.newLine;\n    }else {\n      return (\n        this.indentate(level) + '<' + key + attrStr + piClosingChar + this.tagEndChar +\n        val +\n        this.indentate(level) + tagEndExp    );\n    }\n  }\n}\n\nBuilder.prototype.closeTag = function(key){\n  let closeTag = \"\";\n  if(this.options.unpairedTags.indexOf(key) !== -1){ //unpaired\n    if(!this.options.suppressUnpairedNode) closeTag = \"/\"\n  }else if(this.options.suppressEmptyNode){ //empty\n    closeTag = \"/\";\n  }else{\n    closeTag = `>` +  this.newLine;\n  }else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n    return this.indentate(level) + `` +  this.newLine;\n  }else if(key[0] === \"?\") {//PI tag\n    return  this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar; \n  }else{\n    let textValue = this.options.tagValueProcessor(key, val);\n    textValue = this.replaceEntitiesValue(textValue);\n  \n    if( textValue === ''){\n      return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    }else{\n      return this.indentate(level) + '<' + key + attrStr + '>' +\n         textValue +\n        ' 0 && this.options.processEntities){\n    for (let i=0; i item.trim());\n    const server = response.headers.get(\"Server\") ?? \"\";\n    return {\n        compliance,\n        server\n    };\n}\n","import { extractURLPath } from \"./tools/url.js\";\nimport { setupAuth } from \"./auth/index.js\";\nimport { copyFile } from \"./operations/copyFile.js\";\nimport { createDirectory } from \"./operations/createDirectory.js\";\nimport { createReadStream, createWriteStream } from \"./operations/createStream.js\";\nimport { customRequest } from \"./operations/customRequest.js\";\nimport { deleteFile } from \"./operations/deleteFile.js\";\nimport { exists } from \"./operations/exists.js\";\nimport { getDirectoryContents } from \"./operations/directoryContents.js\";\nimport { getFileContents, getFileDownloadLink } from \"./operations/getFileContents.js\";\nimport { lock, unlock } from \"./operations/lock.js\";\nimport { getQuota } from \"./operations/getQuota.js\";\nimport { getStat } from \"./operations/stat.js\";\nimport { getSearch } from \"./operations/search.js\";\nimport { moveFile } from \"./operations/moveFile.js\";\nimport { getFileUploadLink, putFileContents } from \"./operations/putFileContents.js\";\nimport { partialUpdateFileContents } from \"./operations/partialUpdateFileContents.js\";\nimport { getDAVCompliance } from \"./operations/getDAVCompliance.js\";\nimport { displaynameTagParser } from \"./tools/dav.js\";\nimport { AuthType } from \"./types.js\";\nconst DEFAULT_CONTACT_HREF = \"https://github.com/perry-mitchell/webdav-client/blob/master/LOCK_CONTACT.md\";\nexport function createClient(remoteURL, options = {}) {\n    const { authType: authTypeRaw = null, remoteBasePath, contactHref = DEFAULT_CONTACT_HREF, ha1, headers = {}, httpAgent, httpsAgent, password, token, username, withCredentials } = options;\n    let authType = authTypeRaw;\n    if (!authType) {\n        authType = username || password ? AuthType.Password : AuthType.None;\n    }\n    const context = {\n        authType,\n        remoteBasePath,\n        contactHref,\n        ha1,\n        headers: Object.assign({}, headers),\n        httpAgent,\n        httpsAgent,\n        password,\n        parsing: {\n            attributeNamePrefix: options.attributeNamePrefix ?? \"@\",\n            attributeParsers: [],\n            tagParsers: [displaynameTagParser]\n        },\n        remotePath: extractURLPath(remoteURL),\n        remoteURL,\n        token,\n        username,\n        withCredentials\n    };\n    setupAuth(context, username, password, token, ha1);\n    return {\n        copyFile: (filename, destination, options) => copyFile(context, filename, destination, options),\n        createDirectory: (path, options) => createDirectory(context, path, options),\n        createReadStream: (filename, options) => createReadStream(context, filename, options),\n        createWriteStream: (filename, options, callback) => createWriteStream(context, filename, options, callback),\n        customRequest: (path, requestOptions) => customRequest(context, path, requestOptions),\n        deleteFile: (filename, options) => deleteFile(context, filename, options),\n        exists: (path, options) => exists(context, path, options),\n        getDirectoryContents: (path, options\n        // @ts-ignore\n        ) => getDirectoryContents(context, path, options),\n        getFileContents: (filename, options) => getFileContents(context, filename, options),\n        getFileDownloadLink: (filename) => getFileDownloadLink(context, filename),\n        getFileUploadLink: (filename) => getFileUploadLink(context, filename),\n        getHeaders: () => Object.assign({}, context.headers),\n        getQuota: (options) => getQuota(context, options),\n        lock: (path, options) => lock(context, path, options),\n        moveFile: (filename, destinationFilename, options) => moveFile(context, filename, destinationFilename, options),\n        putFileContents: (filename, data, options) => putFileContents(context, filename, data, options),\n        partialUpdateFileContents: (filePath, start, end, data, options) => partialUpdateFileContents(context, filePath, start, end, data, options),\n        getDAVCompliance: (path) => getDAVCompliance(context, path),\n        search: (path, options) => getSearch(context, path, options),\n        setHeaders: (headers) => {\n            context.headers = Object.assign({}, headers);\n        },\n        stat: (path, options) => getStat(context, path, options),\n        unlock: (path, token, options) => unlock(context, path, token, options),\n        registerAttributeParser: (parser) => {\n            context.parsing.attributeParsers.push(parser);\n        },\n        registerTagParser: (parser) => {\n            context.parsing.tagParsers.push(parser);\n        }\n    };\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateRemoteUrl } from '@nextcloud/router'\n\n/**\n *\n */\nfunction getRootPath() {\n\treturn generateRemoteUrl('dav/comments')\n}\n\nexport { getRootPath }\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\nimport { createClient } from 'webdav'\nimport { getRootPath } from '../utils/davUtils.js'\n\n// init webdav client\nconst client = createClient(getRootPath())\n\n// set CSRF token header\n/**\n * @param token\n */\nfunction setHeaders(token) {\n\tclient.setHeaders({\n\t\t// Add this so the server knows it is an request from the browser\n\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t// Inject user auth\n\t\trequesttoken: token ?? '',\n\t})\n}\n\n// refresh headers when request token changes\nonRequestTokenUpdate(setHeaders)\nsetHeaders(getRequestToken())\n\nexport default client\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function copyFile(context, filename, destination, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filename)),\n        method: \"COPY\",\n        headers: {\n            Destination: joinURL(context.remoteURL, encodePath(destination)),\n            /**\n             * From RFC4918 section 10.6: If the overwrite header is not included in a COPY or MOVE request,\n             * then the resource MUST treat the request as if it has an overwrite header of value \"T\".\n             *\n             * Meaning the overwrite header is always set to \"T\" EXCEPT the option is explicitly set to false.\n             */\n            Overwrite: options.overwrite === false ? \"F\" : \"T\",\n            /**\n             * From RFC4918 section 9.8.3: A client may submit a Depth header on a COPY on a collection with a value of \"0\"\n             * or \"infinity\". The COPY method on a collection without a Depth header MUST act as if\n             * a Depth header with value \"infinity\" was included.\n             */\n            Depth: options.shallow ? \"0\" : \"infinity\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function customRequest(context, remotePath, requestOptions) {\n    if (!requestOptions.url) {\n        requestOptions.url = joinURL(context.remoteURL, encodePath(remotePath));\n    }\n    const finalOptions = prepareRequestOptions(requestOptions, context, {});\n    const response = await request(finalOptions, context);\n    handleResponseCode(context, response);\n    return response;\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function deleteFile(context, filename, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filename)),\n        method: \"DELETE\"\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n","import { getStat } from \"./stat.js\";\nexport async function exists(context, remotePath, options = {}) {\n    try {\n        await getStat(context, remotePath, options);\n        return true;\n    }\n    catch (err) {\n        if (err.status === 404) {\n            return false;\n        }\n        throw err;\n    }\n}\n","import pathPosix from \"path-posix\";\nimport { joinURL, normaliseHREF } from \"../tools/url.js\";\nimport { encodePath, makePathAbsolute, normalisePath } from \"../tools/path.js\";\nimport { parseXML, prepareFileFromProps } from \"../tools/dav.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode, processGlobFilter, processResponsePayload } from \"../response.js\";\nexport async function getDirectoryContents(context, remotePath, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(remotePath), \"/\"),\n        method: \"PROPFIND\",\n        headers: {\n            Accept: \"text/plain,application/xml\",\n            Depth: options.deep ? \"infinity\" : \"1\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseData = await response.text();\n    if (!responseData) {\n        throw new Error(\"Failed parsing directory contents: Empty response\");\n    }\n    const davResp = await parseXML(responseData, context.parsing);\n    const _remotePath = makePathAbsolute(remotePath);\n    const remoteBasePath = makePathAbsolute(context.remoteBasePath || context.remotePath);\n    let files = getDirectoryFiles(davResp, remoteBasePath, _remotePath, options.details, options.includeSelf);\n    if (options.glob) {\n        files = processGlobFilter(files, options.glob);\n    }\n    return processResponsePayload(response, files, options.details);\n}\nfunction getDirectoryFiles(result, serverremoteBasePath, requestPath, isDetailed = false, includeSelf = false) {\n    const serverBase = pathPosix.join(serverremoteBasePath, \"/\");\n    // Extract the response items (directory contents)\n    const { multistatus: { response: responseItems } } = result;\n    // Map all items to a consistent output structure (results)\n    const nodes = responseItems.map(item => {\n        // HREF is the file path (in full) - The href is already XML entities decoded (e.g. foo&bar is reverted to foo&bar)\n        const href = normaliseHREF(item.href);\n        // Each item should contain a stat object\n        const { propstat: { prop: props } } = item;\n        // Process the true full filename (minus the base server path)\n        const filename = serverBase === \"/\"\n            ? decodeURIComponent(normalisePath(href))\n            : normalisePath(pathPosix.relative(decodeURIComponent(serverBase), decodeURIComponent(href)));\n        return prepareFileFromProps(props, filename, isDetailed);\n    });\n    // If specified, also return the current directory\n    if (includeSelf) {\n        return nodes;\n    }\n    // Else, filter out the item pointing to the current directory (not needed)\n    return nodes.filter(item => item.basename &&\n        (item.type === \"file\" || item.filename !== requestPath.replace(/\\/$/, \"\")));\n}\n","import { Layerr } from \"layerr\";\nimport Stream from \"stream\";\nimport { fromBase64 } from \"../tools/encode.js\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { calculateDataLength } from \"../tools/size.js\";\nimport { isReactNative, isWeb } from \"../compat/env.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nimport { AuthType, ErrorCode } from \"../types.js\";\nexport async function putFileContents(context, filePath, data, options = {}) {\n    const { contentLength = true, overwrite = true } = options;\n    const headers = {\n        \"Content-Type\": \"application/octet-stream\"\n    };\n    if (!isWeb() &&\n        !isReactNative() &&\n        typeof Stream !== \"undefined\" &&\n        typeof Stream?.Readable !== \"undefined\" &&\n        data instanceof Stream.Readable) {\n        // Skip, no content-length\n    }\n    else if (contentLength === false) {\n        // Skip, disabled\n    }\n    else if (typeof contentLength === \"number\") {\n        headers[\"Content-Length\"] = `${contentLength}`;\n    }\n    else {\n        headers[\"Content-Length\"] = `${calculateDataLength(data)}`;\n    }\n    if (!overwrite) {\n        headers[\"If-None-Match\"] = \"*\";\n    }\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"PUT\",\n        headers,\n        data\n    }, context, options);\n    const response = await request(requestOptions, context);\n    try {\n        handleResponseCode(context, response);\n    }\n    catch (err) {\n        const error = err;\n        if (error.status === 412 && !overwrite) {\n            return false;\n        }\n        else {\n            throw error;\n        }\n    }\n    return true;\n}\nexport function getFileUploadLink(context, filePath) {\n    let url = `${joinURL(context.remoteURL, encodePath(filePath))}?Content-Type=application/octet-stream`;\n    const protocol = /^https:/i.test(url) ? \"https\" : \"http\";\n    switch (context.authType) {\n        case AuthType.None:\n            // Do nothing\n            break;\n        case AuthType.Password: {\n            const authPart = context.headers.Authorization.replace(/^Basic /i, \"\").trim();\n            const authContents = fromBase64(authPart);\n            url = url.replace(/^https?:\\/\\//, `${protocol}://${authContents}@`);\n            break;\n        }\n        default:\n            throw new Layerr({\n                info: {\n                    code: ErrorCode.LinkUnsupportedAuthType\n                }\n            }, `Unsupported auth type for file link: ${context.authType}`);\n    }\n    return url;\n}\n","import { prepareRequestOptions, request } from \"../request.js\";\nimport { handleResponseCode, processResponsePayload } from \"../response.js\";\nimport { parseXML } from \"../tools/dav.js\";\nimport { joinURL } from \"../tools/url.js\";\nimport { parseQuota } from \"../tools/quota.js\";\nexport async function getQuota(context, options = {}) {\n    const path = options.path || \"/\";\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, path),\n        method: \"PROPFIND\",\n        headers: {\n            Accept: \"text/plain,application/xml\",\n            Depth: \"0\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseData = await response.text();\n    const result = await parseXML(responseData, context.parsing);\n    const quota = parseQuota(result);\n    return processResponsePayload(response, quota, options.details);\n}\n","import { translateDiskSpace } from \"./dav.js\";\nexport function parseQuota(result) {\n    try {\n        const [responseItem] = result.multistatus.response;\n        const { propstat: { prop: { \"quota-used-bytes\": quotaUsed, \"quota-available-bytes\": quotaAvail } } } = responseItem;\n        return typeof quotaUsed !== \"undefined\" && typeof quotaAvail !== \"undefined\"\n            ? {\n                // As it could be both a string or a number ensure we are working with a number\n                used: parseInt(String(quotaUsed), 10),\n                available: translateDiskSpace(quotaAvail)\n            }\n            : null;\n    }\n    catch (err) {\n        /* ignore */\n    }\n    return null;\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function moveFile(context, filename, destination, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filename)),\n        method: \"MOVE\",\n        headers: {\n            Destination: joinURL(context.remoteURL, encodePath(destination)),\n            /**\n             * From RFC4918 section 10.6: If the overwrite header is not included in a COPY or MOVE request,\n             * then the resource MUST treat the request as if it has an overwrite header of value \"T\".\n             *\n             * Meaning the overwrite header is always set to \"T\" EXCEPT the option is explicitly set to false.\n             */\n            Overwrite: options.overwrite === false ? \"F\" : \"T\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n","import { Layerr } from \"layerr\";\nimport { byteLength } from \"byte-length\";\nimport { isArrayBuffer } from \"../compat/arrayBuffer.js\";\nimport { isBuffer } from \"../compat/buffer.js\";\nimport { ErrorCode } from \"../types.js\";\nexport function calculateDataLength(data) {\n    if (isArrayBuffer(data)) {\n        return data.byteLength;\n    }\n    else if (isBuffer(data)) {\n        return data.length;\n    }\n    else if (typeof data === \"string\") {\n        return byteLength(data);\n    }\n    throw new Layerr({\n        info: {\n            code: ErrorCode.DataTypeNoLength\n        }\n    }, \"Cannot calculate data length: Invalid type\");\n}\n","import { Layerr } from \"layerr\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nimport { getDAVCompliance } from \"./getDAVCompliance.js\";\nimport { ErrorCode } from \"../types.js\";\nexport async function partialUpdateFileContents(context, filePath, start, end, data, options = {}) {\n    const compliance = await getDAVCompliance(context, filePath, options);\n    if (compliance.compliance.includes(\"sabredav-partialupdate\")) {\n        return await partialUpdateFileContentsSabredav(context, filePath, start, end, data, options);\n    }\n    if (compliance.server.includes(\"Apache\") &&\n        compliance.compliance.includes(\"\")) {\n        return await partialUpdateFileContentsApache(context, filePath, start, end, data, options);\n    }\n    throw new Layerr({\n        info: {\n            code: ErrorCode.NotSupported\n        }\n    }, \"Not supported\");\n}\nasync function partialUpdateFileContentsSabredav(context, filePath, start, end, data, options = {}) {\n    if (start > end || start < 0) {\n        // Actually, SabreDAV support negative start value,\n        // Do not support here for compatibility with Apache-style way\n        throw new Layerr({\n            info: {\n                code: ErrorCode.InvalidUpdateRange\n            }\n        }, `Invalid update range ${start} for partial update`);\n    }\n    const headers = {\n        \"Content-Type\": \"application/x-sabredav-partialupdate\",\n        \"Content-Length\": `${end - start + 1}`,\n        \"X-Update-Range\": `bytes=${start}-${end}`\n    };\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"PATCH\",\n        headers,\n        data\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\nasync function partialUpdateFileContentsApache(context, filePath, start, end, data, options = {}) {\n    if (start > end || start < 0) {\n        throw new Layerr({\n            info: {\n                code: ErrorCode.InvalidUpdateRange\n            }\n        }, `Invalid update range ${start} for partial update`);\n    }\n    const headers = {\n        \"Content-Type\": \"application/octet-stream\",\n        \"Content-Length\": `${end - start + 1}`,\n        \"Content-Range\": `bytes ${start}-${end}/*`\n    };\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"PUT\",\n        headers,\n        data\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n","import { parseSearch, parseXML } from \"../tools/dav.js\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode, processResponsePayload } from \"../response.js\";\nexport async function getSearch(context, searchArbiter, options = {}) {\n    const { details: isDetailed = false } = options;\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(searchArbiter)),\n        method: \"SEARCH\",\n        headers: {\n            Accept: \"text/plain,application/xml\",\n            // Ensure a Content-Type header is set was this is required by e.g. sabre/dav\n            \"Content-Type\": context.headers[\"Content-Type\"] || \"application/xml; charset=utf-8\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseText = await response.text();\n    const responseData = await parseXML(responseText, context.parsing);\n    const results = parseSearch(responseData, searchArbiter, isDetailed);\n    return processResponsePayload(response, results, isDetailed);\n}\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * @param {any} value -\n * @param {any} passes -\n */\nexport function decodeHtmlEntities(value, passes = 1) {\n\tconst parser = new DOMParser()\n\tlet decoded = value\n\tfor (let i = 0; i < passes; i++) {\n\t\tdecoded = parser.parseFromString(decoded, 'text/html').documentElement.textContent\n\t}\n\treturn decoded\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { defineStore } from 'pinia'\n\nexport const useDeletedCommentLimbo = defineStore('deletedCommentLimbo', {\n\tstate: () => ({\n\t\tidsInLimbo: [],\n\t}),\n\tactions: {\n\t\taddId(id) {\n\t\t\tthis.idsInLimbo.push(id)\n\t\t},\n\n\t\tremoveId(id) {\n\t\t\tconst index = this.idsInLimbo.indexOf(id)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.idsInLimbo.splice(index, 1)\n\t\t\t}\n\t\t},\n\n\t\tcheckForId(id) {\n\t\t\treturn this.idsInLimbo.includes(id)\n\t\t},\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError, showUndo, TOAST_UNDO_TIMEOUT } from '@nextcloud/dialogs'\nimport { mapStores } from 'pinia'\nimport logger from '../logger.js'\nimport DeleteComment from '../services/DeleteComment.js'\nimport EditComment from '../services/EditComment.js'\nimport NewComment from '../services/NewComment.js'\nimport { useDeletedCommentLimbo } from '../store/deletedCommentLimbo.js'\n\nexport default {\n\tprops: {\n\t\tid: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t\tmessage: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tresourceId: {\n\t\t\ttype: [String, Number],\n\t\t\trequired: true,\n\t\t},\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: 'files',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdeleted: false,\n\t\t\tediting: false,\n\t\t\tloading: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t...mapStores(useDeletedCommentLimbo),\n\t},\n\n\tmethods: {\n\t\t// EDITION\n\t\tonEdit() {\n\t\t\tthis.editing = true\n\t\t},\n\t\tonEditCancel() {\n\t\t\tthis.editing = false\n\t\t\t// Restore original value\n\t\t\tthis.updateLocalMessage(this.message)\n\t\t},\n\t\tasync onEditComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tawait EditComment(this.resourceType, this.resourceId, this.id, message)\n\t\t\t\tlogger.debug('Comment edited', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id, message })\n\t\t\t\tthis.$emit('update:message', message)\n\t\t\t\tthis.editing = false\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to edit the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to edit the comment', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t// DELETION\n\t\tonDeleteWithUndo() {\n\t\t\tthis.$emit('delete')\n\t\t\tthis.deleted = true\n\t\t\tthis.deletedCommentLimboStore.addId(this.id)\n\t\t\tconst timeOutDelete = setTimeout(this.onDelete, TOAST_UNDO_TIMEOUT)\n\t\t\tshowUndo(t('comments', 'Comment deleted'), () => {\n\t\t\t\tclearTimeout(timeOutDelete)\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t})\n\t\t},\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tawait DeleteComment(this.resourceType, this.resourceId, this.id)\n\t\t\t\tlogger.debug('Comment deleted', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id })\n\t\t\t\tthis.$emit('delete', this.id)\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to delete the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to delete the comment', { error })\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t}\n\t\t},\n\n\t\t// CREATION\n\t\tasync onNewComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst newComment = await NewComment(this.resourceType, this.resourceId, message)\n\t\t\t\tlogger.debug('New comment posted', { resourceType: this.resourceType, resourceId: this.resourceId, newComment })\n\t\t\t\tthis.$emit('new', newComment)\n\n\t\t\t\t// Clear old content\n\t\t\t\tthis.$emit('update:message', '')\n\t\t\t\tthis.localMessage = ''\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to create the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to create the comment', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js'\n\n/**\n * Edit an existing comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n * @param {string} message the message content\n */\nexport default async function(resourceType, resourceId, commentId, message) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\treturn await client.customRequest(commentPath, {\n\t\tmethod: 'PROPPATCH',\n\t\tdata: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${message}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js'\n\n/**\n * Delete a comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n */\nexport default async function(resourceType, resourceId, commentId) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\t// Fetch newly created comment data\n\tawait client.deleteFile(commentPath)\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getRootPath } from '../utils/davUtils.js'\nimport { decodeHtmlEntities } from '../utils/decodeHtmlEntities.js'\nimport client from './DavClient.js'\n\n/**\n * Retrieve the comments list\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {string} message the message\n * @return {object} the new comment\n */\nexport default async function(resourceType, resourceId, message) {\n\tconst resourcePath = ['', resourceType, resourceId].join('/')\n\n\tconst response = await axios.post(getRootPath() + resourcePath, {\n\t\tactorDisplayName: getCurrentUser().displayName,\n\t\tactorId: getCurrentUser().uid,\n\t\tactorType: 'users',\n\t\tcreationDateTime: (new Date()).toUTCString(),\n\t\tmessage,\n\t\tobjectType: resourceType,\n\t\tverb: 'comment',\n\t})\n\n\t// Retrieve comment id from resource location\n\tconst commentId = parseInt(response.headers['content-location'].split('/').pop())\n\tconst commentPath = resourcePath + '/' + commentId\n\n\t// Fetch newly created comment data\n\tconst comment = await client.stat(commentPath, {\n\t\tdetails: true,\n\t})\n\n\tconst props = comment.data.props\n\t// Decode twice to handle potentially double-encoded entities\n\t// FIXME Remove this once https://github.com/nextcloud/server/issues/29306\n\t// is resolved\n\tprops.actorDisplayName = decodeHtmlEntities(props.actorDisplayName, 2)\n\tprops.message = decodeHtmlEntities(props.message, 2)\n\n\treturn comment.data\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","\n      import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=style&index=0&id=70317f94&prod&lang=scss&scoped=true\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=style&index=0&id=70317f94&prod&lang=scss&scoped=true\";\n       export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Comment.vue?vue&type=template&id=70317f94&scoped=true\"\nimport script from \"./Comment.vue?vue&type=script&lang=js\"\nexport * from \"./Comment.vue?vue&type=script&lang=js\"\nimport style0 from \"./Comment.vue?vue&type=style&index=0&id=70317f94&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"70317f94\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.tag,{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.deleted && !_vm.isLimbo),expression:\"!deleted && !isLimbo\"}],tag:\"component\",staticClass:\"comment\",class:{ 'comment--loading': _vm.loading }},[_c('div',{staticClass:\"comment__side\"},[_c('NcAvatar',{staticClass:\"comment__avatar\",attrs:{\"display-name\":_vm.actorDisplayName,\"user\":_vm.actorId,\"size\":32}})],1),_vm._v(\" \"),_c('div',{staticClass:\"comment__body\"},[_c('div',{staticClass:\"comment__header\"},[_c('span',{staticClass:\"comment__author\"},[_vm._v(_vm._s(_vm.actorDisplayName))]),_vm._v(\" \"),(_vm.isOwnComment && _vm.id && !_vm.loading)?_c('NcActions',{staticClass:\"comment__actions\"},[(!_vm.editing)?[_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.onEdit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconPencilOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,3345211262)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Edit comment'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.onDeleteWithUndo},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconTrashCanOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,1034796883)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Delete comment'))+\"\\n\\t\\t\\t\\t\\t\")])]:_c('NcActionButton',{on:{\"click\":_vm.onEditCancel},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconClose',{attrs:{\"size\":20}})]},proxy:true}],null,false,2888946197)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Cancel edit'))+\"\\n\\t\\t\\t\\t\")])],2):_vm._e(),_vm._v(\" \"),(_vm.id && _vm.loading)?_c('div',{staticClass:\"comment_loading icon-loading-small\"}):(_vm.creationDateTime)?_c('NcDateTime',{staticClass:\"comment__timestamp\",attrs:{\"timestamp\":_vm.timestamp,\"ignore-seconds\":true}}):_vm._e()],1),_vm._v(\" \"),(_vm.editor || _vm.editing)?_c('form',{staticClass:\"comment__editor\",on:{\"submit\":function($event){$event.preventDefault();}}},[_c('div',{staticClass:\"comment__editor-group\"},[_c('NcRichContenteditable',{ref:\"editor\",attrs:{\"auto-complete\":_vm.autoComplete,\"contenteditable\":!_vm.loading,\"label\":_vm.editor ? _vm.t('comments', 'New comment') : _vm.t('comments', 'Edit comment'),\"placeholder\":_vm.t('comments', 'Write a comment …'),\"model-value\":_vm.localMessage,\"user-data\":_vm.userData,\"aria-describedby\":\"tab-comments__editor-description\"},on:{\"update:value\":_vm.updateLocalMessage,\"submit\":_vm.onSubmit}}),_vm._v(\" \"),_c('div',{staticClass:\"comment__submit\"},[_c('NcButton',{attrs:{\"variant\":\"tertiary-no-background\",\"type\":\"submit\",\"aria-label\":_vm.t('comments', 'Post comment'),\"disabled\":_vm.isEmptyMessage},on:{\"click\":_vm.onSubmit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('NcLoadingIcon'):_c('IconArrowRight',{attrs:{\"size\":20}})]},proxy:true}],null,false,758946661)})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"comment__editor-description\",attrs:{\"id\":\"tab-comments__editor-description\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', '@ for mentions, : for emoji, / for smart picker'))+\"\\n\\t\\t\\t\")])]):_c('NcRichText',{staticClass:\"comment__message\",class:{ 'comment__message--expanded': _vm.expanded },attrs:{\"text\":_vm.richContent.message,\"arguments\":_vm.richContent.mentions,\"use-markdown\":\"\"},nativeOn:{\"click\":function($event){return _vm.onExpand.apply(null, arguments)}}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { defineComponent } from 'vue';\nexport default defineComponent({\n    props: {\n        resourceId: {\n            type: Number,\n            required: true,\n        },\n        resourceType: {\n            type: String,\n            default: 'files',\n        },\n    },\n    data() {\n        return {\n            editorData: {\n                actorDisplayName: getCurrentUser().displayName,\n                actorId: getCurrentUser().uid,\n                key: 'editor',\n            },\n            userData: {},\n            currentResourceId: this.resourceId,\n        };\n    },\n    methods: {\n        /**\n         * Autocomplete `@mentions`\n         *\n         * @param search the query\n         * @param callback the callback to process the results with\n         */\n        async autoComplete(search, callback) {\n            const { data } = await axios.get(generateOcsUrl('core/autocomplete/get'), {\n                params: {\n                    search,\n                    itemType: this.resourceType,\n                    itemId: this.currentResourceId,\n                    sorter: 'commenters|share-recipients',\n                    limit: loadState('comments', 'maxAutoCompleteResults'),\n                },\n            });\n            // Save user data so it can be used by the editor to replace mentions\n            data.ocs.data.forEach((user) => {\n                this.userData[user.id] = user;\n            });\n            return callback(Object.values(this.userData));\n        },\n        /**\n         * Make sure we have all mentions as Array of objects\n         *\n         * @param mentions the mentions list\n         */\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        genMentionsData(mentions) {\n            Object.values(mentions)\n                .flat()\n                .forEach((mention) => {\n                this.userData[mention.mentionId] = {\n                    // TODO: support groups\n                    icon: 'icon-user',\n                    id: mention.mentionId,\n                    label: mention.mentionDisplayName,\n                    source: 'users',\n                    primary: getCurrentUser()?.uid === mention.mentionId,\n                };\n            });\n            return this.userData;\n        },\n    },\n});\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { parseXML } from 'webdav';\nimport { processResponsePayload } from 'webdav/dist/node/response.js';\nimport { prepareFileFromProps } from 'webdav/dist/node/tools/dav.js';\nimport client from './DavClient.js';\nexport const DEFAULT_LIMIT = 20;\n/**\n * Retrieve the comments list\n *\n * @param data destructuring object\n * @param data.resourceType the resource type\n * @param data.resourceId the resource ID\n * @param [options] optional options for axios\n * @param [options.offset] the pagination offset\n * @param [options.limit] the pagination limit, defaults to 20\n * @param [options.datetime] optional date to query\n * @return the comments list\n */\nexport async function getComments({ resourceType, resourceId }, options) {\n    const resourcePath = ['', resourceType, resourceId].join('/');\n    const datetime = options.datetime ? `${options.datetime.toISOString()}` : '';\n    const response = await client.customRequest(resourcePath, {\n        method: 'REPORT',\n        data: `\n\t\t\t\n\t\t\t\t${options.limit ?? DEFAULT_LIMIT}\n\t\t\t\t${options.offset || 0}\n\t\t\t\t${datetime}\n\t\t\t`,\n        ...options,\n    });\n    const responseData = await response.text();\n    const result = await parseXML(responseData);\n    const stat = getDirectoryFiles(result, true);\n    // https://github.com/perry-mitchell/webdav-client/issues/339\n    return processResponsePayload(response, stat, true);\n}\n/**\n * https://github.com/perry-mitchell/webdav-client/blob/8d9694613c978ce7404e26a401c39a41f125f87f/source/operations/directoryContents.ts\n *\n * @param result\n * @param isDetailed\n */\nfunction getDirectoryFiles(result, isDetailed = false) {\n    // Extract the response items (directory contents)\n    const { multistatus: { response: responseItems }, } = result;\n    // Map all items to a consistent output structure (results)\n    return responseItems.map((item) => {\n        // Each item should contain a stat object\n        const props = item.propstat.prop;\n        return prepareFileFromProps(props, props.id.toString(), isDetailed);\n    });\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Creates a cancelable axios 'request object'.\n *\n * @param {Function} request the axios promise request\n * @return {object}\n */\nfunction cancelableRequest(request) {\n\tconst controller = new AbortController()\n\tconst signal = controller.signal\n\n\t/**\n\t * Execute the request\n\t *\n\t * @param {string} url the url to send the request to\n\t * @param {object} [options] optional config for the request\n\t */\n\tconst fetch = async function(url, options) {\n\t\tconst response = await request(\n\t\t\turl,\n\t\t\t{ signal, ...options },\n\t\t)\n\t\treturn response\n\t}\n\n\treturn {\n\t\trequest: fetch,\n\t\tabort: () => controller.abort(),\n\t}\n}\n\nexport default cancelableRequest\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport client from './DavClient.js';\n/**\n * Mark comments older than the date timestamp as read\n *\n * @param resourceType the resource type\n * @param resourceId the resource ID\n * @param date the date object\n */\nexport function markCommentsAsRead(resourceType, resourceId, date) {\n    const resourcePath = ['', resourceType, resourceId].join('/');\n    const readMarker = date.toUTCString();\n    return client.customRequest(resourcePath, {\n        method: 'PROPPATCH',\n        data: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${readMarker}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n    });\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.vue?vue&type=script&lang=js\"","\n      import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.vue?vue&type=style&index=0&id=6c8c157a&prod&lang=scss&scoped=true\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.vue?vue&type=style&index=0&id=6c8c157a&prod&lang=scss&scoped=true\";\n       export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Comments.vue?vue&type=template&id=6c8c157a&scoped=true\"\nimport script from \"./Comments.vue?vue&type=script&lang=js\"\nexport * from \"./Comments.vue?vue&type=script&lang=js\"\nimport style0 from \"./Comments.vue?vue&type=style&index=0&id=6c8c157a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6c8c157a\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"element-visibility\",rawName:\"v-element-visibility\",value:(_vm.onVisibilityChange),expression:\"onVisibilityChange\"}],staticClass:\"comments\",class:{ 'icon-loading': _vm.isFirstLoading }},[_c('Comment',_vm._b({staticClass:\"comments__writer\",attrs:{\"auto-complete\":_vm.autoComplete,\"resource-type\":_vm.resourceType,\"editor\":true,\"user-data\":_vm.userData,\"resource-id\":_vm.currentResourceId},on:{\"new\":_vm.onNewComment}},'Comment',_vm.editorData,false)),_vm._v(\" \"),(!_vm.isFirstLoading)?[(!_vm.hasComments && _vm.done)?_c('NcEmptyContent',{staticClass:\"comments__empty\",attrs:{\"name\":_vm.t('comments', 'No comments yet, start the conversation!')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconMessageReplyTextOutline')]},proxy:true}],null,false,326612300)}):_c('ul',_vm._l((_vm.comments),function(comment){return _c('Comment',_vm._b({key:comment.props.id,staticClass:\"comments__list\",attrs:{\"tag\":\"li\",\"auto-complete\":_vm.autoComplete,\"resource-type\":_vm.resourceType,\"message\":comment.props.message,\"resource-id\":_vm.currentResourceId,\"user-data\":_vm.genMentionsData(comment.props.mentions)},on:{\"update:message\":function($event){return _vm.$set(comment.props, \"message\", $event)},\"delete\":_vm.onDelete}},'Comment',comment.props,false))}),1),_vm._v(\" \"),(_vm.loading && !_vm.isFirstLoading)?_c('div',{staticClass:\"comments__info icon-loading\"}):(_vm.hasComments && _vm.done)?_c('div',{staticClass:\"comments__info\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('comments', 'No more messages'))+\"\\n\\t\\t\")]):(_vm.error)?[_c('NcEmptyContent',{staticClass:\"comments__error\",attrs:{\"name\":_vm.error},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconAlertCircleOutline')]},proxy:true}],null,false,3663249556)}),_vm._v(\" \"),_c('NcButton',{staticClass:\"comments__retry\",on:{\"click\":_vm.getComments},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconRefresh')]},proxy:true}],null,false,2997625269)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Retry'))+\"\\n\\t\\t\\t\")])]:_vm._e()]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { n, t } from '@nextcloud/l10n'\nimport { createPinia, PiniaVuePlugin } from 'pinia'\nimport Vue from 'vue'\nimport CommentsApp from '../views/Comments.vue'\nimport logger from '../logger.js'\n\nVue.use(PiniaVuePlugin)\n\n__webpack_nonce__ = getCSPNonce()\n\n// Add translates functions\nVue.mixin({\n\tdata() {\n\t\treturn {\n\t\t\tlogger,\n\t\t}\n\t},\n\tmethods: {\n\t\tt,\n\t\tn,\n\t},\n})\n\nexport default class CommentInstance {\n\t/**\n\t * Initialize a new Comments instance for the desired type\n\t *\n\t * @param {string} resourceType the comments endpoint type\n\t * @param  {object} options the vue options (propsData, parent, el...)\n\t */\n\tconstructor(resourceType = 'files', options = {}) {\n\t\tconst pinia = createPinia()\n\n\t\t// Merge options and set `resourceType` property\n\t\toptions = {\n\t\t\t...options,\n\t\t\tpropsData: {\n\t\t\t\t...(options.propsData ?? {}),\n\t\t\t\tresourceType,\n\t\t\t},\n\t\t\tpinia,\n\t\t}\n\t\t// Init Comments component\n\t\tconst View = Vue.extend(CommentsApp)\n\t\treturn new View(options)\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport logger from './logger.js'\nimport CommentsInstance from './services/CommentsInstance.js'\n\n// Init Comments\nif (window.OCA && !window.OCA.Comments) {\n\tObject.assign(window.OCA, { Comments: {} })\n}\n\n// Init Comments App view\nObject.assign(window.OCA.Comments, { View: CommentsInstance })\nlogger.debug('OCA.Comments.View initialized')\n","'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n  if (a instanceof RegExp) a = maybeMatch(a, str);\n  if (b instanceof RegExp) b = maybeMatch(b, str);\n\n  var r = range(a, b, str);\n\n  return r && {\n    start: r[0],\n    end: r[1],\n    pre: str.slice(0, r[0]),\n    body: str.slice(r[0] + a.length, r[1]),\n    post: str.slice(r[1] + b.length)\n  };\n}\n\nfunction maybeMatch(reg, str) {\n  var m = str.match(reg);\n  return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n  var begs, beg, left, right, result;\n  var ai = str.indexOf(a);\n  var bi = str.indexOf(b, ai + 1);\n  var i = ai;\n\n  if (ai >= 0 && bi > 0) {\n    if(a===b) {\n      return [ai, bi];\n    }\n    begs = [];\n    left = str.length;\n\n    while (i >= 0 && !result) {\n      if (i == ai) {\n        begs.push(i);\n        ai = str.indexOf(a, i + 1);\n      } else if (begs.length == 1) {\n        result = [ begs.pop(), bi ];\n      } else {\n        beg = begs.pop();\n        if (beg < left) {\n          left = beg;\n          right = bi;\n        }\n\n        bi = str.indexOf(b, i + 1);\n      }\n\n      i = ai < bi && ai >= 0 ? ai : bi;\n    }\n\n    if (begs.length) {\n      result = [ left, right ];\n    }\n  }\n\n  return result;\n}\n","/*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '1.0.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n","var balanced = require('balanced-match');\n\nmodule.exports = expandTop;\n\nvar escSlash = '\\0SLASH'+Math.random()+'\\0';\nvar escOpen = '\\0OPEN'+Math.random()+'\\0';\nvar escClose = '\\0CLOSE'+Math.random()+'\\0';\nvar escComma = '\\0COMMA'+Math.random()+'\\0';\nvar escPeriod = '\\0PERIOD'+Math.random()+'\\0';\n\nfunction numeric(str) {\n  return parseInt(str, 10) == str\n    ? parseInt(str, 10)\n    : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n  return str.split('\\\\\\\\').join(escSlash)\n            .split('\\\\{').join(escOpen)\n            .split('\\\\}').join(escClose)\n            .split('\\\\,').join(escComma)\n            .split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n  return str.split(escSlash).join('\\\\')\n            .split(escOpen).join('{')\n            .split(escClose).join('}')\n            .split(escComma).join(',')\n            .split(escPeriod).join('.');\n}\n\n\n// Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\nfunction parseCommaParts(str) {\n  if (!str)\n    return [''];\n\n  var parts = [];\n  var m = balanced('{', '}', str);\n\n  if (!m)\n    return str.split(',');\n\n  var pre = m.pre;\n  var body = m.body;\n  var post = m.post;\n  var p = pre.split(',');\n\n  p[p.length-1] += '{' + body + '}';\n  var postParts = parseCommaParts(post);\n  if (post.length) {\n    p[p.length-1] += postParts.shift();\n    p.push.apply(p, postParts);\n  }\n\n  parts.push.apply(parts, p);\n\n  return parts;\n}\n\nfunction expandTop(str) {\n  if (!str)\n    return [];\n\n  // I don't know why Bash 4.3 does this, but it does.\n  // Anything starting with {} will have the first two bytes preserved\n  // but *only* at the top level, so {},a}b will not expand to anything,\n  // but a{},b}c will be expanded to [a}c,abc].\n  // One could argue that this is a bug in Bash, but since the goal of\n  // this module is to match Bash's rules, we escape a leading {}\n  if (str.substr(0, 2) === '{}') {\n    str = '\\\\{\\\\}' + str.substr(2);\n  }\n\n  return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction embrace(str) {\n  return '{' + str + '}';\n}\nfunction isPadded(el) {\n  return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n  return i <= y;\n}\nfunction gte(i, y) {\n  return i >= y;\n}\n\nfunction expand(str, isTop) {\n  var expansions = [];\n\n  var m = balanced('{', '}', str);\n  if (!m) return [str];\n\n  // no need to expand pre, since it is guaranteed to be free of brace-sets\n  var pre = m.pre;\n  var post = m.post.length\n    ? expand(m.post, false)\n    : [''];\n\n  if (/\\$$/.test(m.pre)) {    \n    for (var k = 0; k < post.length; k++) {\n      var expansion = pre+ '{' + m.body + '}' + post[k];\n      expansions.push(expansion);\n    }\n  } else {\n    var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n    var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n    var isSequence = isNumericSequence || isAlphaSequence;\n    var isOptions = m.body.indexOf(',') >= 0;\n    if (!isSequence && !isOptions) {\n      // {a},b}\n      if (m.post.match(/,(?!,).*\\}/)) {\n        str = m.pre + '{' + m.body + escClose + m.post;\n        return expand(str);\n      }\n      return [str];\n    }\n\n    var n;\n    if (isSequence) {\n      n = m.body.split(/\\.\\./);\n    } else {\n      n = parseCommaParts(m.body);\n      if (n.length === 1) {\n        // x{{a,b}}y ==> x{a}y x{b}y\n        n = expand(n[0], false).map(embrace);\n        if (n.length === 1) {\n          return post.map(function(p) {\n            return m.pre + n[0] + p;\n          });\n        }\n      }\n    }\n\n    // at this point, n is the parts, and we know it's not a comma set\n    // with a single entry.\n    var N;\n\n    if (isSequence) {\n      var x = numeric(n[0]);\n      var y = numeric(n[1]);\n      var width = Math.max(n[0].length, n[1].length)\n      var incr = n.length == 3\n        ? Math.abs(numeric(n[2]))\n        : 1;\n      var test = lte;\n      var reverse = y < x;\n      if (reverse) {\n        incr *= -1;\n        test = gte;\n      }\n      var pad = n.some(isPadded);\n\n      N = [];\n\n      for (var i = x; test(i, y); i += incr) {\n        var c;\n        if (isAlphaSequence) {\n          c = String.fromCharCode(i);\n          if (c === '\\\\')\n            c = '';\n        } else {\n          c = String(i);\n          if (pad) {\n            var need = width - c.length;\n            if (need > 0) {\n              var z = new Array(need + 1).join('0');\n              if (i < 0)\n                c = '-' + z + c.slice(1);\n              else\n                c = z + c;\n            }\n          }\n        }\n        N.push(c);\n      }\n    } else {\n      N = [];\n\n      for (var j = 0; j < n.length; j++) {\n        N.push.apply(N, expand(n[j], false));\n      }\n    }\n\n    for (var j = 0; j < N.length; j++) {\n      for (var k = 0; k < post.length; k++) {\n        var expansion = pre + N[j] + post[k];\n        if (!isTop || isSequence || expansion)\n          expansions.push(expansion);\n      }\n    }\n  }\n\n  return expansions;\n}\n\n","module.exports = {\n  \"100\": \"Continue\",\n  \"101\": \"Switching Protocols\",\n  \"102\": \"Processing\",\n  \"200\": \"OK\",\n  \"201\": \"Created\",\n  \"202\": \"Accepted\",\n  \"203\": \"Non-Authoritative Information\",\n  \"204\": \"No Content\",\n  \"205\": \"Reset Content\",\n  \"206\": \"Partial Content\",\n  \"207\": \"Multi-Status\",\n  \"208\": \"Already Reported\",\n  \"226\": \"IM Used\",\n  \"300\": \"Multiple Choices\",\n  \"301\": \"Moved Permanently\",\n  \"302\": \"Found\",\n  \"303\": \"See Other\",\n  \"304\": \"Not Modified\",\n  \"305\": \"Use Proxy\",\n  \"307\": \"Temporary Redirect\",\n  \"308\": \"Permanent Redirect\",\n  \"400\": \"Bad Request\",\n  \"401\": \"Unauthorized\",\n  \"402\": \"Payment Required\",\n  \"403\": \"Forbidden\",\n  \"404\": \"Not Found\",\n  \"405\": \"Method Not Allowed\",\n  \"406\": \"Not Acceptable\",\n  \"407\": \"Proxy Authentication Required\",\n  \"408\": \"Request Timeout\",\n  \"409\": \"Conflict\",\n  \"410\": \"Gone\",\n  \"411\": \"Length Required\",\n  \"412\": \"Precondition Failed\",\n  \"413\": \"Payload Too Large\",\n  \"414\": \"URI Too Long\",\n  \"415\": \"Unsupported Media Type\",\n  \"416\": \"Range Not Satisfiable\",\n  \"417\": \"Expectation Failed\",\n  \"418\": \"I'm a teapot\",\n  \"421\": \"Misdirected Request\",\n  \"422\": \"Unprocessable Entity\",\n  \"423\": \"Locked\",\n  \"424\": \"Failed Dependency\",\n  \"425\": \"Unordered Collection\",\n  \"426\": \"Upgrade Required\",\n  \"428\": \"Precondition Required\",\n  \"429\": \"Too Many Requests\",\n  \"431\": \"Request Header Fields Too Large\",\n  \"451\": \"Unavailable For Legal Reasons\",\n  \"500\": \"Internal Server Error\",\n  \"501\": \"Not Implemented\",\n  \"502\": \"Bad Gateway\",\n  \"503\": \"Service Unavailable\",\n  \"504\": \"Gateway Timeout\",\n  \"505\": \"HTTP Version Not Supported\",\n  \"506\": \"Variant Also Negotiates\",\n  \"507\": \"Insufficient Storage\",\n  \"508\": \"Loop Detected\",\n  \"509\": \"Bandwidth Limit Exceeded\",\n  \"510\": \"Not Extended\",\n  \"511\": \"Network Authentication Required\"\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\n * Calculate the byte lengths for utf8 encoded strings.\n */\nfunction byteLength(str) {\n    if (!str) {\n        return 0;\n    }\n    str = str.toString();\n    var len = str.length;\n    for (var i = str.length; i--;) {\n        var code = str.charCodeAt(i);\n        if (0xdc00 <= code && code <= 0xdfff) {\n            i--;\n        }\n        if (0x7f < code && code <= 0x7ff) {\n            len++;\n        }\n        else if (0x7ff < code && code <= 0xffff) {\n            len += 2;\n        }\n    }\n    return len;\n}\nexports.byteLength = byteLength;\n//# sourceMappingURL=index.js.map","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\nvar bind = require('function-bind');\nvar $apply = require('./functionApply');\nvar actualApply = require('./actualApply');\n\n/** @type {import('./applyBind')} */\nmodule.exports = function applyBind() {\n\treturn actualApply(bind, $apply, arguments);\n};\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar setFunctionLength = require('set-function-length');\n\nvar $defineProperty = require('es-define-property');\n\nvar callBindBasic = require('call-bind-apply-helpers');\nvar applyBind = require('call-bind-apply-helpers/applyBind');\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = callBindBasic(arguments);\n\tvar adjustedLength = originalFunction.length - (arguments.length - 1);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + (adjustedLength > 0 ? adjustedLength : 0),\n\t\ttrue\n\t);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBindBasic = require('call-bind-apply-helpers');\n\n/** @type {(thisArg: string, searchString: string, position?: number) => number} */\nvar $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);\n\n/** @type {import('.')} */\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\t/* eslint no-extra-parens: 0 */\n\n\tvar intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing));\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBindBasic(/** @type {const} */ ([intrinsic]));\n\t}\n\treturn intrinsic;\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.comment[data-v-70317f94]{display:flex;gap:8px;padding:5px 10px}.comment__side[data-v-70317f94]{display:flex;align-items:flex-start;padding-top:6px}.comment__body[data-v-70317f94]{display:flex;flex-grow:1;flex-direction:column;container-type:inline-size}.comment__header[data-v-70317f94]{display:flex;align-items:center;min-height:44px}.comment__actions[data-v-70317f94]{margin-inline-start:10px !important}.comment__author[data-v-70317f94]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.comment_loading[data-v-70317f94],.comment__timestamp[data-v-70317f94]{margin-inline-start:auto;text-align:end;white-space:nowrap;color:var(--color-text-maxcontrast)}.comment__editor-group[data-v-70317f94]{position:relative}.comment__editor-description[data-v-70317f94]{color:var(--color-text-maxcontrast);padding-block:var(--default-grid-baseline)}.comment__submit[data-v-70317f94]{position:absolute !important;bottom:5px;inset-inline-end:0}.comment__message[data-v-70317f94]{white-space:pre-wrap;word-break:normal;max-height:200px;overflow:auto;scrollbar-gutter:stable;scrollbar-width:thin;margin-top:-6px}.comment__message--expanded[data-v-70317f94]{max-height:none;overflow:visible}.comment__message[data-v-70317f94] img{max-width:100%;height:auto}.rich-contenteditable__input[data-v-70317f94]{min-height:44px;margin:0;padding:10px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/comments/src/components/Comment.vue\"],\"names\":[],\"mappings\":\"AAKA,0BACC,YAAA,CACA,OAAA,CACA,gBAAA,CAEA,gCACC,YAAA,CACA,sBAAA,CACA,eAAA,CAGD,gCACC,YAAA,CACA,WAAA,CACA,qBAAA,CACA,0BAAA,CAGD,kCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAGD,mCACC,mCAAA,CAGD,kCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,uEAEC,wBAAA,CACA,cAAA,CACA,kBAAA,CACA,mCAAA,CAGD,wCACC,iBAAA,CAGD,8CACC,mCAAA,CACA,0CAAA,CAGD,kCACC,4BAAA,CACA,UAAA,CACA,kBAAA,CAGD,mCACC,oBAAA,CACA,iBAAA,CACA,gBAAA,CACA,aAAA,CACA,uBAAA,CACA,oBAAA,CACA,eAAA,CACA,6CACC,eAAA,CACA,gBAAA,CAED,uCACC,cAAA,CACA,WAAA,CAKH,8CACC,eAAA,CACA,QAAA,CACA,YAlFiB\",\"sourcesContent\":[\"\\n@use \\\"sass:math\\\";\\n\\n$comment-padding: 10px;\\n\\n.comment {\\n\\tdisplay: flex;\\n\\tgap: 8px;\\n\\tpadding: 5px $comment-padding;\\n\\n\\t&__side {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\tpadding-top: 6px;\\n\\t}\\n\\n\\t&__body {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-grow: 1;\\n\\t\\tflex-direction: column;\\n\\t\\tcontainer-type: inline-size;\\n\\t}\\n\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tmin-height: 44px;\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tmargin-inline-start: $comment-padding !important;\\n\\t}\\n\\n\\t&__author {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&_loading,\\n\\t&__timestamp {\\n\\t\\tmargin-inline-start: auto;\\n\\t\\ttext-align: end;\\n\\t\\twhite-space: nowrap;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&__editor-group {\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t&__editor-description {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tpadding-block: var(--default-grid-baseline);\\n\\t}\\n\\n\\t&__submit {\\n\\t\\tposition: absolute !important;\\n\\t\\tbottom: 5px;\\n\\t\\tinset-inline-end: 0;\\n\\t}\\n\\n\\t&__message {\\n\\t\\twhite-space: pre-wrap;\\n\\t\\tword-break: normal;\\n\\t\\tmax-height: 200px;\\n\\t\\toverflow: auto;\\n\\t\\tscrollbar-gutter: stable;\\n\\t\\tscrollbar-width: thin;\\n\\t\\tmargin-top: -6px;\\n\\t\\t&--expanded {\\n\\t\\t\\tmax-height: none;\\n\\t\\t\\toverflow: visible;\\n\\t\\t}\\n\\t\\t:deep(img) {\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\theight: auto;\\n\\t\\t}\\n\\t}\\n}\\n\\n.rich-contenteditable__input {\\n\\tmin-height: 44px;\\n\\tmargin: 0;\\n\\tpadding: $comment-padding;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.comments[data-v-6c8c157a]{min-height:100%;display:flex;flex-direction:column}.comments__empty[data-v-6c8c157a],.comments__error[data-v-6c8c157a]{flex:1 0}.comments__retry[data-v-6c8c157a]{margin:0 auto}.comments__info[data-v-6c8c157a]{height:60px;color:var(--color-text-maxcontrast);text-align:center;line-height:60px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/comments/src/views/Comments.vue\"],\"names\":[],\"mappings\":\"AACA,2BACC,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,oEAEC,QAAA,CAGD,kCACC,aAAA,CAGD,iCACC,WAAA,CACA,mCAAA,CACA,iBAAA,CACA,gBAAA\",\"sourcesContent\":[\"\\n.comments {\\n\\tmin-height: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\t&__empty,\\n\\t&__error {\\n\\t\\tflex: 1 0;\\n\\t}\\n\\n\\t&__retry {\\n\\t\\tmargin: 0 auto;\\n\\t}\\n\\n\\t&__info {\\n\\t\\theight: 60px;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\ttext-align: center;\\n\\t\\tline-height: 60px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/** @type {(arr: A, iterator: (this: This | void, value: A[number], index: number, arr: A) => void, receiver: This | undefined) => void} */\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n    for (var i = 0, len = array.length; i < len; i++) {\n        if (hasOwnProperty.call(array, i)) {\n            if (receiver == null) {\n                iterator(array[i], i, array);\n            } else {\n                iterator.call(receiver, array[i], i, array);\n            }\n        }\n    }\n};\n\n/** @type {(string: S, iterator: (this: This | void, value: S[number], index: number, string: S) => void, receiver: This | undefined) => void} */\nvar forEachString = function forEachString(string, iterator, receiver) {\n    for (var i = 0, len = string.length; i < len; i++) {\n        // no such thing as a sparse string.\n        if (receiver == null) {\n            iterator(string.charAt(i), i, string);\n        } else {\n            iterator.call(receiver, string.charAt(i), i, string);\n        }\n    }\n};\n\n/** @type {(obj: O, iterator: (this: This | void, value: O[keyof O], index: keyof O, obj: O) => void, receiver: This | undefined) => void} */\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n    for (var k in object) {\n        if (hasOwnProperty.call(object, k)) {\n            if (receiver == null) {\n                iterator(object[k], k, object);\n            } else {\n                iterator.call(receiver, object[k], k, object);\n            }\n        }\n    }\n};\n\n/** @type {(x: unknown) => x is readonly unknown[]} */\nfunction isArray(x) {\n    return toStr.call(x) === '[object Array]';\n}\n\n/** @type {import('.')._internal} */\nmodule.exports = function forEach(list, iterator, thisArg) {\n    if (!isCallable(iterator)) {\n        throw new TypeError('iterator must be a function');\n    }\n\n    var receiver;\n    if (arguments.length >= 3) {\n        receiver = thisArg;\n    }\n\n    if (isArray(list)) {\n        forEachArray(list, iterator, receiver);\n    } else if (typeof list === 'string') {\n        forEachString(list, iterator, receiver);\n    } else {\n        forEachObject(list, iterator, receiver);\n    }\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n    var arr = [];\n\n    for (var i = 0; i < a.length; i += 1) {\n        arr[i] = a[i];\n    }\n    for (var j = 0; j < b.length; j += 1) {\n        arr[j + a.length] = b[j];\n    }\n\n    return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n    var arr = [];\n    for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n        arr[j] = arrLike[i];\n    }\n    return arr;\n};\n\nvar joiny = function (arr, joiner) {\n    var str = '';\n    for (var i = 0; i < arr.length; i += 1) {\n        str += arr[i];\n        if (i + 1 < arr.length) {\n            str += joiner;\n        }\n    }\n    return str;\n};\n\nmodule.exports = function bind(that) {\n    var target = this;\n    if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n        throw new TypeError(ERROR_MESSAGE + target);\n    }\n    var args = slicy(arguments, 1);\n\n    var bound;\n    var binder = function () {\n        if (this instanceof bound) {\n            var result = target.apply(\n                this,\n                concatty(args, arguments)\n            );\n            if (Object(result) === result) {\n                return result;\n            }\n            return this;\n        }\n        return target.apply(\n            that,\n            concatty(args, arguments)\n        );\n\n    };\n\n    var boundLength = max(0, target.length - args.length);\n    var boundArgs = [];\n    for (var i = 0; i < boundLength; i++) {\n        boundArgs[i] = '$' + i;\n    }\n\n    bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n    if (target.prototype) {\n        var Empty = function Empty() {};\n        Empty.prototype = target.prototype;\n        bound.prototype = new Empty();\n        Empty.prototype = null;\n    }\n\n    return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\n// eslint-disable-next-line no-extra-parens, no-empty-function\nconst cached = /** @type {GeneratorFunctionConstructor} */ (function* () {}.constructor);\n\n/** @type {import('.')} */\nmodule.exports = () => cached;\n\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","var http = require('http')\nvar url = require('url')\n\nvar https = module.exports\n\nfor (var key in http) {\n  if (http.hasOwnProperty(key)) https[key] = http[key]\n}\n\nhttps.request = function (params, cb) {\n  params = validateParams(params)\n  return http.request.call(this, params, cb)\n}\n\nhttps.get = function (params, cb) {\n  params = validateParams(params)\n  return http.get.call(this, params, cb)\n}\n\nfunction validateParams (params) {\n  if (typeof params === 'string') {\n    params = url.parse(params)\n  }\n  if (!params.protocol) {\n    params.protocol = 'https:'\n  }\n  if (params.protocol !== 'https:') {\n    throw new Error('Protocol \"' + params.protocol + '\" not supported. Expected \"https:\"')\n  }\n  return params\n}\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bound');\n\nvar $toString = callBound('Object.prototype.toString');\n\n/** @type {import('.')} */\nvar isStandardArguments = function isArguments(value) {\n\tif (\n\t\thasToStringTag\n\t\t&& value\n\t\t&& typeof value === 'object'\n\t\t&& Symbol.toStringTag in value\n\t) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\n/** @type {import('.')} */\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null\n\t\t&& typeof value === 'object'\n\t\t&& 'length' in value\n\t\t&& typeof value.length === 'number'\n\t\t&& value.length >= 0\n\t\t&& $toString(value) !== '[object Array]'\n\t\t&& 'callee' in value\n\t\t&& $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\n// @ts-expect-error TODO make this not error\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\n/** @type {import('.')} */\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar callBound = require('call-bound');\nvar safeRegexTest = require('safe-regex-test');\nvar isFnRegex = safeRegexTest(/^\\s*(?:function)?\\*/);\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = require('get-proto');\n\nvar toStr = callBound('Object.prototype.toString');\nvar fnToStr = callBound('Function.prototype.toString');\n\nvar getGeneratorFunction = require('generator-function');\n\n/** @type {import('.')} */\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex(fnToStr(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tvar GeneratorFunction = getGeneratorFunction();\n\treturn GeneratorFunction && getProto(fn) === GeneratorFunction.prototype;\n};\n","'use strict';\n\nvar callBound = require('call-bound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar hasOwn = require('hasown');\nvar gOPD = require('gopd');\n\n/** @type {import('.')} */\nvar fn;\n\nif (hasToStringTag) {\n\t/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */\n\tvar $exec = callBound('RegExp.prototype.exec');\n\t/** @type {object} */\n\tvar isRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\t/** @type {{ toString(): never, valueOf(): never, [Symbol.toPrimitive]?(): never }} */\n\tvar badStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n\n\t/** @type {import('.')} */\n\t// @ts-expect-error TS can't figure out that the $exec call always throws\n\t// eslint-disable-next-line consistent-return\n\tfn = function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {NonNullable} */ (gOPD)(/** @type {{ lastIndex?: unknown }} */ (value), 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && hasOwn(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t$exec(value, /** @type {string} */ (/** @type {unknown} */ (badStringifier)));\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t};\n} else {\n\t/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */\n\tvar $toString = callBound('Object.prototype.toString');\n\t/** @const @type {'[object RegExp]'} */\n\tvar regexClass = '[object RegExp]';\n\n\t/** @type {import('.')} */\n\tfn = function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n}\n\nmodule.exports = fn;\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","/**\n* @license nested-property https://github.com/cosmosio/nested-property\n*\n* The MIT License (MIT)\n*\n* Copyright (c) 2014-2020 Olivier Scherrer \n*/\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar ARRAY_WILDCARD = \"+\";\nvar PATH_DELIMITER = \".\";\n\nvar ObjectPrototypeMutationError = /*#__PURE__*/function (_Error) {\n  _inherits(ObjectPrototypeMutationError, _Error);\n\n  function ObjectPrototypeMutationError(params) {\n    var _this;\n\n    _classCallCheck(this, ObjectPrototypeMutationError);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(ObjectPrototypeMutationError).call(this, params));\n    _this.name = \"ObjectPrototypeMutationError\";\n    return _this;\n  }\n\n  return ObjectPrototypeMutationError;\n}(_wrapNativeSuper(Error));\n\nmodule.exports = {\n  set: setNestedProperty,\n  get: getNestedProperty,\n  has: hasNestedProperty,\n  hasOwn: function hasOwn(object, property, options) {\n    return this.has(object, property, options || {\n      own: true\n    });\n  },\n  isIn: isInNestedProperty,\n  ObjectPrototypeMutationError: ObjectPrototypeMutationError\n};\n/**\n * Get the property of an object nested in one or more objects or array\n * Given an object such as a.b.c.d = 5, getNestedProperty(a, \"b.c.d\") will return 5.\n * It also works through arrays. Given a nested array such as a[0].b = 5, getNestedProperty(a, \"0.b\") will return 5.\n * For accessing nested properties through all items in an array, you may use the array wildcard \"+\".\n * For instance, getNestedProperty([{a:1}, {a:2}, {a:3}], \"+.a\") will return [1, 2, 3]\n * @param {Object} object the object to get the property from\n * @param {String} property the path to the property as a string\n * @returns the object or the the property value if found\n */\n\nfunction getNestedProperty(object, property) {\n  if (_typeof(object) != \"object\" || object === null) {\n    return object;\n  }\n\n  if (typeof property == \"undefined\") {\n    return object;\n  }\n\n  if (typeof property == \"number\") {\n    return object[property];\n  }\n\n  try {\n    return traverse(object, property, function _getNestedProperty(currentObject, currentProperty) {\n      return currentObject[currentProperty];\n    });\n  } catch (err) {\n    return object;\n  }\n}\n/**\n * Tell if a nested object has a given property (or array a given index)\n * given an object such as a.b.c.d = 5, hasNestedProperty(a, \"b.c.d\") will return true.\n * It also returns true if the property is in the prototype chain.\n * @param {Object} object the object to get the property from\n * @param {String} property the path to the property as a string\n * @param {Object} options:\n *  - own: set to reject properties from the prototype\n * @returns true if has (property in object), false otherwise\n */\n\n\nfunction hasNestedProperty(object, property) {\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n  if (_typeof(object) != \"object\" || object === null) {\n    return false;\n  }\n\n  if (typeof property == \"undefined\") {\n    return false;\n  }\n\n  if (typeof property == \"number\") {\n    return property in object;\n  }\n\n  try {\n    var has = false;\n    traverse(object, property, function _hasNestedProperty(currentObject, currentProperty, segments, index) {\n      if (isLastSegment(segments, index)) {\n        if (options.own) {\n          has = currentObject.hasOwnProperty(currentProperty);\n        } else {\n          has = currentProperty in currentObject;\n        }\n      } else {\n        return currentObject && currentObject[currentProperty];\n      }\n    });\n    return has;\n  } catch (err) {\n    return false;\n  }\n}\n/**\n * Set the property of an object nested in one or more objects\n * If the property doesn't exist, it gets created.\n * @param {Object} object\n * @param {String} property\n * @param value the value to set\n * @returns object if no assignment was made or the value if the assignment was made\n */\n\n\nfunction setNestedProperty(object, property, value) {\n  if (_typeof(object) != \"object\" || object === null) {\n    return object;\n  }\n\n  if (typeof property == \"undefined\") {\n    return object;\n  }\n\n  if (typeof property == \"number\") {\n    object[property] = value;\n    return object[property];\n  }\n\n  try {\n    return traverse(object, property, function _setNestedProperty(currentObject, currentProperty, segments, index) {\n      if (currentObject === Reflect.getPrototypeOf({})) {\n        throw new ObjectPrototypeMutationError(\"Attempting to mutate Object.prototype\");\n      }\n\n      if (!currentObject[currentProperty]) {\n        var nextPropIsNumber = Number.isInteger(Number(segments[index + 1]));\n        var nextPropIsArrayWildcard = segments[index + 1] === ARRAY_WILDCARD;\n\n        if (nextPropIsNumber || nextPropIsArrayWildcard) {\n          currentObject[currentProperty] = [];\n        } else {\n          currentObject[currentProperty] = {};\n        }\n      }\n\n      if (isLastSegment(segments, index)) {\n        currentObject[currentProperty] = value;\n      }\n\n      return currentObject[currentProperty];\n    });\n  } catch (err) {\n    if (err instanceof ObjectPrototypeMutationError) {\n      // rethrow\n      throw err;\n    } else {\n      return object;\n    }\n  }\n}\n/**\n * Tell if an object is on the path to a nested property\n * If the object is on the path, and the path exists, it returns true, and false otherwise.\n * @param {Object} object to get the nested property from\n * @param {String} property name of the nested property\n * @param {Object} objectInPath the object to check\n * @param {Object} options:\n *  - validPath: return false if the path is invalid, even if the object is in the path\n * @returns {boolean} true if the object is on the path\n */\n\n\nfunction isInNestedProperty(object, property, objectInPath) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n  if (_typeof(object) != \"object\" || object === null) {\n    return false;\n  }\n\n  if (typeof property == \"undefined\") {\n    return false;\n  }\n\n  try {\n    var isIn = false,\n        pathExists = false;\n    traverse(object, property, function _isInNestedProperty(currentObject, currentProperty, segments, index) {\n      isIn = isIn || currentObject === objectInPath || !!currentObject && currentObject[currentProperty] === objectInPath;\n      pathExists = isLastSegment(segments, index) && _typeof(currentObject) === \"object\" && currentProperty in currentObject;\n      return currentObject && currentObject[currentProperty];\n    });\n\n    if (options.validPath) {\n      return isIn && pathExists;\n    } else {\n      return isIn;\n    }\n  } catch (err) {\n    return false;\n  }\n}\n\nfunction traverse(object, path) {\n  var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n  var segments = path.split(PATH_DELIMITER);\n  var length = segments.length;\n\n  var _loop = function _loop(idx) {\n    var currentSegment = segments[idx];\n\n    if (!object) {\n      return {\n        v: void 0\n      };\n    }\n\n    if (currentSegment === ARRAY_WILDCARD) {\n      if (Array.isArray(object)) {\n        return {\n          v: object.map(function (value, index) {\n            var remainingSegments = segments.slice(idx + 1);\n\n            if (remainingSegments.length > 0) {\n              return traverse(value, remainingSegments.join(PATH_DELIMITER), callback);\n            } else {\n              return callback(object, index, segments, idx);\n            }\n          })\n        };\n      } else {\n        var pathToHere = segments.slice(0, idx).join(PATH_DELIMITER);\n        throw new Error(\"Object at wildcard (\".concat(pathToHere, \") is not an array\"));\n      }\n    } else {\n      object = callback(object, currentSegment, segments, idx);\n    }\n  };\n\n  for (var idx = 0; idx < length; idx++) {\n    var _ret = _loop(idx);\n\n    if (_typeof(_ret) === \"object\") return _ret.v;\n  }\n\n  return object;\n}\n\nfunction isLastSegment(segments, index) {\n  return segments.length === index + 1;\n}\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n    ? Symbol.toStringTag\n    : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n    [].__proto__ === Array.prototype // eslint-disable-line no-proto\n        ? function (O) {\n            return O.__proto__; // eslint-disable-line no-proto\n        }\n        : null\n);\n\nfunction addNumericSeparator(num, str) {\n    if (\n        num === Infinity\n        || num === -Infinity\n        || num !== num\n        || (num && num > -1000 && num < 1000)\n        || $test.call(/e/, str)\n    ) {\n        return str;\n    }\n    var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n    if (typeof num === 'number') {\n        var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n        if (int !== num) {\n            var intStr = String(int);\n            var dec = $slice.call(str, intStr.length + 1);\n            return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n        }\n    }\n    return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nvar quotes = {\n    __proto__: null,\n    'double': '\"',\n    single: \"'\"\n};\nvar quoteREs = {\n    __proto__: null,\n    'double': /([\"\\\\])/g,\n    single: /(['\\\\])/g\n};\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n    var opts = options || {};\n\n    if (has(opts, 'quoteStyle') && !has(quotes, opts.quoteStyle)) {\n        throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n    }\n    if (\n        has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n            ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n            : opts.maxStringLength !== null\n        )\n    ) {\n        throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n    }\n    var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n    if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n        throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n    }\n\n    if (\n        has(opts, 'indent')\n        && opts.indent !== null\n        && opts.indent !== '\\t'\n        && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n    ) {\n        throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n    }\n    if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n        throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n    }\n    var numericSeparator = opts.numericSeparator;\n\n    if (typeof obj === 'undefined') {\n        return 'undefined';\n    }\n    if (obj === null) {\n        return 'null';\n    }\n    if (typeof obj === 'boolean') {\n        return obj ? 'true' : 'false';\n    }\n\n    if (typeof obj === 'string') {\n        return inspectString(obj, opts);\n    }\n    if (typeof obj === 'number') {\n        if (obj === 0) {\n            return Infinity / obj > 0 ? '0' : '-0';\n        }\n        var str = String(obj);\n        return numericSeparator ? addNumericSeparator(obj, str) : str;\n    }\n    if (typeof obj === 'bigint') {\n        var bigIntStr = String(obj) + 'n';\n        return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n    }\n\n    var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n    if (typeof depth === 'undefined') { depth = 0; }\n    if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n        return isArray(obj) ? '[Array]' : '[Object]';\n    }\n\n    var indent = getIndent(opts, depth);\n\n    if (typeof seen === 'undefined') {\n        seen = [];\n    } else if (indexOf(seen, obj) >= 0) {\n        return '[Circular]';\n    }\n\n    function inspect(value, from, noIndent) {\n        if (from) {\n            seen = $arrSlice.call(seen);\n            seen.push(from);\n        }\n        if (noIndent) {\n            var newOpts = {\n                depth: opts.depth\n            };\n            if (has(opts, 'quoteStyle')) {\n                newOpts.quoteStyle = opts.quoteStyle;\n            }\n            return inspect_(value, newOpts, depth + 1, seen);\n        }\n        return inspect_(value, opts, depth + 1, seen);\n    }\n\n    if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n        var name = nameOf(obj);\n        var keys = arrObjKeys(obj, inspect);\n        return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n    }\n    if (isSymbol(obj)) {\n        var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n        return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n    }\n    if (isElement(obj)) {\n        var s = '<' + $toLowerCase.call(String(obj.nodeName));\n        var attrs = obj.attributes || [];\n        for (var i = 0; i < attrs.length; i++) {\n            s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n        }\n        s += '>';\n        if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n        s += '';\n        return s;\n    }\n    if (isArray(obj)) {\n        if (obj.length === 0) { return '[]'; }\n        var xs = arrObjKeys(obj, inspect);\n        if (indent && !singleLineValues(xs)) {\n            return '[' + indentedJoin(xs, indent) + ']';\n        }\n        return '[ ' + $join.call(xs, ', ') + ' ]';\n    }\n    if (isError(obj)) {\n        var parts = arrObjKeys(obj, inspect);\n        if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n            return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n        }\n        if (parts.length === 0) { return '[' + String(obj) + ']'; }\n        return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n    }\n    if (typeof obj === 'object' && customInspect) {\n        if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n            return utilInspect(obj, { depth: maxDepth - depth });\n        } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n            return obj.inspect();\n        }\n    }\n    if (isMap(obj)) {\n        var mapParts = [];\n        if (mapForEach) {\n            mapForEach.call(obj, function (value, key) {\n                mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n            });\n        }\n        return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n    }\n    if (isSet(obj)) {\n        var setParts = [];\n        if (setForEach) {\n            setForEach.call(obj, function (value) {\n                setParts.push(inspect(value, obj));\n            });\n        }\n        return collectionOf('Set', setSize.call(obj), setParts, indent);\n    }\n    if (isWeakMap(obj)) {\n        return weakCollectionOf('WeakMap');\n    }\n    if (isWeakSet(obj)) {\n        return weakCollectionOf('WeakSet');\n    }\n    if (isWeakRef(obj)) {\n        return weakCollectionOf('WeakRef');\n    }\n    if (isNumber(obj)) {\n        return markBoxed(inspect(Number(obj)));\n    }\n    if (isBigInt(obj)) {\n        return markBoxed(inspect(bigIntValueOf.call(obj)));\n    }\n    if (isBoolean(obj)) {\n        return markBoxed(booleanValueOf.call(obj));\n    }\n    if (isString(obj)) {\n        return markBoxed(inspect(String(obj)));\n    }\n    // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n    /* eslint-env browser */\n    if (typeof window !== 'undefined' && obj === window) {\n        return '{ [object Window] }';\n    }\n    if (\n        (typeof globalThis !== 'undefined' && obj === globalThis)\n        || (typeof global !== 'undefined' && obj === global)\n    ) {\n        return '{ [object globalThis] }';\n    }\n    if (!isDate(obj) && !isRegExp(obj)) {\n        var ys = arrObjKeys(obj, inspect);\n        var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n        var protoTag = obj instanceof Object ? '' : 'null prototype';\n        var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n        var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n        var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n        if (ys.length === 0) { return tag + '{}'; }\n        if (indent) {\n            return tag + '{' + indentedJoin(ys, indent) + '}';\n        }\n        return tag + '{ ' + $join.call(ys, ', ') + ' }';\n    }\n    return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n    var style = opts.quoteStyle || defaultStyle;\n    var quoteChar = quotes[style];\n    return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n    return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction canTrustToString(obj) {\n    return !toStringTag || !(typeof obj === 'object' && (toStringTag in obj || typeof obj[toStringTag] !== 'undefined'));\n}\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && canTrustToString(obj); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && canTrustToString(obj); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && canTrustToString(obj); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && canTrustToString(obj); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && canTrustToString(obj); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && canTrustToString(obj); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && canTrustToString(obj); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n    if (hasShammedSymbols) {\n        return obj && typeof obj === 'object' && obj instanceof Symbol;\n    }\n    if (typeof obj === 'symbol') {\n        return true;\n    }\n    if (!obj || typeof obj !== 'object' || !symToString) {\n        return false;\n    }\n    try {\n        symToString.call(obj);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nfunction isBigInt(obj) {\n    if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n        return false;\n    }\n    try {\n        bigIntValueOf.call(obj);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n    return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n    return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n    if (f.name) { return f.name; }\n    var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n    if (m) { return m[1]; }\n    return null;\n}\n\nfunction indexOf(xs, x) {\n    if (xs.indexOf) { return xs.indexOf(x); }\n    for (var i = 0, l = xs.length; i < l; i++) {\n        if (xs[i] === x) { return i; }\n    }\n    return -1;\n}\n\nfunction isMap(x) {\n    if (!mapSize || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        mapSize.call(x);\n        try {\n            setSize.call(x);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof Map; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakMap(x) {\n    if (!weakMapHas || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakMapHas.call(x, weakMapHas);\n        try {\n            weakSetHas.call(x, weakSetHas);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakRef(x) {\n    if (!weakRefDeref || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakRefDeref.call(x);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nfunction isSet(x) {\n    if (!setSize || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        setSize.call(x);\n        try {\n            mapSize.call(x);\n        } catch (m) {\n            return true;\n        }\n        return x instanceof Set; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakSet(x) {\n    if (!weakSetHas || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakSetHas.call(x, weakSetHas);\n        try {\n            weakMapHas.call(x, weakMapHas);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isElement(x) {\n    if (!x || typeof x !== 'object') { return false; }\n    if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n        return true;\n    }\n    return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n    if (str.length > opts.maxStringLength) {\n        var remaining = str.length - opts.maxStringLength;\n        var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n        return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n    }\n    var quoteRE = quoteREs[opts.quoteStyle || 'single'];\n    quoteRE.lastIndex = 0;\n    // eslint-disable-next-line no-control-regex\n    var s = $replace.call($replace.call(str, quoteRE, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n    return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n    var n = c.charCodeAt(0);\n    var x = {\n        8: 'b',\n        9: 't',\n        10: 'n',\n        12: 'f',\n        13: 'r'\n    }[n];\n    if (x) { return '\\\\' + x; }\n    return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n    return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n    return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n    var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n    return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n    for (var i = 0; i < xs.length; i++) {\n        if (indexOf(xs[i], '\\n') >= 0) {\n            return false;\n        }\n    }\n    return true;\n}\n\nfunction getIndent(opts, depth) {\n    var baseIndent;\n    if (opts.indent === '\\t') {\n        baseIndent = '\\t';\n    } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n        baseIndent = $join.call(Array(opts.indent + 1), ' ');\n    } else {\n        return null;\n    }\n    return {\n        base: baseIndent,\n        prev: $join.call(Array(depth + 1), baseIndent)\n    };\n}\n\nfunction indentedJoin(xs, indent) {\n    if (xs.length === 0) { return ''; }\n    var lineJoiner = '\\n' + indent.prev + indent.base;\n    return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n    var isArr = isArray(obj);\n    var xs = [];\n    if (isArr) {\n        xs.length = obj.length;\n        for (var i = 0; i < obj.length; i++) {\n            xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n        }\n    }\n    var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n    var symMap;\n    if (hasShammedSymbols) {\n        symMap = {};\n        for (var k = 0; k < syms.length; k++) {\n            symMap['$' + syms[k]] = syms[k];\n        }\n    }\n\n    for (var key in obj) { // eslint-disable-line no-restricted-syntax\n        if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n        if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n        if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n            // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n            continue; // eslint-disable-line no-restricted-syntax, no-continue\n        } else if ($test.call(/[^\\w$]/, key)) {\n            xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n        } else {\n            xs.push(key + ': ' + inspect(obj[key], obj));\n        }\n    }\n    if (typeof gOPS === 'function') {\n        for (var j = 0; j < syms.length; j++) {\n            if (isEnumerable.call(obj, syms[j])) {\n                xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n            }\n        }\n    }\n    return xs;\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\nvar util = require('util');\nvar isString = function (x) {\n  return typeof x === 'string';\n};\n\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n  var res = [];\n  for (var i = 0; i < parts.length; i++) {\n    var p = parts[i];\n\n    // ignore empty parts\n    if (!p || p === '.')\n      continue;\n\n    if (p === '..') {\n      if (res.length && res[res.length - 1] !== '..') {\n        res.pop();\n      } else if (allowAboveRoot) {\n        res.push('..');\n      }\n    } else {\n      res.push(p);\n    }\n  }\n\n  return res;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nvar splitPathRe =\n    /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\nvar posix = {};\n\n\nfunction posixSplitPath(filename) {\n  return splitPathRe.exec(filename).slice(1);\n}\n\n\n// path.resolve([from ...], to)\n// posix version\nposix.resolve = function() {\n  var resolvedPath = '',\n      resolvedAbsolute = false;\n\n  for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n    var path = (i >= 0) ? arguments[i] : process.cwd();\n\n    // Skip empty and invalid entries\n    if (!isString(path)) {\n      throw new TypeError('Arguments to path.resolve must be strings');\n    } else if (!path) {\n      continue;\n    }\n\n    resolvedPath = path + '/' + resolvedPath;\n    resolvedAbsolute = path.charAt(0) === '/';\n  }\n\n  // At this point the path should be resolved to a full absolute path, but\n  // handle relative paths to be safe (might happen when process.cwd() fails)\n\n  // Normalize the path\n  resolvedPath = normalizeArray(resolvedPath.split('/'),\n                                !resolvedAbsolute).join('/');\n\n  return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nposix.normalize = function(path) {\n  var isAbsolute = posix.isAbsolute(path),\n      trailingSlash = path.substr(-1) === '/';\n\n  // Normalize the path\n  path = normalizeArray(path.split('/'), !isAbsolute).join('/');\n\n  if (!path && !isAbsolute) {\n    path = '.';\n  }\n  if (path && trailingSlash) {\n    path += '/';\n  }\n\n  return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nposix.isAbsolute = function(path) {\n  return path.charAt(0) === '/';\n};\n\n// posix version\nposix.join = function() {\n  var path = '';\n  for (var i = 0; i < arguments.length; i++) {\n    var segment = arguments[i];\n    if (!isString(segment)) {\n      throw new TypeError('Arguments to path.join must be strings');\n    }\n    if (segment) {\n      if (!path) {\n        path += segment;\n      } else {\n        path += '/' + segment;\n      }\n    }\n  }\n  return posix.normalize(path);\n};\n\n\n// path.relative(from, to)\n// posix version\nposix.relative = function(from, to) {\n  from = posix.resolve(from).substr(1);\n  to = posix.resolve(to).substr(1);\n\n  function trim(arr) {\n    var start = 0;\n    for (; start < arr.length; start++) {\n      if (arr[start] !== '') break;\n    }\n\n    var end = arr.length - 1;\n    for (; end >= 0; end--) {\n      if (arr[end] !== '') break;\n    }\n\n    if (start > end) return [];\n    return arr.slice(start, end + 1);\n  }\n\n  var fromParts = trim(from.split('/'));\n  var toParts = trim(to.split('/'));\n\n  var length = Math.min(fromParts.length, toParts.length);\n  var samePartsLength = length;\n  for (var i = 0; i < length; i++) {\n    if (fromParts[i] !== toParts[i]) {\n      samePartsLength = i;\n      break;\n    }\n  }\n\n  var outputParts = [];\n  for (var i = samePartsLength; i < fromParts.length; i++) {\n    outputParts.push('..');\n  }\n\n  outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n  return outputParts.join('/');\n};\n\n\nposix._makeLong = function(path) {\n  return path;\n};\n\n\nposix.dirname = function(path) {\n  var result = posixSplitPath(path),\n      root = result[0],\n      dir = result[1];\n\n  if (!root && !dir) {\n    // No dirname whatsoever\n    return '.';\n  }\n\n  if (dir) {\n    // It has a dirname, strip trailing slash\n    dir = dir.substr(0, dir.length - 1);\n  }\n\n  return root + dir;\n};\n\n\nposix.basename = function(path, ext) {\n  var f = posixSplitPath(path)[2];\n  // TODO: make this comparison case-insensitive on windows?\n  if (ext && f.substr(-1 * ext.length) === ext) {\n    f = f.substr(0, f.length - ext.length);\n  }\n  return f;\n};\n\n\nposix.extname = function(path) {\n  return posixSplitPath(path)[3];\n};\n\n\nposix.format = function(pathObject) {\n  if (!util.isObject(pathObject)) {\n    throw new TypeError(\n        \"Parameter 'pathObject' must be an object, not \" + typeof pathObject\n    );\n  }\n\n  var root = pathObject.root || '';\n\n  if (!isString(root)) {\n    throw new TypeError(\n        \"'pathObject.root' must be a string or undefined, not \" +\n        typeof pathObject.root\n    );\n  }\n\n  var dir = pathObject.dir ? pathObject.dir + posix.sep : '';\n  var base = pathObject.base || '';\n  return dir + base;\n};\n\n\nposix.parse = function(pathString) {\n  if (!isString(pathString)) {\n    throw new TypeError(\n        \"Parameter 'pathString' must be a string, not \" + typeof pathString\n    );\n  }\n  var allParts = posixSplitPath(pathString);\n  if (!allParts || allParts.length !== 4) {\n    throw new TypeError(\"Invalid path '\" + pathString + \"'\");\n  }\n  allParts[1] = allParts[1] || '';\n  allParts[2] = allParts[2] || '';\n  allParts[3] = allParts[3] || '';\n\n  return {\n    root: allParts[0],\n    dir: allParts[0] + allParts[1].slice(0, allParts[1].length - 1),\n    base: allParts[2],\n    ext: allParts[3],\n    name: allParts[2].slice(0, allParts[2].length - allParts[3].length)\n  };\n};\n\n\nposix.sep = '/';\nposix.delimiter = ':';\n\n  module.exports = posix;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float16Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t    counter = 0,\n\t\t    length = string.length,\n\t\t    value,\n\t\t    extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t//  0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t    inputLength = input.length,\n\t\t    out,\n\t\t    i = 0,\n\t\t    n = initialN,\n\t\t    bias = initialBias,\n\t\t    basic,\n\t\t    j,\n\t\t    index,\n\t\t    oldi,\n\t\t    w,\n\t\t    k,\n\t\t    digit,\n\t\t    t,\n\t\t    /** Cached calculation results */\n\t\t    baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t    delta,\n\t\t    handledCPCount,\n\t\t    basicLength,\n\t\t    bias,\n\t\t    j,\n\t\t    m,\n\t\t    q,\n\t\t    k,\n\t\t    t,\n\t\t    currentValue,\n\t\t    output = [],\n\t\t    /** `inputLength` will hold the number of code points in `input`. */\n\t\t    inputLength,\n\t\t    /** Cached calculation results */\n\t\t    handledCPCountPlusOne,\n\t\t    baseMinusT,\n\t\t    qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's  state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n    RFC1738: 'RFC1738',\n    RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n    'default': Format.RFC3986,\n    formatters: {\n        RFC1738: function (value) {\n            return replace.call(value, percentTwenties, '+');\n        },\n        RFC3986: function (value) {\n            return String(value);\n        }\n    },\n    RFC1738: Format.RFC1738,\n    RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n    formats: formats,\n    parse: parse,\n    stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n    allowDots: false,\n    allowEmptyArrays: false,\n    allowPrototypes: false,\n    allowSparse: false,\n    arrayLimit: 20,\n    charset: 'utf-8',\n    charsetSentinel: false,\n    comma: false,\n    decodeDotInKeys: false,\n    decoder: utils.decode,\n    delimiter: '&',\n    depth: 5,\n    duplicates: 'combine',\n    ignoreQueryPrefix: false,\n    interpretNumericEntities: false,\n    parameterLimit: 1000,\n    parseArrays: true,\n    plainObjects: false,\n    strictDepth: false,\n    strictNullHandling: false,\n    throwOnLimitExceeded: false\n};\n\nvar interpretNumericEntities = function (str) {\n    return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n        return String.fromCharCode(parseInt(numberStr, 10));\n    });\n};\n\nvar parseArrayValue = function (val, options, currentArrayLength) {\n    if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n        return val.split(',');\n    }\n\n    if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) {\n        throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n    }\n\n    return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n    var obj = { __proto__: null };\n\n    var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n    cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n\n    var limit = options.parameterLimit === Infinity ? void undefined : options.parameterLimit;\n    var parts = cleanStr.split(\n        options.delimiter,\n        options.throwOnLimitExceeded ? limit + 1 : limit\n    );\n\n    if (options.throwOnLimitExceeded && parts.length > limit) {\n        throw new RangeError('Parameter limit exceeded. Only ' + limit + ' parameter' + (limit === 1 ? '' : 's') + ' allowed.');\n    }\n\n    var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n    var i;\n\n    var charset = options.charset;\n    if (options.charsetSentinel) {\n        for (i = 0; i < parts.length; ++i) {\n            if (parts[i].indexOf('utf8=') === 0) {\n                if (parts[i] === charsetSentinel) {\n                    charset = 'utf-8';\n                } else if (parts[i] === isoSentinel) {\n                    charset = 'iso-8859-1';\n                }\n                skipIndex = i;\n                i = parts.length; // The eslint settings do not allow break;\n            }\n        }\n    }\n\n    for (i = 0; i < parts.length; ++i) {\n        if (i === skipIndex) {\n            continue;\n        }\n        var part = parts[i];\n\n        var bracketEqualsPos = part.indexOf(']=');\n        var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n        var key;\n        var val;\n        if (pos === -1) {\n            key = options.decoder(part, defaults.decoder, charset, 'key');\n            val = options.strictNullHandling ? null : '';\n        } else {\n            key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n\n            if (key !== null) {\n                val = utils.maybeMap(\n                    parseArrayValue(\n                        part.slice(pos + 1),\n                        options,\n                        isArray(obj[key]) ? obj[key].length : 0\n                    ),\n                    function (encodedVal) {\n                        return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n                    }\n                );\n            }\n        }\n\n        if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n            val = interpretNumericEntities(String(val));\n        }\n\n        if (part.indexOf('[]=') > -1) {\n            val = isArray(val) ? [val] : val;\n        }\n\n        if (options.comma && isArray(val) && val.length > options.arrayLimit) {\n            if (options.throwOnLimitExceeded) {\n                throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n            }\n            val = utils.combine([], val, options.arrayLimit, options.plainObjects);\n        }\n\n        if (key !== null) {\n            var existing = has.call(obj, key);\n            if (existing && options.duplicates === 'combine') {\n                obj[key] = utils.combine(\n                    obj[key],\n                    val,\n                    options.arrayLimit,\n                    options.plainObjects\n                );\n            } else if (!existing || options.duplicates === 'last') {\n                obj[key] = val;\n            }\n        }\n    }\n\n    return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n    var currentArrayLength = 0;\n    if (chain.length > 0 && chain[chain.length - 1] === '[]') {\n        var parentKey = chain.slice(0, -1).join('');\n        currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0;\n    }\n\n    var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength);\n\n    for (var i = chain.length - 1; i >= 0; --i) {\n        var obj;\n        var root = chain[i];\n\n        if (root === '[]' && options.parseArrays) {\n            if (utils.isOverflow(leaf)) {\n                // leaf is already an overflow object, preserve it\n                obj = leaf;\n            } else {\n                obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null))\n                    ? []\n                    : utils.combine(\n                        [],\n                        leaf,\n                        options.arrayLimit,\n                        options.plainObjects\n                    );\n            }\n        } else {\n            obj = options.plainObjects ? { __proto__: null } : {};\n            var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n            var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;\n            var index = parseInt(decodedRoot, 10);\n            var isValidArrayIndex = !isNaN(index)\n                && root !== decodedRoot\n                && String(index) === decodedRoot\n                && index >= 0\n                && options.parseArrays;\n            if (!options.parseArrays && decodedRoot === '') {\n                obj = { 0: leaf };\n            } else if (isValidArrayIndex && index < options.arrayLimit) {\n                obj = [];\n                obj[index] = leaf;\n            } else if (isValidArrayIndex && options.throwOnLimitExceeded) {\n                throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n            } else if (isValidArrayIndex) {\n                obj[index] = leaf;\n                utils.markOverflow(obj, index);\n            } else if (decodedRoot !== '__proto__') {\n                obj[decodedRoot] = leaf;\n            }\n        }\n\n        leaf = obj;\n    }\n\n    return leaf;\n};\n\nvar splitKeyIntoSegments = function splitKeyIntoSegments(givenKey, options) {\n    var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n    if (options.depth <= 0) {\n        if (!options.plainObjects && has.call(Object.prototype, key)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        return [key];\n    }\n\n    var brackets = /(\\[[^[\\]]*])/;\n    var child = /(\\[[^[\\]]*])/g;\n\n    var segment = brackets.exec(key);\n    var parent = segment ? key.slice(0, segment.index) : key;\n\n    var keys = [];\n\n    if (parent) {\n        if (!options.plainObjects && has.call(Object.prototype, parent)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        keys[keys.length] = parent;\n    }\n\n    var i = 0;\n    while ((segment = child.exec(key)) !== null && i < options.depth) {\n        i += 1;\n\n        var segmentContent = segment[1].slice(1, -1);\n        if (!options.plainObjects && has.call(Object.prototype, segmentContent)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        keys[keys.length] = segment[1];\n    }\n\n    if (segment) {\n        if (options.strictDepth === true) {\n            throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');\n        }\n\n        keys[keys.length] = '[' + key.slice(segment.index) + ']';\n    }\n\n    return keys;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n    if (!givenKey) {\n        return;\n    }\n\n    var keys = splitKeyIntoSegments(givenKey, options);\n\n    if (!keys) {\n        return;\n    }\n\n    return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n    if (!opts) {\n        return defaults;\n    }\n\n    if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n        throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n    }\n\n    if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {\n        throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');\n    }\n\n    if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {\n        throw new TypeError('Decoder has to be a function.');\n    }\n\n    if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n        throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n    }\n\n    if (typeof opts.throwOnLimitExceeded !== 'undefined' && typeof opts.throwOnLimitExceeded !== 'boolean') {\n        throw new TypeError('`throwOnLimitExceeded` option must be a boolean');\n    }\n\n    var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n    var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;\n\n    if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {\n        throw new TypeError('The duplicates option must be either combine, first, or last');\n    }\n\n    var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n    return {\n        allowDots: allowDots,\n        allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n        allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n        allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n        arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n        charset: charset,\n        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n        comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n        decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,\n        decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n        delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n        // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n        depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n        duplicates: duplicates,\n        ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n        interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n        parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n        parseArrays: opts.parseArrays !== false,\n        plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n        strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth,\n        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,\n        throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === 'boolean' ? opts.throwOnLimitExceeded : false\n    };\n};\n\nmodule.exports = function (str, opts) {\n    var options = normalizeParseOptions(opts);\n\n    if (str === '' || str === null || typeof str === 'undefined') {\n        return options.plainObjects ? { __proto__: null } : {};\n    }\n\n    var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n    var obj = options.plainObjects ? { __proto__: null } : {};\n\n    // Iterate over the keys and setup the new object\n\n    var keys = Object.keys(tempObj);\n    for (var i = 0; i < keys.length; ++i) {\n        var key = keys[i];\n        var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n        obj = utils.merge(obj, newObj, options);\n    }\n\n    if (options.allowSparse === true) {\n        return obj;\n    }\n\n    return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n    brackets: function brackets(prefix) {\n        return prefix + '[]';\n    },\n    comma: 'comma',\n    indices: function indices(prefix, key) {\n        return prefix + '[' + key + ']';\n    },\n    repeat: function repeat(prefix) {\n        return prefix;\n    }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n    push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n    addQueryPrefix: false,\n    allowDots: false,\n    allowEmptyArrays: false,\n    arrayFormat: 'indices',\n    charset: 'utf-8',\n    charsetSentinel: false,\n    commaRoundTrip: false,\n    delimiter: '&',\n    encode: true,\n    encodeDotInKeys: false,\n    encoder: utils.encode,\n    encodeValuesOnly: false,\n    filter: void undefined,\n    format: defaultFormat,\n    formatter: formats.formatters[defaultFormat],\n    // deprecated\n    indices: false,\n    serializeDate: function serializeDate(date) {\n        return toISO.call(date);\n    },\n    skipNulls: false,\n    strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n    return typeof v === 'string'\n        || typeof v === 'number'\n        || typeof v === 'boolean'\n        || typeof v === 'symbol'\n        || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n    object,\n    prefix,\n    generateArrayPrefix,\n    commaRoundTrip,\n    allowEmptyArrays,\n    strictNullHandling,\n    skipNulls,\n    encodeDotInKeys,\n    encoder,\n    filter,\n    sort,\n    allowDots,\n    serializeDate,\n    format,\n    formatter,\n    encodeValuesOnly,\n    charset,\n    sideChannel\n) {\n    var obj = object;\n\n    var tmpSc = sideChannel;\n    var step = 0;\n    var findFlag = false;\n    while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n        // Where object last appeared in the ref tree\n        var pos = tmpSc.get(object);\n        step += 1;\n        if (typeof pos !== 'undefined') {\n            if (pos === step) {\n                throw new RangeError('Cyclic object value');\n            } else {\n                findFlag = true; // Break while\n            }\n        }\n        if (typeof tmpSc.get(sentinel) === 'undefined') {\n            step = 0;\n        }\n    }\n\n    if (typeof filter === 'function') {\n        obj = filter(prefix, obj);\n    } else if (obj instanceof Date) {\n        obj = serializeDate(obj);\n    } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n        obj = utils.maybeMap(obj, function (value) {\n            if (value instanceof Date) {\n                return serializeDate(value);\n            }\n            return value;\n        });\n    }\n\n    if (obj === null) {\n        if (strictNullHandling) {\n            return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n        }\n\n        obj = '';\n    }\n\n    if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n        if (encoder) {\n            var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n            return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n        }\n        return [formatter(prefix) + '=' + formatter(String(obj))];\n    }\n\n    var values = [];\n\n    if (typeof obj === 'undefined') {\n        return values;\n    }\n\n    var objKeys;\n    if (generateArrayPrefix === 'comma' && isArray(obj)) {\n        // we need to join elements in\n        if (encodeValuesOnly && encoder) {\n            obj = utils.maybeMap(obj, encoder);\n        }\n        objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n    } else if (isArray(filter)) {\n        objKeys = filter;\n    } else {\n        var keys = Object.keys(obj);\n        objKeys = sort ? keys.sort(sort) : keys;\n    }\n\n    var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\\./g, '%2E') : String(prefix);\n\n    var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;\n\n    if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n        return adjustedPrefix + '[]';\n    }\n\n    for (var j = 0; j < objKeys.length; ++j) {\n        var key = objKeys[j];\n        var value = typeof key === 'object' && key && typeof key.value !== 'undefined'\n            ? key.value\n            : obj[key];\n\n        if (skipNulls && value === null) {\n            continue;\n        }\n\n        var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\\./g, '%2E') : String(key);\n        var keyPrefix = isArray(obj)\n            ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix\n            : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');\n\n        sideChannel.set(object, step);\n        var valueSideChannel = getSideChannel();\n        valueSideChannel.set(sentinel, sideChannel);\n        pushToArray(values, stringify(\n            value,\n            keyPrefix,\n            generateArrayPrefix,\n            commaRoundTrip,\n            allowEmptyArrays,\n            strictNullHandling,\n            skipNulls,\n            encodeDotInKeys,\n            generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n            filter,\n            sort,\n            allowDots,\n            serializeDate,\n            format,\n            formatter,\n            encodeValuesOnly,\n            charset,\n            valueSideChannel\n        ));\n    }\n\n    return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n    if (!opts) {\n        return defaults;\n    }\n\n    if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n        throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n    }\n\n    if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n        throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n    }\n\n    if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n        throw new TypeError('Encoder has to be a function.');\n    }\n\n    var charset = opts.charset || defaults.charset;\n    if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n        throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n    }\n\n    var format = formats['default'];\n    if (typeof opts.format !== 'undefined') {\n        if (!has.call(formats.formatters, opts.format)) {\n            throw new TypeError('Unknown format option provided.');\n        }\n        format = opts.format;\n    }\n    var formatter = formats.formatters[format];\n\n    var filter = defaults.filter;\n    if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n        filter = opts.filter;\n    }\n\n    var arrayFormat;\n    if (opts.arrayFormat in arrayPrefixGenerators) {\n        arrayFormat = opts.arrayFormat;\n    } else if ('indices' in opts) {\n        arrayFormat = opts.indices ? 'indices' : 'repeat';\n    } else {\n        arrayFormat = defaults.arrayFormat;\n    }\n\n    if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n        throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n    }\n\n    var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n    return {\n        addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n        allowDots: allowDots,\n        allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n        arrayFormat: arrayFormat,\n        charset: charset,\n        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n        commaRoundTrip: !!opts.commaRoundTrip,\n        delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n        encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n        encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n        encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n        encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n        filter: filter,\n        format: format,\n        formatter: formatter,\n        serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n        skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n        sort: typeof opts.sort === 'function' ? opts.sort : null,\n        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n    };\n};\n\nmodule.exports = function (object, opts) {\n    var obj = object;\n    var options = normalizeStringifyOptions(opts);\n\n    var objKeys;\n    var filter;\n\n    if (typeof options.filter === 'function') {\n        filter = options.filter;\n        obj = filter('', obj);\n    } else if (isArray(options.filter)) {\n        filter = options.filter;\n        objKeys = filter;\n    }\n\n    var keys = [];\n\n    if (typeof obj !== 'object' || obj === null) {\n        return '';\n    }\n\n    var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];\n    var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n\n    if (!objKeys) {\n        objKeys = Object.keys(obj);\n    }\n\n    if (options.sort) {\n        objKeys.sort(options.sort);\n    }\n\n    var sideChannel = getSideChannel();\n    for (var i = 0; i < objKeys.length; ++i) {\n        var key = objKeys[i];\n        var value = obj[key];\n\n        if (options.skipNulls && value === null) {\n            continue;\n        }\n        pushToArray(keys, stringify(\n            value,\n            key,\n            generateArrayPrefix,\n            commaRoundTrip,\n            options.allowEmptyArrays,\n            options.strictNullHandling,\n            options.skipNulls,\n            options.encodeDotInKeys,\n            options.encode ? options.encoder : null,\n            options.filter,\n            options.sort,\n            options.allowDots,\n            options.serializeDate,\n            options.format,\n            options.formatter,\n            options.encodeValuesOnly,\n            options.charset,\n            sideChannel\n        ));\n    }\n\n    var joined = keys.join(options.delimiter);\n    var prefix = options.addQueryPrefix === true ? '?' : '';\n\n    if (options.charsetSentinel) {\n        if (options.charset === 'iso-8859-1') {\n            // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n            prefix += 'utf8=%26%2310003%3B&';\n        } else {\n            // encodeURIComponent('✓')\n            prefix += 'utf8=%E2%9C%93&';\n        }\n    }\n\n    return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\nvar getSideChannel = require('side-channel');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\n// Track objects created from arrayLimit overflow using side-channel\n// Stores the current max numeric index for O(1) lookup\nvar overflowChannel = getSideChannel();\n\nvar markOverflow = function markOverflow(obj, maxIndex) {\n    overflowChannel.set(obj, maxIndex);\n    return obj;\n};\n\nvar isOverflow = function isOverflow(obj) {\n    return overflowChannel.has(obj);\n};\n\nvar getMaxIndex = function getMaxIndex(obj) {\n    return overflowChannel.get(obj);\n};\n\nvar setMaxIndex = function setMaxIndex(obj, maxIndex) {\n    overflowChannel.set(obj, maxIndex);\n};\n\nvar hexTable = (function () {\n    var array = [];\n    for (var i = 0; i < 256; ++i) {\n        array[array.length] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase();\n    }\n\n    return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n    while (queue.length > 1) {\n        var item = queue.pop();\n        var obj = item.obj[item.prop];\n\n        if (isArray(obj)) {\n            var compacted = [];\n\n            for (var j = 0; j < obj.length; ++j) {\n                if (typeof obj[j] !== 'undefined') {\n                    compacted[compacted.length] = obj[j];\n                }\n            }\n\n            item.obj[item.prop] = compacted;\n        }\n    }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n    var obj = options && options.plainObjects ? { __proto__: null } : {};\n    for (var i = 0; i < source.length; ++i) {\n        if (typeof source[i] !== 'undefined') {\n            obj[i] = source[i];\n        }\n    }\n\n    return obj;\n};\n\nvar merge = function merge(target, source, options) {\n    /* eslint no-param-reassign: 0 */\n    if (!source) {\n        return target;\n    }\n\n    if (typeof source !== 'object' && typeof source !== 'function') {\n        if (isArray(target)) {\n            var nextIndex = target.length;\n            if (options && typeof options.arrayLimit === 'number' && nextIndex > options.arrayLimit) {\n                return markOverflow(arrayToObject(target.concat(source), options), nextIndex);\n            }\n            target[nextIndex] = source;\n        } else if (target && typeof target === 'object') {\n            if (isOverflow(target)) {\n                // Add at next numeric index for overflow objects\n                var newIndex = getMaxIndex(target) + 1;\n                target[newIndex] = source;\n                setMaxIndex(target, newIndex);\n            } else if (\n                (options && (options.plainObjects || options.allowPrototypes))\n                || !has.call(Object.prototype, source)\n            ) {\n                target[source] = true;\n            }\n        } else {\n            return [target, source];\n        }\n\n        return target;\n    }\n\n    if (!target || typeof target !== 'object') {\n        if (isOverflow(source)) {\n            // Create new object with target at 0, source values shifted by 1\n            var sourceKeys = Object.keys(source);\n            var result = options && options.plainObjects\n                ? { __proto__: null, 0: target }\n                : { 0: target };\n            for (var m = 0; m < sourceKeys.length; m++) {\n                var oldKey = parseInt(sourceKeys[m], 10);\n                result[oldKey + 1] = source[sourceKeys[m]];\n            }\n            return markOverflow(result, getMaxIndex(source) + 1);\n        }\n        var combined = [target].concat(source);\n        if (options && typeof options.arrayLimit === 'number' && combined.length > options.arrayLimit) {\n            return markOverflow(arrayToObject(combined, options), combined.length - 1);\n        }\n        return combined;\n    }\n\n    var mergeTarget = target;\n    if (isArray(target) && !isArray(source)) {\n        mergeTarget = arrayToObject(target, options);\n    }\n\n    if (isArray(target) && isArray(source)) {\n        source.forEach(function (item, i) {\n            if (has.call(target, i)) {\n                var targetItem = target[i];\n                if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n                    target[i] = merge(targetItem, item, options);\n                } else {\n                    target[target.length] = item;\n                }\n            } else {\n                target[i] = item;\n            }\n        });\n        return target;\n    }\n\n    return Object.keys(source).reduce(function (acc, key) {\n        var value = source[key];\n\n        if (has.call(acc, key)) {\n            acc[key] = merge(acc[key], value, options);\n        } else {\n            acc[key] = value;\n        }\n\n        if (isOverflow(source) && !isOverflow(acc)) {\n            markOverflow(acc, getMaxIndex(source));\n        }\n        if (isOverflow(acc)) {\n            var keyNum = parseInt(key, 10);\n            if (String(keyNum) === key && keyNum >= 0 && keyNum > getMaxIndex(acc)) {\n                setMaxIndex(acc, keyNum);\n            }\n        }\n\n        return acc;\n    }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n    return Object.keys(source).reduce(function (acc, key) {\n        acc[key] = source[key];\n        return acc;\n    }, target);\n};\n\nvar decode = function (str, defaultDecoder, charset) {\n    var strWithoutPlus = str.replace(/\\+/g, ' ');\n    if (charset === 'iso-8859-1') {\n        // unescape never throws, no try...catch needed:\n        return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n    }\n    // utf-8\n    try {\n        return decodeURIComponent(strWithoutPlus);\n    } catch (e) {\n        return strWithoutPlus;\n    }\n};\n\nvar limit = 1024;\n\n/* eslint operator-linebreak: [2, \"before\"] */\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n    // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n    // It has been adapted here for stricter adherence to RFC 3986\n    if (str.length === 0) {\n        return str;\n    }\n\n    var string = str;\n    if (typeof str === 'symbol') {\n        string = Symbol.prototype.toString.call(str);\n    } else if (typeof str !== 'string') {\n        string = String(str);\n    }\n\n    if (charset === 'iso-8859-1') {\n        return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n            return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n        });\n    }\n\n    var out = '';\n    for (var j = 0; j < string.length; j += limit) {\n        var segment = string.length >= limit ? string.slice(j, j + limit) : string;\n        var arr = [];\n\n        for (var i = 0; i < segment.length; ++i) {\n            var c = segment.charCodeAt(i);\n            if (\n                c === 0x2D // -\n                || c === 0x2E // .\n                || c === 0x5F // _\n                || c === 0x7E // ~\n                || (c >= 0x30 && c <= 0x39) // 0-9\n                || (c >= 0x41 && c <= 0x5A) // a-z\n                || (c >= 0x61 && c <= 0x7A) // A-Z\n                || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n            ) {\n                arr[arr.length] = segment.charAt(i);\n                continue;\n            }\n\n            if (c < 0x80) {\n                arr[arr.length] = hexTable[c];\n                continue;\n            }\n\n            if (c < 0x800) {\n                arr[arr.length] = hexTable[0xC0 | (c >> 6)]\n                    + hexTable[0x80 | (c & 0x3F)];\n                continue;\n            }\n\n            if (c < 0xD800 || c >= 0xE000) {\n                arr[arr.length] = hexTable[0xE0 | (c >> 12)]\n                    + hexTable[0x80 | ((c >> 6) & 0x3F)]\n                    + hexTable[0x80 | (c & 0x3F)];\n                continue;\n            }\n\n            i += 1;\n            c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF));\n\n            arr[arr.length] = hexTable[0xF0 | (c >> 18)]\n                + hexTable[0x80 | ((c >> 12) & 0x3F)]\n                + hexTable[0x80 | ((c >> 6) & 0x3F)]\n                + hexTable[0x80 | (c & 0x3F)];\n        }\n\n        out += arr.join('');\n    }\n\n    return out;\n};\n\nvar compact = function compact(value) {\n    var queue = [{ obj: { o: value }, prop: 'o' }];\n    var refs = [];\n\n    for (var i = 0; i < queue.length; ++i) {\n        var item = queue[i];\n        var obj = item.obj[item.prop];\n\n        var keys = Object.keys(obj);\n        for (var j = 0; j < keys.length; ++j) {\n            var key = keys[j];\n            var val = obj[key];\n            if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n                queue[queue.length] = { obj: obj, prop: key };\n                refs[refs.length] = val;\n            }\n        }\n    }\n\n    compactQueue(queue);\n\n    return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n    return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n    if (!obj || typeof obj !== 'object') {\n        return false;\n    }\n\n    return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b, arrayLimit, plainObjects) {\n    // If 'a' is already an overflow object, add to it\n    if (isOverflow(a)) {\n        var newIndex = getMaxIndex(a) + 1;\n        a[newIndex] = b;\n        setMaxIndex(a, newIndex);\n        return a;\n    }\n\n    var result = [].concat(a, b);\n    if (result.length > arrayLimit) {\n        return markOverflow(arrayToObject(result, { plainObjects: plainObjects }), result.length - 1);\n    }\n    return result;\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n    if (isArray(val)) {\n        var mapped = [];\n        for (var i = 0; i < val.length; i += 1) {\n            mapped[mapped.length] = fn(val[i]);\n        }\n        return mapped;\n    }\n    return fn(val);\n};\n\nmodule.exports = {\n    arrayToObject: arrayToObject,\n    assign: assign,\n    combine: combine,\n    compact: compact,\n    decode: decode,\n    encode: encode,\n    isBuffer: isBuffer,\n    isOverflow: isOverflow,\n    isRegExp: isRegExp,\n    markOverflow: markOverflow,\n    maybeMap: maybeMap,\n    merge: merge\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n  , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n  try {\n    return decodeURIComponent(input.replace(/\\+/g, ' '));\n  } catch (e) {\n    return null;\n  }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n  try {\n    return encodeURIComponent(input);\n  } catch (e) {\n    return null;\n  }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n  var parser = /([^=?#&]+)=?([^&]*)/g\n    , result = {}\n    , part;\n\n  while (part = parser.exec(query)) {\n    var key = decode(part[1])\n      , value = decode(part[2]);\n\n    //\n    // Prevent overriding of existing properties. This ensures that build-in\n    // methods like `toString` or __proto__ are not overriden by malicious\n    // querystrings.\n    //\n    // In the case if failed decoding, we want to omit the key/value pairs\n    // from the result.\n    //\n    if (key === null || value === null || key in result) continue;\n    result[key] = value;\n  }\n\n  return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n  prefix = prefix || '';\n\n  var pairs = []\n    , value\n    , key;\n\n  //\n  // Optionally prefix with a '?' if needed\n  //\n  if ('string' !== typeof prefix) prefix = '?';\n\n  for (key in obj) {\n    if (has.call(obj, key)) {\n      value = obj[key];\n\n      //\n      // Edge cases where we actually want to encode the value to an empty\n      // string instead of the stringified value.\n      //\n      if (!value && (value === null || value === undef || isNaN(value))) {\n        value = '';\n      }\n\n      key = encode(key);\n      value = encode(value);\n\n      //\n      // If we failed to encode the strings, we should bail out as we don't\n      // want to add invalid strings to the query.\n      //\n      if (key === null || value === null) continue;\n      pairs.push(key +'='+ value);\n    }\n  }\n\n  return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n  protocol = protocol.split(':')[0];\n  port = +port;\n\n  if (!port) return false;\n\n  switch (protocol) {\n    case 'http':\n    case 'ws':\n    return port !== 80;\n\n    case 'https':\n    case 'wss':\n    return port !== 443;\n\n    case 'ftp':\n    return port !== 21;\n\n    case 'gopher':\n    return port !== 70;\n\n    case 'file':\n    return false;\n  }\n\n  return port !== 0;\n};\n","'use strict';\n\nvar callBound = require('call-bound');\nvar isRegex = require('is-regex');\n\nvar $exec = callBound('RegExp.prototype.exec');\nvar $TypeError = require('es-errors/type');\n\n/** @type {import('.')} */\nmodule.exports = function regexTester(regex) {\n\tif (!isRegex(regex)) {\n\t\tthrow new $TypeError('`regex` must be a RegExp');\n\t}\n\treturn function test(s) {\n\t\treturn $exec(regex, s) !== null;\n\t};\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* 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.\n* By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('./list.d.ts').listGetNode} */\n// eslint-disable-next-line consistent-return\nvar listGetNode = function (list, key, isDelete) {\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\t// eslint-disable-next-line eqeqeq\n\tfor (; (curr = prev.next) != null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tif (!isDelete) {\n\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\tcurr.next = /** @type {NonNullable} */ (list.next);\n\t\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\t}\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('./list.d.ts').listGet} */\nvar listGet = function (objects, key) {\n\tif (!objects) {\n\t\treturn void undefined;\n\t}\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('./list.d.ts').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('./list.d.ts').ListNode} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('./list.d.ts').listHas} */\nvar listHas = function (objects, key) {\n\tif (!objects) {\n\t\treturn false;\n\t}\n\treturn !!listGetNode(objects, key);\n};\n/** @type {import('./list.d.ts').listDelete} */\n// eslint-disable-next-line consistent-return\nvar listDelete = function (objects, key) {\n\tif (objects) {\n\t\treturn listGetNode(objects, key, true);\n\t}\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannelList() {\n\t/** @typedef {ReturnType} Channel */\n\t/** @typedef {Parameters[0]} K */\n\t/** @typedef {Parameters[1]} V */\n\n\t/** @type {import('./list.d.ts').RootNode | undefined} */ var $o;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tvar root = $o && $o.next;\n\t\t\tvar deletedNode = listDelete($o, key);\n\t\t\tif (deletedNode && root && root === deletedNode) {\n\t\t\t\t$o = void undefined;\n\t\t\t}\n\t\t\treturn !!deletedNode;\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn listGet($o, key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn listHas($o, key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$o) {\n\t\t\t\t// 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\n\t\t\t\t$o = {\n\t\t\t\t\tnext: void undefined\n\t\t\t\t};\n\t\t\t}\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tlistSet(/** @type {NonNullable} */ ($o), key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $Map = GetIntrinsic('%Map%', true);\n\n/** @type {(thisArg: Map, key: K) => V} */\nvar $mapGet = callBound('Map.prototype.get', true);\n/** @type {(thisArg: Map, key: K, value: V) => void} */\nvar $mapSet = callBound('Map.prototype.set', true);\n/** @type {(thisArg: Map, key: K) => boolean} */\nvar $mapHas = callBound('Map.prototype.has', true);\n/** @type {(thisArg: Map, key: K) => boolean} */\nvar $mapDelete = callBound('Map.prototype.delete', true);\n/** @type {(thisArg: Map) => number} */\nvar $mapSize = callBound('Map.prototype.size', true);\n\n/** @type {import('.')} */\nmodule.exports = !!$Map && /** @type {Exclude} */ function getSideChannelMap() {\n\t/** @typedef {ReturnType} Channel */\n\t/** @typedef {Parameters[0]} K */\n\t/** @typedef {Parameters[1]} V */\n\n\t/** @type {Map | undefined} */ var $m;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tif ($m) {\n\t\t\t\tvar result = $mapDelete($m, key);\n\t\t\t\tif ($mapSize($m) === 0) {\n\t\t\t\t\t$m = void undefined;\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($m) {\n\t\t\t\treturn $mapGet($m, key);\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($m) {\n\t\t\t\treturn $mapHas($m, key);\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$m) {\n\t\t\t\t// @ts-expect-error TS can't handle narrowing a variable inside a closure\n\t\t\t\t$m = new $Map();\n\t\t\t}\n\t\t\t$mapSet($m, key, value);\n\t\t}\n\t};\n\n\t// @ts-expect-error TODO: figure out why TS is erroring here\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\nvar getSideChannelMap = require('side-channel-map');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\n\n/** @type {(thisArg: WeakMap, key: K) => V} */\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\n/** @type {(thisArg: WeakMap, key: K, value: V) => void} */\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\n/** @type {(thisArg: WeakMap, key: K) => boolean} */\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\n/** @type {(thisArg: WeakMap, key: K) => boolean} */\nvar $weakMapDelete = callBound('WeakMap.prototype.delete', true);\n\n/** @type {import('.')} */\nmodule.exports = $WeakMap\n\t? /** @type {Exclude} */ function getSideChannelWeakMap() {\n\t\t/** @typedef {ReturnType} Channel */\n\t\t/** @typedef {Parameters[0]} K */\n\t\t/** @typedef {Parameters[1]} V */\n\n\t\t/** @type {WeakMap | undefined} */ var $wm;\n\t\t/** @type {Channel | undefined} */ var $m;\n\n\t\t/** @type {Channel} */\n\t\tvar channel = {\n\t\t\tassert: function (key) {\n\t\t\t\tif (!channel.has(key)) {\n\t\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t\t}\n\t\t\t},\n\t\t\t'delete': function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapDelete($wm, key);\n\t\t\t\t\t}\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif ($m) {\n\t\t\t\t\t\treturn $m['delete'](key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tget: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn $m && $m.get(key);\n\t\t\t},\n\t\t\thas: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn !!$m && $m.has(key);\n\t\t\t},\n\t\t\tset: function (key, value) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif (!$wm) {\n\t\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t\t}\n\t\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif (!$m) {\n\t\t\t\t\t\t$m = getSideChannelMap();\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\t\t/** @type {NonNullable} */ ($m).set(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// @ts-expect-error TODO: figure out why this is erroring\n\t\treturn channel;\n\t}\n\t: getSideChannelMap;\n","'use strict';\n\nvar $TypeError = require('es-errors/type');\nvar inspect = require('object-inspect');\nvar getSideChannelList = require('side-channel-list');\nvar getSideChannelMap = require('side-channel-map');\nvar getSideChannelWeakMap = require('side-channel-weakmap');\n\nvar makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @typedef {ReturnType} Channel */\n\n\t/** @type {Channel | undefined} */ var $channelData;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\treturn !!$channelData && $channelData['delete'](key);\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn $channelData && $channelData.get(key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn !!$channelData && $channelData.has(key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$channelData) {\n\t\t\t\t$channelData = makeChannel();\n\t\t\t}\n\n\t\t\t$channelData.set(key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || checkTypeSupport('arraybuffer')\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && checkTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + Buffer.from(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\tself._socketTimeout = null\n\tself._socketTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tif ('timeout' in opts && opts.timeout !== 0) {\n\t\tself.setTimeout(opts.timeout)\n\t}\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n        body = new Blob(self._body, {\n            type: (headersObj['content-type'] || {}).value || ''\n        });\n    }\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._resetTimers(false)\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tself._resetTimers(true)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself._resetTimers(true)\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tself._resetTimers(false)\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress(self._resetTimers.bind(self))\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._resetTimers.bind(self))\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype._resetTimers = function (done) {\n\tvar self = this\n\n\tglobal.clearTimeout(self._socketTimer)\n\tself._socketTimer = null\n\n\tif (done) {\n\t\tglobal.clearTimeout(self._fetchTimer)\n\t\tself._fetchTimer = null\n\t} else if (self._socketTimeout) {\n\t\tself._socketTimer = global.setTimeout(function () {\n\t\t\tself.emit('timeout')\n\t\t}, self._socketTimeout)\n\t}\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function (err) {\n\tvar self = this\n\tself._destroyed = true\n\tself._resetTimers(true)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n\n\tif (err)\n\t\tself.emit('error', err)\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.setTimeout = function (timeout, cb) {\n\tvar self = this\n\n\tif (cb)\n\t\tself.once('timeout', cb)\n\n\tself._socketTimeout = timeout\n\tself._resetTimers(false)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, resetTimers) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\tresetTimers(false)\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(Buffer.from(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tresetTimers(result.done)\n\t\t\t\tif (result.done) {\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(Buffer.from(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tresetTimers(true)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function (resetTimers) {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text':\n\t\t\tresponse = xhr.responseText\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = Buffer.alloc(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(Buffer.from(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tresetTimers(true)\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tresetTimers(true)\n\t\tself.push(null)\n\t}\n}\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n  if (!Base) {\n    Base = Error;\n  }\n\n  function getMessage(arg1, arg2, arg3) {\n    if (typeof message === 'string') {\n      return message;\n    } else {\n      return message(arg1, arg2, arg3);\n    }\n  }\n\n  var NodeError =\n  /*#__PURE__*/\n  function (_Base) {\n    _inheritsLoose(NodeError, _Base);\n\n    function NodeError(arg1, arg2, arg3) {\n      return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n    }\n\n    return NodeError;\n  }(Base);\n\n  NodeError.prototype.name = Base.name;\n  NodeError.prototype.code = code;\n  codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n  if (Array.isArray(expected)) {\n    var len = expected.length;\n    expected = expected.map(function (i) {\n      return String(i);\n    });\n\n    if (len > 2) {\n      return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n    } else if (len === 2) {\n      return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n    } else {\n      return \"of \".concat(thing, \" \").concat(expected[0]);\n    }\n  } else {\n    return \"of \".concat(thing, \" \").concat(String(expected));\n  }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n  return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n  if (this_len === undefined || this_len > str.length) {\n    this_len = str.length;\n  }\n\n  return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n  if (typeof start !== 'number') {\n    start = 0;\n  }\n\n  if (start + search.length > str.length) {\n    return false;\n  } else {\n    return str.indexOf(search, start) !== -1;\n  }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n  return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n  // determiner: 'must be' or 'must not be'\n  var determiner;\n\n  if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n    determiner = 'must not be';\n    expected = expected.replace(/^not /, '');\n  } else {\n    determiner = 'must be';\n  }\n\n  var msg;\n\n  if (endsWith(name, ' argument')) {\n    // For cases like 'first argument'\n    msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n  } else {\n    var type = includes(name, '.') ? 'property' : 'argument';\n    msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n  }\n\n  msg += \". Received type \".concat(typeof actual);\n  return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n  return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n  return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n  return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n  var keys = [];\n  for (var key in obj) keys.push(key);\n  return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n  // Allow the keys array to be GC'ed.\n  var keys = objectKeys(Writable.prototype);\n  for (var v = 0; v < keys.length; v++) {\n    var method = keys[v];\n    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n  }\n}\nfunction Duplex(options) {\n  if (!(this instanceof Duplex)) return new Duplex(options);\n  Readable.call(this, options);\n  Writable.call(this, options);\n  this.allowHalfOpen = true;\n  if (options) {\n    if (options.readable === false) this.readable = false;\n    if (options.writable === false) this.writable = false;\n    if (options.allowHalfOpen === false) {\n      this.allowHalfOpen = false;\n      this.once('end', onend);\n    }\n  }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.highWaterMark;\n  }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState && this._writableState.getBuffer();\n  }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.length;\n  }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n  // If the writable side ended, then we're ok.\n  if (this._writableState.ended) return;\n\n  // no more data can be written.\n  // But allow more writes to happen in this tick.\n  process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n  self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed && this._writableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n    this._writableState.destroyed = value;\n  }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n  if (!(this instanceof PassThrough)) return new PassThrough(options);\n  Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n  cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n  return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n  debug = debugUtil.debuglog('stream');\n} else {\n  debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n  getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n  ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n  ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n  ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n  // Sadly this is not cacheable as some libraries bundle their own\n  // event emitter implementation with them.\n  if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n  // This is a hack to make sure that our error handler is attached before any\n  // userland ones.  NEVER DO THIS. This is here only because this code needs\n  // to continue to work with older versions of Node.js that do not include\n  // the prependListener() method. The goal is to eventually remove this hack.\n  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n  Duplex = Duplex || require('./_stream_duplex');\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n  // object stream flag. Used to make read(n) ignore n and to\n  // make all the buffer merging and length checks go away\n  this.objectMode = !!options.objectMode;\n  if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n  // the point at which it stops calling _read() to fill the buffer\n  // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n  this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n  // A linked list is used to store data chunks instead of an array because the\n  // linked list can remove elements from the beginning faster than\n  // array.shift()\n  this.buffer = new BufferList();\n  this.length = 0;\n  this.pipes = null;\n  this.pipesCount = 0;\n  this.flowing = null;\n  this.ended = false;\n  this.endEmitted = false;\n  this.reading = false;\n\n  // a flag to be able to tell if the event 'readable'/'data' is emitted\n  // immediately, or on a later tick.  We set this to true at first, because\n  // any actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first read call.\n  this.sync = true;\n\n  // whenever we return null, then we set a flag to say\n  // that we're awaiting a 'readable' event emission.\n  this.needReadable = false;\n  this.emittedReadable = false;\n  this.readableListening = false;\n  this.resumeScheduled = false;\n  this.paused = true;\n\n  // Should close be emitted on destroy. Defaults to true.\n  this.emitClose = options.emitClose !== false;\n\n  // Should .destroy() be called after 'end' (and potentially 'finish')\n  this.autoDestroy = !!options.autoDestroy;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // the number of writers that are awaiting a drain event in .pipe()s\n  this.awaitDrain = 0;\n\n  // if true, a maybeReadMore has been scheduled\n  this.readingMore = false;\n  this.decoder = null;\n  this.encoding = null;\n  if (options.encoding) {\n    if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n    this.decoder = new StringDecoder(options.encoding);\n    this.encoding = options.encoding;\n  }\n}\nfunction Readable(options) {\n  Duplex = Duplex || require('./_stream_duplex');\n  if (!(this instanceof Readable)) return new Readable(options);\n\n  // Checking for a Stream.Duplex instance is faster here instead of inside\n  // the ReadableState constructor, at least with V8 6.5\n  var isDuplex = this instanceof Duplex;\n  this._readableState = new ReadableState(options, this, isDuplex);\n\n  // legacy\n  this.readable = true;\n  if (options) {\n    if (typeof options.read === 'function') this._read = options.read;\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n  }\n  Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._readableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._readableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n  }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n  cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n  var state = this._readableState;\n  var skipChunkCheck;\n  if (!state.objectMode) {\n    if (typeof chunk === 'string') {\n      encoding = encoding || state.defaultEncoding;\n      if (encoding !== state.encoding) {\n        chunk = Buffer.from(chunk, encoding);\n        encoding = '';\n      }\n      skipChunkCheck = true;\n    }\n  } else {\n    skipChunkCheck = true;\n  }\n  return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n  return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n  debug('readableAddChunk', chunk);\n  var state = stream._readableState;\n  if (chunk === null) {\n    state.reading = false;\n    onEofChunk(stream, state);\n  } else {\n    var er;\n    if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n    if (er) {\n      errorOrDestroy(stream, er);\n    } else if (state.objectMode || chunk && chunk.length > 0) {\n      if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n        chunk = _uint8ArrayToBuffer(chunk);\n      }\n      if (addToFront) {\n        if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n      } else if (state.ended) {\n        errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n      } else if (state.destroyed) {\n        return false;\n      } else {\n        state.reading = false;\n        if (state.decoder && !encoding) {\n          chunk = state.decoder.write(chunk);\n          if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n        } else {\n          addChunk(stream, state, chunk, false);\n        }\n      }\n    } else if (!addToFront) {\n      state.reading = false;\n      maybeReadMore(stream, state);\n    }\n  }\n\n  // We can push more data if we are below the highWaterMark.\n  // Also, if we have no data yet, we can stand some more bytes.\n  // This is to work around cases where hwm=0, such as the repl.\n  return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n  if (state.flowing && state.length === 0 && !state.sync) {\n    state.awaitDrain = 0;\n    stream.emit('data', chunk);\n  } else {\n    // update the buffer info.\n    state.length += state.objectMode ? 1 : chunk.length;\n    if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n    if (state.needReadable) emitReadable(stream);\n  }\n  maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n  var er;\n  if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n    er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n  }\n  return er;\n}\nReadable.prototype.isPaused = function () {\n  return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n  if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n  var decoder = new StringDecoder(enc);\n  this._readableState.decoder = decoder;\n  // If setEncoding(null), decoder.encoding equals utf8\n  this._readableState.encoding = this._readableState.decoder.encoding;\n\n  // Iterate over current buffer to convert already stored Buffers:\n  var p = this._readableState.buffer.head;\n  var content = '';\n  while (p !== null) {\n    content += decoder.write(p.data);\n    p = p.next;\n  }\n  this._readableState.buffer.clear();\n  if (content !== '') this._readableState.buffer.push(content);\n  this._readableState.length = content.length;\n  return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n  if (n >= MAX_HWM) {\n    // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n    n = MAX_HWM;\n  } else {\n    // Get the next highest power of 2 to prevent increasing hwm excessively in\n    // tiny amounts\n    n--;\n    n |= n >>> 1;\n    n |= n >>> 2;\n    n |= n >>> 4;\n    n |= n >>> 8;\n    n |= n >>> 16;\n    n++;\n  }\n  return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n  if (n <= 0 || state.length === 0 && state.ended) return 0;\n  if (state.objectMode) return 1;\n  if (n !== n) {\n    // Only flow one buffer at a time\n    if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n  }\n  // If we're asking for more than the current hwm, then raise the hwm.\n  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n  if (n <= state.length) return n;\n  // Don't have enough\n  if (!state.ended) {\n    state.needReadable = true;\n    return 0;\n  }\n  return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n  debug('read', n);\n  n = parseInt(n, 10);\n  var state = this._readableState;\n  var nOrig = n;\n  if (n !== 0) state.emittedReadable = false;\n\n  // if we're doing read(0) to trigger a readable event, but we\n  // already have a bunch of data in the buffer, then just trigger\n  // the 'readable' event and move on.\n  if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n    debug('read: emitReadable', state.length, state.ended);\n    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n    return null;\n  }\n  n = howMuchToRead(n, state);\n\n  // if we've ended, and we're now clear, then finish it up.\n  if (n === 0 && state.ended) {\n    if (state.length === 0) endReadable(this);\n    return null;\n  }\n\n  // All the actual chunk generation logic needs to be\n  // *below* the call to _read.  The reason is that in certain\n  // synthetic stream cases, such as passthrough streams, _read\n  // may be a completely synchronous operation which may change\n  // the state of the read buffer, providing enough data when\n  // before there was *not* enough.\n  //\n  // So, the steps are:\n  // 1. Figure out what the state of things will be after we do\n  // a read from the buffer.\n  //\n  // 2. If that resulting state will trigger a _read, then call _read.\n  // Note that this may be asynchronous, or synchronous.  Yes, it is\n  // deeply ugly to write APIs this way, but that still doesn't mean\n  // that the Readable class should behave improperly, as streams are\n  // designed to be sync/async agnostic.\n  // Take note if the _read call is sync or async (ie, if the read call\n  // has returned yet), so that we know whether or not it's safe to emit\n  // 'readable' etc.\n  //\n  // 3. Actually pull the requested chunks out of the buffer and return.\n\n  // if we need a readable event, then we need to do some reading.\n  var doRead = state.needReadable;\n  debug('need readable', doRead);\n\n  // if we currently have less than the highWaterMark, then also read some\n  if (state.length === 0 || state.length - n < state.highWaterMark) {\n    doRead = true;\n    debug('length less than watermark', doRead);\n  }\n\n  // however, if we've ended, then there's no point, and if we're already\n  // reading, then it's unnecessary.\n  if (state.ended || state.reading) {\n    doRead = false;\n    debug('reading or ended', doRead);\n  } else if (doRead) {\n    debug('do read');\n    state.reading = true;\n    state.sync = true;\n    // if the length is currently zero, then we *need* a readable event.\n    if (state.length === 0) state.needReadable = true;\n    // call internal read method\n    this._read(state.highWaterMark);\n    state.sync = false;\n    // If _read pushed data synchronously, then `reading` will be false,\n    // and we need to re-evaluate how much data we can return to the user.\n    if (!state.reading) n = howMuchToRead(nOrig, state);\n  }\n  var ret;\n  if (n > 0) ret = fromList(n, state);else ret = null;\n  if (ret === null) {\n    state.needReadable = state.length <= state.highWaterMark;\n    n = 0;\n  } else {\n    state.length -= n;\n    state.awaitDrain = 0;\n  }\n  if (state.length === 0) {\n    // If we have nothing in the buffer, then we want to know\n    // as soon as we *do* get something into the buffer.\n    if (!state.ended) state.needReadable = true;\n\n    // If we tried to read() past the EOF, then emit end on the next tick.\n    if (nOrig !== n && state.ended) endReadable(this);\n  }\n  if (ret !== null) this.emit('data', ret);\n  return ret;\n};\nfunction onEofChunk(stream, state) {\n  debug('onEofChunk');\n  if (state.ended) return;\n  if (state.decoder) {\n    var chunk = state.decoder.end();\n    if (chunk && chunk.length) {\n      state.buffer.push(chunk);\n      state.length += state.objectMode ? 1 : chunk.length;\n    }\n  }\n  state.ended = true;\n  if (state.sync) {\n    // if we are sync, wait until next tick to emit the data.\n    // Otherwise we risk emitting data in the flow()\n    // the readable code triggers during a read() call\n    emitReadable(stream);\n  } else {\n    // emit 'readable' now to make sure it gets picked up.\n    state.needReadable = false;\n    if (!state.emittedReadable) {\n      state.emittedReadable = true;\n      emitReadable_(stream);\n    }\n  }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow.  This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n  var state = stream._readableState;\n  debug('emitReadable', state.needReadable, state.emittedReadable);\n  state.needReadable = false;\n  if (!state.emittedReadable) {\n    debug('emitReadable', state.flowing);\n    state.emittedReadable = true;\n    process.nextTick(emitReadable_, stream);\n  }\n}\nfunction emitReadable_(stream) {\n  var state = stream._readableState;\n  debug('emitReadable_', state.destroyed, state.length, state.ended);\n  if (!state.destroyed && (state.length || state.ended)) {\n    stream.emit('readable');\n    state.emittedReadable = false;\n  }\n\n  // The stream needs another readable event if\n  // 1. It is not flowing, as the flow mechanism will take\n  //    care of it.\n  // 2. It is not ended.\n  // 3. It is below the highWaterMark, so we can schedule\n  //    another readable later.\n  state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n  flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data.  that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n  if (!state.readingMore) {\n    state.readingMore = true;\n    process.nextTick(maybeReadMore_, stream, state);\n  }\n}\nfunction maybeReadMore_(stream, state) {\n  // Attempt to read more data if we should.\n  //\n  // The conditions for reading more data are (one of):\n  // - Not enough data buffered (state.length < state.highWaterMark). The loop\n  //   is responsible for filling the buffer with enough data if such data\n  //   is available. If highWaterMark is 0 and we are not in the flowing mode\n  //   we should _not_ attempt to buffer any extra data. We'll get more data\n  //   when the stream consumer calls read() instead.\n  // - No data in the buffer, and the stream is in flowing mode. In this mode\n  //   the loop below is responsible for ensuring read() is called. Failing to\n  //   call read here would abort the flow and there's no other mechanism for\n  //   continuing the flow if the stream consumer has just subscribed to the\n  //   'data' event.\n  //\n  // In addition to the above conditions to keep reading data, the following\n  // conditions prevent the data from being read:\n  // - The stream has ended (state.ended).\n  // - There is already a pending 'read' operation (state.reading). This is a\n  //   case where the the stream has called the implementation defined _read()\n  //   method, but they are processing the call asynchronously and have _not_\n  //   called push() with new data. In this case we skip performing more\n  //   read()s. The execution ends in this method again after the _read() ends\n  //   up calling push() with more data.\n  while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n    var len = state.length;\n    debug('maybeReadMore read 0');\n    stream.read(0);\n    if (len === state.length)\n      // didn't get any data, stop spinning.\n      break;\n  }\n  state.readingMore = false;\n}\n\n// abstract method.  to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n  errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n  var src = this;\n  var state = this._readableState;\n  switch (state.pipesCount) {\n    case 0:\n      state.pipes = dest;\n      break;\n    case 1:\n      state.pipes = [state.pipes, dest];\n      break;\n    default:\n      state.pipes.push(dest);\n      break;\n  }\n  state.pipesCount += 1;\n  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n  var endFn = doEnd ? onend : unpipe;\n  if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n  dest.on('unpipe', onunpipe);\n  function onunpipe(readable, unpipeInfo) {\n    debug('onunpipe');\n    if (readable === src) {\n      if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n        unpipeInfo.hasUnpiped = true;\n        cleanup();\n      }\n    }\n  }\n  function onend() {\n    debug('onend');\n    dest.end();\n  }\n\n  // when the dest drains, it reduces the awaitDrain counter\n  // on the source.  This would be more elegant with a .once()\n  // handler in flow(), but adding and removing repeatedly is\n  // too slow.\n  var ondrain = pipeOnDrain(src);\n  dest.on('drain', ondrain);\n  var cleanedUp = false;\n  function cleanup() {\n    debug('cleanup');\n    // cleanup event handlers once the pipe is broken\n    dest.removeListener('close', onclose);\n    dest.removeListener('finish', onfinish);\n    dest.removeListener('drain', ondrain);\n    dest.removeListener('error', onerror);\n    dest.removeListener('unpipe', onunpipe);\n    src.removeListener('end', onend);\n    src.removeListener('end', unpipe);\n    src.removeListener('data', ondata);\n    cleanedUp = true;\n\n    // if the reader is waiting for a drain event from this\n    // specific writer, then it would cause it to never start\n    // flowing again.\n    // So, if this is awaiting a drain, then we just call it now.\n    // If we don't know, then assume that we are waiting for one.\n    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n  }\n  src.on('data', ondata);\n  function ondata(chunk) {\n    debug('ondata');\n    var ret = dest.write(chunk);\n    debug('dest.write', ret);\n    if (ret === false) {\n      // If the user unpiped during `dest.write()`, it is possible\n      // to get stuck in a permanently paused state if that write\n      // also returned false.\n      // => Check whether `dest` is still a piping destination.\n      if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n        debug('false write response, pause', state.awaitDrain);\n        state.awaitDrain++;\n      }\n      src.pause();\n    }\n  }\n\n  // if the dest has an error, then stop piping into it.\n  // however, don't suppress the throwing behavior for this.\n  function onerror(er) {\n    debug('onerror', er);\n    unpipe();\n    dest.removeListener('error', onerror);\n    if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n  }\n\n  // Make sure our error handler is attached before userland ones.\n  prependListener(dest, 'error', onerror);\n\n  // Both close and finish should trigger unpipe, but only once.\n  function onclose() {\n    dest.removeListener('finish', onfinish);\n    unpipe();\n  }\n  dest.once('close', onclose);\n  function onfinish() {\n    debug('onfinish');\n    dest.removeListener('close', onclose);\n    unpipe();\n  }\n  dest.once('finish', onfinish);\n  function unpipe() {\n    debug('unpipe');\n    src.unpipe(dest);\n  }\n\n  // tell the dest that it's being piped to\n  dest.emit('pipe', src);\n\n  // start the flow if it hasn't been started already.\n  if (!state.flowing) {\n    debug('pipe resume');\n    src.resume();\n  }\n  return dest;\n};\nfunction pipeOnDrain(src) {\n  return function pipeOnDrainFunctionResult() {\n    var state = src._readableState;\n    debug('pipeOnDrain', state.awaitDrain);\n    if (state.awaitDrain) state.awaitDrain--;\n    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n      state.flowing = true;\n      flow(src);\n    }\n  };\n}\nReadable.prototype.unpipe = function (dest) {\n  var state = this._readableState;\n  var unpipeInfo = {\n    hasUnpiped: false\n  };\n\n  // if we're not piping anywhere, then do nothing.\n  if (state.pipesCount === 0) return this;\n\n  // just one destination.  most common case.\n  if (state.pipesCount === 1) {\n    // passed in one, but it's not the right one.\n    if (dest && dest !== state.pipes) return this;\n    if (!dest) dest = state.pipes;\n\n    // got a match.\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n    if (dest) dest.emit('unpipe', this, unpipeInfo);\n    return this;\n  }\n\n  // slow case. multiple pipe destinations.\n\n  if (!dest) {\n    // remove all.\n    var dests = state.pipes;\n    var len = state.pipesCount;\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n    for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n      hasUnpiped: false\n    });\n    return this;\n  }\n\n  // try to find the right one.\n  var index = indexOf(state.pipes, dest);\n  if (index === -1) return this;\n  state.pipes.splice(index, 1);\n  state.pipesCount -= 1;\n  if (state.pipesCount === 1) state.pipes = state.pipes[0];\n  dest.emit('unpipe', this, unpipeInfo);\n  return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n  var res = Stream.prototype.on.call(this, ev, fn);\n  var state = this._readableState;\n  if (ev === 'data') {\n    // update readableListening so that resume() may be a no-op\n    // a few lines down. This is needed to support once('readable').\n    state.readableListening = this.listenerCount('readable') > 0;\n\n    // Try start flowing on next tick if stream isn't explicitly paused\n    if (state.flowing !== false) this.resume();\n  } else if (ev === 'readable') {\n    if (!state.endEmitted && !state.readableListening) {\n      state.readableListening = state.needReadable = true;\n      state.flowing = false;\n      state.emittedReadable = false;\n      debug('on readable', state.length, state.reading);\n      if (state.length) {\n        emitReadable(this);\n      } else if (!state.reading) {\n        process.nextTick(nReadingNextTick, this);\n      }\n    }\n  }\n  return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n  var res = Stream.prototype.removeListener.call(this, ev, fn);\n  if (ev === 'readable') {\n    // We need to check if there is someone still listening to\n    // readable and reset the state. However this needs to happen\n    // after readable has been emitted but before I/O (nextTick) to\n    // support once('readable', fn) cycles. This means that calling\n    // resume within the same tick will have no\n    // effect.\n    process.nextTick(updateReadableListening, this);\n  }\n  return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n  var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n  if (ev === 'readable' || ev === undefined) {\n    // We need to check if there is someone still listening to\n    // readable and reset the state. However this needs to happen\n    // after readable has been emitted but before I/O (nextTick) to\n    // support once('readable', fn) cycles. This means that calling\n    // resume within the same tick will have no\n    // effect.\n    process.nextTick(updateReadableListening, this);\n  }\n  return res;\n};\nfunction updateReadableListening(self) {\n  var state = self._readableState;\n  state.readableListening = self.listenerCount('readable') > 0;\n  if (state.resumeScheduled && !state.paused) {\n    // flowing needs to be set to true now, otherwise\n    // the upcoming resume will not flow.\n    state.flowing = true;\n\n    // crude way to check if we should resume\n  } else if (self.listenerCount('data') > 0) {\n    self.resume();\n  }\n}\nfunction nReadingNextTick(self) {\n  debug('readable nexttick read 0');\n  self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n  var state = this._readableState;\n  if (!state.flowing) {\n    debug('resume');\n    // we flow only if there is no one listening\n    // for readable, but we still have to call\n    // resume()\n    state.flowing = !state.readableListening;\n    resume(this, state);\n  }\n  state.paused = false;\n  return this;\n};\nfunction resume(stream, state) {\n  if (!state.resumeScheduled) {\n    state.resumeScheduled = true;\n    process.nextTick(resume_, stream, state);\n  }\n}\nfunction resume_(stream, state) {\n  debug('resume', state.reading);\n  if (!state.reading) {\n    stream.read(0);\n  }\n  state.resumeScheduled = false;\n  stream.emit('resume');\n  flow(stream);\n  if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n  debug('call pause flowing=%j', this._readableState.flowing);\n  if (this._readableState.flowing !== false) {\n    debug('pause');\n    this._readableState.flowing = false;\n    this.emit('pause');\n  }\n  this._readableState.paused = true;\n  return this;\n};\nfunction flow(stream) {\n  var state = stream._readableState;\n  debug('flow', state.flowing);\n  while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n  var _this = this;\n  var state = this._readableState;\n  var paused = false;\n  stream.on('end', function () {\n    debug('wrapped end');\n    if (state.decoder && !state.ended) {\n      var chunk = state.decoder.end();\n      if (chunk && chunk.length) _this.push(chunk);\n    }\n    _this.push(null);\n  });\n  stream.on('data', function (chunk) {\n    debug('wrapped data');\n    if (state.decoder) chunk = state.decoder.write(chunk);\n\n    // don't skip over falsy values in objectMode\n    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n    var ret = _this.push(chunk);\n    if (!ret) {\n      paused = true;\n      stream.pause();\n    }\n  });\n\n  // proxy all the other methods.\n  // important when wrapping filters and duplexes.\n  for (var i in stream) {\n    if (this[i] === undefined && typeof stream[i] === 'function') {\n      this[i] = function methodWrap(method) {\n        return function methodWrapReturnFunction() {\n          return stream[method].apply(stream, arguments);\n        };\n      }(i);\n    }\n  }\n\n  // proxy certain important events.\n  for (var n = 0; n < kProxyEvents.length; n++) {\n    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n  }\n\n  // when we try to consume some more bytes, simply unpause the\n  // underlying stream.\n  this._read = function (n) {\n    debug('wrapped _read', n);\n    if (paused) {\n      paused = false;\n      stream.resume();\n    }\n  };\n  return this;\n};\nif (typeof Symbol === 'function') {\n  Readable.prototype[Symbol.asyncIterator] = function () {\n    if (createReadableStreamAsyncIterator === undefined) {\n      createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n    }\n    return createReadableStreamAsyncIterator(this);\n  };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.highWaterMark;\n  }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState && this._readableState.buffer;\n  }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.flowing;\n  },\n  set: function set(state) {\n    if (this._readableState) {\n      this._readableState.flowing = state;\n    }\n  }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.length;\n  }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n  // nothing buffered\n  if (state.length === 0) return null;\n  var ret;\n  if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n    // read it all, truncate the list\n    if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n    state.buffer.clear();\n  } else {\n    // read part of list\n    ret = state.buffer.consume(n, state.decoder);\n  }\n  return ret;\n}\nfunction endReadable(stream) {\n  var state = stream._readableState;\n  debug('endReadable', state.endEmitted);\n  if (!state.endEmitted) {\n    state.ended = true;\n    process.nextTick(endReadableNT, state, stream);\n  }\n}\nfunction endReadableNT(state, stream) {\n  debug('endReadableNT', state.endEmitted, state.length);\n\n  // Check that we didn't get one last unshift.\n  if (!state.endEmitted && state.length === 0) {\n    state.endEmitted = true;\n    stream.readable = false;\n    stream.emit('end');\n    if (state.autoDestroy) {\n      // In case of duplex streams we need a way to detect\n      // if the writable side is ready for autoDestroy as well\n      var wState = stream._writableState;\n      if (!wState || wState.autoDestroy && wState.finished) {\n        stream.destroy();\n      }\n    }\n  }\n}\nif (typeof Symbol === 'function') {\n  Readable.from = function (iterable, opts) {\n    if (from === undefined) {\n      from = require('./internal/streams/from');\n    }\n    return from(Readable, iterable, opts);\n  };\n}\nfunction indexOf(xs, x) {\n  for (var i = 0, l = xs.length; i < l; i++) {\n    if (xs[i] === x) return i;\n  }\n  return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data.  Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored.  (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation.  For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes.  When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up.  When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer.  When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks.  If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk.  However,\n// a pathological inflate type of transform can cause excessive buffering\n// here.  For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output.  In this case, you could write a very small\n// amount of input, and end up with a very large amount of output.  In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform.  A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n  ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n  ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n  ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n  var ts = this._transformState;\n  ts.transforming = false;\n  var cb = ts.writecb;\n  if (cb === null) {\n    return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n  }\n  ts.writechunk = null;\n  ts.writecb = null;\n  if (data != null)\n    // single equals check for both `null` and `undefined`\n    this.push(data);\n  cb(er);\n  var rs = this._readableState;\n  rs.reading = false;\n  if (rs.needReadable || rs.length < rs.highWaterMark) {\n    this._read(rs.highWaterMark);\n  }\n}\nfunction Transform(options) {\n  if (!(this instanceof Transform)) return new Transform(options);\n  Duplex.call(this, options);\n  this._transformState = {\n    afterTransform: afterTransform.bind(this),\n    needTransform: false,\n    transforming: false,\n    writecb: null,\n    writechunk: null,\n    writeencoding: null\n  };\n\n  // start out asking for a readable event once data is transformed.\n  this._readableState.needReadable = true;\n\n  // we have implemented the _read method, and done the other things\n  // that Readable wants before the first _read call, so unset the\n  // sync guard flag.\n  this._readableState.sync = false;\n  if (options) {\n    if (typeof options.transform === 'function') this._transform = options.transform;\n    if (typeof options.flush === 'function') this._flush = options.flush;\n  }\n\n  // When the writable side finishes, then flush out anything remaining.\n  this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n  var _this = this;\n  if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n    this._flush(function (er, data) {\n      done(_this, er, data);\n    });\n  } else {\n    done(this, null, null);\n  }\n}\nTransform.prototype.push = function (chunk, encoding) {\n  this._transformState.needTransform = false;\n  return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side.  You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk.  If you pass\n// an error, then that'll put the hurt on the whole operation.  If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n  cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n  var ts = this._transformState;\n  ts.writecb = cb;\n  ts.writechunk = chunk;\n  ts.writeencoding = encoding;\n  if (!ts.transforming) {\n    var rs = this._readableState;\n    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n  }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n  var ts = this._transformState;\n  if (ts.writechunk !== null && !ts.transforming) {\n    ts.transforming = true;\n    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n  } else {\n    // mark that we need a transform, so that any data that comes in\n    // will get processed, now that we've asked for it.\n    ts.needTransform = true;\n  }\n};\nTransform.prototype._destroy = function (err, cb) {\n  Duplex.prototype._destroy.call(this, err, function (err2) {\n    cb(err2);\n  });\n};\nfunction done(stream, er, data) {\n  if (er) return stream.emit('error', er);\n  if (data != null)\n    // single equals check for both `null` and `undefined`\n    stream.push(data);\n\n  // TODO(BridgeAR): Write a test for these two error cases\n  // if there's nothing in the write buffer, then that means\n  // that nothing more will ever be provided\n  if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n  if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n  return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/*  */\nfunction WriteReq(chunk, encoding, cb) {\n  this.chunk = chunk;\n  this.encoding = encoding;\n  this.callback = cb;\n  this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n  var _this = this;\n  this.next = null;\n  this.entry = null;\n  this.finish = function () {\n    onCorkedFinish(_this, state);\n  };\n}\n/*  */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n  deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n  getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n  ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n  ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n  ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n  ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n  ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n  ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n  ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n  Duplex = Duplex || require('./_stream_duplex');\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream,\n  // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n  // object stream flag to indicate whether or not this stream\n  // contains buffers or objects.\n  this.objectMode = !!options.objectMode;\n  if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n  // the point at which write() starts returning false\n  // Note: 0 is a valid value, means that we always return false if\n  // the entire buffer is not flushed immediately on write()\n  this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n  // if _final has been called\n  this.finalCalled = false;\n\n  // drain event flag.\n  this.needDrain = false;\n  // at the start of calling end()\n  this.ending = false;\n  // when end() has been called, and returned\n  this.ended = false;\n  // when 'finish' is emitted\n  this.finished = false;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // should we decode strings into buffers before passing to _write?\n  // this is here so that some node-core streams can optimize string\n  // handling at a lower level.\n  var noDecode = options.decodeStrings === false;\n  this.decodeStrings = !noDecode;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // not an actual buffer we keep track of, but a measurement\n  // of how much we're waiting to get pushed to some underlying\n  // socket or file.\n  this.length = 0;\n\n  // a flag to see when we're in the middle of a write.\n  this.writing = false;\n\n  // when true all writes will be buffered until .uncork() call\n  this.corked = 0;\n\n  // a flag to be able to tell if the onwrite cb is called immediately,\n  // or on a later tick.  We set this to true at first, because any\n  // actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first write call.\n  this.sync = true;\n\n  // a flag to know if we're processing previously buffered items, which\n  // may call the _write() callback in the same tick, so that we don't\n  // end up in an overlapped onwrite situation.\n  this.bufferProcessing = false;\n\n  // the callback that's passed to _write(chunk,cb)\n  this.onwrite = function (er) {\n    onwrite(stream, er);\n  };\n\n  // the callback that the user supplies to write(chunk,encoding,cb)\n  this.writecb = null;\n\n  // the amount that is being written when _write is called.\n  this.writelen = 0;\n  this.bufferedRequest = null;\n  this.lastBufferedRequest = null;\n\n  // number of pending user-supplied write callbacks\n  // this must be 0 before 'finish' can be emitted\n  this.pendingcb = 0;\n\n  // emit prefinish if the only thing we're waiting for is _write cbs\n  // This is relevant for synchronous Transform streams\n  this.prefinished = false;\n\n  // True if the error was already emitted and should not be thrown again\n  this.errorEmitted = false;\n\n  // Should close be emitted on destroy. Defaults to true.\n  this.emitClose = options.emitClose !== false;\n\n  // Should .destroy() be called after 'finish' (and potentially 'end')\n  this.autoDestroy = !!options.autoDestroy;\n\n  // count buffered requests\n  this.bufferedRequestCount = 0;\n\n  // allocate the first CorkedRequest, there is always\n  // one allocated and free to use, and we maintain at most two\n  this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n  var current = this.bufferedRequest;\n  var out = [];\n  while (current) {\n    out.push(current);\n    current = current.next;\n  }\n  return out;\n};\n(function () {\n  try {\n    Object.defineProperty(WritableState.prototype, 'buffer', {\n      get: internalUtil.deprecate(function writableStateBufferGetter() {\n        return this.getBuffer();\n      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n    });\n  } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n  realHasInstance = Function.prototype[Symbol.hasInstance];\n  Object.defineProperty(Writable, Symbol.hasInstance, {\n    value: function value(object) {\n      if (realHasInstance.call(this, object)) return true;\n      if (this !== Writable) return false;\n      return object && object._writableState instanceof WritableState;\n    }\n  });\n} else {\n  realHasInstance = function realHasInstance(object) {\n    return object instanceof this;\n  };\n}\nfunction Writable(options) {\n  Duplex = Duplex || require('./_stream_duplex');\n\n  // Writable ctor is applied to Duplexes, too.\n  // `realHasInstance` is necessary because using plain `instanceof`\n  // would return false, as no `_writableState` property is attached.\n\n  // Trying to use the custom `instanceof` for Writable here will also break the\n  // Node.js LazyTransform implementation, which has a non-trivial getter for\n  // `_writableState` that would lead to infinite recursion.\n\n  // Checking for a Stream.Duplex instance is faster here instead of inside\n  // the WritableState constructor, at least with V8 6.5\n  var isDuplex = this instanceof Duplex;\n  if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n  this._writableState = new WritableState(options, this, isDuplex);\n\n  // legacy.\n  this.writable = true;\n  if (options) {\n    if (typeof options.write === 'function') this._write = options.write;\n    if (typeof options.writev === 'function') this._writev = options.writev;\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n    if (typeof options.final === 'function') this._final = options.final;\n  }\n  Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n  errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n  var er = new ERR_STREAM_WRITE_AFTER_END();\n  // TODO: defer error events consistently everywhere, not just the cb\n  errorOrDestroy(stream, er);\n  process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n  var er;\n  if (chunk === null) {\n    er = new ERR_STREAM_NULL_VALUES();\n  } else if (typeof chunk !== 'string' && !state.objectMode) {\n    er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n  }\n  if (er) {\n    errorOrDestroy(stream, er);\n    process.nextTick(cb, er);\n    return false;\n  }\n  return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n  var state = this._writableState;\n  var ret = false;\n  var isBuf = !state.objectMode && _isUint8Array(chunk);\n  if (isBuf && !Buffer.isBuffer(chunk)) {\n    chunk = _uint8ArrayToBuffer(chunk);\n  }\n  if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n  if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n  if (typeof cb !== 'function') cb = nop;\n  if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n    state.pendingcb++;\n    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n  }\n  return ret;\n};\nWritable.prototype.cork = function () {\n  this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n  var state = this._writableState;\n  if (state.corked) {\n    state.corked--;\n    if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n  }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n  // node::ParseEncoding() requires lower case.\n  if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n  this._writableState.defaultEncoding = encoding;\n  return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState && this._writableState.getBuffer();\n  }\n});\nfunction decodeChunk(state, chunk, encoding) {\n  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n    chunk = Buffer.from(chunk, encoding);\n  }\n  return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.highWaterMark;\n  }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn.  Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n  if (!isBuf) {\n    var newChunk = decodeChunk(state, chunk, encoding);\n    if (chunk !== newChunk) {\n      isBuf = true;\n      encoding = 'buffer';\n      chunk = newChunk;\n    }\n  }\n  var len = state.objectMode ? 1 : chunk.length;\n  state.length += len;\n  var ret = state.length < state.highWaterMark;\n  // we must ensure that previous needDrain will not be reset to false.\n  if (!ret) state.needDrain = true;\n  if (state.writing || state.corked) {\n    var last = state.lastBufferedRequest;\n    state.lastBufferedRequest = {\n      chunk: chunk,\n      encoding: encoding,\n      isBuf: isBuf,\n      callback: cb,\n      next: null\n    };\n    if (last) {\n      last.next = state.lastBufferedRequest;\n    } else {\n      state.bufferedRequest = state.lastBufferedRequest;\n    }\n    state.bufferedRequestCount += 1;\n  } else {\n    doWrite(stream, state, false, len, chunk, encoding, cb);\n  }\n  return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n  state.writelen = len;\n  state.writecb = cb;\n  state.writing = true;\n  state.sync = true;\n  if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n  state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n  --state.pendingcb;\n  if (sync) {\n    // defer the callback if we are being called synchronously\n    // to avoid piling up things on the stack\n    process.nextTick(cb, er);\n    // this can emit finish, and it will always happen\n    // after error\n    process.nextTick(finishMaybe, stream, state);\n    stream._writableState.errorEmitted = true;\n    errorOrDestroy(stream, er);\n  } else {\n    // the caller expect this to happen before if\n    // it is async\n    cb(er);\n    stream._writableState.errorEmitted = true;\n    errorOrDestroy(stream, er);\n    // this can emit finish, but finish must\n    // always follow error\n    finishMaybe(stream, state);\n  }\n}\nfunction onwriteStateUpdate(state) {\n  state.writing = false;\n  state.writecb = null;\n  state.length -= state.writelen;\n  state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n  var state = stream._writableState;\n  var sync = state.sync;\n  var cb = state.writecb;\n  if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n  onwriteStateUpdate(state);\n  if (er) onwriteError(stream, state, sync, er, cb);else {\n    // Check if we're actually ready to finish, but don't emit yet\n    var finished = needFinish(state) || stream.destroyed;\n    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n      clearBuffer(stream, state);\n    }\n    if (sync) {\n      process.nextTick(afterWrite, stream, state, finished, cb);\n    } else {\n      afterWrite(stream, state, finished, cb);\n    }\n  }\n}\nfunction afterWrite(stream, state, finished, cb) {\n  if (!finished) onwriteDrain(stream, state);\n  state.pendingcb--;\n  cb();\n  finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n  if (state.length === 0 && state.needDrain) {\n    state.needDrain = false;\n    stream.emit('drain');\n  }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n  state.bufferProcessing = true;\n  var entry = state.bufferedRequest;\n  if (stream._writev && entry && entry.next) {\n    // Fast case, write everything using _writev()\n    var l = state.bufferedRequestCount;\n    var buffer = new Array(l);\n    var holder = state.corkedRequestsFree;\n    holder.entry = entry;\n    var count = 0;\n    var allBuffers = true;\n    while (entry) {\n      buffer[count] = entry;\n      if (!entry.isBuf) allBuffers = false;\n      entry = entry.next;\n      count += 1;\n    }\n    buffer.allBuffers = allBuffers;\n    doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n    // doWrite is almost always async, defer these to save a bit of time\n    // as the hot path ends with doWrite\n    state.pendingcb++;\n    state.lastBufferedRequest = null;\n    if (holder.next) {\n      state.corkedRequestsFree = holder.next;\n      holder.next = null;\n    } else {\n      state.corkedRequestsFree = new CorkedRequest(state);\n    }\n    state.bufferedRequestCount = 0;\n  } else {\n    // Slow case, write chunks one-by-one\n    while (entry) {\n      var chunk = entry.chunk;\n      var encoding = entry.encoding;\n      var cb = entry.callback;\n      var len = state.objectMode ? 1 : chunk.length;\n      doWrite(stream, state, false, len, chunk, encoding, cb);\n      entry = entry.next;\n      state.bufferedRequestCount--;\n      // if we didn't call the onwrite immediately, then\n      // it means that we need to wait until it does.\n      // also, that means that the chunk and cb are currently\n      // being processed, so move the buffer counter past them.\n      if (state.writing) {\n        break;\n      }\n    }\n    if (entry === null) state.lastBufferedRequest = null;\n  }\n  state.bufferedRequest = entry;\n  state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n  cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n  var state = this._writableState;\n  if (typeof chunk === 'function') {\n    cb = chunk;\n    chunk = null;\n    encoding = null;\n  } else if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n  // .end() fully uncorks\n  if (state.corked) {\n    state.corked = 1;\n    this.uncork();\n  }\n\n  // ignore unnecessary end() calls.\n  if (!state.ending) endWritable(this, state, cb);\n  return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.length;\n  }\n});\nfunction needFinish(state) {\n  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n  stream._final(function (err) {\n    state.pendingcb--;\n    if (err) {\n      errorOrDestroy(stream, err);\n    }\n    state.prefinished = true;\n    stream.emit('prefinish');\n    finishMaybe(stream, state);\n  });\n}\nfunction prefinish(stream, state) {\n  if (!state.prefinished && !state.finalCalled) {\n    if (typeof stream._final === 'function' && !state.destroyed) {\n      state.pendingcb++;\n      state.finalCalled = true;\n      process.nextTick(callFinal, stream, state);\n    } else {\n      state.prefinished = true;\n      stream.emit('prefinish');\n    }\n  }\n}\nfunction finishMaybe(stream, state) {\n  var need = needFinish(state);\n  if (need) {\n    prefinish(stream, state);\n    if (state.pendingcb === 0) {\n      state.finished = true;\n      stream.emit('finish');\n      if (state.autoDestroy) {\n        // In case of duplex streams we need a way to detect\n        // if the readable side is ready for autoDestroy as well\n        var rState = stream._readableState;\n        if (!rState || rState.autoDestroy && rState.endEmitted) {\n          stream.destroy();\n        }\n      }\n    }\n  }\n  return need;\n}\nfunction endWritable(stream, state, cb) {\n  state.ending = true;\n  finishMaybe(stream, state);\n  if (cb) {\n    if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n  }\n  state.ended = true;\n  stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n  var entry = corkReq.entry;\n  corkReq.entry = null;\n  while (entry) {\n    var cb = entry.callback;\n    state.pendingcb--;\n    cb(err);\n    entry = entry.next;\n  }\n\n  // reuse the free corkReq.\n  state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._writableState === undefined) {\n      return false;\n    }\n    return this._writableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._writableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._writableState.destroyed = value;\n  }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n  cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n  return {\n    value: value,\n    done: done\n  };\n}\nfunction readAndResolve(iter) {\n  var resolve = iter[kLastResolve];\n  if (resolve !== null) {\n    var data = iter[kStream].read();\n    // we defer if data is null\n    // we can be expecting either 'end' or\n    // 'error'\n    if (data !== null) {\n      iter[kLastPromise] = null;\n      iter[kLastResolve] = null;\n      iter[kLastReject] = null;\n      resolve(createIterResult(data, false));\n    }\n  }\n}\nfunction onReadable(iter) {\n  // we wait for the next tick, because it might\n  // emit an error with process.nextTick\n  process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n  return function (resolve, reject) {\n    lastPromise.then(function () {\n      if (iter[kEnded]) {\n        resolve(createIterResult(undefined, true));\n        return;\n      }\n      iter[kHandlePromise](resolve, reject);\n    }, reject);\n  };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n  get stream() {\n    return this[kStream];\n  },\n  next: function next() {\n    var _this = this;\n    // if we have detected an error in the meanwhile\n    // reject straight away\n    var error = this[kError];\n    if (error !== null) {\n      return Promise.reject(error);\n    }\n    if (this[kEnded]) {\n      return Promise.resolve(createIterResult(undefined, true));\n    }\n    if (this[kStream].destroyed) {\n      // We need to defer via nextTick because if .destroy(err) is\n      // called, the error will be emitted via nextTick, and\n      // we cannot guarantee that there is no error lingering around\n      // waiting to be emitted.\n      return new Promise(function (resolve, reject) {\n        process.nextTick(function () {\n          if (_this[kError]) {\n            reject(_this[kError]);\n          } else {\n            resolve(createIterResult(undefined, true));\n          }\n        });\n      });\n    }\n\n    // if we have multiple next() calls\n    // we will wait for the previous Promise to finish\n    // this logic is optimized to support for await loops,\n    // where next() is only called once at a time\n    var lastPromise = this[kLastPromise];\n    var promise;\n    if (lastPromise) {\n      promise = new Promise(wrapForNext(lastPromise, this));\n    } else {\n      // fast path needed to support multiple this.push()\n      // without triggering the next() queue\n      var data = this[kStream].read();\n      if (data !== null) {\n        return Promise.resolve(createIterResult(data, false));\n      }\n      promise = new Promise(this[kHandlePromise]);\n    }\n    this[kLastPromise] = promise;\n    return promise;\n  }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n  return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n  var _this2 = this;\n  // destroy(err, cb) is a private API\n  // we can guarantee we have that here, because we control the\n  // Readable class this is attached to\n  return new Promise(function (resolve, reject) {\n    _this2[kStream].destroy(null, function (err) {\n      if (err) {\n        reject(err);\n        return;\n      }\n      resolve(createIterResult(undefined, true));\n    });\n  });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n  var _Object$create;\n  var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n    value: stream,\n    writable: true\n  }), _defineProperty(_Object$create, kLastResolve, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kLastReject, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kError, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kEnded, {\n    value: stream._readableState.endEmitted,\n    writable: true\n  }), _defineProperty(_Object$create, kHandlePromise, {\n    value: function value(resolve, reject) {\n      var data = iterator[kStream].read();\n      if (data) {\n        iterator[kLastPromise] = null;\n        iterator[kLastResolve] = null;\n        iterator[kLastReject] = null;\n        resolve(createIterResult(data, false));\n      } else {\n        iterator[kLastResolve] = resolve;\n        iterator[kLastReject] = reject;\n      }\n    },\n    writable: true\n  }), _Object$create));\n  iterator[kLastPromise] = null;\n  finished(stream, function (err) {\n    if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n      var reject = iterator[kLastReject];\n      // reject if we are waiting for data in the Promise\n      // returned by next() and store the error\n      if (reject !== null) {\n        iterator[kLastPromise] = null;\n        iterator[kLastResolve] = null;\n        iterator[kLastReject] = null;\n        reject(err);\n      }\n      iterator[kError] = err;\n      return;\n    }\n    var resolve = iterator[kLastResolve];\n    if (resolve !== null) {\n      iterator[kLastPromise] = null;\n      iterator[kLastResolve] = null;\n      iterator[kLastReject] = null;\n      resolve(createIterResult(undefined, true));\n    }\n    iterator[kEnded] = true;\n  });\n  stream.on('readable', onReadable.bind(null, iterator));\n  return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n  Buffer = _require.Buffer;\nvar _require2 = require('util'),\n  inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n  Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n  function BufferList() {\n    _classCallCheck(this, BufferList);\n    this.head = null;\n    this.tail = null;\n    this.length = 0;\n  }\n  _createClass(BufferList, [{\n    key: \"push\",\n    value: function push(v) {\n      var entry = {\n        data: v,\n        next: null\n      };\n      if (this.length > 0) this.tail.next = entry;else this.head = entry;\n      this.tail = entry;\n      ++this.length;\n    }\n  }, {\n    key: \"unshift\",\n    value: function unshift(v) {\n      var entry = {\n        data: v,\n        next: this.head\n      };\n      if (this.length === 0) this.tail = entry;\n      this.head = entry;\n      ++this.length;\n    }\n  }, {\n    key: \"shift\",\n    value: function shift() {\n      if (this.length === 0) return;\n      var ret = this.head.data;\n      if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n      --this.length;\n      return ret;\n    }\n  }, {\n    key: \"clear\",\n    value: function clear() {\n      this.head = this.tail = null;\n      this.length = 0;\n    }\n  }, {\n    key: \"join\",\n    value: function join(s) {\n      if (this.length === 0) return '';\n      var p = this.head;\n      var ret = '' + p.data;\n      while (p = p.next) ret += s + p.data;\n      return ret;\n    }\n  }, {\n    key: \"concat\",\n    value: function concat(n) {\n      if (this.length === 0) return Buffer.alloc(0);\n      var ret = Buffer.allocUnsafe(n >>> 0);\n      var p = this.head;\n      var i = 0;\n      while (p) {\n        copyBuffer(p.data, ret, i);\n        i += p.data.length;\n        p = p.next;\n      }\n      return ret;\n    }\n\n    // Consumes a specified amount of bytes or characters from the buffered data.\n  }, {\n    key: \"consume\",\n    value: function consume(n, hasStrings) {\n      var ret;\n      if (n < this.head.data.length) {\n        // `slice` is the same for buffers and strings.\n        ret = this.head.data.slice(0, n);\n        this.head.data = this.head.data.slice(n);\n      } else if (n === this.head.data.length) {\n        // First chunk is a perfect match.\n        ret = this.shift();\n      } else {\n        // Result spans more than one buffer.\n        ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n      }\n      return ret;\n    }\n  }, {\n    key: \"first\",\n    value: function first() {\n      return this.head.data;\n    }\n\n    // Consumes a specified amount of characters from the buffered data.\n  }, {\n    key: \"_getString\",\n    value: function _getString(n) {\n      var p = this.head;\n      var c = 1;\n      var ret = p.data;\n      n -= ret.length;\n      while (p = p.next) {\n        var str = p.data;\n        var nb = n > str.length ? str.length : n;\n        if (nb === str.length) ret += str;else ret += str.slice(0, n);\n        n -= nb;\n        if (n === 0) {\n          if (nb === str.length) {\n            ++c;\n            if (p.next) this.head = p.next;else this.head = this.tail = null;\n          } else {\n            this.head = p;\n            p.data = str.slice(nb);\n          }\n          break;\n        }\n        ++c;\n      }\n      this.length -= c;\n      return ret;\n    }\n\n    // Consumes a specified amount of bytes from the buffered data.\n  }, {\n    key: \"_getBuffer\",\n    value: function _getBuffer(n) {\n      var ret = Buffer.allocUnsafe(n);\n      var p = this.head;\n      var c = 1;\n      p.data.copy(ret);\n      n -= p.data.length;\n      while (p = p.next) {\n        var buf = p.data;\n        var nb = n > buf.length ? buf.length : n;\n        buf.copy(ret, ret.length - n, 0, nb);\n        n -= nb;\n        if (n === 0) {\n          if (nb === buf.length) {\n            ++c;\n            if (p.next) this.head = p.next;else this.head = this.tail = null;\n          } else {\n            this.head = p;\n            p.data = buf.slice(nb);\n          }\n          break;\n        }\n        ++c;\n      }\n      this.length -= c;\n      return ret;\n    }\n\n    // Make sure the linked list only shows the minimal necessary information.\n  }, {\n    key: custom,\n    value: function value(_, options) {\n      return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n        // Only inspect one level.\n        depth: 0,\n        // It should not recurse.\n        customInspect: false\n      }));\n    }\n  }]);\n  return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n  var _this = this;\n  var readableDestroyed = this._readableState && this._readableState.destroyed;\n  var writableDestroyed = this._writableState && this._writableState.destroyed;\n  if (readableDestroyed || writableDestroyed) {\n    if (cb) {\n      cb(err);\n    } else if (err) {\n      if (!this._writableState) {\n        process.nextTick(emitErrorNT, this, err);\n      } else if (!this._writableState.errorEmitted) {\n        this._writableState.errorEmitted = true;\n        process.nextTick(emitErrorNT, this, err);\n      }\n    }\n    return this;\n  }\n\n  // we set destroyed to true before firing error callbacks in order\n  // to make it re-entrance safe in case destroy() is called within callbacks\n\n  if (this._readableState) {\n    this._readableState.destroyed = true;\n  }\n\n  // if this is a duplex stream mark the writable part as destroyed as well\n  if (this._writableState) {\n    this._writableState.destroyed = true;\n  }\n  this._destroy(err || null, function (err) {\n    if (!cb && err) {\n      if (!_this._writableState) {\n        process.nextTick(emitErrorAndCloseNT, _this, err);\n      } else if (!_this._writableState.errorEmitted) {\n        _this._writableState.errorEmitted = true;\n        process.nextTick(emitErrorAndCloseNT, _this, err);\n      } else {\n        process.nextTick(emitCloseNT, _this);\n      }\n    } else if (cb) {\n      process.nextTick(emitCloseNT, _this);\n      cb(err);\n    } else {\n      process.nextTick(emitCloseNT, _this);\n    }\n  });\n  return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n  emitErrorNT(self, err);\n  emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n  if (self._writableState && !self._writableState.emitClose) return;\n  if (self._readableState && !self._readableState.emitClose) return;\n  self.emit('close');\n}\nfunction undestroy() {\n  if (this._readableState) {\n    this._readableState.destroyed = false;\n    this._readableState.reading = false;\n    this._readableState.ended = false;\n    this._readableState.endEmitted = false;\n  }\n  if (this._writableState) {\n    this._writableState.destroyed = false;\n    this._writableState.ended = false;\n    this._writableState.ending = false;\n    this._writableState.finalCalled = false;\n    this._writableState.prefinished = false;\n    this._writableState.finished = false;\n    this._writableState.errorEmitted = false;\n  }\n}\nfunction emitErrorNT(self, err) {\n  self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n  // We have tests that rely on errors being emitted\n  // in the same tick, so changing this is semver major.\n  // For now when you opt-in to autoDestroy we allow\n  // the error to be emitted nextTick. In a future\n  // semver major update we should change the default to this.\n\n  var rState = stream._readableState;\n  var wState = stream._writableState;\n  if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n  destroy: destroy,\n  undestroy: undestroy,\n  errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n  var called = false;\n  return function () {\n    if (called) return;\n    called = true;\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    callback.apply(this, args);\n  };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n  return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n  if (typeof opts === 'function') return eos(stream, null, opts);\n  if (!opts) opts = {};\n  callback = once(callback || noop);\n  var readable = opts.readable || opts.readable !== false && stream.readable;\n  var writable = opts.writable || opts.writable !== false && stream.writable;\n  var onlegacyfinish = function onlegacyfinish() {\n    if (!stream.writable) onfinish();\n  };\n  var writableEnded = stream._writableState && stream._writableState.finished;\n  var onfinish = function onfinish() {\n    writable = false;\n    writableEnded = true;\n    if (!readable) callback.call(stream);\n  };\n  var readableEnded = stream._readableState && stream._readableState.endEmitted;\n  var onend = function onend() {\n    readable = false;\n    readableEnded = true;\n    if (!writable) callback.call(stream);\n  };\n  var onerror = function onerror(err) {\n    callback.call(stream, err);\n  };\n  var onclose = function onclose() {\n    var err;\n    if (readable && !readableEnded) {\n      if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n      return callback.call(stream, err);\n    }\n    if (writable && !writableEnded) {\n      if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n      return callback.call(stream, err);\n    }\n  };\n  var onrequest = function onrequest() {\n    stream.req.on('finish', onfinish);\n  };\n  if (isRequest(stream)) {\n    stream.on('complete', onfinish);\n    stream.on('abort', onclose);\n    if (stream.req) onrequest();else stream.on('request', onrequest);\n  } else if (writable && !stream._writableState) {\n    // legacy streams\n    stream.on('end', onlegacyfinish);\n    stream.on('close', onlegacyfinish);\n  }\n  stream.on('end', onend);\n  stream.on('finish', onfinish);\n  if (opts.error !== false) stream.on('error', onerror);\n  stream.on('close', onclose);\n  return function () {\n    stream.removeListener('complete', onfinish);\n    stream.removeListener('abort', onclose);\n    stream.removeListener('request', onrequest);\n    if (stream.req) stream.req.removeListener('finish', onfinish);\n    stream.removeListener('end', onlegacyfinish);\n    stream.removeListener('close', onlegacyfinish);\n    stream.removeListener('finish', onfinish);\n    stream.removeListener('end', onend);\n    stream.removeListener('error', onerror);\n    stream.removeListener('close', onclose);\n  };\n}\nmodule.exports = eos;","module.exports = function () {\n  throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n  var called = false;\n  return function () {\n    if (called) return;\n    called = true;\n    callback.apply(void 0, arguments);\n  };\n}\nvar _require$codes = require('../../../errors').codes,\n  ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n  ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n  // Rethrow the error if it exists to avoid swallowing it\n  if (err) throw err;\n}\nfunction isRequest(stream) {\n  return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n  callback = once(callback);\n  var closed = false;\n  stream.on('close', function () {\n    closed = true;\n  });\n  if (eos === undefined) eos = require('./end-of-stream');\n  eos(stream, {\n    readable: reading,\n    writable: writing\n  }, function (err) {\n    if (err) return callback(err);\n    closed = true;\n    callback();\n  });\n  var destroyed = false;\n  return function (err) {\n    if (closed) return;\n    if (destroyed) return;\n    destroyed = true;\n\n    // request.destroy just do .end - .abort is what we want\n    if (isRequest(stream)) return stream.abort();\n    if (typeof stream.destroy === 'function') return stream.destroy();\n    callback(err || new ERR_STREAM_DESTROYED('pipe'));\n  };\n}\nfunction call(fn) {\n  fn();\n}\nfunction pipe(from, to) {\n  return from.pipe(to);\n}\nfunction popCallback(streams) {\n  if (!streams.length) return noop;\n  if (typeof streams[streams.length - 1] !== 'function') return noop;\n  return streams.pop();\n}\nfunction pipeline() {\n  for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n    streams[_key] = arguments[_key];\n  }\n  var callback = popCallback(streams);\n  if (Array.isArray(streams[0])) streams = streams[0];\n  if (streams.length < 2) {\n    throw new ERR_MISSING_ARGS('streams');\n  }\n  var error;\n  var destroys = streams.map(function (stream, i) {\n    var reading = i < streams.length - 1;\n    var writing = i > 0;\n    return destroyer(stream, reading, writing, function (err) {\n      if (!error) error = err;\n      if (err) destroys.forEach(call);\n      if (reading) return;\n      destroys.forEach(call);\n      callback(error);\n    });\n  });\n  return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n  return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n  var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n  if (hwm != null) {\n    if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n      var name = isDuplex ? duplexKey : 'highWaterMark';\n      throw new ERR_INVALID_OPT_VALUE(name, hwm);\n    }\n    return Math.floor(hwm);\n  }\n\n  // Default value\n  return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n  getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict';\n\nvar required = require('requires-port')\n  , qs = require('querystringify')\n  , controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n  , CRHTLF = /[\\n\\r\\t]/g\n  , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n  , port = /:\\d+$/\n  , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n  , windowsDriveLetter = /^[a-zA-Z]:/;\n\n/**\n * Remove control characters and whitespace from the beginning of a string.\n *\n * @param {Object|String} str String to trim.\n * @returns {String} A new string representing `str` stripped of control\n *     characters and whitespace from its beginning.\n * @public\n */\nfunction trimLeft(str) {\n  return (str ? str : '').toString().replace(controlOrWhitespace, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n *    indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n *    the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n  ['#', 'hash'],                        // Extract from the back.\n  ['?', 'query'],                       // Extract from the back.\n  function sanitize(address, url) {     // Sanitize what is left of the address\n    return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n  },\n  ['/', 'pathname'],                    // Extract from the back.\n  ['@', 'auth', 1],                     // Extract from the front.\n  [NaN, 'host', undefined, 1, 1],       // Set left over value.\n  [/:(\\d*)$/, 'port', undefined, 1],    // RegExp the back.\n  [NaN, 'hostname', undefined, 1, 1]    // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n  var globalVar;\n\n  if (typeof window !== 'undefined') globalVar = window;\n  else if (typeof global !== 'undefined') globalVar = global;\n  else if (typeof self !== 'undefined') globalVar = self;\n  else globalVar = {};\n\n  var location = globalVar.location || {};\n  loc = loc || location;\n\n  var finaldestination = {}\n    , type = typeof loc\n    , key;\n\n  if ('blob:' === loc.protocol) {\n    finaldestination = new Url(unescape(loc.pathname), {});\n  } else if ('string' === type) {\n    finaldestination = new Url(loc, {});\n    for (key in ignore) delete finaldestination[key];\n  } else if ('object' === type) {\n    for (key in loc) {\n      if (key in ignore) continue;\n      finaldestination[key] = loc[key];\n    }\n\n    if (finaldestination.slashes === undefined) {\n      finaldestination.slashes = slashes.test(loc.href);\n    }\n  }\n\n  return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n  return (\n    scheme === 'file:' ||\n    scheme === 'ftp:' ||\n    scheme === 'http:' ||\n    scheme === 'https:' ||\n    scheme === 'ws:' ||\n    scheme === 'wss:'\n  );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n  address = trimLeft(address);\n  address = address.replace(CRHTLF, '');\n  location = location || {};\n\n  var match = protocolre.exec(address);\n  var protocol = match[1] ? match[1].toLowerCase() : '';\n  var forwardSlashes = !!match[2];\n  var otherSlashes = !!match[3];\n  var slashesCount = 0;\n  var rest;\n\n  if (forwardSlashes) {\n    if (otherSlashes) {\n      rest = match[2] + match[3] + match[4];\n      slashesCount = match[2].length + match[3].length;\n    } else {\n      rest = match[2] + match[4];\n      slashesCount = match[2].length;\n    }\n  } else {\n    if (otherSlashes) {\n      rest = match[3] + match[4];\n      slashesCount = match[3].length;\n    } else {\n      rest = match[4]\n    }\n  }\n\n  if (protocol === 'file:') {\n    if (slashesCount >= 2) {\n      rest = rest.slice(2);\n    }\n  } else if (isSpecial(protocol)) {\n    rest = match[4];\n  } else if (protocol) {\n    if (forwardSlashes) {\n      rest = rest.slice(2);\n    }\n  } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n    rest = match[4];\n  }\n\n  return {\n    protocol: protocol,\n    slashes: forwardSlashes || isSpecial(protocol),\n    slashesCount: slashesCount,\n    rest: rest\n  };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n  if (relative === '') return base;\n\n  var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n    , i = path.length\n    , last = path[i - 1]\n    , unshift = false\n    , up = 0;\n\n  while (i--) {\n    if (path[i] === '.') {\n      path.splice(i, 1);\n    } else if (path[i] === '..') {\n      path.splice(i, 1);\n      up++;\n    } else if (up) {\n      if (i === 0) unshift = true;\n      path.splice(i, 1);\n      up--;\n    }\n  }\n\n  if (unshift) path.unshift('');\n  if (last === '.' || last === '..') path.push('');\n\n  return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n  address = trimLeft(address);\n  address = address.replace(CRHTLF, '');\n\n  if (!(this instanceof Url)) {\n    return new Url(address, location, parser);\n  }\n\n  var relative, extracted, parse, instruction, index, key\n    , instructions = rules.slice()\n    , type = typeof location\n    , url = this\n    , i = 0;\n\n  //\n  // The following if statements allows this module two have compatibility with\n  // 2 different API:\n  //\n  // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n  //    where the boolean indicates that the query string should also be parsed.\n  //\n  // 2. The `URL` interface of the browser which accepts a URL, object as\n  //    arguments. The supplied object will be used as default values / fall-back\n  //    for relative paths.\n  //\n  if ('object' !== type && 'string' !== type) {\n    parser = location;\n    location = null;\n  }\n\n  if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n  location = lolcation(location);\n\n  //\n  // Extract protocol information before running the instructions.\n  //\n  extracted = extractProtocol(address || '', location);\n  relative = !extracted.protocol && !extracted.slashes;\n  url.slashes = extracted.slashes || relative && location.slashes;\n  url.protocol = extracted.protocol || location.protocol || '';\n  address = extracted.rest;\n\n  //\n  // When the authority component is absent the URL starts with a path\n  // component.\n  //\n  if (\n    extracted.protocol === 'file:' && (\n      extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n    (!extracted.slashes &&\n      (extracted.protocol ||\n        extracted.slashesCount < 2 ||\n        !isSpecial(url.protocol)))\n  ) {\n    instructions[3] = [/(.*)/, 'pathname'];\n  }\n\n  for (; i < instructions.length; i++) {\n    instruction = instructions[i];\n\n    if (typeof instruction === 'function') {\n      address = instruction(address, url);\n      continue;\n    }\n\n    parse = instruction[0];\n    key = instruction[1];\n\n    if (parse !== parse) {\n      url[key] = address;\n    } else if ('string' === typeof parse) {\n      index = parse === '@'\n        ? address.lastIndexOf(parse)\n        : address.indexOf(parse);\n\n      if (~index) {\n        if ('number' === typeof instruction[2]) {\n          url[key] = address.slice(0, index);\n          address = address.slice(index + instruction[2]);\n        } else {\n          url[key] = address.slice(index);\n          address = address.slice(0, index);\n        }\n      }\n    } else if ((index = parse.exec(address))) {\n      url[key] = index[1];\n      address = address.slice(0, index.index);\n    }\n\n    url[key] = url[key] || (\n      relative && instruction[3] ? location[key] || '' : ''\n    );\n\n    //\n    // Hostname, host and protocol should be lowercased so they can be used to\n    // create a proper `origin`.\n    //\n    if (instruction[4]) url[key] = url[key].toLowerCase();\n  }\n\n  //\n  // Also parse the supplied query string in to an object. If we're supplied\n  // with a custom parser as function use that instead of the default build-in\n  // parser.\n  //\n  if (parser) url.query = parser(url.query);\n\n  //\n  // If the URL is relative, resolve the pathname against the base URL.\n  //\n  if (\n      relative\n    && location.slashes\n    && url.pathname.charAt(0) !== '/'\n    && (url.pathname !== '' || location.pathname !== '')\n  ) {\n    url.pathname = resolve(url.pathname, location.pathname);\n  }\n\n  //\n  // Default to a / for pathname if none exists. This normalizes the URL\n  // to always have a /\n  //\n  if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n    url.pathname = '/' + url.pathname;\n  }\n\n  //\n  // We should not add port numbers if they are already the default port number\n  // for a given protocol. As the host also contains the port number we're going\n  // override it with the hostname which contains no port number.\n  //\n  if (!required(url.port, url.protocol)) {\n    url.host = url.hostname;\n    url.port = '';\n  }\n\n  //\n  // Parse down the `auth` for the username and password.\n  //\n  url.username = url.password = '';\n\n  if (url.auth) {\n    index = url.auth.indexOf(':');\n\n    if (~index) {\n      url.username = url.auth.slice(0, index);\n      url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n      url.password = url.auth.slice(index + 1);\n      url.password = encodeURIComponent(decodeURIComponent(url.password))\n    } else {\n      url.username = encodeURIComponent(decodeURIComponent(url.auth));\n    }\n\n    url.auth = url.password ? url.username +':'+ url.password : url.username;\n  }\n\n  url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n    ? url.protocol +'//'+ url.host\n    : 'null';\n\n  //\n  // The href is just the compiled result.\n  //\n  url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part          Property we need to adjust.\n * @param {Mixed} value          The newly assigned value.\n * @param {Boolean|Function} fn  When setting the query, it will be the function\n *                               used to parse the query.\n *                               When setting the protocol, double slash will be\n *                               removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n  var url = this;\n\n  switch (part) {\n    case 'query':\n      if ('string' === typeof value && value.length) {\n        value = (fn || qs.parse)(value);\n      }\n\n      url[part] = value;\n      break;\n\n    case 'port':\n      url[part] = value;\n\n      if (!required(value, url.protocol)) {\n        url.host = url.hostname;\n        url[part] = '';\n      } else if (value) {\n        url.host = url.hostname +':'+ value;\n      }\n\n      break;\n\n    case 'hostname':\n      url[part] = value;\n\n      if (url.port) value += ':'+ url.port;\n      url.host = value;\n      break;\n\n    case 'host':\n      url[part] = value;\n\n      if (port.test(value)) {\n        value = value.split(':');\n        url.port = value.pop();\n        url.hostname = value.join(':');\n      } else {\n        url.hostname = value;\n        url.port = '';\n      }\n\n      break;\n\n    case 'protocol':\n      url.protocol = value.toLowerCase();\n      url.slashes = !fn;\n      break;\n\n    case 'pathname':\n    case 'hash':\n      if (value) {\n        var char = part === 'pathname' ? '/' : '#';\n        url[part] = value.charAt(0) !== char ? char + value : value;\n      } else {\n        url[part] = value;\n      }\n      break;\n\n    case 'username':\n    case 'password':\n      url[part] = encodeURIComponent(value);\n      break;\n\n    case 'auth':\n      var index = value.indexOf(':');\n\n      if (~index) {\n        url.username = value.slice(0, index);\n        url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n        url.password = value.slice(index + 1);\n        url.password = encodeURIComponent(decodeURIComponent(url.password));\n      } else {\n        url.username = encodeURIComponent(decodeURIComponent(value));\n      }\n  }\n\n  for (var i = 0; i < rules.length; i++) {\n    var ins = rules[i];\n\n    if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n  }\n\n  url.auth = url.password ? url.username +':'+ url.password : url.username;\n\n  url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n    ? url.protocol +'//'+ url.host\n    : 'null';\n\n  url.href = url.toString();\n\n  return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n  if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n  var query\n    , url = this\n    , host = url.host\n    , protocol = url.protocol;\n\n  if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n  var result =\n    protocol +\n    ((url.protocol && url.slashes) || isSpecial(url.protocol) ? '//' : '');\n\n  if (url.username) {\n    result += url.username;\n    if (url.password) result += ':'+ url.password;\n    result += '@';\n  } else if (url.password) {\n    result += ':'+ url.password;\n    result += '@';\n  } else if (\n    url.protocol !== 'file:' &&\n    isSpecial(url.protocol) &&\n    !host &&\n    url.pathname !== '/'\n  ) {\n    //\n    // Add back the empty userinfo, otherwise the original invalid URL\n    // might be transformed into a valid one with `url.pathname` as host.\n    //\n    result += '@';\n  }\n\n  //\n  // Trailing colon is removed from `url.host` when it is parsed. If it still\n  // ends with a colon, then add back the trailing colon that was removed. This\n  // prevents an invalid URL from being transformed into a valid one.\n  //\n  if (host[host.length - 1] === ':' || (port.test(url.hostname) && !url.port)) {\n    host += ':';\n  }\n\n  result += host + url.pathname;\n\n  query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n  if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n  if (url.hash) result += url.hash;\n\n  return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n","/*\n * Copyright Joyent, Inc. and other Node contributors.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to permit\n * persons to whom the Software is furnished to do so, subject to the\n * following conditions:\n *\n * The above copyright notice and this permission notice shall be included\n * in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n * USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n'use strict';\n\nvar punycode = require('punycode/');\n\nfunction Url() {\n  this.protocol = null;\n  this.slashes = null;\n  this.auth = null;\n  this.host = null;\n  this.port = null;\n  this.hostname = null;\n  this.hash = null;\n  this.search = null;\n  this.query = null;\n  this.pathname = null;\n  this.path = null;\n  this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n/*\n * define these here so at least they only have to be\n * compiled once on the first module load.\n */\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n  portPattern = /:[0-9]*$/,\n\n  // Special case for a simple path URL\n  simplePathPattern = /^(\\/\\/?(?!\\/)[^?\\s]*)(\\?[^\\s]*)?$/,\n\n  /*\n   * RFC 2396: characters reserved for delimiting URLs.\n   * We actually just auto-escape these.\n   */\n  delims = [\n    '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'\n  ],\n\n  // RFC 2396: characters not allowed for various reasons.\n  unwise = [\n    '{', '}', '|', '\\\\', '^', '`'\n  ].concat(delims),\n\n  // Allowed by RFCs, but cause of XSS attacks.  Always escape these.\n  autoEscape = ['\\''].concat(unwise),\n  /*\n   * Characters that are never ever allowed in a hostname.\n   * Note that any invalid chars are also handled, but these\n   * are the ones that are *expected* to be seen, so we fast-path\n   * them.\n   */\n  nonHostChars = [\n    '%', '/', '?', ';', '#'\n  ].concat(autoEscape),\n  hostEndingChars = [\n    '/', '?', '#'\n  ],\n  hostnameMaxLen = 255,\n  hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n  hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n  // protocols that can allow \"unsafe\" and \"unwise\" chars.\n  unsafeProtocol = {\n    javascript: true,\n    'javascript:': true\n  },\n  // protocols that never have a hostname.\n  hostlessProtocol = {\n    javascript: true,\n    'javascript:': true\n  },\n  // protocols that always contain a // bit.\n  slashedProtocol = {\n    http: true,\n    https: true,\n    ftp: true,\n    gopher: true,\n    file: true,\n    'http:': true,\n    'https:': true,\n    'ftp:': true,\n    'gopher:': true,\n    'file:': true\n  },\n  querystring = require('qs');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n  if (url && typeof url === 'object' && url instanceof Url) { return url; }\n\n  var u = new Url();\n  u.parse(url, parseQueryString, slashesDenoteHost);\n  return u;\n}\n\nUrl.prototype.parse = function (url, parseQueryString, slashesDenoteHost) {\n  if (typeof url !== 'string') {\n    throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n  }\n\n  /*\n   * Copy chrome, IE, opera backslash-handling behavior.\n   * Back slashes before the query string get converted to forward slashes\n   * See: https://code.google.com/p/chromium/issues/detail?id=25916\n   */\n  var queryIndex = url.indexOf('?'),\n    splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n    uSplit = url.split(splitter),\n    slashRegex = /\\\\/g;\n  uSplit[0] = uSplit[0].replace(slashRegex, '/');\n  url = uSplit.join(splitter);\n\n  var rest = url;\n\n  /*\n   * trim before proceeding.\n   * This is to support parse stuff like \"  http://foo.com  \\n\"\n   */\n  rest = rest.trim();\n\n  if (!slashesDenoteHost && url.split('#').length === 1) {\n    // Try fast path regexp\n    var simplePath = simplePathPattern.exec(rest);\n    if (simplePath) {\n      this.path = rest;\n      this.href = rest;\n      this.pathname = simplePath[1];\n      if (simplePath[2]) {\n        this.search = simplePath[2];\n        if (parseQueryString) {\n          this.query = querystring.parse(this.search.substr(1));\n        } else {\n          this.query = this.search.substr(1);\n        }\n      } else if (parseQueryString) {\n        this.search = '';\n        this.query = {};\n      }\n      return this;\n    }\n  }\n\n  var proto = protocolPattern.exec(rest);\n  if (proto) {\n    proto = proto[0];\n    var lowerProto = proto.toLowerCase();\n    this.protocol = lowerProto;\n    rest = rest.substr(proto.length);\n  }\n\n  /*\n   * figure out if it's got a host\n   * user@server is *always* interpreted as a hostname, and url\n   * resolution will treat //foo/bar as host=foo,path=bar because that's\n   * how the browser resolves relative URLs.\n   */\n  if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@/]+@[^@/]+/)) {\n    var slashes = rest.substr(0, 2) === '//';\n    if (slashes && !(proto && hostlessProtocol[proto])) {\n      rest = rest.substr(2);\n      this.slashes = true;\n    }\n  }\n\n  if (!hostlessProtocol[proto] && (slashes || (proto && !slashedProtocol[proto]))) {\n\n    /*\n     * there's a hostname.\n     * the first instance of /, ?, ;, or # ends the host.\n     *\n     * If there is an @ in the hostname, then non-host chars *are* allowed\n     * to the left of the last @ sign, unless some host-ending character\n     * comes *before* the @-sign.\n     * URLs are obnoxious.\n     *\n     * ex:\n     * http://a@b@c/ => user:a@b host:c\n     * http://a@b?@c => user:a host:c path:/?@c\n     */\n\n    /*\n     * v0.12 TODO(isaacs): This is not quite how Chrome does things.\n     * Review our test case against browsers more comprehensively.\n     */\n\n    // find the first instance of any hostEndingChars\n    var hostEnd = -1;\n    for (var i = 0; i < hostEndingChars.length; i++) {\n      var hec = rest.indexOf(hostEndingChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n    }\n\n    /*\n     * at this point, either we have an explicit point where the\n     * auth portion cannot go past, or the last @ char is the decider.\n     */\n    var auth, atSign;\n    if (hostEnd === -1) {\n      // atSign can be anywhere.\n      atSign = rest.lastIndexOf('@');\n    } else {\n      /*\n       * atSign must be in auth portion.\n       * http://a@b/c@d => host:b auth:a path:/c@d\n       */\n      atSign = rest.lastIndexOf('@', hostEnd);\n    }\n\n    /*\n     * Now we have a portion which is definitely the auth.\n     * Pull that off.\n     */\n    if (atSign !== -1) {\n      auth = rest.slice(0, atSign);\n      rest = rest.slice(atSign + 1);\n      this.auth = decodeURIComponent(auth);\n    }\n\n    // the host is the remaining to the left of the first non-host char\n    hostEnd = -1;\n    for (var i = 0; i < nonHostChars.length; i++) {\n      var hec = rest.indexOf(nonHostChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n    }\n    // if we still have not hit it, then the entire thing is a host.\n    if (hostEnd === -1) { hostEnd = rest.length; }\n\n    this.host = rest.slice(0, hostEnd);\n    rest = rest.slice(hostEnd);\n\n    // pull out port.\n    this.parseHost();\n\n    /*\n     * we've indicated that there is a hostname,\n     * so even if it's empty, it has to be present.\n     */\n    this.hostname = this.hostname || '';\n\n    /*\n     * if hostname begins with [ and ends with ]\n     * assume that it's an IPv6 address.\n     */\n    var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']';\n\n    // validate a little.\n    if (!ipv6Hostname) {\n      var hostparts = this.hostname.split(/\\./);\n      for (var i = 0, l = hostparts.length; i < l; i++) {\n        var part = hostparts[i];\n        if (!part) { continue; }\n        if (!part.match(hostnamePartPattern)) {\n          var newpart = '';\n          for (var j = 0, k = part.length; j < k; j++) {\n            if (part.charCodeAt(j) > 127) {\n              /*\n               * we replace non-ASCII char with a temporary placeholder\n               * we need this to make sure size of hostname is not\n               * broken by replacing non-ASCII by nothing\n               */\n              newpart += 'x';\n            } else {\n              newpart += part[j];\n            }\n          }\n          // we test again with ASCII char only\n          if (!newpart.match(hostnamePartPattern)) {\n            var validParts = hostparts.slice(0, i);\n            var notHost = hostparts.slice(i + 1);\n            var bit = part.match(hostnamePartStart);\n            if (bit) {\n              validParts.push(bit[1]);\n              notHost.unshift(bit[2]);\n            }\n            if (notHost.length) {\n              rest = '/' + notHost.join('.') + rest;\n            }\n            this.hostname = validParts.join('.');\n            break;\n          }\n        }\n      }\n    }\n\n    if (this.hostname.length > hostnameMaxLen) {\n      this.hostname = '';\n    } else {\n      // hostnames are always lower case.\n      this.hostname = this.hostname.toLowerCase();\n    }\n\n    if (!ipv6Hostname) {\n      /*\n       * IDNA Support: Returns a punycoded representation of \"domain\".\n       * It only converts parts of the domain name that\n       * have non-ASCII characters, i.e. it doesn't matter if\n       * you call it with a domain that already is ASCII-only.\n       */\n      this.hostname = punycode.toASCII(this.hostname);\n    }\n\n    var p = this.port ? ':' + this.port : '';\n    var h = this.hostname || '';\n    this.host = h + p;\n    this.href += this.host;\n\n    /*\n     * strip [ and ] from the hostname\n     * the host field still retains them, though\n     */\n    if (ipv6Hostname) {\n      this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n      if (rest[0] !== '/') {\n        rest = '/' + rest;\n      }\n    }\n  }\n\n  /*\n   * now rest is set to the post-host stuff.\n   * chop off any delim chars.\n   */\n  if (!unsafeProtocol[lowerProto]) {\n\n    /*\n     * First, make 100% sure that any \"autoEscape\" chars get\n     * escaped, even if encodeURIComponent doesn't think they\n     * need to be.\n     */\n    for (var i = 0, l = autoEscape.length; i < l; i++) {\n      var ae = autoEscape[i];\n      if (rest.indexOf(ae) === -1) { continue; }\n      var esc = encodeURIComponent(ae);\n      if (esc === ae) {\n        esc = escape(ae);\n      }\n      rest = rest.split(ae).join(esc);\n    }\n  }\n\n  // chop off from the tail first.\n  var hash = rest.indexOf('#');\n  if (hash !== -1) {\n    // got a fragment string.\n    this.hash = rest.substr(hash);\n    rest = rest.slice(0, hash);\n  }\n  var qm = rest.indexOf('?');\n  if (qm !== -1) {\n    this.search = rest.substr(qm);\n    this.query = rest.substr(qm + 1);\n    if (parseQueryString) {\n      this.query = querystring.parse(this.query);\n    }\n    rest = rest.slice(0, qm);\n  } else if (parseQueryString) {\n    // no query string, but parseQueryString still requested\n    this.search = '';\n    this.query = {};\n  }\n  if (rest) { this.pathname = rest; }\n  if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n    this.pathname = '/';\n  }\n\n  // to support http.request\n  if (this.pathname || this.search) {\n    var p = this.pathname || '';\n    var s = this.search || '';\n    this.path = p + s;\n  }\n\n  // finally, reconstruct the href based on what has been validated.\n  this.href = this.format();\n  return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n  /*\n   * ensure it's an object, and not a string url.\n   * If it's an obj, this is a no-op.\n   * this way, you can call url_format() on strings\n   * to clean up potentially wonky urls.\n   */\n  if (typeof obj === 'string') { obj = urlParse(obj); }\n  if (!(obj instanceof Url)) { return Url.prototype.format.call(obj); }\n  return obj.format();\n}\n\nUrl.prototype.format = function () {\n  var auth = this.auth || '';\n  if (auth) {\n    auth = encodeURIComponent(auth);\n    auth = auth.replace(/%3A/i, ':');\n    auth += '@';\n  }\n\n  var protocol = this.protocol || '',\n    pathname = this.pathname || '',\n    hash = this.hash || '',\n    host = false,\n    query = '';\n\n  if (this.host) {\n    host = auth + this.host;\n  } else if (this.hostname) {\n    host = auth + (this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']');\n    if (this.port) {\n      host += ':' + this.port;\n    }\n  }\n\n  if (this.query && typeof this.query === 'object' && Object.keys(this.query).length) {\n    query = querystring.stringify(this.query, {\n      arrayFormat: 'repeat',\n      addQueryPrefix: false\n    });\n  }\n\n  var search = this.search || (query && ('?' + query)) || '';\n\n  if (protocol && protocol.substr(-1) !== ':') { protocol += ':'; }\n\n  /*\n   * only the slashedProtocols get the //.  Not mailto:, xmpp:, etc.\n   * unless they had them to begin with.\n   */\n  if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {\n    host = '//' + (host || '');\n    if (pathname && pathname.charAt(0) !== '/') { pathname = '/' + pathname; }\n  } else if (!host) {\n    host = '';\n  }\n\n  if (hash && hash.charAt(0) !== '#') { hash = '#' + hash; }\n  if (search && search.charAt(0) !== '?') { search = '?' + search; }\n\n  pathname = pathname.replace(/[?#]/g, function (match) {\n    return encodeURIComponent(match);\n  });\n  search = search.replace('#', '%23');\n\n  return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n  return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function (relative) {\n  return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n  if (!source) { return relative; }\n  return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function (relative) {\n  if (typeof relative === 'string') {\n    var rel = new Url();\n    rel.parse(relative, false, true);\n    relative = rel;\n  }\n\n  var result = new Url();\n  var tkeys = Object.keys(this);\n  for (var tk = 0; tk < tkeys.length; tk++) {\n    var tkey = tkeys[tk];\n    result[tkey] = this[tkey];\n  }\n\n  /*\n   * hash is always overridden, no matter what.\n   * even href=\"\" will remove it.\n   */\n  result.hash = relative.hash;\n\n  // if the relative url is empty, then there's nothing left to do here.\n  if (relative.href === '') {\n    result.href = result.format();\n    return result;\n  }\n\n  // hrefs like //foo/bar always cut to the protocol.\n  if (relative.slashes && !relative.protocol) {\n    // take everything except the protocol from relative\n    var rkeys = Object.keys(relative);\n    for (var rk = 0; rk < rkeys.length; rk++) {\n      var rkey = rkeys[rk];\n      if (rkey !== 'protocol') { result[rkey] = relative[rkey]; }\n    }\n\n    // urlParse appends trailing / to urls like http://www.example.com\n    if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n      result.pathname = '/';\n      result.path = result.pathname;\n    }\n\n    result.href = result.format();\n    return result;\n  }\n\n  if (relative.protocol && relative.protocol !== result.protocol) {\n    /*\n     * if it's a known url protocol, then changing\n     * the protocol does weird things\n     * first, if it's not file:, then we MUST have a host,\n     * and if there was a path\n     * to begin with, then we MUST have a path.\n     * if it is file:, then the host is dropped,\n     * because that's known to be hostless.\n     * anything else is assumed to be absolute.\n     */\n    if (!slashedProtocol[relative.protocol]) {\n      var keys = Object.keys(relative);\n      for (var v = 0; v < keys.length; v++) {\n        var k = keys[v];\n        result[k] = relative[k];\n      }\n      result.href = result.format();\n      return result;\n    }\n\n    result.protocol = relative.protocol;\n    if (!relative.host && !hostlessProtocol[relative.protocol]) {\n      var relPath = (relative.pathname || '').split('/');\n      while (relPath.length && !(relative.host = relPath.shift())) { }\n      if (!relative.host) { relative.host = ''; }\n      if (!relative.hostname) { relative.hostname = ''; }\n      if (relPath[0] !== '') { relPath.unshift(''); }\n      if (relPath.length < 2) { relPath.unshift(''); }\n      result.pathname = relPath.join('/');\n    } else {\n      result.pathname = relative.pathname;\n    }\n    result.search = relative.search;\n    result.query = relative.query;\n    result.host = relative.host || '';\n    result.auth = relative.auth;\n    result.hostname = relative.hostname || relative.host;\n    result.port = relative.port;\n    // to support http.request\n    if (result.pathname || result.search) {\n      var p = result.pathname || '';\n      var s = result.search || '';\n      result.path = p + s;\n    }\n    result.slashes = result.slashes || relative.slashes;\n    result.href = result.format();\n    return result;\n  }\n\n  var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/',\n    isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n    mustEndAbs = isRelAbs || isSourceAbs || (result.host && relative.pathname),\n    removeAllDots = mustEndAbs,\n    srcPath = result.pathname && result.pathname.split('/') || [],\n    relPath = relative.pathname && relative.pathname.split('/') || [],\n    psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n  /*\n   * if the url is a non-slashed url, then relative\n   * links like ../.. should be able\n   * to crawl up to the hostname, as well.  This is strange.\n   * result.protocol has already been set by now.\n   * Later on, put the first path part into the host field.\n   */\n  if (psychotic) {\n    result.hostname = '';\n    result.port = null;\n    if (result.host) {\n      if (srcPath[0] === '') { srcPath[0] = result.host; } else { srcPath.unshift(result.host); }\n    }\n    result.host = '';\n    if (relative.protocol) {\n      relative.hostname = null;\n      relative.port = null;\n      if (relative.host) {\n        if (relPath[0] === '') { relPath[0] = relative.host; } else { relPath.unshift(relative.host); }\n      }\n      relative.host = null;\n    }\n    mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n  }\n\n  if (isRelAbs) {\n    // it's absolute.\n    result.host = relative.host || relative.host === '' ? relative.host : result.host;\n    result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n    result.search = relative.search;\n    result.query = relative.query;\n    srcPath = relPath;\n    // fall through to the dot-handling below.\n  } else if (relPath.length) {\n    /*\n     * it's relative\n     * throw away the existing file, and take the new path instead.\n     */\n    if (!srcPath) { srcPath = []; }\n    srcPath.pop();\n    srcPath = srcPath.concat(relPath);\n    result.search = relative.search;\n    result.query = relative.query;\n  } else if (relative.search != null) {\n    /*\n     * just pull out the search.\n     * like href='?foo'.\n     * Put this after the other two cases because it simplifies the booleans\n     */\n    if (psychotic) {\n      result.host = srcPath.shift();\n      result.hostname = result.host;\n      /*\n       * occationaly the auth can get stuck only in host\n       * this especially happens in cases like\n       * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n       */\n      var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n      if (authInHost) {\n        result.auth = authInHost.shift();\n        result.hostname = authInHost.shift();\n        result.host = result.hostname;\n      }\n    }\n    result.search = relative.search;\n    result.query = relative.query;\n    // to support http.request\n    if (result.pathname !== null || result.search !== null) {\n      result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n    }\n    result.href = result.format();\n    return result;\n  }\n\n  if (!srcPath.length) {\n    /*\n     * no path at all.  easy.\n     * we've already handled the other stuff above.\n     */\n    result.pathname = null;\n    // to support http.request\n    if (result.search) {\n      result.path = '/' + result.search;\n    } else {\n      result.path = null;\n    }\n    result.href = result.format();\n    return result;\n  }\n\n  /*\n   * if a url ENDs in . or .., then it must get a trailing slash.\n   * however, if it ends in anything else non-slashy,\n   * then it must NOT get a trailing slash.\n   */\n  var last = srcPath.slice(-1)[0];\n  var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === '';\n\n  /*\n   * strip single dots, resolve double dots to parent dir\n   * if the path tries to go above the root, `up` ends up > 0\n   */\n  var up = 0;\n  for (var i = srcPath.length; i >= 0; i--) {\n    last = srcPath[i];\n    if (last === '.') {\n      srcPath.splice(i, 1);\n    } else if (last === '..') {\n      srcPath.splice(i, 1);\n      up++;\n    } else if (up) {\n      srcPath.splice(i, 1);\n      up--;\n    }\n  }\n\n  // if the path is allowed to go above the root, restore leading ..s\n  if (!mustEndAbs && !removeAllDots) {\n    for (; up--; up) {\n      srcPath.unshift('..');\n    }\n  }\n\n  if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n    srcPath.unshift('');\n  }\n\n  if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n    srcPath.push('');\n  }\n\n  var isAbsolute = srcPath[0] === '' || (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n  // put the host back\n  if (psychotic) {\n    result.hostname = isAbsolute ? '' : srcPath.length ? srcPath.shift() : '';\n    result.host = result.hostname;\n    /*\n     * occationaly the auth can get stuck only in host\n     * this especially happens in cases like\n     * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n     */\n    var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n    if (authInHost) {\n      result.auth = authInHost.shift();\n      result.hostname = authInHost.shift();\n      result.host = result.hostname;\n    }\n  }\n\n  mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n  if (mustEndAbs && !isAbsolute) {\n    srcPath.unshift('');\n  }\n\n  if (srcPath.length > 0) {\n    result.pathname = srcPath.join('/');\n  } else {\n    result.pathname = null;\n    result.path = null;\n  }\n\n  // to support request.http\n  if (result.pathname !== null || result.search !== null) {\n    result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n  }\n  result.auth = relative.auth || result.auth;\n  result.slashes = result.slashes || relative.slashes;\n  result.href = result.format();\n  return result;\n};\n\nUrl.prototype.parseHost = function () {\n  var host = this.host;\n  var port = portPattern.exec(host);\n  if (port) {\n    port = port[0];\n    if (port !== ':') {\n      this.port = port.substr(1);\n    }\n    host = host.substr(0, host.length - port.length);\n  }\n  if (host) { this.hostname = host; }\n};\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n","module.exports = function isBuffer(arg) {\n  return arg && typeof arg === 'object'\n    && typeof arg.copy === 'function'\n    && typeof arg.fill === 'function'\n    && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n  return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n  var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n  var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n  if (typeof value !== 'object') {\n    return false;\n  }\n  try {\n    prototypeValueOf(value);\n    return true;\n  } catch(e) {\n    return false;\n  }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n  if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n    return ArrayBuffer.isView(value);\n  }\n\n  return (\n    isTypedArray(value) ||\n    isDataView(value)\n  );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n  return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n  return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n  return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n  return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n  return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n  return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n  return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n  return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n  return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n  return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n  return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n  return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n  typeof Map !== 'undefined' &&\n  isMapToString(new Map())\n);\n\nfunction isMap(value) {\n  if (typeof Map === 'undefined') {\n    return false;\n  }\n\n  return isMapToString.working\n    ? isMapToString(value)\n    : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n  return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n  typeof Set !== 'undefined' &&\n  isSetToString(new Set())\n);\nfunction isSet(value) {\n  if (typeof Set === 'undefined') {\n    return false;\n  }\n\n  return isSetToString.working\n    ? isSetToString(value)\n    : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n  return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n  typeof WeakMap !== 'undefined' &&\n  isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n  if (typeof WeakMap === 'undefined') {\n    return false;\n  }\n\n  return isWeakMapToString.working\n    ? isWeakMapToString(value)\n    : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n  return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n  typeof WeakSet !== 'undefined' &&\n  isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n  return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n  return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n  typeof ArrayBuffer !== 'undefined' &&\n  isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n  if (typeof ArrayBuffer === 'undefined') {\n    return false;\n  }\n\n  return isArrayBufferToString.working\n    ? isArrayBufferToString(value)\n    : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n  return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n  typeof ArrayBuffer !== 'undefined' &&\n  typeof DataView !== 'undefined' &&\n  isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n  if (typeof DataView === 'undefined') {\n    return false;\n  }\n\n  return isDataViewToString.working\n    ? isDataViewToString(value)\n    : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n  return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n  if (typeof SharedArrayBufferCopy === 'undefined') {\n    return false;\n  }\n\n  if (typeof isSharedArrayBufferToString.working === 'undefined') {\n    isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n  }\n\n  return isSharedArrayBufferToString.working\n    ? isSharedArrayBufferToString(value)\n    : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n  return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n  return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n  return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n  return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n  return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n  return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n  return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n  return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n  return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n  return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n  return (\n    isNumberObject(value) ||\n    isStringObject(value) ||\n    isBooleanObject(value) ||\n    isBigIntObject(value) ||\n    isSymbolObject(value)\n  );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n  return typeof Uint8Array !== 'undefined' && (\n    isArrayBuffer(value) ||\n    isSharedArrayBuffer(value)\n  );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n  Object.defineProperty(exports, method, {\n    enumerable: false,\n    value: function() {\n      throw new Error(method + ' is not supported in userland');\n    }\n  });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n  function getOwnPropertyDescriptors(obj) {\n    var keys = Object.keys(obj);\n    var descriptors = {};\n    for (var i = 0; i < keys.length; i++) {\n      descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n    }\n    return descriptors;\n  };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n  if (!isString(f)) {\n    var objects = [];\n    for (var i = 0; i < arguments.length; i++) {\n      objects.push(inspect(arguments[i]));\n    }\n    return objects.join(' ');\n  }\n\n  var i = 1;\n  var args = arguments;\n  var len = args.length;\n  var str = String(f).replace(formatRegExp, function(x) {\n    if (x === '%%') return '%';\n    if (i >= len) return x;\n    switch (x) {\n      case '%s': return String(args[i++]);\n      case '%d': return Number(args[i++]);\n      case '%j':\n        try {\n          return JSON.stringify(args[i++]);\n        } catch (_) {\n          return '[Circular]';\n        }\n      default:\n        return x;\n    }\n  });\n  for (var x = args[i]; i < len; x = args[++i]) {\n    if (isNull(x) || !isObject(x)) {\n      str += ' ' + x;\n    } else {\n      str += ' ' + inspect(x);\n    }\n  }\n  return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n  if (typeof process !== 'undefined' && process.noDeprecation === true) {\n    return fn;\n  }\n\n  // Allow for deprecating things in the process of starting up.\n  if (typeof process === 'undefined') {\n    return function() {\n      return exports.deprecate(fn, msg).apply(this, arguments);\n    };\n  }\n\n  var warned = false;\n  function deprecated() {\n    if (!warned) {\n      if (process.throwDeprecation) {\n        throw new Error(msg);\n      } else if (process.traceDeprecation) {\n        console.trace(msg);\n      } else {\n        console.error(msg);\n      }\n      warned = true;\n    }\n    return fn.apply(this, arguments);\n  }\n\n  return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n  var debugEnv = process.env.NODE_DEBUG;\n  debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n    .replace(/\\*/g, '.*')\n    .replace(/,/g, '$|^')\n    .toUpperCase();\n  debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n  set = set.toUpperCase();\n  if (!debugs[set]) {\n    if (debugEnvRegex.test(set)) {\n      var pid = process.pid;\n      debugs[set] = function() {\n        var msg = exports.format.apply(exports, arguments);\n        console.error('%s %d: %s', set, pid, msg);\n      };\n    } else {\n      debugs[set] = function() {};\n    }\n  }\n  return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n  // default options\n  var ctx = {\n    seen: [],\n    stylize: stylizeNoColor\n  };\n  // legacy...\n  if (arguments.length >= 3) ctx.depth = arguments[2];\n  if (arguments.length >= 4) ctx.colors = arguments[3];\n  if (isBoolean(opts)) {\n    // legacy...\n    ctx.showHidden = opts;\n  } else if (opts) {\n    // got an \"options\" object\n    exports._extend(ctx, opts);\n  }\n  // set default options\n  if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n  if (isUndefined(ctx.depth)) ctx.depth = 2;\n  if (isUndefined(ctx.colors)) ctx.colors = false;\n  if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n  if (ctx.colors) ctx.stylize = stylizeWithColor;\n  return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n  'bold' : [1, 22],\n  'italic' : [3, 23],\n  'underline' : [4, 24],\n  'inverse' : [7, 27],\n  'white' : [37, 39],\n  'grey' : [90, 39],\n  'black' : [30, 39],\n  'blue' : [34, 39],\n  'cyan' : [36, 39],\n  'green' : [32, 39],\n  'magenta' : [35, 39],\n  'red' : [31, 39],\n  'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n  'special': 'cyan',\n  'number': 'yellow',\n  'boolean': 'yellow',\n  'undefined': 'grey',\n  'null': 'bold',\n  'string': 'green',\n  'date': 'magenta',\n  // \"name\": intentionally not styling\n  'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n  var style = inspect.styles[styleType];\n\n  if (style) {\n    return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n           '\\u001b[' + inspect.colors[style][1] + 'm';\n  } else {\n    return str;\n  }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n  return str;\n}\n\n\nfunction arrayToHash(array) {\n  var hash = {};\n\n  array.forEach(function(val, idx) {\n    hash[val] = true;\n  });\n\n  return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n  // Provide a hook for user-specified inspect functions.\n  // Check that value is an object with an inspect function on it\n  if (ctx.customInspect &&\n      value &&\n      isFunction(value.inspect) &&\n      // Filter out the util module, it's inspect function is special\n      value.inspect !== exports.inspect &&\n      // Also filter out any prototype objects using the circular check.\n      !(value.constructor && value.constructor.prototype === value)) {\n    var ret = value.inspect(recurseTimes, ctx);\n    if (!isString(ret)) {\n      ret = formatValue(ctx, ret, recurseTimes);\n    }\n    return ret;\n  }\n\n  // Primitive types cannot have properties\n  var primitive = formatPrimitive(ctx, value);\n  if (primitive) {\n    return primitive;\n  }\n\n  // Look up the keys of the object.\n  var keys = Object.keys(value);\n  var visibleKeys = arrayToHash(keys);\n\n  if (ctx.showHidden) {\n    keys = Object.getOwnPropertyNames(value);\n  }\n\n  // IE doesn't make error fields non-enumerable\n  // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n  if (isError(value)\n      && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n    return formatError(value);\n  }\n\n  // Some type of object without properties can be shortcutted.\n  if (keys.length === 0) {\n    if (isFunction(value)) {\n      var name = value.name ? ': ' + value.name : '';\n      return ctx.stylize('[Function' + name + ']', 'special');\n    }\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    }\n    if (isDate(value)) {\n      return ctx.stylize(Date.prototype.toString.call(value), 'date');\n    }\n    if (isError(value)) {\n      return formatError(value);\n    }\n  }\n\n  var base = '', array = false, braces = ['{', '}'];\n\n  // Make Array say that they are Array\n  if (isArray(value)) {\n    array = true;\n    braces = ['[', ']'];\n  }\n\n  // Make functions say that they are functions\n  if (isFunction(value)) {\n    var n = value.name ? ': ' + value.name : '';\n    base = ' [Function' + n + ']';\n  }\n\n  // Make RegExps say that they are RegExps\n  if (isRegExp(value)) {\n    base = ' ' + RegExp.prototype.toString.call(value);\n  }\n\n  // Make dates with properties first say the date\n  if (isDate(value)) {\n    base = ' ' + Date.prototype.toUTCString.call(value);\n  }\n\n  // Make error with message first say the error\n  if (isError(value)) {\n    base = ' ' + formatError(value);\n  }\n\n  if (keys.length === 0 && (!array || value.length == 0)) {\n    return braces[0] + base + braces[1];\n  }\n\n  if (recurseTimes < 0) {\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    } else {\n      return ctx.stylize('[Object]', 'special');\n    }\n  }\n\n  ctx.seen.push(value);\n\n  var output;\n  if (array) {\n    output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n  } else {\n    output = keys.map(function(key) {\n      return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n    });\n  }\n\n  ctx.seen.pop();\n\n  return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n  if (isUndefined(value))\n    return ctx.stylize('undefined', 'undefined');\n  if (isString(value)) {\n    var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n                                             .replace(/'/g, \"\\\\'\")\n                                             .replace(/\\\\\"/g, '\"') + '\\'';\n    return ctx.stylize(simple, 'string');\n  }\n  if (isNumber(value))\n    return ctx.stylize('' + value, 'number');\n  if (isBoolean(value))\n    return ctx.stylize('' + value, 'boolean');\n  // For some reason typeof null is \"object\", so special case here.\n  if (isNull(value))\n    return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n  return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n  var output = [];\n  for (var i = 0, l = value.length; i < l; ++i) {\n    if (hasOwnProperty(value, String(i))) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          String(i), true));\n    } else {\n      output.push('');\n    }\n  }\n  keys.forEach(function(key) {\n    if (!key.match(/^\\d+$/)) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          key, true));\n    }\n  });\n  return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n  var name, str, desc;\n  desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n  if (desc.get) {\n    if (desc.set) {\n      str = ctx.stylize('[Getter/Setter]', 'special');\n    } else {\n      str = ctx.stylize('[Getter]', 'special');\n    }\n  } else {\n    if (desc.set) {\n      str = ctx.stylize('[Setter]', 'special');\n    }\n  }\n  if (!hasOwnProperty(visibleKeys, key)) {\n    name = '[' + key + ']';\n  }\n  if (!str) {\n    if (ctx.seen.indexOf(desc.value) < 0) {\n      if (isNull(recurseTimes)) {\n        str = formatValue(ctx, desc.value, null);\n      } else {\n        str = formatValue(ctx, desc.value, recurseTimes - 1);\n      }\n      if (str.indexOf('\\n') > -1) {\n        if (array) {\n          str = str.split('\\n').map(function(line) {\n            return '  ' + line;\n          }).join('\\n').slice(2);\n        } else {\n          str = '\\n' + str.split('\\n').map(function(line) {\n            return '   ' + line;\n          }).join('\\n');\n        }\n      }\n    } else {\n      str = ctx.stylize('[Circular]', 'special');\n    }\n  }\n  if (isUndefined(name)) {\n    if (array && key.match(/^\\d+$/)) {\n      return str;\n    }\n    name = JSON.stringify('' + key);\n    if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n      name = name.slice(1, -1);\n      name = ctx.stylize(name, 'name');\n    } else {\n      name = name.replace(/'/g, \"\\\\'\")\n                 .replace(/\\\\\"/g, '\"')\n                 .replace(/(^\"|\"$)/g, \"'\");\n      name = ctx.stylize(name, 'string');\n    }\n  }\n\n  return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n  var numLinesEst = 0;\n  var length = output.reduce(function(prev, cur) {\n    numLinesEst++;\n    if (cur.indexOf('\\n') >= 0) numLinesEst++;\n    return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n  }, 0);\n\n  if (length > 60) {\n    return braces[0] +\n           (base === '' ? '' : base + '\\n ') +\n           ' ' +\n           output.join(',\\n  ') +\n           ' ' +\n           braces[1];\n  }\n\n  return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n  return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n  return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n  return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n  return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n  return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n  return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n  return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n  return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n  return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n  return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n  return isObject(e) &&\n      (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n  return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n  return arg === null ||\n         typeof arg === 'boolean' ||\n         typeof arg === 'number' ||\n         typeof arg === 'string' ||\n         typeof arg === 'symbol' ||  // ES6 symbol\n         typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n  return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n  return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n              'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n  var d = new Date();\n  var time = [pad(d.getHours()),\n              pad(d.getMinutes()),\n              pad(d.getSeconds())].join(':');\n  return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n  console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n *     prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n  // Don't do anything if add isn't an object\n  if (!add || !isObject(add)) return origin;\n\n  var keys = Object.keys(add);\n  var i = keys.length;\n  while (i--) {\n    origin[keys[i]] = add[keys[i]];\n  }\n  return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n  return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n  if (typeof original !== 'function')\n    throw new TypeError('The \"original\" argument must be of type Function');\n\n  if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n    var fn = original[kCustomPromisifiedSymbol];\n    if (typeof fn !== 'function') {\n      throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n    }\n    Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n      value: fn, enumerable: false, writable: false, configurable: true\n    });\n    return fn;\n  }\n\n  function fn() {\n    var promiseResolve, promiseReject;\n    var promise = new Promise(function (resolve, reject) {\n      promiseResolve = resolve;\n      promiseReject = reject;\n    });\n\n    var args = [];\n    for (var i = 0; i < arguments.length; i++) {\n      args.push(arguments[i]);\n    }\n    args.push(function (err, value) {\n      if (err) {\n        promiseReject(err);\n      } else {\n        promiseResolve(value);\n      }\n    });\n\n    try {\n      original.apply(this, args);\n    } catch (err) {\n      promiseReject(err);\n    }\n\n    return promise;\n  }\n\n  Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n  if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n    value: fn, enumerable: false, writable: false, configurable: true\n  });\n  return Object.defineProperties(\n    fn,\n    getOwnPropertyDescriptors(original)\n  );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n  // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n  // Because `null` is a special error value in callbacks which means \"no error\n  // occurred\", we error-wrap so the callback consumer can distinguish between\n  // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n  if (!reason) {\n    var newReason = new Error('Promise was rejected with a falsy value');\n    newReason.reason = reason;\n    reason = newReason;\n  }\n  return cb(reason);\n}\n\nfunction callbackify(original) {\n  if (typeof original !== 'function') {\n    throw new TypeError('The \"original\" argument must be of type Function');\n  }\n\n  // We DO NOT return the promise as it gives the user a false sense that\n  // the promise is actually somehow related to the callback's execution\n  // and that the callback throwing will reject the promise.\n  function callbackified() {\n    var args = [];\n    for (var i = 0; i < arguments.length; i++) {\n      args.push(arguments[i]);\n    }\n\n    var maybeCb = args.pop();\n    if (typeof maybeCb !== 'function') {\n      throw new TypeError('The last argument must be of type Function');\n    }\n    var self = this;\n    var cb = function() {\n      return maybeCb.apply(self, arguments);\n    };\n    // In true node style we process the callback on `nextTick` with all the\n    // implications (stack, `uncaughtException`, `async_hooks`)\n    original.apply(this, args)\n      .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n            function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n  }\n\n  Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n  Object.defineProperties(callbackified,\n                          getOwnPropertyDescriptors(original));\n  return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bound');\nvar gOPD = require('gopd');\nvar getProto = require('get-proto');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\n\n/** @type {(array: readonly T[], value: unknown) => number} */\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {import('./types').Getter} Getter */\n/** @type {import('./types').Cache} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getProto) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr && getProto) {\n\t\t\tvar proto = getProto(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor && proto) {\n\t\t\t\tvar superProto = getProto(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\tcache[\n\t\t\t\t/** @type {`$${import('.').TypedArrayName}`} */ ('$' + typedArray)\n\t\t\t] = /** @type {import('./types').BoundSlice | import('./types').BoundSet} */ (\n\t\t\t\t// @ts-expect-error TODO FIXME\n\t\t\t\tcallBind(fn)\n\t\t\t);\n\t\t}\n\t});\n}\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */ (cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n\t\tfunction (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(typedArray, 1));\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */(cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(name, 1));\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\t/** @type {string} */\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n    var target = {}\n\n    for (var i = 0; i < arguments.length; i++) {\n        var source = arguments[i]\n\n        for (var key in source) {\n            if (hasOwnProperty.call(source, key)) {\n                target[key] = source[key]\n            }\n        }\n    }\n\n    return target\n}\n","'use strict';\n\nvar possibleNames = require('possible-typed-array-names');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"1140\":\"490e17ed9c8948d5a9e8\",\"2221\":\"428c2ff62c4b8b3c97fc\",\"4508\":\"04b1afd183e5ecdd9cae\",\"5448\":\"71cfe268d6f1213c4735\",\"5528\":\"1445efe9cbaf4e4cbcb8\",\"5862\":\"580b9c2e231a9169a12f\",\"6015\":\"ebcb6885c1fc8c461988\",\"7859\":\"740587c0c8c350dad157\",\"7910\":\"de857920f8beb5205bbc\",\"8815\":\"9a5c507c75429c9c04e4\"}[chunkId] + \"\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 7062;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7062: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(48439)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","getLoggerBuilder","setApp","detectUser","build","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","assertError","err","isError","Error","obj","Object","prototype","toString","call","Layerr","constructor","errorOptionsOrMessage","messageText","args","arguments","options","shortMessage","length","cause","slice","join","assign","parseArguments","message","super","defineProperty","value","info","_info","captureStackTrace","ctor","constructorOpt","_cause","fullStack","stack","output","SEP_PATH_POSIX","SEP_PATH_WINDOWS","encodePath","filePath","replaced","replace","encodeURIComponent","split","makePathAbsolute","pathStr","startsWith","normalisePath","normalisedPath","test","substr","extractURLPath","fullURL","urlPath","pathname","joinURL","parts","strArray","resultArray","TypeError","match","first","shift","i","component","push","str","normalize","reduce","nextPart","partIndex","generateDigestAuthHeader","digest","url","uri","indexOf","method","toUpperCase","qop","ncString","nc","ha1","algorithm","user","realm","pass","nonce","cnonce","ha1Hash","md5","toLowerCase","ha1Compute","username","password","ha2","digestResponse","authValues","response","opaque","authHeader","k","responseIndicatesDigestAuth","headers","get","CharCodes","BinTrieFlags","EntityDecoderState","DecodingMode","EntityLevel","EncodingMode","fromBase64","text","base64","decode","generateBasicAuthHeader","encode","Map","fromCodePoint","codePointAt","root","WorkerGlobalScope","self","window","globalThis","fetch","bind","AuthType","ErrorCode","setupAuth","context","oauthToken","authType","Auto","Authorization","Digest","hasDigestAuth","createDigestContext","None","Password","Token","token","token_type","access_token","code","InvalidAuthType","Headers","Request","Response","HOT_PATCHER_TYPE","NOOP","createNewItem","original","methods","final","HotPatcher","_configuration","registry","getEmptyAction","__type__","configuration","newAction","control","target","allowTargetOverrides","keys","forEach","foreignKey","hasOwnProperty","execute","key","item","result","_this","apply","sequence","isPatched","patch","opts","chain","patchInline","plugin","restore","setFinal","__patcher","isReactNative","TARGET","cloneShallow","getPrototypeOf","proto","isPlainObject","setPrototypeOf","merge","items","nextItem","mergeObjects","obj1","obj2","Array","isArray","convertResponseHeaders","mergeHeaders","headerPayloads","headerKeys","header","lowerHeader","hasArrayBuffer","ArrayBuffer","objToString","isArrayBuffer","isBuffer","prepareRequestOptions","requestOptions","userOptions","finalOptions","data","signal","httpAgent","httpsAgent","_digest","withCredentials","async","request","requestStandard","ok","status","undefined","requestDigest","requestAuto","re","exec","uid","Math","floor","NONCE_CHARS","random","makeNonce","parseDigestAuth","response2","patcher","body","newHeaders","JSON","stringify","requestDataToFetchBody","credentials","agent","parsedURL","protocol","getFetchOptions","assertValidPattern","pattern","posixClasses","braceEscape","s","rangesToString","ranges","parseClass","glob","position","pos","charAt","negs","sawStart","uflag","escaping","negate","endPos","rangeStart","WHILE","c","cls","unip","u","neg","entries","sranges","snegs","windowsPathsNoEscape","types","Set","isExtglobType","has","startNoDot","addPatternStart","justDots","reSpecials","regExpEscape","qmark","star","starNoEmpty","AST","parent","hasMagic","p","map","n","pop","pp","part","copyIn","toJSON","ret","isStart","unshift","isEnd","pl","clone","ast","opt","inBrace","braceStart","braceNeg","acc","noext","ext","substring","fromGlob","toMMPattern","toRegExpSource","nocase","nocaseMagicOnly","flags","RegExp","_src","_glob","allowDot","dot","noEmpty","src","_","start","aps","needNoTrav","needNoDot","end","repeated","bodyDotAllowed","_hasMagic","filter","needUflag","consumed","magic","minimatch","nocomment","Minimatch","starDotExtRE","starDotExtTest","f","endsWith","starDotExtTestDot","starDotExtTestNocase","starDotExtTestNocaseDot","starDotStarRE","starDotStarTest","includes","starDotStarTestDot","dotStarRE","dotStarTest","starRE","starTest","starTestDot","qmarksRE","qmarksTestNocase","$0","qmarksTestNoExt","qmarksTestNocaseDot","qmarksTestNoExtDot","qmarksTestDot","qmarksTest","len","defaultPlatform","process","env","__MINIMATCH_TESTING_PLATFORM__","platform","sep","GLOBSTAR","Symbol","a","b","defaults","def","orig","unescape","escape","makeRe","braceExpand","list","nobrace","mm","nonull","globMagic","set","nonegate","comment","empty","preserveMultipleSlashes","partial","globSet","globParts","isWindows","windowsNoMagicRoot","regexp","allowWindowsEscape","make","magicalBraces","debug","parseNegate","console","error","rawGlobParts","slashSplit","preprocess","__","isUNC","isDrive","ss","parse","noglobstar","j","optimizationLevel","firstPhasePreProcess","secondPhasePreProcess","levelOneOptimize","adjascentGlobstarOptimize","gs","splice","prev","levelTwoFileOptimize","didSomething","dd","gss","next","p2","other","splin","matched","partsMatch","emptyGSMatch","ai","bi","which","negateOffset","matchOne","file","fileDrive","fileUNC","patternDrive","fdi","pdi","fd","pd","fi","pi","fl","fr","pr","swallowee","hit","m","fastTest","Reflect","twoStar","add","open","close","ex","ff","filename","matchBase","flipNegate","createErrorFromResponse","prefix","statusText","handleResponseCode","processResponsePayload","isDetailed","defaultOptions","preserveOrder","attributeNamePrefix","attributesGroupName","textNodeName","ignoreAttributes","removeNSPrefix","allowBooleanAttributes","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","hex","leadingZeros","eNotation","tagValueProcessor","tagName","val","attributeValueProcessor","attrName","stopNodes","alwaysCreateTextNode","commentPropName","unpairedTags","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","jPath","captureMetaData","nameStartChar","regexName","getAllMatches","string","regex","matches","allmatches","startIndex","lastIndex","index","isName","METADATA_SYMBOL","XmlNode","tagname","child","addChild","node","getMetaDataSymbol","DocTypeReader","suppressValidationErr","readDocType","xmlData","entities","angleBracketsCount","hasBody","exp","hasSeq","entityName","readEntityExp","regx","readElementExp","readNotationExp","skipWhitespace","validateEntityName","entityValue","readIdentifierVal","notationName","identifierType","publicIdentifier","systemIdentifier","identifierVal","startChar","elementName","contentModel","trim","readAttlistExp","attributeName","attributeType","allowedNotations","notation","validTypes","defaultValue","seq","hexRegex","numRegex","consider","decimalPoint","eNotationRegx","getIgnoreAttributesFn","OrderedObjParser","currentNode","tagsNodeStack","docTypeEntities","lastEntities","ampEntity","addExternalEntities","parseXml","parseTextData","resolveNameSpace","buildAttributesMap","isItStopNode","replaceEntitiesValue","readStopNodeData","saveTextToParentTag","ignoreAttributesFn","stopNodesExact","stopNodesWildcard","stopNodeExp","externalEntities","entKeys","ent","dontTrim","hasAttributes","isLeafNode","escapeEntities","newval","parseValue","tags","attrsRegx","attrStr","oldVal","aName","newVal","attrCollection","xmlObj","textData","docTypeReader","closeIndex","findClosingIndex","colonIndex","lastTagName","lastIndexOf","propIndex","tagData","readTagExp","childNode","tagExp","attrExpPresent","endIndex","rawTagName","newTagName","lastTag","tagContent","entity","currentTagName","errMsg","closingIndex","closingChar","attrBoundary","ch","tagExpWithClosingIndex","separatorIndex","search","trimStart","openTagCount","shouldParse","trimmedStr","skipLike","numStr","parseInt","parse_int","sign","eChar","eAdjacentToLeadingZeros","resolveEnotation","numTrimmedByZeros","decimalAdjacentToLeadingZeros","num","parsedStr","toNumber","base","codePoint","prettify","compress","arr","compressedObj","tagObj","property","propName","newJpath","isLeaf","isLeafTag","assignAttributes","attrMap","jpath","atrrName","propCount","isWhiteSpace","char","readPI","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","readAttributeStr","tagClosed","validAttrStrRegxp","validateAttributeString","attrNames","getPositionFromMatch","validateAttrName","validateAmpersand","validateNumberAmpersand","count","lineNumber","msg","line","col","validateTagName","lines","XMLParser","buildOptions","validationOption","tagFound","reachedRoot","tagStartPos","closingTag","attrStrStart","isValid","otg","openPos","afterAmp","t","validate","orderedObjParser","orderedResult","addEntity","PropertyType","displaynameTagParser","path","getPropertyOfType","prop","Original","parseXML","xml","attributeParsers","tagParsers","Promise","resolve","multistatus","normaliseResponse","normaliseResult","attrValue","processor","tagValue","getParser","prepareFileFromProps","getlastmodified","lastMod","getcontentlength","rawSize","resourcetype","resourceType","getcontenttype","mimeType","getetag","etag","collection","stat","basename","lastmod","mime","displayname","translateDiskSpace","getStat","details","remoteURL","Accept","Depth","responseData","responseItem","propstat","e","statusLine","statusCodeStr","statusCode","parseStat","parsing","createDirectory","dirPath","recursive","paths","directory","currentPath","getAllDirectories","sort","creating","testPath","createDirectoryRecursively","TRANSFORM_RETAIN_FORMAT","v","toXml","jArray","indentation","format","indentBy","arrToStr","xmlStr","isPreviousElementTag","newJPath","tagText","isStopNode","attStr","attr_to_str","tempInd","piTextNodeName","newIdentation","tagStart","suppressUnpairedNode","suppressEmptyNode","attr","attrVal","suppressBooleanAttributes","textValue","oneListGroup","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","object","level","ajPath","j2x","concat","buildTextValNode","buildObjectNode","repeat","generateLockXML","ownerHREF","namespace","lockinfo","lockscope","exclusive","locktype","write","owner","href","ns","copy","jObj","arrayNodeName","Date","buildAttrPairStr","arrLen","listTagVal","listTagAttr","Ks","L","closeTag","tagEndExp","piClosingChar","DEFAULT_TIMEOUT","getDAVCompliance","compliance","server","DEFAULT_CONTACT_HREF","getRootPath","generateRemoteUrl","client","authTypeRaw","remoteBasePath","contactHref","remotePath","copyFile","destination","Destination","Overwrite","overwrite","shallow","createReadStream","outStream","PassThroughStream","range","rangeHeader","Range","responseError","callback","setTimeout","getFileStream","then","stream","pipe","catch","emit","createWriteStream","writeStream","maxRedirects","customRequest","deleteFile","exists","getDirectoryContents","deep","davResp","_remotePath","files","serverremoteBasePath","requestPath","includeSelf","serverBase","responseItems","nodes","normaliseHREF","decodeURIComponent","getDirectoryFiles","processGlobFilter","getFileContents","InvalidOutputFormat","transformResponse","getFileContentsString","arrayBuffer","Buffer","from","getFileContentsBuffer","getFileDownloadLink","authContents","LinkUnsupportedAuthType","getFileUploadLink","getHeaders","getQuota","quotaUsed","quotaAvail","used","available","parseQuota","lock","refreshToken","timeout","Timeout","If","lockPayload","serverTimeout","moveFile","destinationFilename","putFileContents","contentLength","Readable","byteLength","DataTypeNoLength","calculateDataLength","partialUpdateFileContents","InvalidUpdateRange","partialUpdateFileContentsSabredav","partialUpdateFileContentsApache","NotSupported","searchArbiter","responseText","results","truncated","some","parseSearch","getSearch","setHeaders","unlock","registerAttributeParser","parser","registerTagParser","createClient","requesttoken","onRequestTokenUpdate","getRequestToken","decodeHtmlEntities","passes","DOMParser","decoded","parseFromString","documentElement","textContent","useDeletedCommentLimbo","defineStore","state","idsInLimbo","actions","addId","id","removeId","checkForId","resourceId","required","deleted","editing","loading","computed","mapStores","onEdit","onEditCancel","updateLocalMessage","onEditComment","commentId","commentPath","EditComment","logger","showError","onDeleteWithUndo","deletedCommentLimboStore","timeOutDelete","onDelete","TOAST_UNDO_TIMEOUT","showUndo","clearTimeout","DeleteComment","onNewComment","newComment","resourcePath","axios","post","actorDisplayName","getCurrentUser","displayName","actorId","actorType","creationDateTime","toUTCString","objectType","verb","NewComment","localMessage","components","IconArrowRight","IconClose","IconTrashCanOutline","IconPencilOutline","NcActionButton","NcActions","NcActionSeparator","NcAvatar","NcButton","NcDateTime","NcLoadingIcon","NcRichContenteditable","NcRichText","mixins","CommentMixin","inheritAttrs","editor","Boolean","autoComplete","Function","userData","tag","expanded","submitted","isOwnComment","richContent","mentions","NcUserBubble","label","primary","isEmptyMessage","timestamp","isLimbo","watch","beforeMount","onSubmit","$nextTick","$refs","$el","focus","onExpand","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","directives","rawName","expression","class","scopedSlots","_u","fn","proxy","preventDefault","ref","nativeOn","defineComponent","editorData","currentResourceId","generateOcsUrl","params","itemType","itemId","sorter","limit","loadState","ocs","values","genMentionsData","flat","mention","mentionId","icon","mentionDisplayName","source","getComments","datetime","toISOString","offset","Comment","NcEmptyContent","IconRefresh","IconMessageReplyTextOutline","IconAlertCircleOutline","elementVisibility","CommentView","done","comments","cancelRequest","hasComments","isFirstLoading","onVisibilityChange","isVisible","date","readMarker","markCommentsAsRead","update","resetState","onScrollBottomReached","abort","controller","AbortController","cancelableRequest","findIndex","_l","$set","Vue","use","PiniaVuePlugin","__webpack_nonce__","getCSPNonce","mixin","OCA","Comments","View","pinia","createPinia","propsData","extend","CommentsApp","balanced","maybeMatch","r","pre","reg","begs","beg","left","right","module","exports","freeGlobal","global","InvalidCharacterError","TABLE","REGEX_SPACE_CHARACTERS","input","buffer","padding","charCodeAt","bitStorage","bitCounter","fromCharCode","expand","escSlash","escOpen","escClose","escComma","escPeriod","escapeBraces","unescapeBraces","numeric","parseCommaParts","postParts","embrace","isPadded","el","lte","y","gte","isTop","expansions","expansion","N","isNumericSequence","isAlphaSequence","isSequence","isOptions","x","width","max","incr","abs","pad","need","z","$apply","$call","$reflectApply","actualApply","$TypeError","$actualApply","setFunctionLength","$defineProperty","callBindBasic","applyBind","originalFunction","func","adjustedLength","GetIntrinsic","$indexOf","allowMissing","intrinsic","___CSS_LOADER_EXPORT___","$SyntaxError","gopd","nonEnumerable","nonWritable","nonConfigurable","loose","desc","configurable","enumerable","writable","hasProtoAccessor","callBind","gOPD","__proto__","$Object","$getPrototypeOf","EvalError","RangeError","ReferenceError","SyntaxError","URIError","isCallable","toStr","iterator","thisArg","receiver","array","forEachArray","forEachString","forEachObject","concatty","that","bound","arrLike","slicy","boundLength","boundArgs","joiny","Empty","implementation","cached","$Error","$EvalError","$RangeError","$ReferenceError","$URIError","min","pow","round","$Function","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","getProto","$ObjectGPO","$ReflectGPO","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","Atomics","BigInt","BigInt64Array","BigUint64Array","DataView","decodeURI","encodeURI","eval","Float16Array","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","parseFloat","Proxy","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","getBaseIntrinsic","alias","intrinsicName","last","number","quote","subString","stringToPath","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","reflectGetProto","originalGetProto","getDunderProto","O","getOwnPropertyDescriptor","hasPropertyDescriptors","hasArrayLengthDefineBug","origSymbol","hasSymbolSham","getOwnPropertySymbols","sym","symObj","getOwnPropertyNames","syms","propertyIsEnumerable","descriptor","toStringTag","$hasOwn","http","https","validateParams","cb","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","badArrayLike","isCallableMarker","fnToStr","reflectApply","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","isIE68","isDDA","document","all","strClass","isFnRegex","safeRegexTest","getGeneratorFunction","GeneratorFunction","isRegexMarker","throwRegexMarker","badStringifier","valueOf","toPrimitive","whichTypedArray","$isNaN","_typeof","_wrapNativeSuper","Class","_cache","Wrapper","_construct","_getPrototypeOf","create","_setPrototypeOf","Parent","construct","sham","_isNativeReflectConstruct","instance","o","ObjectPrototypeMutationError","_Error","Constructor","_classCallCheck","_assertThisInitialized","_possibleConstructorReturn","subClass","superClass","_inherits","traverse","segments","_loop","idx","currentSegment","remainingSegments","pathToHere","_ret","isLastSegment","currentObject","currentProperty","nextPropIsNumber","isInteger","nextPropIsArrayWildcard","own","isIn","objectInPath","pathExists","validPath","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","weakMapHas","weakSetHas","weakRefDeref","deref","booleanValueOf","objectToString","functionToString","$match","$slice","$toUpperCase","$toLowerCase","$test","$join","$arrSlice","$floor","bigIntValueOf","gOPS","symToString","hasShammedSymbols","isEnumerable","gPO","addNumericSeparator","Infinity","sepRegex","int","intStr","dec","utilInspect","inspectCustom","custom","inspectSymbol","isSymbol","quotes","single","quoteREs","wrapQuotes","defaultStyle","style","quoteStyle","quoteChar","canTrustToString","isRegExp","inspect_","depth","seen","maxStringLength","customInspect","indent","numericSeparator","inspectString","bigIntStr","maxDepth","baseIndent","getIndent","inspect","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","HTMLElement","nodeName","getAttribute","attributes","childNodes","xs","singleLineValues","indentedJoin","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","isBigInt","isBoolean","isString","isDate","ys","protoTag","stringTag","l","remaining","trailer","quoteRE","lowbyte","lineJoiner","isArr","symMap","util","normalizeArray","allowAboveRoot","res","splitPathRe","posix","posixSplitPath","resolvedPath","resolvedAbsolute","cwd","isAbsolute","trailingSlash","segment","relative","to","fromParts","toParts","samePartsLength","outputParts","_makeLong","dirname","dir","extname","pathObject","isObject","pathString","allParts","delimiter","nodeType","punycode","maxInt","regexPunycode","regexNonASCII","regexSeparators","errors","stringFromCharCode","mapDomain","ucs2decode","extra","counter","ucs2encode","basicToDigit","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","baseMinusTMin","out","basic","oldi","w","baseMinusT","inputLength","bias","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","percentTwenties","Format","formatters","RFC1738","RFC3986","formats","utils","allowDots","allowEmptyArrays","allowPrototypes","allowSparse","arrayLimit","charset","charsetSentinel","comma","decodeDotInKeys","decoder","duplicates","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictDepth","strictNullHandling","throwOnLimitExceeded","numberStr","parseArrayValue","currentArrayLength","parseKeys","givenKey","valuesParsed","segmentContent","splitKeyIntoSegments","parentKey","leaf","isOverflow","combine","cleanRoot","decodedRoot","isValidArrayIndex","markOverflow","parseObject","normalizeParseOptions","tempObj","cleanStr","skipIndex","bracketEqualsPos","maybeMap","encodedVal","existing","parseValues","newObj","compact","getSideChannel","arrayPrefixGenerators","brackets","indices","pushToArray","valueOrArray","toISO","defaultFormat","addQueryPrefix","arrayFormat","commaRoundTrip","encodeDotInKeys","encoder","encodeValuesOnly","formatter","serializeDate","skipNulls","sentinel","generateArrayPrefix","sideChannel","tmpSc","step","findFlag","objKeys","encodedPrefix","adjustedPrefix","encodedKey","keyPrefix","valueSideChannel","normalizeStringifyOptions","joined","overflowChannel","maxIndex","getMaxIndex","setMaxIndex","hexTable","arrayToObject","newIndex","queue","refs","compacted","compactQueue","defaultDecoder","strWithoutPlus","defaultEncoder","kind","mapped","nextIndex","sourceKeys","combined","mergeTarget","targetItem","keyNum","pairs","query","port","isRegex","define","hasDescriptors","functionLengthIsConfigurable","functionLengthIsWritable","listGetNode","isDelete","curr","$o","channel","assert","deletedNode","objects","listDelete","listGet","listHas","listSet","$Map","$mapGet","$mapSet","$mapHas","$mapDelete","$mapSize","$m","getSideChannelMap","$WeakMap","$weakMapGet","$weakMapSet","$weakMapHas","$weakMapDelete","$wm","getSideChannelList","makeChannel","$channelData","ClientRequest","statusCodes","defaultProtocol","location","host","hostname","req","IncomingMessage","Agent","defaultMaxSockets","globalAgent","STATUS_CODES","METHODS","xhr","getXHR","XMLHttpRequest","XDomainRequest","checkTypeSupport","responseType","isFunction","ReadableStream","writableStream","WritableStream","abortController","arraybuffer","msstream","mozchunkedarraybuffer","overrideMimeType","capability","inherits","rStates","readyStates","preferBinary","Writable","_opts","_body","_headers","auth","setHeader","useFetch","mode","_mode","decideMode","_fetchTimer","_socketTimeout","_socketTimer","_onFinish","lowerName","unsafeHeaders","getHeader","removeHeader","_destroyed","headersObj","Blob","headersList","keyName","_fetchAbortController","requestTimeout","_fetchResponse","_resetTimers","_connect","reason","_xhr","nextTick","ontimeout","setRequestHeader","_response","onreadystatechange","readyState","LOADING","DONE","_onXHRProgress","onprogress","onerror","send","statusValid","_write","chunk","encoding","destroy","once","flushHeaders","setNoDelay","setSocketKeepAlive","UNSENT","OPENED","HEADERS_RECEIVED","resetTimers","rawHeaders","trailers","rawTrailers","statusMessage","reject","_resumeFetch","pipeTo","reader","getReader","read","_pos","responseURL","getAllResponseHeaders","_charset","charsetMatch","_read","newData","alloc","MSStreamReader","onload","readAsArrayBuffer","codes","createErrorType","Base","NodeError","_Base","arg1","arg2","arg3","getMessage","oneOf","expected","thing","actual","determiner","this_len","arg","objectKeys","Duplex","allowHalfOpen","readable","onend","_writableState","ended","onEndNT","highWaterMark","getBuffer","_readableState","destroyed","PassThrough","Transform","_transform","ReadableState","EElistenerCount","emitter","listeners","Stream","OurUint8Array","debugUtil","debuglog","StringDecoder","createReadableStreamAsyncIterator","BufferList","destroyImpl","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","isDuplex","objectMode","readableObjectMode","pipes","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","defaultEncoding","awaitDrain","readingMore","_destroy","readableAddChunk","addToFront","skipChunkCheck","er","emitReadable","emitReadable_","onEofChunk","chunkInvalid","_uint8ArrayToBuffer","addChunk","maybeReadMore","_undestroy","undestroy","isPaused","setEncoding","enc","head","content","clear","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","listenerCount","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","finished","nOrig","doRead","dest","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","removeListener","onclose","onfinish","ondrain","ondata","cleanedUp","needDrain","pipeOnDrain","pause","event","prependListener","_events","dests","ev","addListener","removeAllListeners","wrap","asyncIterator","_fromList","iterable","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writecb","writechunk","rs","needTransform","writeencoding","transform","flush","_flush","prefinish","err2","CorkedRequest","entry","finish","corkReq","pendingcb","onCorkedFinish","corkedRequestsFree","WritableState","realHasInstance","internalUtil","deprecate","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","finalCalled","ending","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","writev","_writev","_final","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","rState","current","hasInstance","writeAfterEnd","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_Object$setPrototypeO","_defineProperty","prim","hint","_toPrimitive","_toPropertyKey","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","promise","lastPromise","wrapForNext","_this2","_Object$create","ownKeys","enumerableOnly","symbols","_objectSpread","getOwnPropertyDescriptors","defineProperties","_defineProperties","copyBuffer","tail","protoProps","allocUnsafe","hasStrings","_getString","_getBuffer","nb","buf","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","ERR_STREAM_PREMATURE_CLOSE","noop","eos","called","_len","_key","onlegacyfinish","writableEnded","readableEnded","onrequest","isRequest","ERR_MISSING_ARGS","streams","popCallback","destroys","closed","destroyer","ERR_INVALID_OPT_VALUE","duplexKey","hwm","highWaterMarkFrom","pipeline","qs","controlOrWhitespace","CRHTLF","slashes","protocolre","windowsDriveLetter","trimLeft","rules","address","isSpecial","NaN","ignore","hash","lolcation","loc","finaldestination","Url","scheme","extractProtocol","rest","forwardSlashes","otherSlashes","slashesCount","extracted","instruction","instructions","up","origin","ins","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","hostlessProtocol","slashedProtocol","ftp","gopher","querystring","urlParse","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","simplePath","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","toASCII","h","ae","esc","qm","resolveObject","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","fill","readUInt8","isArgumentsObject","isGeneratorFunction","isTypedArray","uncurryThis","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","working","isDataViewToString","isDataView","isPromise","isArrayBufferView","isView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isFloat32Array","isFloat64Array","isBigInt64Array","isBigUint64Array","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","isBoxedPrimitive","isAnyArrayBuffer","descriptors","formatRegExp","isNull","noDeprecation","warned","throwDeprecation","traceDeprecation","trace","debugs","debugEnvRegex","NODE_DEBUG","debugEnv","ctx","stylize","stylizeNoColor","colors","showHidden","_extend","isUndefined","stylizeWithColor","formatValue","styleType","styles","recurseTimes","primitive","simple","formatPrimitive","visibleKeys","arrayToHash","formatError","braces","formatProperty","formatArray","cur","reduceToSingleString","ar","d","pid","isNullOrUndefined","isNativeError","isPrimitive","months","log","time","getHours","getMinutes","getSeconds","getDate","getMonth","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","promiseResolve","promiseReject","callbackify","callbackified","maybeCb","rej","availableTypedArrays","g","typedArrays","cache","typedArray","superProto","found","getter","trySlices","tryTypedArrays","possibleNames","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","fulfilled","every","__esModule","definition","chunkId","promises","script","needAttach","scripts","getElementsByTagName","createElement","setAttribute","onScriptComplete","doneFns","parentNode","removeChild","appendChild","nmd","children","scriptUrl","importScripts","currentScript","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"comments-comments-app.js?v=b5dc9d315e4ebaa02ed5","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/comments/src/logger.js","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyTextOutline.vue","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyTextOutline.vue?vue&type=script&lang=js","webpack://nextcloud/./node_modules/vue-material-design-icons/MessageReplyTextOutline.vue?87e1","webpack:///nextcloud/node_modules/vue-material-design-icons/MessageReplyTextOutline.vue?vue&type=template&id=5d6c4e92","webpack:///nextcloud/node_modules/layerr/dist/error.js","webpack:///nextcloud/node_modules/layerr/dist/layerr.js","webpack:///nextcloud/node_modules/layerr/dist/tools.js","webpack:///nextcloud/node_modules/layerr/dist/global.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/path.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/url.js","webpack:///nextcloud/node_modules/url-join/lib/url-join.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/digest.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/crypto.js","webpack:///nextcloud/node_modules/webdav/node_modules/entities/dist/esm/decode.js","webpack:///nextcloud/node_modules/webdav/node_modules/entities/dist/esm/index.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/encode.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/basic.js","webpack:///nextcloud/node_modules/webdav/node_modules/entities/dist/esm/decode-codepoint.js","webpack:///nextcloud/node_modules/webdav/node_modules/entities/dist/esm/escape.js","webpack:///nextcloud/node_modules/@buttercup/fetch/dist/index.browser.js","webpack:///nextcloud/node_modules/webdav/dist/node/types.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/index.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/oauth.js","webpack:///nextcloud/node_modules/hot-patcher/dist/patcher.js","webpack:///nextcloud/node_modules/hot-patcher/dist/functions.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/patcher.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/env.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/merge.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/headers.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/arrayBuffer.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/buffer.js","webpack:///nextcloud/node_modules/webdav/dist/node/request.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/body.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/assert-valid-pattern.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/brace-expressions.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/unescape.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/ast.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/index.js","webpack:///nextcloud/node_modules/webdav/dist/node/response.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/escape.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/util.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js","webpack:///nextcloud/node_modules/strnum/strnum.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/ignoreAttributes.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/node2json.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/validator.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/dav.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/stat.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/createDirectory.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/createStream.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/getFileContents.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/xml.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/lock.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/getDAVCompliance.js","webpack:///nextcloud/node_modules/webdav/dist/node/factory.js","webpack:///nextcloud/apps/comments/src/utils/davUtils.js","webpack:///nextcloud/apps/comments/src/services/DavClient.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/copyFile.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/customRequest.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/deleteFile.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/exists.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/directoryContents.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/putFileContents.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/getQuota.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/quota.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/moveFile.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/size.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/partialUpdateFileContents.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/search.js","webpack:///nextcloud/apps/comments/src/utils/decodeHtmlEntities.js","webpack:///nextcloud/apps/comments/src/store/deletedCommentLimbo.js","webpack:///nextcloud/apps/comments/src/mixins/CommentMixin.js","webpack:///nextcloud/apps/comments/src/services/EditComment.js","webpack:///nextcloud/apps/comments/src/services/DeleteComment.js","webpack:///nextcloud/apps/comments/src/services/NewComment.js","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=script&lang=js","webpack:///nextcloud/apps/comments/src/components/Comment.vue","webpack://nextcloud/./apps/comments/src/components/Comment.vue?7275","webpack://nextcloud/./apps/comments/src/components/Comment.vue?7f26","webpack://nextcloud/./apps/comments/src/components/Comment.vue?d1f7","webpack:///nextcloud/apps/comments/src/mixins/CommentView.ts","webpack:///nextcloud/apps/comments/src/services/GetComments.ts","webpack:///nextcloud/apps/comments/src/utils/cancelableRequest.js","webpack:///nextcloud/apps/comments/src/views/Comments.vue","webpack:///nextcloud/apps/comments/src/services/ReadComments.ts","webpack:///nextcloud/apps/comments/src/views/Comments.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/comments/src/views/Comments.vue?4d55","webpack://nextcloud/./apps/comments/src/views/Comments.vue?f45b","webpack://nextcloud/./apps/comments/src/views/Comments.vue?0e41","webpack:///nextcloud/apps/comments/src/services/CommentsInstance.js","webpack:///nextcloud/apps/comments/src/comments-app.js","webpack:///nextcloud/node_modules/balanced-match/index.js","webpack:///nextcloud/node_modules/base-64/base64.js","webpack:///nextcloud/node_modules/brace-expansion/index.js","webpack:///nextcloud/node_modules/builtin-status-codes/browser.js","webpack:///nextcloud/node_modules/byte-length/dist/index.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/actualApply.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/applyBind.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/functionApply.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/functionCall.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/index.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/reflectApply.js","webpack:///nextcloud/node_modules/call-bind/index.js","webpack:///nextcloud/node_modules/call-bound/index.js","webpack:///nextcloud/apps/comments/src/components/Comment.vue?vue&type=style&index=0&id=70317f94&prod&lang=scss&scoped=true","webpack:///nextcloud/apps/comments/src/views/Comments.vue?vue&type=style&index=0&id=6c8c157a&prod&lang=scss&scoped=true","webpack:///nextcloud/node_modules/define-data-property/index.js","webpack:///nextcloud/node_modules/dunder-proto/get.js","webpack:///nextcloud/node_modules/es-define-property/index.js","webpack:///nextcloud/node_modules/es-errors/eval.js","webpack:///nextcloud/node_modules/es-errors/index.js","webpack:///nextcloud/node_modules/es-errors/range.js","webpack:///nextcloud/node_modules/es-errors/ref.js","webpack:///nextcloud/node_modules/es-errors/syntax.js","webpack:///nextcloud/node_modules/es-errors/type.js","webpack:///nextcloud/node_modules/es-errors/uri.js","webpack:///nextcloud/node_modules/es-object-atoms/index.js","webpack:///nextcloud/node_modules/for-each/index.js","webpack:///nextcloud/node_modules/function-bind/implementation.js","webpack:///nextcloud/node_modules/function-bind/index.js","webpack:///nextcloud/node_modules/generator-function/index.js","webpack:///nextcloud/node_modules/get-intrinsic/index.js","webpack:///nextcloud/node_modules/get-proto/Object.getPrototypeOf.js","webpack:///nextcloud/node_modules/get-proto/Reflect.getPrototypeOf.js","webpack:///nextcloud/node_modules/get-proto/index.js","webpack:///nextcloud/node_modules/gopd/gOPD.js","webpack:///nextcloud/node_modules/gopd/index.js","webpack:///nextcloud/node_modules/has-property-descriptors/index.js","webpack:///nextcloud/node_modules/has-symbols/index.js","webpack:///nextcloud/node_modules/has-symbols/shams.js","webpack:///nextcloud/node_modules/has-tostringtag/shams.js","webpack:///nextcloud/node_modules/hasown/index.js","webpack:///nextcloud/node_modules/https-browserify/index.js","webpack:///nextcloud/node_modules/is-arguments/index.js","webpack:///nextcloud/node_modules/is-callable/index.js","webpack:///nextcloud/node_modules/is-generator-function/index.js","webpack:///nextcloud/node_modules/is-regex/index.js","webpack:///nextcloud/node_modules/is-typed-array/index.js","webpack:///nextcloud/node_modules/math-intrinsics/abs.js","webpack:///nextcloud/node_modules/math-intrinsics/floor.js","webpack:///nextcloud/node_modules/math-intrinsics/isNaN.js","webpack:///nextcloud/node_modules/math-intrinsics/max.js","webpack:///nextcloud/node_modules/math-intrinsics/min.js","webpack:///nextcloud/node_modules/math-intrinsics/pow.js","webpack:///nextcloud/node_modules/math-intrinsics/round.js","webpack:///nextcloud/node_modules/math-intrinsics/sign.js","webpack:///nextcloud/node_modules/nested-property/dist/nested-property.js","webpack:///nextcloud/node_modules/object-inspect/index.js","webpack:///nextcloud/node_modules/path-posix/index.js","webpack:///nextcloud/node_modules/possible-typed-array-names/index.js","webpack:///nextcloud/node_modules/punycode/punycode.js","webpack:///nextcloud/node_modules/qs/lib/formats.js","webpack:///nextcloud/node_modules/qs/lib/index.js","webpack:///nextcloud/node_modules/qs/lib/parse.js","webpack:///nextcloud/node_modules/qs/lib/stringify.js","webpack:///nextcloud/node_modules/qs/lib/utils.js","webpack:///nextcloud/node_modules/querystringify/index.js","webpack:///nextcloud/node_modules/requires-port/index.js","webpack:///nextcloud/node_modules/safe-regex-test/index.js","webpack:///nextcloud/node_modules/set-function-length/index.js","webpack:///nextcloud/node_modules/side-channel-list/index.js","webpack:///nextcloud/node_modules/side-channel-map/index.js","webpack:///nextcloud/node_modules/side-channel-weakmap/index.js","webpack:///nextcloud/node_modules/side-channel/index.js","webpack:///nextcloud/node_modules/stream-http/index.js","webpack:///nextcloud/node_modules/stream-http/lib/capability.js","webpack:///nextcloud/node_modules/stream-http/lib/request.js","webpack:///nextcloud/node_modules/stream-http/lib/response.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/errors-browser.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_readable.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_transform.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_writable.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/readable-browser.js","webpack:///nextcloud/node_modules/url-parse/index.js","webpack:///nextcloud/node_modules/url/url.js","webpack:///nextcloud/node_modules/util/support/isBufferBrowser.js","webpack:///nextcloud/node_modules/util/support/types.js","webpack:///nextcloud/node_modules/util/util.js","webpack:///nextcloud/node_modules/which-typed-array/index.js","webpack:///nextcloud/node_modules/xtend/immutable.js","webpack:///nextcloud/node_modules/available-typed-arrays/index.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('comments')\n\t.detectUser()\n\t.build()\n","\n\n","import mod from \"-!../vue-loader/lib/index.js??vue-loader-options!./MessageReplyTextOutline.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../vue-loader/lib/index.js??vue-loader-options!./MessageReplyTextOutline.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./MessageReplyTextOutline.vue?vue&type=template&id=5d6c4e92\"\nimport script from \"./MessageReplyTextOutline.vue?vue&type=script&lang=js\"\nexport * from \"./MessageReplyTextOutline.vue?vue&type=script&lang=js\"\n\n\n/* normalize component */\nimport normalizer from \"!../vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('span',_vm._b({staticClass:\"material-design-icon message-reply-text-outline-icon\",attrs:{\"aria-hidden\":_vm.title ? null : 'true',\"aria-label\":_vm.title,\"role\":\"img\"},on:{\"click\":function($event){return _vm.$emit('click', $event)}}},'span',_vm.$attrs,false),[_c('svg',{staticClass:\"material-design-icon__svg\",attrs:{\"fill\":_vm.fillColor,\"width\":_vm.size,\"height\":_vm.size,\"viewBox\":\"0 0 24 24\"}},[_c('path',{attrs:{\"d\":\"M9 11H18V13H9V11M18 7H6V9H18V7M22 4V22L18 18H4C2.9 18 2 17.11 2 16V4C2 2.9 2.9 2 4 2H20C21.1 2 22 2.89 22 4M20 4H4V16H18.83L20 17.17V4Z\"}},[(_vm.title)?_c('title',[_vm._v(_vm._s(_vm.title))]):_vm._e()])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export function assertError(err) {\n    if (!isError(err)) {\n        throw new Error(\"Parameter was not an error\");\n    }\n}\nexport function isError(err) {\n    return ((!!err &&\n        typeof err === \"object\" &&\n        objectToString(err) === \"[object Error]\") ||\n        err instanceof Error);\n}\nfunction objectToString(obj) {\n    return Object.prototype.toString.call(obj);\n}\n","import { assertError, isError } from \"./error.js\";\nimport { getGlobalName } from \"./global.js\";\nimport { parseArguments } from \"./tools.js\";\nexport class Layerr extends Error {\n    constructor(errorOptionsOrMessage, messageText) {\n        const args = [...arguments];\n        const { options, shortMessage } = parseArguments(args);\n        let message = shortMessage;\n        if (options.cause) {\n            message = `${message}: ${options.cause.message}`;\n        }\n        super(message);\n        this.message = message;\n        if (options.name && typeof options.name === \"string\") {\n            this.name = options.name;\n        }\n        else {\n            this.name = getGlobalName();\n        }\n        if (options.cause) {\n            Object.defineProperty(this, \"_cause\", { value: options.cause });\n        }\n        Object.defineProperty(this, \"_info\", { value: {} });\n        if (options.info && typeof options.info === \"object\") {\n            Object.assign(this._info, options.info);\n        }\n        if (Error.captureStackTrace) {\n            const ctor = options.constructorOpt || this.constructor;\n            Error.captureStackTrace(this, ctor);\n        }\n    }\n    static cause(err) {\n        assertError(err);\n        if (!err._cause)\n            return null;\n        return isError(err._cause)\n            ? err._cause\n            : null;\n    }\n    static fullStack(err) {\n        assertError(err);\n        const cause = Layerr.cause(err);\n        if (cause) {\n            return `${err.stack}\\ncaused by: ${Layerr.fullStack(cause)}`;\n        }\n        return err.stack ?? \"\";\n    }\n    static info(err) {\n        assertError(err);\n        const output = {};\n        const cause = Layerr.cause(err);\n        if (cause) {\n            Object.assign(output, Layerr.info(cause));\n        }\n        if (err._info) {\n            Object.assign(output, err._info);\n        }\n        return output;\n    }\n    toString() {\n        let output = this.name ||\n            this.constructor.name ||\n            this.constructor.prototype.name;\n        if (this.message) {\n            output = `${output}: ${this.message}`;\n        }\n        return output;\n    }\n}\n","import { isError } from \"./error.js\";\nexport function parseArguments(args) {\n    let options, shortMessage = \"\";\n    if (args.length === 0) {\n        options = {};\n    }\n    else if (isError(args[0])) {\n        options = {\n            cause: args[0],\n        };\n        shortMessage = args.slice(1).join(\" \") || \"\";\n    }\n    else if (args[0] && typeof args[0] === \"object\") {\n        options = Object.assign({}, args[0]);\n        shortMessage = args.slice(1).join(\" \") || \"\";\n    }\n    else if (typeof args[0] === \"string\") {\n        options = {};\n        shortMessage = shortMessage = args.join(\" \") || \"\";\n    }\n    else {\n        throw new Error(\"Invalid arguments passed to Layerr\");\n    }\n    return {\n        options,\n        shortMessage,\n    };\n}\n","const NAME = \"Layerr\";\nlet __name = NAME;\nexport function getGlobalName() {\n    return __name;\n}\nexport function setGlobalName(name = null) {\n    __name = name ?? NAME;\n}\n","import { Layerr } from \"layerr\";\nimport path from \"path-posix\";\nconst SEP_PATH_POSIX = \"__PATH_SEPARATOR_POSIX__\";\nconst SEP_PATH_WINDOWS = \"__PATH_SEPARATOR_WINDOWS__\";\nexport function encodePath(filePath) {\n    try {\n        const replaced = filePath.replace(/\\//g, SEP_PATH_POSIX).replace(/\\\\\\\\/g, SEP_PATH_WINDOWS);\n        const formatted = encodeURIComponent(replaced);\n        return formatted.split(SEP_PATH_WINDOWS).join(\"\\\\\\\\\").split(SEP_PATH_POSIX).join(\"/\");\n    }\n    catch (err) {\n        throw new Layerr(err, \"Failed encoding path\");\n    }\n}\nexport function getAllDirectories(directory) {\n    if (!directory || directory === \"/\")\n        return [];\n    let currentPath = directory;\n    const output = [];\n    do {\n        output.push(currentPath);\n        currentPath = path.dirname(currentPath);\n    } while (currentPath && currentPath !== \"/\");\n    return output;\n}\nexport function makePathAbsolute(pathStr) {\n    return pathStr.startsWith(\"/\") ? pathStr : \"/\" + pathStr;\n}\nexport function normalisePath(pathStr) {\n    let normalisedPath = pathStr;\n    if (normalisedPath[0] !== \"/\") {\n        normalisedPath = \"/\" + normalisedPath;\n    }\n    if (/^.+\\/$/.test(normalisedPath)) {\n        normalisedPath = normalisedPath.substr(0, normalisedPath.length - 1);\n    }\n    return normalisedPath;\n}\n","import URL from \"url-parse\";\nimport { Layerr } from \"layerr\";\nimport _joinURL from \"url-join\";\nimport { normalisePath } from \"./path.js\";\nexport function extractURLPath(fullURL) {\n    const url = new URL(fullURL);\n    let urlPath = url.pathname;\n    if (urlPath.length <= 0) {\n        urlPath = \"/\";\n    }\n    return normalisePath(urlPath);\n}\nexport function joinURL(...parts) {\n    return _joinURL(parts.reduce((output, nextPart, partIndex) => {\n        if (partIndex === 0 ||\n            nextPart !== \"/\" ||\n            (nextPart === \"/\" && output[output.length - 1] !== \"/\")) {\n            output.push(nextPart);\n        }\n        return output;\n    }, []));\n}\nexport function normaliseHREF(href) {\n    try {\n        const normalisedHref = href.replace(/^https?:\\/\\/[^\\/]+/, \"\");\n        return normalisedHref;\n    }\n    catch (err) {\n        throw new Layerr(err, \"Failed normalising HREF\");\n    }\n}\n","function normalize (strArray) {\n  var resultArray = [];\n  if (strArray.length === 0) { return ''; }\n\n  if (typeof strArray[0] !== 'string') {\n    throw new TypeError('Url must be a string. Received ' + strArray[0]);\n  }\n\n  // If the first part is a plain protocol, we combine it with the next part.\n  if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n    var first = strArray.shift();\n    strArray[0] = first + strArray[0];\n  }\n\n  // There must be two or three slashes in the file protocol, two slashes in anything else.\n  if (strArray[0].match(/^file:\\/\\/\\//)) {\n    strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n  } else {\n    strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n  }\n\n  for (var i = 0; i < strArray.length; i++) {\n    var component = strArray[i];\n\n    if (typeof component !== 'string') {\n      throw new TypeError('Url must be a string. Received ' + component);\n    }\n\n    if (component === '') { continue; }\n\n    if (i > 0) {\n      // Removing the starting slashes for each component but the first.\n      component = component.replace(/^[\\/]+/, '');\n    }\n    if (i < strArray.length - 1) {\n      // Removing the ending slashes for each component but the last.\n      component = component.replace(/[\\/]+$/, '');\n    } else {\n      // For the last component we will combine multiple slashes to a single one.\n      component = component.replace(/[\\/]+$/, '/');\n    }\n\n    resultArray.push(component);\n\n  }\n\n  var str = resultArray.join('/');\n  // Each input component is now separated by a single slash except the possible first plain protocol part.\n\n  // remove trailing slash before parameters or hash\n  str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n\n  // replace ? in parameters with &\n  var parts = str.split('?');\n  str = parts.shift() + (parts.length > 0 ? '?': '') + parts.join('&');\n\n  return str;\n}\n\nexport default function urlJoin() {\n  var input;\n\n  if (typeof arguments[0] === 'object') {\n    input = arguments[0];\n  } else {\n    input = [].slice.call(arguments);\n  }\n\n  return normalize(input);\n}\n","import md5 from \"md5\";\nimport { ha1Compute } from \"../tools/crypto.js\";\nconst NONCE_CHARS = \"abcdef0123456789\";\nconst NONCE_SIZE = 32;\nexport function createDigestContext(username, password, ha1) {\n    return { username, password, ha1, nc: 0, algorithm: \"md5\", hasDigestAuth: false };\n}\nexport function generateDigestAuthHeader(options, digest) {\n    const url = options.url.replace(\"//\", \"\");\n    const uri = url.indexOf(\"/\") == -1 ? \"/\" : url.slice(url.indexOf(\"/\"));\n    const method = options.method ? options.method.toUpperCase() : \"GET\";\n    const qop = /(^|,)\\s*auth\\s*($|,)/.test(digest.qop) ? \"auth\" : false;\n    const ncString = `00000000${digest.nc}`.slice(-8);\n    const ha1 = ha1Compute(digest.algorithm, digest.username, digest.realm, digest.password, digest.nonce, digest.cnonce, digest.ha1);\n    const ha2 = md5(`${method}:${uri}`);\n    const digestResponse = qop\n        ? md5(`${ha1}:${digest.nonce}:${ncString}:${digest.cnonce}:${qop}:${ha2}`)\n        : md5(`${ha1}:${digest.nonce}:${ha2}`);\n    const authValues = {\n        username: digest.username,\n        realm: digest.realm,\n        nonce: digest.nonce,\n        uri,\n        qop,\n        response: digestResponse,\n        nc: ncString,\n        cnonce: digest.cnonce,\n        algorithm: digest.algorithm,\n        opaque: digest.opaque\n    };\n    const authHeader = [];\n    for (const k in authValues) {\n        if (authValues[k]) {\n            if (k === \"qop\" || k === \"nc\" || k === \"algorithm\") {\n                authHeader.push(`${k}=${authValues[k]}`);\n            }\n            else {\n                authHeader.push(`${k}=\"${authValues[k]}\"`);\n            }\n        }\n    }\n    return `Digest ${authHeader.join(\", \")}`;\n}\nfunction makeNonce() {\n    let uid = \"\";\n    for (let i = 0; i < NONCE_SIZE; ++i) {\n        uid = `${uid}${NONCE_CHARS[Math.floor(Math.random() * NONCE_CHARS.length)]}`;\n    }\n    return uid;\n}\nexport function parseDigestAuth(response, _digest) {\n    const isDigest = responseIndicatesDigestAuth(response);\n    if (!isDigest) {\n        return false;\n    }\n    const re = /([a-z0-9_-]+)=(?:\"([^\"]+)\"|([a-z0-9_-]+))/gi;\n    for (;;) {\n        const authHeader = (response.headers && response.headers.get(\"www-authenticate\")) || \"\";\n        const match = re.exec(authHeader);\n        if (!match) {\n            break;\n        }\n        _digest[match[1]] = match[2] || match[3];\n    }\n    _digest.nc += 1;\n    _digest.cnonce = makeNonce();\n    return true;\n}\nexport function responseIndicatesDigestAuth(response) {\n    const authHeader = (response.headers && response.headers.get(\"www-authenticate\")) || \"\";\n    return authHeader.split(/\\s/)[0].toLowerCase() === \"digest\";\n}\n","import md5 from \"md5\";\nexport function ha1Compute(algorithm, user, realm, pass, nonce, cnonce, ha1) {\n    const ha1Hash = ha1 || md5(`${user}:${realm}:${pass}`);\n    if (algorithm && algorithm.toLowerCase() === \"md5-sess\") {\n        return md5(`${ha1Hash}:${nonce}:${cnonce}`);\n    }\n    return ha1Hash;\n}\n","import { htmlDecodeTree } from \"./generated/decode-data-html.js\";\nimport { xmlDecodeTree } from \"./generated/decode-data-xml.js\";\nimport { replaceCodePoint, fromCodePoint } from \"./decode-codepoint.js\";\nvar CharCodes;\n(function (CharCodes) {\n    CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n    CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n    CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n    CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n    CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n    CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n    CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n    CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n    CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n    CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n    CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n    CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 32;\nexport var BinTrieFlags;\n(function (BinTrieFlags) {\n    BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n    BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n    BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags || (BinTrieFlags = {}));\nfunction isNumber(code) {\n    return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n    return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n        (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n    return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n        (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n        isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n    return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n    EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n    EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n    EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n    EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n    EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nexport var DecodingMode;\n(function (DecodingMode) {\n    /** Entities in text nodes that can end with any character. */\n    DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n    /** Only allow entities terminated with a semicolon. */\n    DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n    /** Entities in attributes have limitations on ending characters. */\n    DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode || (DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nexport class EntityDecoder {\n    constructor(\n    /** The tree used to decode entities. */\n    decodeTree, \n    /**\n     * The function that is called when a codepoint is decoded.\n     *\n     * For multi-byte named entities, this will be called multiple times,\n     * with the second codepoint, and the same `consumed` value.\n     *\n     * @param codepoint The decoded codepoint.\n     * @param consumed The number of bytes consumed by the decoder.\n     */\n    emitCodePoint, \n    /** An object that is used to produce errors. */\n    errors) {\n        this.decodeTree = decodeTree;\n        this.emitCodePoint = emitCodePoint;\n        this.errors = errors;\n        /** The current state of the decoder. */\n        this.state = EntityDecoderState.EntityStart;\n        /** Characters that were consumed while parsing an entity. */\n        this.consumed = 1;\n        /**\n         * The result of the entity.\n         *\n         * Either the result index of a numeric entity, or the codepoint of a\n         * numeric entity.\n         */\n        this.result = 0;\n        /** The current index in the decode tree. */\n        this.treeIndex = 0;\n        /** The number of characters that were consumed in excess. */\n        this.excess = 1;\n        /** The mode in which the decoder is operating. */\n        this.decodeMode = DecodingMode.Strict;\n    }\n    /** Resets the instance to make it reusable. */\n    startEntity(decodeMode) {\n        this.decodeMode = decodeMode;\n        this.state = EntityDecoderState.EntityStart;\n        this.result = 0;\n        this.treeIndex = 0;\n        this.excess = 1;\n        this.consumed = 1;\n    }\n    /**\n     * Write an entity to the decoder. This can be called multiple times with partial entities.\n     * If the entity is incomplete, the decoder will return -1.\n     *\n     * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n     * entity is incomplete, and resume when the next string is written.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    write(input, offset) {\n        switch (this.state) {\n            case EntityDecoderState.EntityStart: {\n                if (input.charCodeAt(offset) === CharCodes.NUM) {\n                    this.state = EntityDecoderState.NumericStart;\n                    this.consumed += 1;\n                    return this.stateNumericStart(input, offset + 1);\n                }\n                this.state = EntityDecoderState.NamedEntity;\n                return this.stateNamedEntity(input, offset);\n            }\n            case EntityDecoderState.NumericStart: {\n                return this.stateNumericStart(input, offset);\n            }\n            case EntityDecoderState.NumericDecimal: {\n                return this.stateNumericDecimal(input, offset);\n            }\n            case EntityDecoderState.NumericHex: {\n                return this.stateNumericHex(input, offset);\n            }\n            case EntityDecoderState.NamedEntity: {\n                return this.stateNamedEntity(input, offset);\n            }\n        }\n    }\n    /**\n     * Switches between the numeric decimal and hexadecimal states.\n     *\n     * Equivalent to the `Numeric character reference state` in the HTML spec.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    stateNumericStart(input, offset) {\n        if (offset >= input.length) {\n            return -1;\n        }\n        if ((input.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n            this.state = EntityDecoderState.NumericHex;\n            this.consumed += 1;\n            return this.stateNumericHex(input, offset + 1);\n        }\n        this.state = EntityDecoderState.NumericDecimal;\n        return this.stateNumericDecimal(input, offset);\n    }\n    addToNumericResult(input, start, end, base) {\n        if (start !== end) {\n            const digitCount = end - start;\n            this.result =\n                this.result * Math.pow(base, digitCount) +\n                    Number.parseInt(input.substr(start, digitCount), base);\n            this.consumed += digitCount;\n        }\n    }\n    /**\n     * Parses a hexadecimal numeric entity.\n     *\n     * Equivalent to the `Hexademical character reference state` in the HTML spec.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    stateNumericHex(input, offset) {\n        const startIndex = offset;\n        while (offset < input.length) {\n            const char = input.charCodeAt(offset);\n            if (isNumber(char) || isHexadecimalCharacter(char)) {\n                offset += 1;\n            }\n            else {\n                this.addToNumericResult(input, startIndex, offset, 16);\n                return this.emitNumericEntity(char, 3);\n            }\n        }\n        this.addToNumericResult(input, startIndex, offset, 16);\n        return -1;\n    }\n    /**\n     * Parses a decimal numeric entity.\n     *\n     * Equivalent to the `Decimal character reference state` in the HTML spec.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    stateNumericDecimal(input, offset) {\n        const startIndex = offset;\n        while (offset < input.length) {\n            const char = input.charCodeAt(offset);\n            if (isNumber(char)) {\n                offset += 1;\n            }\n            else {\n                this.addToNumericResult(input, startIndex, offset, 10);\n                return this.emitNumericEntity(char, 2);\n            }\n        }\n        this.addToNumericResult(input, startIndex, offset, 10);\n        return -1;\n    }\n    /**\n     * Validate and emit a numeric entity.\n     *\n     * Implements the logic from the `Hexademical character reference start\n     * state` and `Numeric character reference end state` in the HTML spec.\n     *\n     * @param lastCp The last code point of the entity. Used to see if the\n     *               entity was terminated with a semicolon.\n     * @param expectedLength The minimum number of characters that should be\n     *                       consumed. Used to validate that at least one digit\n     *                       was consumed.\n     * @returns The number of characters that were consumed.\n     */\n    emitNumericEntity(lastCp, expectedLength) {\n        var _a;\n        // Ensure we consumed at least one digit.\n        if (this.consumed <= expectedLength) {\n            (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n            return 0;\n        }\n        // Figure out if this is a legit end of the entity\n        if (lastCp === CharCodes.SEMI) {\n            this.consumed += 1;\n        }\n        else if (this.decodeMode === DecodingMode.Strict) {\n            return 0;\n        }\n        this.emitCodePoint(replaceCodePoint(this.result), this.consumed);\n        if (this.errors) {\n            if (lastCp !== CharCodes.SEMI) {\n                this.errors.missingSemicolonAfterCharacterReference();\n            }\n            this.errors.validateNumericCharacterReference(this.result);\n        }\n        return this.consumed;\n    }\n    /**\n     * Parses a named entity.\n     *\n     * Equivalent to the `Named character reference state` in the HTML spec.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    stateNamedEntity(input, offset) {\n        const { decodeTree } = this;\n        let current = decodeTree[this.treeIndex];\n        // The mask is the number of bytes of the value, including the current byte.\n        let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n        for (; offset < input.length; offset++, this.excess++) {\n            const char = input.charCodeAt(offset);\n            this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n            if (this.treeIndex < 0) {\n                return this.result === 0 ||\n                    // If we are parsing an attribute\n                    (this.decodeMode === DecodingMode.Attribute &&\n                        // We shouldn't have consumed any characters after the entity,\n                        (valueLength === 0 ||\n                            // And there should be no invalid characters.\n                            isEntityInAttributeInvalidEnd(char)))\n                    ? 0\n                    : this.emitNotTerminatedNamedEntity();\n            }\n            current = decodeTree[this.treeIndex];\n            valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n            // If the branch is a value, store it and continue\n            if (valueLength !== 0) {\n                // If the entity is terminated by a semicolon, we are done.\n                if (char === CharCodes.SEMI) {\n                    return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n                }\n                // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n                if (this.decodeMode !== DecodingMode.Strict) {\n                    this.result = this.treeIndex;\n                    this.consumed += this.excess;\n                    this.excess = 0;\n                }\n            }\n        }\n        return -1;\n    }\n    /**\n     * Emit a named entity that was not terminated with a semicolon.\n     *\n     * @returns The number of characters consumed.\n     */\n    emitNotTerminatedNamedEntity() {\n        var _a;\n        const { result, decodeTree } = this;\n        const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n        this.emitNamedEntityData(result, valueLength, this.consumed);\n        (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n        return this.consumed;\n    }\n    /**\n     * Emit a named entity.\n     *\n     * @param result The index of the entity in the decode tree.\n     * @param valueLength The number of bytes in the entity.\n     * @param consumed The number of characters consumed.\n     *\n     * @returns The number of characters consumed.\n     */\n    emitNamedEntityData(result, valueLength, consumed) {\n        const { decodeTree } = this;\n        this.emitCodePoint(valueLength === 1\n            ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n            : decodeTree[result + 1], consumed);\n        if (valueLength === 3) {\n            // For multi-byte values, we need to emit the second byte.\n            this.emitCodePoint(decodeTree[result + 2], consumed);\n        }\n        return consumed;\n    }\n    /**\n     * Signal to the parser that the end of the input was reached.\n     *\n     * Remaining data will be emitted and relevant errors will be produced.\n     *\n     * @returns The number of characters consumed.\n     */\n    end() {\n        var _a;\n        switch (this.state) {\n            case EntityDecoderState.NamedEntity: {\n                // Emit a named entity if we have one.\n                return this.result !== 0 &&\n                    (this.decodeMode !== DecodingMode.Attribute ||\n                        this.result === this.treeIndex)\n                    ? this.emitNotTerminatedNamedEntity()\n                    : 0;\n            }\n            // Otherwise, emit a numeric entity if we have one.\n            case EntityDecoderState.NumericDecimal: {\n                return this.emitNumericEntity(0, 2);\n            }\n            case EntityDecoderState.NumericHex: {\n                return this.emitNumericEntity(0, 3);\n            }\n            case EntityDecoderState.NumericStart: {\n                (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n                return 0;\n            }\n            case EntityDecoderState.EntityStart: {\n                // Return 0 if we have no entity.\n                return 0;\n            }\n        }\n    }\n}\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n    let returnValue = \"\";\n    const decoder = new EntityDecoder(decodeTree, (data) => (returnValue += fromCodePoint(data)));\n    return function decodeWithTrie(input, decodeMode) {\n        let lastIndex = 0;\n        let offset = 0;\n        while ((offset = input.indexOf(\"&\", offset)) >= 0) {\n            returnValue += input.slice(lastIndex, offset);\n            decoder.startEntity(decodeMode);\n            const length = decoder.write(input, \n            // Skip the \"&\"\n            offset + 1);\n            if (length < 0) {\n                lastIndex = offset + decoder.end();\n                break;\n            }\n            lastIndex = offset + length;\n            // If `length` is 0, skip the current `&` and continue.\n            offset = length === 0 ? lastIndex + 1 : lastIndex;\n        }\n        const result = returnValue + input.slice(lastIndex);\n        // Make sure we don't keep a reference to the final string.\n        returnValue = \"\";\n        return result;\n    };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nexport function determineBranch(decodeTree, current, nodeIndex, char) {\n    const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n    const jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n    // Case 1: Single branch encoded in jump offset\n    if (branchCount === 0) {\n        return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1;\n    }\n    // Case 2: Multiple branches encoded in jump table\n    if (jumpOffset) {\n        const value = char - jumpOffset;\n        return value < 0 || value >= branchCount\n            ? -1\n            : decodeTree[nodeIndex + value] - 1;\n    }\n    // Case 3: Multiple branches encoded in dictionary\n    // Binary search for the character.\n    let lo = nodeIndex;\n    let hi = lo + branchCount - 1;\n    while (lo <= hi) {\n        const mid = (lo + hi) >>> 1;\n        const midValue = decodeTree[mid];\n        if (midValue < char) {\n            lo = mid + 1;\n        }\n        else if (midValue > char) {\n            hi = mid - 1;\n        }\n        else {\n            return decodeTree[mid + branchCount];\n        }\n    }\n    return -1;\n}\nconst htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);\nconst xmlDecoder = /* #__PURE__ */ getDecoder(xmlDecodeTree);\n/**\n * Decodes an HTML string.\n *\n * @param htmlString The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nexport function decodeHTML(htmlString, mode = DecodingMode.Legacy) {\n    return htmlDecoder(htmlString, mode);\n}\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param htmlAttribute The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLAttribute(htmlAttribute) {\n    return htmlDecoder(htmlAttribute, DecodingMode.Attribute);\n}\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param htmlString The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLStrict(htmlString) {\n    return htmlDecoder(htmlString, DecodingMode.Strict);\n}\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param xmlString The string to decode.\n * @returns The decoded string.\n */\nexport function decodeXML(xmlString) {\n    return xmlDecoder(xmlString, DecodingMode.Strict);\n}\n// Re-export for use by eg. htmlparser2\nexport { htmlDecodeTree } from \"./generated/decode-data-html.js\";\nexport { xmlDecodeTree } from \"./generated/decode-data-xml.js\";\nexport { decodeCodePoint, replaceCodePoint, fromCodePoint, } from \"./decode-codepoint.js\";\n//# sourceMappingURL=decode.js.map","import { decodeXML, decodeHTML, DecodingMode } from \"./decode.js\";\nimport { encodeHTML, encodeNonAsciiHTML } from \"./encode.js\";\nimport { encodeXML, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\n/** The level of entities to support. */\nexport var EntityLevel;\n(function (EntityLevel) {\n    /** Support only XML entities. */\n    EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n    /** Support HTML entities, which are a superset of XML entities. */\n    EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel || (EntityLevel = {}));\nexport var EncodingMode;\n(function (EncodingMode) {\n    /**\n     * The output is UTF-8 encoded. Only characters that need escaping within\n     * XML will be escaped.\n     */\n    EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n    /**\n     * The output consists only of ASCII characters. Characters that need\n     * escaping within HTML, and characters that aren't ASCII characters will\n     * be escaped.\n     */\n    EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n    /**\n     * Encode all characters that have an equivalent entity, as well as all\n     * characters that are not ASCII characters.\n     */\n    EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n    /**\n     * Encode all characters that have to be escaped in HTML attributes,\n     * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n     */\n    EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n    /**\n     * Encode all characters that have to be escaped in HTML text,\n     * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n     */\n    EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode || (EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param input String to decode.\n * @param options Decoding options.\n */\nexport function decode(input, options = EntityLevel.XML) {\n    const level = typeof options === \"number\" ? options : options.level;\n    if (level === EntityLevel.HTML) {\n        const mode = typeof options === \"object\" ? options.mode : undefined;\n        return decodeHTML(input, mode);\n    }\n    return decodeXML(input);\n}\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param input String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nexport function decodeStrict(input, options = EntityLevel.XML) {\n    var _a;\n    const normalizedOptions = typeof options === \"number\" ? { level: options } : options;\n    (_a = normalizedOptions.mode) !== null && _a !== void 0 ? _a : (normalizedOptions.mode = DecodingMode.Strict);\n    return decode(input, normalizedOptions);\n}\n/**\n * Encodes a string with entities.\n *\n * @param input String to encode.\n * @param options Encoding options.\n */\nexport function encode(input, options = EntityLevel.XML) {\n    const { mode = EncodingMode.Extensive, level = EntityLevel.XML } = typeof options === \"number\" ? { level: options } : options;\n    switch (mode) {\n        case EncodingMode.UTF8: {\n            return escapeUTF8(input);\n        }\n        case EncodingMode.Attribute: {\n            return escapeAttribute(input);\n        }\n        case EncodingMode.Text: {\n            return escapeText(input);\n        }\n        case EncodingMode.ASCII: {\n            return level === EntityLevel.HTML\n                ? encodeNonAsciiHTML(input)\n                : encodeXML(input);\n        }\n        // eslint-disable-next-line unicorn/no-useless-switch-case\n        case EncodingMode.Extensive:\n        default: {\n            return level === EntityLevel.HTML\n                ? encodeHTML(input)\n                : encodeXML(input);\n        }\n    }\n}\nexport { encodeXML, escape, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\nexport { encodeHTML, encodeNonAsciiHTML, \n// Legacy aliases (deprecated)\nencodeHTML as encodeHTML4, encodeHTML as encodeHTML5, } from \"./encode.js\";\nexport { EntityDecoder, DecodingMode, decodeXML, decodeHTML, decodeHTMLStrict, decodeHTMLAttribute, \n// Legacy aliases (deprecated)\ndecodeHTML as decodeHTML4, decodeHTML as decodeHTML5, decodeHTMLStrict as decodeHTML4Strict, decodeHTMLStrict as decodeHTML5Strict, decodeXML as decodeXMLStrict, } from \"./decode.js\";\n//# sourceMappingURL=index.js.map","import base64 from \"base-64\";\nimport { decodeHTML } from \"entities\";\nimport { isWeb } from \"../compat/env.js\";\nexport function decodeHTMLEntities(text) {\n    if (isWeb()) {\n        const txt = document.createElement(\"textarea\");\n        txt.innerHTML = text;\n        return txt.value;\n    }\n    return decodeHTML(text);\n}\nexport function fromBase64(text) {\n    return base64.decode(text);\n}\nexport function toBase64(text) {\n    return base64.encode(text);\n}\n","import { toBase64 } from \"../tools/encode.js\";\nexport function generateBasicAuthHeader(username, password) {\n    const encoded = toBase64(`${username}:${password}`);\n    return `Basic ${encoded}`;\n}\n","// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nconst decodeMap = new Map([\n    [0, 65533],\n    // C1 Unicode control character reference replacements\n    [128, 8364],\n    [130, 8218],\n    [131, 402],\n    [132, 8222],\n    [133, 8230],\n    [134, 8224],\n    [135, 8225],\n    [136, 710],\n    [137, 8240],\n    [138, 352],\n    [139, 8249],\n    [140, 338],\n    [142, 381],\n    [145, 8216],\n    [146, 8217],\n    [147, 8220],\n    [148, 8221],\n    [149, 8226],\n    [150, 8211],\n    [151, 8212],\n    [152, 732],\n    [153, 8482],\n    [154, 353],\n    [155, 8250],\n    [156, 339],\n    [158, 382],\n    [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexport const fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n    let output = \"\";\n    if (codePoint > 65535) {\n        codePoint -= 65536;\n        output += String.fromCharCode(((codePoint >>> 10) & 1023) | 55296);\n        codePoint = 56320 | (codePoint & 1023);\n    }\n    output += String.fromCharCode(codePoint);\n    return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nexport function replaceCodePoint(codePoint) {\n    var _a;\n    if ((codePoint >= 55296 && codePoint <= 57343) ||\n        codePoint > 1114111) {\n        return 65533;\n    }\n    return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nexport function decodeCodePoint(codePoint) {\n    return fromCodePoint(replaceCodePoint(codePoint));\n}\n//# sourceMappingURL=decode-codepoint.js.map","export const xmlReplacer = /[\"$&'<>\\u0080-\\uFFFF]/g;\nconst xmlCodeMap = new Map([\n    [34, \""\"],\n    [38, \"&\"],\n    [39, \"'\"],\n    [60, \"<\"],\n    [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexport const getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt == null\n    ? (c, index) => (c.charCodeAt(index) & 64512) === 55296\n        ? (c.charCodeAt(index) - 55296) * 1024 +\n            c.charCodeAt(index + 1) -\n            56320 +\n            65536\n        : c.charCodeAt(index)\n    : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n        (input, index) => input.codePointAt(index);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexport function encodeXML(input) {\n    let returnValue = \"\";\n    let lastIndex = 0;\n    let match;\n    while ((match = xmlReplacer.exec(input)) !== null) {\n        const { index } = match;\n        const char = input.charCodeAt(index);\n        const next = xmlCodeMap.get(char);\n        if (next === undefined) {\n            returnValue += `${input.substring(lastIndex, index)}&#x${getCodePoint(input, index).toString(16)};`;\n            // Increase by 1 if we have a surrogate pair\n            lastIndex = xmlReplacer.lastIndex += Number((char & 64512) === 55296);\n        }\n        else {\n            returnValue += input.substring(lastIndex, index) + next;\n            lastIndex = index + 1;\n        }\n    }\n    return returnValue + input.substr(lastIndex);\n}\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexport const escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n    return function escape(data) {\n        let match;\n        let lastIndex = 0;\n        let result = \"\";\n        while ((match = regex.exec(data))) {\n            if (lastIndex !== match.index) {\n                result += data.substring(lastIndex, match.index);\n            }\n            // We know that this character will be in the map.\n            result += map.get(match[0].charCodeAt(0));\n            // Every match will be of length 1\n            lastIndex = match.index + 1;\n        }\n        return result + data.substring(lastIndex);\n    };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexport const escapeUTF8 = /* #__PURE__ */ getEscaper(/[\"&'<>]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeAttribute = \n/* #__PURE__ */ getEscaper(/[\"&\\u00A0]/g, new Map([\n    [34, \""\"],\n    [38, \"&\"],\n    [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeText = /* #__PURE__ */ getEscaper(/[&<>\\u00A0]/g, new Map([\n    [38, \"&\"],\n    [60, \"<\"],\n    [62, \">\"],\n    [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","const inWebWorker = typeof WorkerGlobalScope !== \"undefined\" &&\n    self instanceof WorkerGlobalScope;\nconst root = inWebWorker\n    ? self\n    : typeof window !== \"undefined\"\n        ? window\n        : globalThis;\nexport const fetch = root.fetch.bind(root);\nexport const Headers = root.Headers;\nexport const Request = root.Request;\nexport const Response = root.Response;\n","export { Request, Response } from \"@buttercup/fetch\";\nexport var AuthType;\n(function (AuthType) {\n    AuthType[\"Auto\"] = \"auto\";\n    AuthType[\"Digest\"] = \"digest\";\n    AuthType[\"None\"] = \"none\";\n    AuthType[\"Password\"] = \"password\";\n    AuthType[\"Token\"] = \"token\";\n})(AuthType || (AuthType = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n    ErrorCode[\"DataTypeNoLength\"] = \"data-type-no-length\";\n    ErrorCode[\"InvalidAuthType\"] = \"invalid-auth-type\";\n    ErrorCode[\"InvalidOutputFormat\"] = \"invalid-output-format\";\n    ErrorCode[\"LinkUnsupportedAuthType\"] = \"link-unsupported-auth\";\n    ErrorCode[\"InvalidUpdateRange\"] = \"invalid-update-range\";\n    ErrorCode[\"NotSupported\"] = \"not-supported\";\n})(ErrorCode || (ErrorCode = {}));\n","import { Layerr } from \"layerr\";\nimport { createDigestContext } from \"./digest.js\";\nimport { generateBasicAuthHeader } from \"./basic.js\";\nimport { generateTokenAuthHeader } from \"./oauth.js\";\nimport { AuthType, ErrorCode } from \"../types.js\";\nexport function setupAuth(context, username, password, oauthToken, ha1) {\n    switch (context.authType) {\n        case AuthType.Auto:\n            if (username && password) {\n                context.headers.Authorization = generateBasicAuthHeader(username, password);\n            }\n            break;\n        case AuthType.Digest:\n            context.digest = createDigestContext(username, password, ha1);\n            break;\n        case AuthType.None:\n            // Do nothing\n            break;\n        case AuthType.Password:\n            context.headers.Authorization = generateBasicAuthHeader(username, password);\n            break;\n        case AuthType.Token:\n            context.headers.Authorization = generateTokenAuthHeader(oauthToken);\n            break;\n        default:\n            throw new Layerr({\n                info: {\n                    code: ErrorCode.InvalidAuthType\n                }\n            }, `Invalid auth type: ${context.authType}`);\n    }\n}\n","export function generateTokenAuthHeader(token) {\n    return `${token.token_type} ${token.access_token}`;\n}\n","import { sequence } from \"./functions.js\";\nconst HOT_PATCHER_TYPE = \"@@HOTPATCHER\";\nconst NOOP = () => { };\nfunction createNewItem(method) {\n    return {\n        original: method,\n        methods: [method],\n        final: false\n    };\n}\n/**\n * Hot patching manager class\n */\nexport class HotPatcher {\n    constructor() {\n        this._configuration = {\n            registry: {},\n            getEmptyAction: \"null\"\n        };\n        this.__type__ = HOT_PATCHER_TYPE;\n    }\n    /**\n     * Configuration object reference\n     * @readonly\n     */\n    get configuration() {\n        return this._configuration;\n    }\n    /**\n     * The action to take when a non-set method is requested\n     * Possible values: null/throw\n     */\n    get getEmptyAction() {\n        return this.configuration.getEmptyAction;\n    }\n    set getEmptyAction(newAction) {\n        this.configuration.getEmptyAction = newAction;\n    }\n    /**\n     * Control another hot-patcher instance\n     * Force the remote instance to use patched methods from calling instance\n     * @param target The target instance to control\n     * @param allowTargetOverrides Allow the target to override patched methods on\n     * the controller (default is false)\n     * @returns Returns self\n     * @throws {Error} Throws if the target is invalid\n     */\n    control(target, allowTargetOverrides = false) {\n        if (!target || target.__type__ !== HOT_PATCHER_TYPE) {\n            throw new Error(\"Failed taking control of target HotPatcher instance: Invalid type or object\");\n        }\n        Object.keys(target.configuration.registry).forEach(foreignKey => {\n            if (this.configuration.registry.hasOwnProperty(foreignKey)) {\n                if (allowTargetOverrides) {\n                    this.configuration.registry[foreignKey] = Object.assign({}, target.configuration.registry[foreignKey]);\n                }\n            }\n            else {\n                this.configuration.registry[foreignKey] = Object.assign({}, target.configuration.registry[foreignKey]);\n            }\n        });\n        target._configuration = this.configuration;\n        return this;\n    }\n    /**\n     * Execute a patched method\n     * @param key The method key\n     * @param args Arguments to pass to the method (optional)\n     * @see HotPatcher#get\n     * @returns The output of the called method\n     */\n    execute(key, ...args) {\n        const method = this.get(key) || NOOP;\n        return method(...args);\n    }\n    /**\n     * Get a method for a key\n     * @param key The method key\n     * @returns Returns the requested function or null if the function\n     * does not exist and the host is configured to return null (and not throw)\n     * @throws {Error} Throws if the configuration specifies to throw and the method\n     * does not exist\n     * @throws {Error} Throws if the `getEmptyAction` value is invalid\n     */\n    get(key) {\n        const item = this.configuration.registry[key];\n        if (!item) {\n            switch (this.getEmptyAction) {\n                case \"null\":\n                    return null;\n                case \"throw\":\n                    throw new Error(`Failed handling method request: No method provided for override: ${key}`);\n                default:\n                    throw new Error(`Failed handling request which resulted in an empty method: Invalid empty-action specified: ${this.getEmptyAction}`);\n            }\n        }\n        return sequence(...item.methods);\n    }\n    /**\n     * Check if a method has been patched\n     * @param key The function key\n     * @returns True if already patched\n     */\n    isPatched(key) {\n        return !!this.configuration.registry[key];\n    }\n    /**\n     * Patch a method name\n     * @param key The method key to patch\n     * @param method The function to set\n     * @param opts Patch options\n     * @returns Returns self\n     */\n    patch(key, method, opts = {}) {\n        const { chain = false } = opts;\n        if (this.configuration.registry[key] && this.configuration.registry[key].final) {\n            throw new Error(`Failed patching '${key}': Method marked as being final`);\n        }\n        if (typeof method !== \"function\") {\n            throw new Error(`Failed patching '${key}': Provided method is not a function`);\n        }\n        if (chain) {\n            // Add new method to the chain\n            if (!this.configuration.registry[key]) {\n                // New key, create item\n                this.configuration.registry[key] = createNewItem(method);\n            }\n            else {\n                // Existing, push the method\n                this.configuration.registry[key].methods.push(method);\n            }\n        }\n        else {\n            // Replace the original\n            if (this.isPatched(key)) {\n                const { original } = this.configuration.registry[key];\n                this.configuration.registry[key] = Object.assign(createNewItem(method), {\n                    original\n                });\n            }\n            else {\n                this.configuration.registry[key] = createNewItem(method);\n            }\n        }\n        return this;\n    }\n    /**\n     * Patch a method inline, execute it and return the value\n     * Used for patching contents of functions. This method will not apply a patched\n     * function if it has already been patched, allowing for external overrides to\n     * function. It also means that the function is cached so that it is not\n     * instantiated every time the outer function is invoked.\n     * @param key The function key to use\n     * @param method The function to patch (once, only if not patched)\n     * @param args Arguments to pass to the function\n     * @returns The output of the patched function\n     * @example\n     *  function mySpecialFunction(a, b) {\n     *      return hotPatcher.patchInline(\"func\", (a, b) => {\n     *          return a + b;\n     *      }, a, b);\n     *  }\n     */\n    patchInline(key, method, ...args) {\n        if (!this.isPatched(key)) {\n            this.patch(key, method);\n        }\n        return this.execute(key, ...args);\n    }\n    /**\n     * Patch a method (or methods) in sequential-mode\n     * See `patch()` with the option `chain: true`\n     * @see patch\n     * @param key The key to patch\n     * @param methods The methods to patch\n     * @returns Returns self\n     */\n    plugin(key, ...methods) {\n        methods.forEach(method => {\n            this.patch(key, method, { chain: true });\n        });\n        return this;\n    }\n    /**\n     * Restore a patched method if it has been overridden\n     * @param key The method key\n     * @returns Returns self\n     */\n    restore(key) {\n        if (!this.isPatched(key)) {\n            throw new Error(`Failed restoring method: No method present for key: ${key}`);\n        }\n        else if (typeof this.configuration.registry[key].original !== \"function\") {\n            throw new Error(`Failed restoring method: Original method not found or of invalid type for key: ${key}`);\n        }\n        this.configuration.registry[key].methods = [this.configuration.registry[key].original];\n        return this;\n    }\n    /**\n     * Set a method as being final\n     * This sets a method as having been finally overridden. Attempts at overriding\n     * again will fail with an error.\n     * @param key The key to make final\n     * @returns Returns self\n     */\n    setFinal(key) {\n        if (!this.configuration.registry.hasOwnProperty(key)) {\n            throw new Error(`Failed marking '${key}' as final: No method found for key`);\n        }\n        this.configuration.registry[key].final = true;\n        return this;\n    }\n}\n","export function sequence(...methods) {\n    if (methods.length === 0) {\n        throw new Error(\"Failed creating sequence: No functions provided\");\n    }\n    return function __executeSequence(...args) {\n        let result = args;\n        const _this = this;\n        while (methods.length > 0) {\n            const method = methods.shift();\n            result = [method.apply(_this, result)];\n        }\n        return result[0];\n    };\n}\n","import { HotPatcher } from \"hot-patcher\";\nlet __patcher = null;\nexport function getPatcher() {\n    if (!__patcher) {\n        __patcher = new HotPatcher();\n    }\n    return __patcher;\n}\n","export function isReactNative() {\n    return typeof TARGET === \"string\" && TARGET === \"react-native\";\n}\nexport function isWeb() {\n    return typeof TARGET === \"string\" && TARGET === \"web\";\n}\n","export function cloneShallow(obj) {\n    return isPlainObject(obj)\n        ? Object.assign({}, obj)\n        : Object.setPrototypeOf(Object.assign({}, obj), Object.getPrototypeOf(obj));\n}\nfunction isPlainObject(obj) {\n    if (typeof obj !== \"object\" ||\n        obj === null ||\n        Object.prototype.toString.call(obj) != \"[object Object]\") {\n        // Not an object\n        return false;\n    }\n    if (Object.getPrototypeOf(obj) === null) {\n        return true;\n    }\n    let proto = obj;\n    // Find the prototype\n    while (Object.getPrototypeOf(proto) !== null) {\n        proto = Object.getPrototypeOf(proto);\n    }\n    return Object.getPrototypeOf(obj) === proto;\n}\nexport function merge(...args) {\n    let output = null, items = [...args];\n    while (items.length > 0) {\n        const nextItem = items.shift();\n        if (!output) {\n            output = cloneShallow(nextItem);\n        }\n        else {\n            output = mergeObjects(output, nextItem);\n        }\n    }\n    return output;\n}\nfunction mergeObjects(obj1, obj2) {\n    const output = cloneShallow(obj1);\n    Object.keys(obj2).forEach(key => {\n        if (!output.hasOwnProperty(key)) {\n            output[key] = obj2[key];\n            return;\n        }\n        if (Array.isArray(obj2[key])) {\n            output[key] = Array.isArray(output[key])\n                ? [...output[key], ...obj2[key]]\n                : [...obj2[key]];\n        }\n        else if (typeof obj2[key] === \"object\" && !!obj2[key]) {\n            output[key] =\n                typeof output[key] === \"object\" && !!output[key]\n                    ? mergeObjects(output[key], obj2[key])\n                    : cloneShallow(obj2[key]);\n        }\n        else {\n            output[key] = obj2[key];\n        }\n    });\n    return output;\n}\n","export function convertResponseHeaders(headers) {\n    const output = {};\n    for (const key of headers.keys()) {\n        output[key] = headers.get(key);\n    }\n    return output;\n}\nexport function mergeHeaders(...headerPayloads) {\n    if (headerPayloads.length === 0)\n        return {};\n    const headerKeys = {};\n    return headerPayloads.reduce((output, headers) => {\n        Object.keys(headers).forEach(header => {\n            const lowerHeader = header.toLowerCase();\n            if (headerKeys.hasOwnProperty(lowerHeader)) {\n                output[headerKeys[lowerHeader]] = headers[header];\n            }\n            else {\n                headerKeys[lowerHeader] = header;\n                output[header] = headers[header];\n            }\n        });\n        return output;\n    }, {});\n}\n","const hasArrayBuffer = typeof ArrayBuffer === \"function\";\nconst { toString: objToString } = Object.prototype;\n// Taken from: https://github.com/fengyuanchen/is-array-buffer/blob/master/src/index.js\nexport function isArrayBuffer(value) {\n    return (hasArrayBuffer &&\n        (value instanceof ArrayBuffer || objToString.call(value) === \"[object ArrayBuffer]\"));\n}\n","export function isBuffer(value) {\n    return (value != null &&\n        value.constructor != null &&\n        typeof value.constructor.isBuffer === \"function\" &&\n        value.constructor.isBuffer(value));\n}\n","import { Agent as HTTPAgent } from \"http\";\nimport { Agent as HTTPSAgent } from \"https\";\nimport { fetch } from \"@buttercup/fetch\";\nimport { getPatcher } from \"./compat/patcher.js\";\nimport { isReactNative, isWeb } from \"./compat/env.js\";\nimport { generateDigestAuthHeader, parseDigestAuth, responseIndicatesDigestAuth } from \"./auth/digest.js\";\nimport { cloneShallow, merge } from \"./tools/merge.js\";\nimport { mergeHeaders } from \"./tools/headers.js\";\nimport { requestDataToFetchBody } from \"./tools/body.js\";\nimport { AuthType } from \"./types.js\";\nimport { setupAuth } from \"./auth/index.js\";\nfunction getFetchOptions(requestOptions) {\n    let headers = {};\n    // Handle standard options\n    const opts = {\n        method: requestOptions.method\n    };\n    if (requestOptions.headers) {\n        headers = mergeHeaders(headers, requestOptions.headers);\n    }\n    if (typeof requestOptions.data !== \"undefined\") {\n        const [body, newHeaders] = requestDataToFetchBody(requestOptions.data);\n        opts.body = body;\n        headers = mergeHeaders(headers, newHeaders);\n    }\n    if (requestOptions.signal) {\n        opts.signal = requestOptions.signal;\n    }\n    if (requestOptions.withCredentials) {\n        opts.credentials = \"include\";\n    }\n    // Check for node-specific options\n    if (!isWeb() && !isReactNative()) {\n        if (requestOptions.httpAgent || requestOptions.httpsAgent) {\n            opts.agent = (parsedURL) => {\n                if (parsedURL.protocol === \"http:\") {\n                    return requestOptions.httpAgent || new HTTPAgent();\n                }\n                return requestOptions.httpsAgent || new HTTPSAgent();\n            };\n        }\n    }\n    // Attach headers\n    opts.headers = headers;\n    return opts;\n}\nexport function prepareRequestOptions(requestOptions, context, userOptions) {\n    const finalOptions = cloneShallow(requestOptions);\n    finalOptions.headers = mergeHeaders(context.headers, finalOptions.headers || {}, userOptions.headers || {});\n    if (typeof userOptions.data !== \"undefined\") {\n        finalOptions.data = userOptions.data;\n    }\n    if (userOptions.signal) {\n        finalOptions.signal = userOptions.signal;\n    }\n    if (context.httpAgent) {\n        finalOptions.httpAgent = context.httpAgent;\n    }\n    if (context.httpsAgent) {\n        finalOptions.httpsAgent = context.httpsAgent;\n    }\n    if (context.digest) {\n        finalOptions._digest = context.digest;\n    }\n    if (typeof context.withCredentials === \"boolean\") {\n        finalOptions.withCredentials = context.withCredentials;\n    }\n    return finalOptions;\n}\nexport async function request(requestOptions, context) {\n    if (context.authType === AuthType.Auto) {\n        return requestAuto(requestOptions, context);\n    }\n    if (requestOptions._digest) {\n        return requestDigest(requestOptions);\n    }\n    return requestStandard(requestOptions);\n}\nasync function requestAuto(requestOptions, context) {\n    const response = await requestStandard(requestOptions);\n    if (response.ok) {\n        context.authType = AuthType.Password;\n        return response;\n    }\n    if (response.status == 401 && responseIndicatesDigestAuth(response)) {\n        context.authType = AuthType.Digest;\n        setupAuth(context, context.username, context.password, undefined, undefined);\n        requestOptions._digest = context.digest;\n        return requestDigest(requestOptions);\n    }\n    return response;\n}\nasync function requestDigest(requestOptions) {\n    // Remove client's digest authentication object from request options\n    const _digest = requestOptions._digest;\n    delete requestOptions._digest;\n    // If client is already using digest authentication, include the digest authorization header\n    if (_digest.hasDigestAuth) {\n        requestOptions = merge(requestOptions, {\n            headers: {\n                Authorization: generateDigestAuthHeader(requestOptions, _digest)\n            }\n        });\n    }\n    // Perform digest request + check\n    const response = await requestStandard(requestOptions);\n    if (response.status == 401) {\n        _digest.hasDigestAuth = parseDigestAuth(response, _digest);\n        if (_digest.hasDigestAuth) {\n            requestOptions = merge(requestOptions, {\n                headers: {\n                    Authorization: generateDigestAuthHeader(requestOptions, _digest)\n                }\n            });\n            const response2 = await requestStandard(requestOptions);\n            if (response2.status == 401) {\n                _digest.hasDigestAuth = false;\n            }\n            else {\n                _digest.nc++;\n            }\n            return response2;\n        }\n    }\n    else {\n        _digest.nc++;\n    }\n    return response;\n}\nfunction requestStandard(requestOptions) {\n    const patcher = getPatcher();\n    return patcher.patchInline(\"request\", (options) => patcher.patchInline(\"fetch\", fetch, options.url, getFetchOptions(options)), requestOptions);\n}\n","import Stream from \"stream\";\nimport { isArrayBuffer } from \"../compat/arrayBuffer.js\";\nimport { isBuffer } from \"../compat/buffer.js\";\nimport { isReactNative, isWeb } from \"../compat/env.js\";\nexport function requestDataToFetchBody(data) {\n    if (!isWeb() && !isReactNative() && data instanceof Stream.Readable) {\n        // @ts-ignore\n        return [data, {}];\n    }\n    if (typeof data === \"string\") {\n        return [data, {}];\n    }\n    else if (isBuffer(data)) {\n        return [data, {}];\n    }\n    else if (isArrayBuffer(data)) {\n        return [data, {}];\n    }\n    else if (data && typeof data === \"object\") {\n        return [\n            JSON.stringify(data),\n            {\n                \"content-type\": \"application/json\"\n            }\n        ];\n    }\n    throw new Error(`Unable to convert request body: Unexpected body type: ${typeof data}`);\n}\n","const MAX_PATTERN_LENGTH = 1024 * 64;\nexport const assertValidPattern = (pattern) => {\n    if (typeof pattern !== 'string') {\n        throw new TypeError('invalid pattern');\n    }\n    if (pattern.length > MAX_PATTERN_LENGTH) {\n        throw new TypeError('pattern is too long');\n    }\n};\n//# sourceMappingURL=assert-valid-pattern.js.map","// translate the various posix character classes into unicode properties\n// this works across all unicode locales\n// { : [, /u flag required, negated]\nconst posixClasses = {\n    '[:alnum:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}', true],\n    '[:alpha:]': ['\\\\p{L}\\\\p{Nl}', true],\n    '[:ascii:]': ['\\\\x' + '00-\\\\x' + '7f', false],\n    '[:blank:]': ['\\\\p{Zs}\\\\t', true],\n    '[:cntrl:]': ['\\\\p{Cc}', true],\n    '[:digit:]': ['\\\\p{Nd}', true],\n    '[:graph:]': ['\\\\p{Z}\\\\p{C}', true, true],\n    '[:lower:]': ['\\\\p{Ll}', true],\n    '[:print:]': ['\\\\p{C}', true],\n    '[:punct:]': ['\\\\p{P}', true],\n    '[:space:]': ['\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f', true],\n    '[:upper:]': ['\\\\p{Lu}', true],\n    '[:word:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}', true],\n    '[:xdigit:]': ['A-Fa-f0-9', false],\n};\n// only need to escape a few things inside of brace expressions\n// escapes: [ \\ ] -\nconst braceEscape = (s) => s.replace(/[[\\]\\\\-]/g, '\\\\$&');\n// escape all regexp magic characters\nconst regexpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// everything has already been escaped, we just have to join\nconst rangesToString = (ranges) => ranges.join('');\n// takes a glob string at a posix brace expression, and returns\n// an equivalent regular expression source, and boolean indicating\n// whether the /u flag needs to be applied, and the number of chars\n// consumed to parse the character class.\n// This also removes out of order ranges, and returns ($.) if the\n// entire class just no good.\nexport const parseClass = (glob, position) => {\n    const pos = position;\n    /* c8 ignore start */\n    if (glob.charAt(pos) !== '[') {\n        throw new Error('not in a brace expression');\n    }\n    /* c8 ignore stop */\n    const ranges = [];\n    const negs = [];\n    let i = pos + 1;\n    let sawStart = false;\n    let uflag = false;\n    let escaping = false;\n    let negate = false;\n    let endPos = pos;\n    let rangeStart = '';\n    WHILE: while (i < glob.length) {\n        const c = glob.charAt(i);\n        if ((c === '!' || c === '^') && i === pos + 1) {\n            negate = true;\n            i++;\n            continue;\n        }\n        if (c === ']' && sawStart && !escaping) {\n            endPos = i + 1;\n            break;\n        }\n        sawStart = true;\n        if (c === '\\\\') {\n            if (!escaping) {\n                escaping = true;\n                i++;\n                continue;\n            }\n            // escaped \\ char, fall through and treat like normal char\n        }\n        if (c === '[' && !escaping) {\n            // either a posix class, a collation equivalent, or just a [\n            for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {\n                if (glob.startsWith(cls, i)) {\n                    // invalid, [a-[] is fine, but not [a-[:alpha]]\n                    if (rangeStart) {\n                        return ['$.', false, glob.length - pos, true];\n                    }\n                    i += cls.length;\n                    if (neg)\n                        negs.push(unip);\n                    else\n                        ranges.push(unip);\n                    uflag = uflag || u;\n                    continue WHILE;\n                }\n            }\n        }\n        // now it's just a normal character, effectively\n        escaping = false;\n        if (rangeStart) {\n            // throw this range away if it's not valid, but others\n            // can still match.\n            if (c > rangeStart) {\n                ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c));\n            }\n            else if (c === rangeStart) {\n                ranges.push(braceEscape(c));\n            }\n            rangeStart = '';\n            i++;\n            continue;\n        }\n        // now might be the start of a range.\n        // can be either c-d or c-] or c] or c] at this point\n        if (glob.startsWith('-]', i + 1)) {\n            ranges.push(braceEscape(c + '-'));\n            i += 2;\n            continue;\n        }\n        if (glob.startsWith('-', i + 1)) {\n            rangeStart = c;\n            i += 2;\n            continue;\n        }\n        // not the start of a range, just a single character\n        ranges.push(braceEscape(c));\n        i++;\n    }\n    if (endPos < i) {\n        // didn't see the end of the class, not a valid class,\n        // but might still be valid as a literal match.\n        return ['', false, 0, false];\n    }\n    // if we got no ranges and no negates, then we have a range that\n    // cannot possibly match anything, and that poisons the whole glob\n    if (!ranges.length && !negs.length) {\n        return ['$.', false, glob.length - pos, true];\n    }\n    // if we got one positive range, and it's a single character, then that's\n    // not actually a magic pattern, it's just that one literal character.\n    // we should not treat that as \"magic\", we should just return the literal\n    // character. [_] is a perfectly valid way to escape glob magic chars.\n    if (negs.length === 0 &&\n        ranges.length === 1 &&\n        /^\\\\?.$/.test(ranges[0]) &&\n        !negate) {\n        const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0];\n        return [regexpEscape(r), false, endPos - pos, false];\n    }\n    const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']';\n    const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']';\n    const comb = ranges.length && negs.length\n        ? '(' + sranges + '|' + snegs + ')'\n        : ranges.length\n            ? sranges\n            : snegs;\n    return [comb, uflag, endPos - pos, true];\n};\n//# sourceMappingURL=brace-expressions.js.map","/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link windowsPathsNoEscape} option is used, then square-brace\n * escapes are removed, but not backslash escapes.  For example, it will turn\n * the string `'[*]'` into `*`, but it will not turn `'\\\\*'` into `'*'`,\n * becuase `\\` is a path separator in `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both brace escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n */\nexport const unescape = (s, { windowsPathsNoEscape = false, } = {}) => {\n    return windowsPathsNoEscape\n        ? s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n        : s.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2').replace(/\\\\([^\\/])/g, '$1');\n};\n//# sourceMappingURL=unescape.js.map","// parse a single path portion\nimport { parseClass } from './brace-expressions.js';\nimport { unescape } from './unescape.js';\nconst types = new Set(['!', '?', '+', '*', '@']);\nconst isExtglobType = (c) => types.has(c);\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))';\nconst startNoDot = '(?!\\\\.)';\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.']);\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.']);\nconst reSpecials = new Set('().*{}+?[]^$\\\\!');\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// any single thing other than /\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?';\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\nexport class AST {\n    type;\n    #root;\n    #hasMagic;\n    #uflag = false;\n    #parts = [];\n    #parent;\n    #parentIndex;\n    #negs;\n    #filledNegs = false;\n    #options;\n    #toString;\n    // set to true if it's an extglob with no children\n    // (which really means one child of '')\n    #emptyExt = false;\n    constructor(type, parent, options = {}) {\n        this.type = type;\n        // extglobs are inherently magical\n        if (type)\n            this.#hasMagic = true;\n        this.#parent = parent;\n        this.#root = this.#parent ? this.#parent.#root : this;\n        this.#options = this.#root === this ? options : this.#root.#options;\n        this.#negs = this.#root === this ? [] : this.#root.#negs;\n        if (type === '!' && !this.#root.#filledNegs)\n            this.#negs.push(this);\n        this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0;\n    }\n    get hasMagic() {\n        /* c8 ignore start */\n        if (this.#hasMagic !== undefined)\n            return this.#hasMagic;\n        /* c8 ignore stop */\n        for (const p of this.#parts) {\n            if (typeof p === 'string')\n                continue;\n            if (p.type || p.hasMagic)\n                return (this.#hasMagic = true);\n        }\n        // note: will be undefined until we generate the regexp src and find out\n        return this.#hasMagic;\n    }\n    // reconstructs the pattern\n    toString() {\n        if (this.#toString !== undefined)\n            return this.#toString;\n        if (!this.type) {\n            return (this.#toString = this.#parts.map(p => String(p)).join(''));\n        }\n        else {\n            return (this.#toString =\n                this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')');\n        }\n    }\n    #fillNegs() {\n        /* c8 ignore start */\n        if (this !== this.#root)\n            throw new Error('should only call on root');\n        if (this.#filledNegs)\n            return this;\n        /* c8 ignore stop */\n        // call toString() once to fill this out\n        this.toString();\n        this.#filledNegs = true;\n        let n;\n        while ((n = this.#negs.pop())) {\n            if (n.type !== '!')\n                continue;\n            // walk up the tree, appending everthing that comes AFTER parentIndex\n            let p = n;\n            let pp = p.#parent;\n            while (pp) {\n                for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) {\n                    for (const part of n.#parts) {\n                        /* c8 ignore start */\n                        if (typeof part === 'string') {\n                            throw new Error('string part in extglob AST??');\n                        }\n                        /* c8 ignore stop */\n                        part.copyIn(pp.#parts[i]);\n                    }\n                }\n                p = pp;\n                pp = p.#parent;\n            }\n        }\n        return this;\n    }\n    push(...parts) {\n        for (const p of parts) {\n            if (p === '')\n                continue;\n            /* c8 ignore start */\n            if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {\n                throw new Error('invalid part: ' + p);\n            }\n            /* c8 ignore stop */\n            this.#parts.push(p);\n        }\n    }\n    toJSON() {\n        const ret = this.type === null\n            ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))\n            : [this.type, ...this.#parts.map(p => p.toJSON())];\n        if (this.isStart() && !this.type)\n            ret.unshift([]);\n        if (this.isEnd() &&\n            (this === this.#root ||\n                (this.#root.#filledNegs && this.#parent?.type === '!'))) {\n            ret.push({});\n        }\n        return ret;\n    }\n    isStart() {\n        if (this.#root === this)\n            return true;\n        // if (this.type) return !!this.#parent?.isStart()\n        if (!this.#parent?.isStart())\n            return false;\n        if (this.#parentIndex === 0)\n            return true;\n        // if everything AHEAD of this is a negation, then it's still the \"start\"\n        const p = this.#parent;\n        for (let i = 0; i < this.#parentIndex; i++) {\n            const pp = p.#parts[i];\n            if (!(pp instanceof AST && pp.type === '!')) {\n                return false;\n            }\n        }\n        return true;\n    }\n    isEnd() {\n        if (this.#root === this)\n            return true;\n        if (this.#parent?.type === '!')\n            return true;\n        if (!this.#parent?.isEnd())\n            return false;\n        if (!this.type)\n            return this.#parent?.isEnd();\n        // if not root, it'll always have a parent\n        /* c8 ignore start */\n        const pl = this.#parent ? this.#parent.#parts.length : 0;\n        /* c8 ignore stop */\n        return this.#parentIndex === pl - 1;\n    }\n    copyIn(part) {\n        if (typeof part === 'string')\n            this.push(part);\n        else\n            this.push(part.clone(this));\n    }\n    clone(parent) {\n        const c = new AST(this.type, parent);\n        for (const p of this.#parts) {\n            c.copyIn(p);\n        }\n        return c;\n    }\n    static #parseAST(str, ast, pos, opt) {\n        let escaping = false;\n        let inBrace = false;\n        let braceStart = -1;\n        let braceNeg = false;\n        if (ast.type === null) {\n            // outside of a extglob, append until we find a start\n            let i = pos;\n            let acc = '';\n            while (i < str.length) {\n                const c = str.charAt(i++);\n                // still accumulate escapes at this point, but we do ignore\n                // starts that are escaped\n                if (escaping || c === '\\\\') {\n                    escaping = !escaping;\n                    acc += c;\n                    continue;\n                }\n                if (inBrace) {\n                    if (i === braceStart + 1) {\n                        if (c === '^' || c === '!') {\n                            braceNeg = true;\n                        }\n                    }\n                    else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n                        inBrace = false;\n                    }\n                    acc += c;\n                    continue;\n                }\n                else if (c === '[') {\n                    inBrace = true;\n                    braceStart = i;\n                    braceNeg = false;\n                    acc += c;\n                    continue;\n                }\n                if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') {\n                    ast.push(acc);\n                    acc = '';\n                    const ext = new AST(c, ast);\n                    i = AST.#parseAST(str, ext, i, opt);\n                    ast.push(ext);\n                    continue;\n                }\n                acc += c;\n            }\n            ast.push(acc);\n            return i;\n        }\n        // some kind of extglob, pos is at the (\n        // find the next | or )\n        let i = pos + 1;\n        let part = new AST(null, ast);\n        const parts = [];\n        let acc = '';\n        while (i < str.length) {\n            const c = str.charAt(i++);\n            // still accumulate escapes at this point, but we do ignore\n            // starts that are escaped\n            if (escaping || c === '\\\\') {\n                escaping = !escaping;\n                acc += c;\n                continue;\n            }\n            if (inBrace) {\n                if (i === braceStart + 1) {\n                    if (c === '^' || c === '!') {\n                        braceNeg = true;\n                    }\n                }\n                else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n                    inBrace = false;\n                }\n                acc += c;\n                continue;\n            }\n            else if (c === '[') {\n                inBrace = true;\n                braceStart = i;\n                braceNeg = false;\n                acc += c;\n                continue;\n            }\n            if (isExtglobType(c) && str.charAt(i) === '(') {\n                part.push(acc);\n                acc = '';\n                const ext = new AST(c, part);\n                part.push(ext);\n                i = AST.#parseAST(str, ext, i, opt);\n                continue;\n            }\n            if (c === '|') {\n                part.push(acc);\n                acc = '';\n                parts.push(part);\n                part = new AST(null, ast);\n                continue;\n            }\n            if (c === ')') {\n                if (acc === '' && ast.#parts.length === 0) {\n                    ast.#emptyExt = true;\n                }\n                part.push(acc);\n                acc = '';\n                ast.push(...parts, part);\n                return i;\n            }\n            acc += c;\n        }\n        // unfinished extglob\n        // if we got here, it was a malformed extglob! not an extglob, but\n        // maybe something else in there.\n        ast.type = null;\n        ast.#hasMagic = undefined;\n        ast.#parts = [str.substring(pos - 1)];\n        return i;\n    }\n    static fromGlob(pattern, options = {}) {\n        const ast = new AST(null, undefined, options);\n        AST.#parseAST(pattern, ast, 0, options);\n        return ast;\n    }\n    // returns the regular expression if there's magic, or the unescaped\n    // string if not.\n    toMMPattern() {\n        // should only be called on root\n        /* c8 ignore start */\n        if (this !== this.#root)\n            return this.#root.toMMPattern();\n        /* c8 ignore stop */\n        const glob = this.toString();\n        const [re, body, hasMagic, uflag] = this.toRegExpSource();\n        // if we're in nocase mode, and not nocaseMagicOnly, then we do\n        // still need a regular expression if we have to case-insensitively\n        // match capital/lowercase characters.\n        const anyMagic = hasMagic ||\n            this.#hasMagic ||\n            (this.#options.nocase &&\n                !this.#options.nocaseMagicOnly &&\n                glob.toUpperCase() !== glob.toLowerCase());\n        if (!anyMagic) {\n            return body;\n        }\n        const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '');\n        return Object.assign(new RegExp(`^${re}$`, flags), {\n            _src: re,\n            _glob: glob,\n        });\n    }\n    get options() {\n        return this.#options;\n    }\n    // returns the string match, the regexp source, whether there's magic\n    // in the regexp (so a regular expression is required) and whether or\n    // not the uflag is needed for the regular expression (for posix classes)\n    // TODO: instead of injecting the start/end at this point, just return\n    // the BODY of the regexp, along with the start/end portions suitable\n    // for binding the start/end in either a joined full-path makeRe context\n    // (where we bind to (^|/), or a standalone matchPart context (where\n    // we bind to ^, and not /).  Otherwise slashes get duped!\n    //\n    // In part-matching mode, the start is:\n    // - if not isStart: nothing\n    // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n    // - if dots allowed or not possible: ^\n    // - if dots possible and not allowed: ^(?!\\.)\n    // end is:\n    // - if not isEnd(): nothing\n    // - else: $\n    //\n    // In full-path matching mode, we put the slash at the START of the\n    // pattern, so start is:\n    // - if first pattern: same as part-matching mode\n    // - if not isStart(): nothing\n    // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n    // - if dots allowed or not possible: /\n    // - if dots possible and not allowed: /(?!\\.)\n    // end is:\n    // - if last pattern, same as part-matching mode\n    // - else nothing\n    //\n    // Always put the (?:$|/) on negated tails, though, because that has to be\n    // there to bind the end of the negated pattern portion, and it's easier to\n    // just stick it in now rather than try to inject it later in the middle of\n    // the pattern.\n    //\n    // We can just always return the same end, and leave it up to the caller\n    // to know whether it's going to be used joined or in parts.\n    // And, if the start is adjusted slightly, can do the same there:\n    // - if not isStart: nothing\n    // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n    // - if dots allowed or not possible: (?:/|^)\n    // - if dots possible and not allowed: (?:/|^)(?!\\.)\n    //\n    // But it's better to have a simpler binding without a conditional, for\n    // performance, so probably better to return both start options.\n    //\n    // Then the caller just ignores the end if it's not the first pattern,\n    // and the start always gets applied.\n    //\n    // But that's always going to be $ if it's the ending pattern, or nothing,\n    // so the caller can just attach $ at the end of the pattern when building.\n    //\n    // So the todo is:\n    // - better detect what kind of start is needed\n    // - return both flavors of starting pattern\n    // - attach $ at the end of the pattern when creating the actual RegExp\n    //\n    // Ah, but wait, no, that all only applies to the root when the first pattern\n    // is not an extglob. If the first pattern IS an extglob, then we need all\n    // that dot prevention biz to live in the extglob portions, because eg\n    // +(*|.x*) can match .xy but not .yx.\n    //\n    // So, return the two flavors if it's #root and the first child is not an\n    // AST, otherwise leave it to the child AST to handle it, and there,\n    // use the (?:^|/) style of start binding.\n    //\n    // Even simplified further:\n    // - Since the start for a join is eg /(?!\\.) and the start for a part\n    // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n    // or start or whatever) and prepend ^ or / at the Regexp construction.\n    toRegExpSource(allowDot) {\n        const dot = allowDot ?? !!this.#options.dot;\n        if (this.#root === this)\n            this.#fillNegs();\n        if (!this.type) {\n            const noEmpty = this.isStart() && this.isEnd();\n            const src = this.#parts\n                .map(p => {\n                const [re, _, hasMagic, uflag] = typeof p === 'string'\n                    ? AST.#parseGlob(p, this.#hasMagic, noEmpty)\n                    : p.toRegExpSource(allowDot);\n                this.#hasMagic = this.#hasMagic || hasMagic;\n                this.#uflag = this.#uflag || uflag;\n                return re;\n            })\n                .join('');\n            let start = '';\n            if (this.isStart()) {\n                if (typeof this.#parts[0] === 'string') {\n                    // this is the string that will match the start of the pattern,\n                    // so we need to protect against dots and such.\n                    // '.' and '..' cannot match unless the pattern is that exactly,\n                    // even if it starts with . or dot:true is set.\n                    const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]);\n                    if (!dotTravAllowed) {\n                        const aps = addPatternStart;\n                        // check if we have a possibility of matching . or ..,\n                        // and prevent that.\n                        const needNoTrav = \n                        // dots are allowed, and the pattern starts with [ or .\n                        (dot && aps.has(src.charAt(0))) ||\n                            // the pattern starts with \\., and then [ or .\n                            (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n                            // the pattern starts with \\.\\., and then [ or .\n                            (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)));\n                        // no need to prevent dots if it can't match a dot, or if a\n                        // sub-pattern will be preventing it anyway.\n                        const needNoDot = !dot && !allowDot && aps.has(src.charAt(0));\n                        start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : '';\n                    }\n                }\n            }\n            // append the \"end of path portion\" pattern to negation tails\n            let end = '';\n            if (this.isEnd() &&\n                this.#root.#filledNegs &&\n                this.#parent?.type === '!') {\n                end = '(?:$|\\\\/)';\n            }\n            const final = start + src + end;\n            return [\n                final,\n                unescape(src),\n                (this.#hasMagic = !!this.#hasMagic),\n                this.#uflag,\n            ];\n        }\n        // We need to calculate the body *twice* if it's a repeat pattern\n        // at the start, once in nodot mode, then again in dot mode, so a\n        // pattern like *(?) can match 'x.y'\n        const repeated = this.type === '*' || this.type === '+';\n        // some kind of extglob\n        const start = this.type === '!' ? '(?:(?!(?:' : '(?:';\n        let body = this.#partsToRegExp(dot);\n        if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n            // invalid extglob, has to at least be *something* present, if it's\n            // the entire path portion.\n            const s = this.toString();\n            this.#parts = [s];\n            this.type = null;\n            this.#hasMagic = undefined;\n            return [s, unescape(this.toString()), false, false];\n        }\n        // XXX abstract out this map method\n        let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot\n            ? ''\n            : this.#partsToRegExp(true);\n        if (bodyDotAllowed === body) {\n            bodyDotAllowed = '';\n        }\n        if (bodyDotAllowed) {\n            body = `(?:${body})(?:${bodyDotAllowed})*?`;\n        }\n        // an empty !() is exactly equivalent to a starNoEmpty\n        let final = '';\n        if (this.type === '!' && this.#emptyExt) {\n            final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty;\n        }\n        else {\n            const close = this.type === '!'\n                ? // !() must match something,but !(x) can match ''\n                    '))' +\n                        (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n                        star +\n                        ')'\n                : this.type === '@'\n                    ? ')'\n                    : this.type === '?'\n                        ? ')?'\n                        : this.type === '+' && bodyDotAllowed\n                            ? ')'\n                            : this.type === '*' && bodyDotAllowed\n                                ? `)?`\n                                : `)${this.type}`;\n            final = start + body + close;\n        }\n        return [\n            final,\n            unescape(body),\n            (this.#hasMagic = !!this.#hasMagic),\n            this.#uflag,\n        ];\n    }\n    #partsToRegExp(dot) {\n        return this.#parts\n            .map(p => {\n            // extglob ASTs should only contain parent ASTs\n            /* c8 ignore start */\n            if (typeof p === 'string') {\n                throw new Error('string type in extglob ast??');\n            }\n            /* c8 ignore stop */\n            // can ignore hasMagic, because extglobs are already always magic\n            const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot);\n            this.#uflag = this.#uflag || uflag;\n            return re;\n        })\n            .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n            .join('|');\n    }\n    static #parseGlob(glob, hasMagic, noEmpty = false) {\n        let escaping = false;\n        let re = '';\n        let uflag = false;\n        for (let i = 0; i < glob.length; i++) {\n            const c = glob.charAt(i);\n            if (escaping) {\n                escaping = false;\n                re += (reSpecials.has(c) ? '\\\\' : '') + c;\n                continue;\n            }\n            if (c === '\\\\') {\n                if (i === glob.length - 1) {\n                    re += '\\\\\\\\';\n                }\n                else {\n                    escaping = true;\n                }\n                continue;\n            }\n            if (c === '[') {\n                const [src, needUflag, consumed, magic] = parseClass(glob, i);\n                if (consumed) {\n                    re += src;\n                    uflag = uflag || needUflag;\n                    i += consumed - 1;\n                    hasMagic = hasMagic || magic;\n                    continue;\n                }\n            }\n            if (c === '*') {\n                if (noEmpty && glob === '*')\n                    re += starNoEmpty;\n                else\n                    re += star;\n                hasMagic = true;\n                continue;\n            }\n            if (c === '?') {\n                re += qmark;\n                hasMagic = true;\n                continue;\n            }\n            re += regExpEscape(c);\n        }\n        return [re, unescape(glob), !!hasMagic, uflag];\n    }\n}\n//# sourceMappingURL=ast.js.map","import expand from 'brace-expansion';\nimport { assertValidPattern } from './assert-valid-pattern.js';\nimport { AST } from './ast.js';\nimport { escape } from './escape.js';\nimport { unescape } from './unescape.js';\nexport const minimatch = (p, pattern, options = {}) => {\n    assertValidPattern(pattern);\n    // shortcut: comments match nothing.\n    if (!options.nocomment && pattern.charAt(0) === '#') {\n        return false;\n    }\n    return new Minimatch(pattern, options).match(p);\n};\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/;\nconst starDotExtTest = (ext) => (f) => !f.startsWith('.') && f.endsWith(ext);\nconst starDotExtTestDot = (ext) => (f) => f.endsWith(ext);\nconst starDotExtTestNocase = (ext) => {\n    ext = ext.toLowerCase();\n    return (f) => !f.startsWith('.') && f.toLowerCase().endsWith(ext);\n};\nconst starDotExtTestNocaseDot = (ext) => {\n    ext = ext.toLowerCase();\n    return (f) => f.toLowerCase().endsWith(ext);\n};\nconst starDotStarRE = /^\\*+\\.\\*+$/;\nconst starDotStarTest = (f) => !f.startsWith('.') && f.includes('.');\nconst starDotStarTestDot = (f) => f !== '.' && f !== '..' && f.includes('.');\nconst dotStarRE = /^\\.\\*+$/;\nconst dotStarTest = (f) => f !== '.' && f !== '..' && f.startsWith('.');\nconst starRE = /^\\*+$/;\nconst starTest = (f) => f.length !== 0 && !f.startsWith('.');\nconst starTestDot = (f) => f.length !== 0 && f !== '.' && f !== '..';\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/;\nconst qmarksTestNocase = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExt([$0]);\n    if (!ext)\n        return noext;\n    ext = ext.toLowerCase();\n    return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestNocaseDot = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExtDot([$0]);\n    if (!ext)\n        return noext;\n    ext = ext.toLowerCase();\n    return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestDot = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExtDot([$0]);\n    return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTest = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExt([$0]);\n    return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTestNoExt = ([$0]) => {\n    const len = $0.length;\n    return (f) => f.length === len && !f.startsWith('.');\n};\nconst qmarksTestNoExtDot = ([$0]) => {\n    const len = $0.length;\n    return (f) => f.length === len && f !== '.' && f !== '..';\n};\n/* c8 ignore start */\nconst defaultPlatform = (typeof process === 'object' && process\n    ? (typeof process.env === 'object' &&\n        process.env &&\n        process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n        process.platform\n    : 'posix');\nconst path = {\n    win32: { sep: '\\\\' },\n    posix: { sep: '/' },\n};\n/* c8 ignore stop */\nexport const sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep;\nminimatch.sep = sep;\nexport const GLOBSTAR = Symbol('globstar **');\nminimatch.GLOBSTAR = GLOBSTAR;\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// ** when dots are allowed.  Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?';\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?';\nexport const filter = (pattern, options = {}) => (p) => minimatch(p, pattern, options);\nminimatch.filter = filter;\nconst ext = (a, b = {}) => Object.assign({}, a, b);\nexport const defaults = (def) => {\n    if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n        return minimatch;\n    }\n    const orig = minimatch;\n    const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options));\n    return Object.assign(m, {\n        Minimatch: class Minimatch extends orig.Minimatch {\n            constructor(pattern, options = {}) {\n                super(pattern, ext(def, options));\n            }\n            static defaults(options) {\n                return orig.defaults(ext(def, options)).Minimatch;\n            }\n        },\n        AST: class AST extends orig.AST {\n            /* c8 ignore start */\n            constructor(type, parent, options = {}) {\n                super(type, parent, ext(def, options));\n            }\n            /* c8 ignore stop */\n            static fromGlob(pattern, options = {}) {\n                return orig.AST.fromGlob(pattern, ext(def, options));\n            }\n        },\n        unescape: (s, options = {}) => orig.unescape(s, ext(def, options)),\n        escape: (s, options = {}) => orig.escape(s, ext(def, options)),\n        filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)),\n        defaults: (options) => orig.defaults(ext(def, options)),\n        makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)),\n        braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)),\n        match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)),\n        sep: orig.sep,\n        GLOBSTAR: GLOBSTAR,\n    });\n};\nminimatch.defaults = defaults;\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nexport const braceExpand = (pattern, options = {}) => {\n    assertValidPattern(pattern);\n    // Thanks to Yeting Li  for\n    // improving this regexp to avoid a ReDOS vulnerability.\n    if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n        // shortcut. no need to expand.\n        return [pattern];\n    }\n    return expand(pattern);\n};\nminimatch.braceExpand = braceExpand;\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion.  Otherwise, any series\n// of * is equivalent to a single *.  Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nexport const makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe();\nminimatch.makeRe = makeRe;\nexport const match = (list, pattern, options = {}) => {\n    const mm = new Minimatch(pattern, options);\n    list = list.filter(f => mm.match(f));\n    if (mm.options.nonull && !list.length) {\n        list.push(pattern);\n    }\n    return list;\n};\nminimatch.match = match;\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/;\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\nexport class Minimatch {\n    options;\n    set;\n    pattern;\n    windowsPathsNoEscape;\n    nonegate;\n    negate;\n    comment;\n    empty;\n    preserveMultipleSlashes;\n    partial;\n    globSet;\n    globParts;\n    nocase;\n    isWindows;\n    platform;\n    windowsNoMagicRoot;\n    regexp;\n    constructor(pattern, options = {}) {\n        assertValidPattern(pattern);\n        options = options || {};\n        this.options = options;\n        this.pattern = pattern;\n        this.platform = options.platform || defaultPlatform;\n        this.isWindows = this.platform === 'win32';\n        this.windowsPathsNoEscape =\n            !!options.windowsPathsNoEscape || options.allowWindowsEscape === false;\n        if (this.windowsPathsNoEscape) {\n            this.pattern = this.pattern.replace(/\\\\/g, '/');\n        }\n        this.preserveMultipleSlashes = !!options.preserveMultipleSlashes;\n        this.regexp = null;\n        this.negate = false;\n        this.nonegate = !!options.nonegate;\n        this.comment = false;\n        this.empty = false;\n        this.partial = !!options.partial;\n        this.nocase = !!this.options.nocase;\n        this.windowsNoMagicRoot =\n            options.windowsNoMagicRoot !== undefined\n                ? options.windowsNoMagicRoot\n                : !!(this.isWindows && this.nocase);\n        this.globSet = [];\n        this.globParts = [];\n        this.set = [];\n        // make the set of regexps etc.\n        this.make();\n    }\n    hasMagic() {\n        if (this.options.magicalBraces && this.set.length > 1) {\n            return true;\n        }\n        for (const pattern of this.set) {\n            for (const part of pattern) {\n                if (typeof part !== 'string')\n                    return true;\n            }\n        }\n        return false;\n    }\n    debug(..._) { }\n    make() {\n        const pattern = this.pattern;\n        const options = this.options;\n        // empty patterns and comments match nothing.\n        if (!options.nocomment && pattern.charAt(0) === '#') {\n            this.comment = true;\n            return;\n        }\n        if (!pattern) {\n            this.empty = true;\n            return;\n        }\n        // step 1: figure out negation, etc.\n        this.parseNegate();\n        // step 2: expand braces\n        this.globSet = [...new Set(this.braceExpand())];\n        if (options.debug) {\n            this.debug = (...args) => console.error(...args);\n        }\n        this.debug(this.pattern, this.globSet);\n        // step 3: now we have a set, so turn each one into a series of\n        // path-portion matching patterns.\n        // These will be regexps, except in the case of \"**\", which is\n        // set to the GLOBSTAR object for globstar behavior,\n        // and will not contain any / characters\n        //\n        // First, we preprocess to make the glob pattern sets a bit simpler\n        // and deduped.  There are some perf-killing patterns that can cause\n        // problems with a glob walk, but we can simplify them down a bit.\n        const rawGlobParts = this.globSet.map(s => this.slashSplit(s));\n        this.globParts = this.preprocess(rawGlobParts);\n        this.debug(this.pattern, this.globParts);\n        // glob --> regexps\n        let set = this.globParts.map((s, _, __) => {\n            if (this.isWindows && this.windowsNoMagicRoot) {\n                // check if it's a drive or unc path.\n                const isUNC = s[0] === '' &&\n                    s[1] === '' &&\n                    (s[2] === '?' || !globMagic.test(s[2])) &&\n                    !globMagic.test(s[3]);\n                const isDrive = /^[a-z]:/i.test(s[0]);\n                if (isUNC) {\n                    return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))];\n                }\n                else if (isDrive) {\n                    return [s[0], ...s.slice(1).map(ss => this.parse(ss))];\n                }\n            }\n            return s.map(ss => this.parse(ss));\n        });\n        this.debug(this.pattern, set);\n        // filter out everything that didn't compile properly.\n        this.set = set.filter(s => s.indexOf(false) === -1);\n        // do not treat the ? in UNC paths as magic\n        if (this.isWindows) {\n            for (let i = 0; i < this.set.length; i++) {\n                const p = this.set[i];\n                if (p[0] === '' &&\n                    p[1] === '' &&\n                    this.globParts[i][2] === '?' &&\n                    typeof p[3] === 'string' &&\n                    /^[a-z]:$/i.test(p[3])) {\n                    p[2] = '?';\n                }\n            }\n        }\n        this.debug(this.pattern, this.set);\n    }\n    // various transforms to equivalent pattern sets that are\n    // faster to process in a filesystem walk.  The goal is to\n    // eliminate what we can, and push all ** patterns as far\n    // to the right as possible, even if it increases the number\n    // of patterns that we have to process.\n    preprocess(globParts) {\n        // if we're not in globstar mode, then turn all ** into *\n        if (this.options.noglobstar) {\n            for (let i = 0; i < globParts.length; i++) {\n                for (let j = 0; j < globParts[i].length; j++) {\n                    if (globParts[i][j] === '**') {\n                        globParts[i][j] = '*';\n                    }\n                }\n            }\n        }\n        const { optimizationLevel = 1 } = this.options;\n        if (optimizationLevel >= 2) {\n            // aggressive optimization for the purpose of fs walking\n            globParts = this.firstPhasePreProcess(globParts);\n            globParts = this.secondPhasePreProcess(globParts);\n        }\n        else if (optimizationLevel >= 1) {\n            // just basic optimizations to remove some .. parts\n            globParts = this.levelOneOptimize(globParts);\n        }\n        else {\n            // just collapse multiple ** portions into one\n            globParts = this.adjascentGlobstarOptimize(globParts);\n        }\n        return globParts;\n    }\n    // just get rid of adjascent ** portions\n    adjascentGlobstarOptimize(globParts) {\n        return globParts.map(parts => {\n            let gs = -1;\n            while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n                let i = gs;\n                while (parts[i + 1] === '**') {\n                    i++;\n                }\n                if (i !== gs) {\n                    parts.splice(gs, i - gs);\n                }\n            }\n            return parts;\n        });\n    }\n    // get rid of adjascent ** and resolve .. portions\n    levelOneOptimize(globParts) {\n        return globParts.map(parts => {\n            parts = parts.reduce((set, part) => {\n                const prev = set[set.length - 1];\n                if (part === '**' && prev === '**') {\n                    return set;\n                }\n                if (part === '..') {\n                    if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n                        set.pop();\n                        return set;\n                    }\n                }\n                set.push(part);\n                return set;\n            }, []);\n            return parts.length === 0 ? [''] : parts;\n        });\n    }\n    levelTwoFileOptimize(parts) {\n        if (!Array.isArray(parts)) {\n            parts = this.slashSplit(parts);\n        }\n        let didSomething = false;\n        do {\n            didSomething = false;\n            // 
// -> 
/\n            if (!this.preserveMultipleSlashes) {\n                for (let i = 1; i < parts.length - 1; i++) {\n                    const p = parts[i];\n                    // don't squeeze out UNC patterns\n                    if (i === 1 && p === '' && parts[0] === '')\n                        continue;\n                    if (p === '.' || p === '') {\n                        didSomething = true;\n                        parts.splice(i, 1);\n                        i--;\n                    }\n                }\n                if (parts[0] === '.' &&\n                    parts.length === 2 &&\n                    (parts[1] === '.' || parts[1] === '')) {\n                    didSomething = true;\n                    parts.pop();\n                }\n            }\n            // 
/

/../ ->

/\n            let dd = 0;\n            while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                const p = parts[dd - 1];\n                if (p && p !== '.' && p !== '..' && p !== '**') {\n                    didSomething = true;\n                    parts.splice(dd - 1, 2);\n                    dd -= 2;\n                }\n            }\n        } while (didSomething);\n        return parts.length === 0 ? [''] : parts;\n    }\n    // First phase: single-pattern processing\n    // 
 is 1 or more portions\n    //  is 1 or more portions\n    // 

is any portion other than ., .., '', or **\n // is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n //

// -> 
/\n    // 
/

/../ ->

/\n    // **/**/ -> **/\n    //\n    // **/*/ -> */**/ <== not valid because ** doesn't follow\n    // this WOULD be allowed if ** did follow symlinks, or * didn't\n    firstPhasePreProcess(globParts) {\n        let didSomething = false;\n        do {\n            didSomething = false;\n            // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n for (let parts of globParts) {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let gss = gs;\n while (parts[gss + 1] === '**') {\n //

/**/**/ -> 
/**/\n                        gss++;\n                    }\n                    // eg, if gs is 2 and gss is 4, that means we have 3 **\n                    // parts, and can remove 2 of them.\n                    if (gss > gs) {\n                        parts.splice(gs + 1, gss - gs);\n                    }\n                    let next = parts[gs + 1];\n                    const p = parts[gs + 2];\n                    const p2 = parts[gs + 3];\n                    if (next !== '..')\n                        continue;\n                    if (!p ||\n                        p === '.' ||\n                        p === '..' ||\n                        !p2 ||\n                        p2 === '.' ||\n                        p2 === '..') {\n                        continue;\n                    }\n                    didSomething = true;\n                    // edit parts in place, and push the new one\n                    parts.splice(gs, 1);\n                    const other = parts.slice(0);\n                    other[gs] = '**';\n                    globParts.push(other);\n                    gs--;\n                }\n                // 
// -> 
/\n                if (!this.preserveMultipleSlashes) {\n                    for (let i = 1; i < parts.length - 1; i++) {\n                        const p = parts[i];\n                        // don't squeeze out UNC patterns\n                        if (i === 1 && p === '' && parts[0] === '')\n                            continue;\n                        if (p === '.' || p === '') {\n                            didSomething = true;\n                            parts.splice(i, 1);\n                            i--;\n                        }\n                    }\n                    if (parts[0] === '.' &&\n                        parts.length === 2 &&\n                        (parts[1] === '.' || parts[1] === '')) {\n                        didSomething = true;\n                        parts.pop();\n                    }\n                }\n                // 
/

/../ ->

/\n                let dd = 0;\n                while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                    const p = parts[dd - 1];\n                    if (p && p !== '.' && p !== '..' && p !== '**') {\n                        didSomething = true;\n                        const needDot = dd === 1 && parts[dd + 1] === '**';\n                        const splin = needDot ? ['.'] : [];\n                        parts.splice(dd - 1, 2, ...splin);\n                        if (parts.length === 0)\n                            parts.push('');\n                        dd -= 2;\n                    }\n                }\n            }\n        } while (didSomething);\n        return globParts;\n    }\n    // second phase: multi-pattern dedupes\n    // {
/*/,
/

/} ->

/*/\n    // {
/,
/} -> 
/\n    // {
/**/,
/} -> 
/**/\n    //\n    // {
/**/,
/**/

/} ->

/**/\n    // ^-- not valid because ** doens't follow symlinks\n    secondPhasePreProcess(globParts) {\n        for (let i = 0; i < globParts.length - 1; i++) {\n            for (let j = i + 1; j < globParts.length; j++) {\n                const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);\n                if (matched) {\n                    globParts[i] = [];\n                    globParts[j] = matched;\n                    break;\n                }\n            }\n        }\n        return globParts.filter(gs => gs.length);\n    }\n    partsMatch(a, b, emptyGSMatch = false) {\n        let ai = 0;\n        let bi = 0;\n        let result = [];\n        let which = '';\n        while (ai < a.length && bi < b.length) {\n            if (a[ai] === b[bi]) {\n                result.push(which === 'b' ? b[bi] : a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n                result.push(a[ai]);\n                ai++;\n            }\n            else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n                result.push(b[bi]);\n                bi++;\n            }\n            else if (a[ai] === '*' &&\n                b[bi] &&\n                (this.options.dot || !b[bi].startsWith('.')) &&\n                b[bi] !== '**') {\n                if (which === 'b')\n                    return false;\n                which = 'a';\n                result.push(a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (b[bi] === '*' &&\n                a[ai] &&\n                (this.options.dot || !a[ai].startsWith('.')) &&\n                a[ai] !== '**') {\n                if (which === 'a')\n                    return false;\n                which = 'b';\n                result.push(b[bi]);\n                ai++;\n                bi++;\n            }\n            else {\n                return false;\n            }\n        }\n        // if we fall out of the loop, it means they two are identical\n        // as long as their lengths match\n        return a.length === b.length && result;\n    }\n    parseNegate() {\n        if (this.nonegate)\n            return;\n        const pattern = this.pattern;\n        let negate = false;\n        let negateOffset = 0;\n        for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n            negate = !negate;\n            negateOffset++;\n        }\n        if (negateOffset)\n            this.pattern = pattern.slice(negateOffset);\n        this.negate = negate;\n    }\n    // set partial to true to test if, for example,\n    // \"/a/b\" matches the start of \"/*/b/*/d\"\n    // Partial means, if you run out of file before you run\n    // out of pattern, then that's fine, as long as all\n    // the parts match.\n    matchOne(file, pattern, partial = false) {\n        const options = this.options;\n        // UNC paths like //?/X:/... can match X:/... and vice versa\n        // Drive letters in absolute drive or unc paths are always compared\n        // case-insensitively.\n        if (this.isWindows) {\n            const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0]);\n            const fileUNC = !fileDrive &&\n                file[0] === '' &&\n                file[1] === '' &&\n                file[2] === '?' &&\n                /^[a-z]:$/i.test(file[3]);\n            const patternDrive = typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0]);\n            const patternUNC = !patternDrive &&\n                pattern[0] === '' &&\n                pattern[1] === '' &&\n                pattern[2] === '?' &&\n                typeof pattern[3] === 'string' &&\n                /^[a-z]:$/i.test(pattern[3]);\n            const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined;\n            const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined;\n            if (typeof fdi === 'number' && typeof pdi === 'number') {\n                const [fd, pd] = [file[fdi], pattern[pdi]];\n                if (fd.toLowerCase() === pd.toLowerCase()) {\n                    pattern[pdi] = fd;\n                    if (pdi > fdi) {\n                        pattern = pattern.slice(pdi);\n                    }\n                    else if (fdi > pdi) {\n                        file = file.slice(fdi);\n                    }\n                }\n            }\n        }\n        // resolve and reduce . and .. portions in the file as well.\n        // dont' need to do the second phase, because it's only one string[]\n        const { optimizationLevel = 1 } = this.options;\n        if (optimizationLevel >= 2) {\n            file = this.levelTwoFileOptimize(file);\n        }\n        this.debug('matchOne', this, { file, pattern });\n        this.debug('matchOne', file.length, pattern.length);\n        for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {\n            this.debug('matchOne loop');\n            var p = pattern[pi];\n            var f = file[fi];\n            this.debug(pattern, p, f);\n            // should be impossible.\n            // some invalid regexp stuff in the set.\n            /* c8 ignore start */\n            if (p === false) {\n                return false;\n            }\n            /* c8 ignore stop */\n            if (p === GLOBSTAR) {\n                this.debug('GLOBSTAR', [pattern, p, f]);\n                // \"**\"\n                // a/**/b/**/c would match the following:\n                // a/b/x/y/z/c\n                // a/x/y/z/b/c\n                // a/b/x/b/x/c\n                // a/b/c\n                // To do this, take the rest of the pattern after\n                // the **, and see if it would match the file remainder.\n                // If so, return success.\n                // If not, the ** \"swallows\" a segment, and try again.\n                // This is recursively awful.\n                //\n                // a/**/b/**/c matching a/b/x/y/z/c\n                // - a matches a\n                // - doublestar\n                //   - matchOne(b/x/y/z/c, b/**/c)\n                //     - b matches b\n                //     - doublestar\n                //       - matchOne(x/y/z/c, c) -> no\n                //       - matchOne(y/z/c, c) -> no\n                //       - matchOne(z/c, c) -> no\n                //       - matchOne(c, c) yes, hit\n                var fr = fi;\n                var pr = pi + 1;\n                if (pr === pl) {\n                    this.debug('** at the end');\n                    // a ** at the end will just swallow the rest.\n                    // We have found a match.\n                    // however, it will not swallow /.x, unless\n                    // options.dot is set.\n                    // . and .. are *never* matched by **, for explosively\n                    // exponential reasons.\n                    for (; fi < fl; fi++) {\n                        if (file[fi] === '.' ||\n                            file[fi] === '..' ||\n                            (!options.dot && file[fi].charAt(0) === '.'))\n                            return false;\n                    }\n                    return true;\n                }\n                // ok, let's see if we can swallow whatever we can.\n                while (fr < fl) {\n                    var swallowee = file[fr];\n                    this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee);\n                    // XXX remove this slice.  Just pass the start index.\n                    if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n                        this.debug('globstar found match!', fr, fl, swallowee);\n                        // found a match.\n                        return true;\n                    }\n                    else {\n                        // can't swallow \".\" or \"..\" ever.\n                        // can only swallow \".foo\" when explicitly asked.\n                        if (swallowee === '.' ||\n                            swallowee === '..' ||\n                            (!options.dot && swallowee.charAt(0) === '.')) {\n                            this.debug('dot detected!', file, fr, pattern, pr);\n                            break;\n                        }\n                        // ** swallows a segment, and continue.\n                        this.debug('globstar swallow a segment, and continue');\n                        fr++;\n                    }\n                }\n                // no match was found.\n                // However, in partial mode, we can't say this is necessarily over.\n                /* c8 ignore start */\n                if (partial) {\n                    // ran out of file\n                    this.debug('\\n>>> no match, partial?', file, fr, pattern, pr);\n                    if (fr === fl) {\n                        return true;\n                    }\n                }\n                /* c8 ignore stop */\n                return false;\n            }\n            // something other than **\n            // non-magic patterns just have to match exactly\n            // patterns with magic have been turned into regexps.\n            let hit;\n            if (typeof p === 'string') {\n                hit = f === p;\n                this.debug('string match', p, f, hit);\n            }\n            else {\n                hit = p.test(f);\n                this.debug('pattern match', p, f, hit);\n            }\n            if (!hit)\n                return false;\n        }\n        // Note: ending in / means that we'll get a final \"\"\n        // at the end of the pattern.  This can only match a\n        // corresponding \"\" at the end of the file.\n        // If the file ends in /, then it can only match a\n        // a pattern that ends in /, unless the pattern just\n        // doesn't have any more for it. But, a/b/ should *not*\n        // match \"a/b/*\", even though \"\" matches against the\n        // [^/]*? pattern, except in partial mode, where it might\n        // simply not be reached yet.\n        // However, a/b/ should still satisfy a/*\n        // now either we fell off the end of the pattern, or we're done.\n        if (fi === fl && pi === pl) {\n            // ran out of pattern and filename at the same time.\n            // an exact hit!\n            return true;\n        }\n        else if (fi === fl) {\n            // ran out of file, but still had pattern left.\n            // this is ok if we're doing the match as part of\n            // a glob fs traversal.\n            return partial;\n        }\n        else if (pi === pl) {\n            // ran out of pattern, still have file left.\n            // this is only acceptable if we're on the very last\n            // empty segment of a file with a trailing slash.\n            // a/* should match a/b/\n            return fi === fl - 1 && file[fi] === '';\n            /* c8 ignore start */\n        }\n        else {\n            // should be unreachable.\n            throw new Error('wtf?');\n        }\n        /* c8 ignore stop */\n    }\n    braceExpand() {\n        return braceExpand(this.pattern, this.options);\n    }\n    parse(pattern) {\n        assertValidPattern(pattern);\n        const options = this.options;\n        // shortcuts\n        if (pattern === '**')\n            return GLOBSTAR;\n        if (pattern === '')\n            return '';\n        // far and away, the most common glob pattern parts are\n        // *, *.*, and *.  Add a fast check method for those.\n        let m;\n        let fastTest = null;\n        if ((m = pattern.match(starRE))) {\n            fastTest = options.dot ? starTestDot : starTest;\n        }\n        else if ((m = pattern.match(starDotExtRE))) {\n            fastTest = (options.nocase\n                ? options.dot\n                    ? starDotExtTestNocaseDot\n                    : starDotExtTestNocase\n                : options.dot\n                    ? starDotExtTestDot\n                    : starDotExtTest)(m[1]);\n        }\n        else if ((m = pattern.match(qmarksRE))) {\n            fastTest = (options.nocase\n                ? options.dot\n                    ? qmarksTestNocaseDot\n                    : qmarksTestNocase\n                : options.dot\n                    ? qmarksTestDot\n                    : qmarksTest)(m);\n        }\n        else if ((m = pattern.match(starDotStarRE))) {\n            fastTest = options.dot ? starDotStarTestDot : starDotStarTest;\n        }\n        else if ((m = pattern.match(dotStarRE))) {\n            fastTest = dotStarTest;\n        }\n        const re = AST.fromGlob(pattern, this.options).toMMPattern();\n        if (fastTest && typeof re === 'object') {\n            // Avoids overriding in frozen environments\n            Reflect.defineProperty(re, 'test', { value: fastTest });\n        }\n        return re;\n    }\n    makeRe() {\n        if (this.regexp || this.regexp === false)\n            return this.regexp;\n        // at this point, this.set is a 2d array of partial\n        // pattern strings, or \"**\".\n        //\n        // It's better to use .match().  This function shouldn't\n        // be used, really, but it's pretty convenient sometimes,\n        // when you just want to work with a regex.\n        const set = this.set;\n        if (!set.length) {\n            this.regexp = false;\n            return this.regexp;\n        }\n        const options = this.options;\n        const twoStar = options.noglobstar\n            ? star\n            : options.dot\n                ? twoStarDot\n                : twoStarNoDot;\n        const flags = new Set(options.nocase ? ['i'] : []);\n        // regexpify non-globstar patterns\n        // if ** is only item, then we just do one twoStar\n        // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n        // if ** is last, append (\\/twoStar|) to previous\n        // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n        // then filter out GLOBSTAR symbols\n        let re = set\n            .map(pattern => {\n            const pp = pattern.map(p => {\n                if (p instanceof RegExp) {\n                    for (const f of p.flags.split(''))\n                        flags.add(f);\n                }\n                return typeof p === 'string'\n                    ? regExpEscape(p)\n                    : p === GLOBSTAR\n                        ? GLOBSTAR\n                        : p._src;\n            });\n            pp.forEach((p, i) => {\n                const next = pp[i + 1];\n                const prev = pp[i - 1];\n                if (p !== GLOBSTAR || prev === GLOBSTAR) {\n                    return;\n                }\n                if (prev === undefined) {\n                    if (next !== undefined && next !== GLOBSTAR) {\n                        pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next;\n                    }\n                    else {\n                        pp[i] = twoStar;\n                    }\n                }\n                else if (next === undefined) {\n                    pp[i - 1] = prev + '(?:\\\\/|' + twoStar + ')?';\n                }\n                else if (next !== GLOBSTAR) {\n                    pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next;\n                    pp[i + 1] = GLOBSTAR;\n                }\n            });\n            return pp.filter(p => p !== GLOBSTAR).join('/');\n        })\n            .join('|');\n        // need to wrap in parens if we had more than one thing with |,\n        // otherwise only the first will be anchored to ^ and the last to $\n        const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', ''];\n        // must match entire pattern\n        // ending in a * or ** will make it less strict.\n        re = '^' + open + re + close + '$';\n        // can match anything, as long as it's not this.\n        if (this.negate)\n            re = '^(?!' + re + ').+$';\n        try {\n            this.regexp = new RegExp(re, [...flags].join(''));\n            /* c8 ignore start */\n        }\n        catch (ex) {\n            // should be impossible\n            this.regexp = false;\n        }\n        /* c8 ignore stop */\n        return this.regexp;\n    }\n    slashSplit(p) {\n        // if p starts with // on windows, we preserve that\n        // so that UNC paths aren't broken.  Otherwise, any number of\n        // / characters are coalesced into one, unless\n        // preserveMultipleSlashes is set to true.\n        if (this.preserveMultipleSlashes) {\n            return p.split('/');\n        }\n        else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n            // add an extra '' for the one we lose\n            return ['', ...p.split(/\\/+/)];\n        }\n        else {\n            return p.split(/\\/+/);\n        }\n    }\n    match(f, partial = this.partial) {\n        this.debug('match', f, this.pattern);\n        // short-circuit in the case of busted things.\n        // comments, etc.\n        if (this.comment) {\n            return false;\n        }\n        if (this.empty) {\n            return f === '';\n        }\n        if (f === '/' && partial) {\n            return true;\n        }\n        const options = this.options;\n        // windows: need to use /, not \\\n        if (this.isWindows) {\n            f = f.split('\\\\').join('/');\n        }\n        // treat the test path as a set of pathparts.\n        const ff = this.slashSplit(f);\n        this.debug(this.pattern, 'split', ff);\n        // just ONE of the pattern sets in this.set needs to match\n        // in order for it to be valid.  If negating, then just one\n        // match means that we have failed.\n        // Either way, return on the first hit.\n        const set = this.set;\n        this.debug(this.pattern, 'set', set);\n        // Find the basename of the path by looking for the last non-empty segment\n        let filename = ff[ff.length - 1];\n        if (!filename) {\n            for (let i = ff.length - 2; !filename && i >= 0; i--) {\n                filename = ff[i];\n            }\n        }\n        for (let i = 0; i < set.length; i++) {\n            const pattern = set[i];\n            let file = ff;\n            if (options.matchBase && pattern.length === 1) {\n                file = [filename];\n            }\n            const hit = this.matchOne(file, pattern, partial);\n            if (hit) {\n                if (options.flipNegate) {\n                    return true;\n                }\n                return !this.negate;\n            }\n        }\n        // didn't get any hits.  this is success if it's a negative\n        // pattern, failure otherwise.\n        if (options.flipNegate) {\n            return false;\n        }\n        return this.negate;\n    }\n    static defaults(def) {\n        return minimatch.defaults(def).Minimatch;\n    }\n}\n/* c8 ignore start */\nexport { AST } from './ast.js';\nexport { escape } from './escape.js';\nexport { unescape } from './unescape.js';\n/* c8 ignore stop */\nminimatch.AST = AST;\nminimatch.Minimatch = Minimatch;\nminimatch.escape = escape;\nminimatch.unescape = unescape;\n//# sourceMappingURL=index.js.map","import { minimatch } from \"minimatch\";\nimport { convertResponseHeaders } from \"./tools/headers.js\";\nexport function createErrorFromResponse(response, prefix = \"\") {\n    const err = new Error(`${prefix}Invalid response: ${response.status} ${response.statusText}`);\n    err.status = response.status;\n    err.response = response;\n    return err;\n}\nexport function handleResponseCode(context, response) {\n    const { status } = response;\n    if (status === 401 && context.digest)\n        return response;\n    if (status >= 400) {\n        const err = createErrorFromResponse(response);\n        throw err;\n    }\n    return response;\n}\nexport function processGlobFilter(files, glob) {\n    return files.filter(file => minimatch(file.filename, glob, { matchBase: true }));\n}\n/**\n * Process a response payload (eg. from `customRequest`) and\n *  prepare it for further processing. Exposed for custom\n *  request handling.\n * @param response The response for a request\n * @param data The data returned\n * @param isDetailed Whether or not a detailed result is\n *  requested\n * @returns The response data, or a detailed response object\n *  if required\n */\nexport function processResponsePayload(response, data, isDetailed = false) {\n    return isDetailed\n        ? {\n            data,\n            headers: response.headers ? convertResponseHeaders(response.headers) : {},\n            status: response.status,\n            statusText: response.statusText\n        }\n        : data;\n}\n","/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character.  In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n */\nexport const escape = (s, { windowsPathsNoEscape = false, } = {}) => {\n    // don't need to escape +@! because we escape the parens\n    // that make those magic, and escaping ! as [!] isn't valid,\n    // because [!]] is a valid glob class meaning not ']'.\n    return windowsPathsNoEscape\n        ? s.replace(/[?*()[\\]]/g, '[$&]')\n        : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&');\n};\n//# sourceMappingURL=escape.js.map","export const defaultOptions = {\n  preserveOrder: false,\n  attributeNamePrefix: '@_',\n  attributesGroupName: false,\n  textNodeName: '#text',\n  ignoreAttributes: true,\n  removeNSPrefix: false, // remove NS from tag name or attribute name if true\n  allowBooleanAttributes: false, //a tag can have attributes without any value\n  //ignoreRootElement : false,\n  parseTagValue: true,\n  parseAttributeValue: false,\n  trimValues: true, //Trim string values of tag and attributes\n  cdataPropName: false,\n  numberParseOptions: {\n    hex: true,\n    leadingZeros: true,\n    eNotation: true\n  },\n  tagValueProcessor: function (tagName, val) {\n    return val;\n  },\n  attributeValueProcessor: function (attrName, val) {\n    return val;\n  },\n  stopNodes: [], //nested tags will not be parsed even for errors\n  alwaysCreateTextNode: false,\n  isArray: () => false,\n  commentPropName: false,\n  unpairedTags: [],\n  processEntities: true,\n  htmlEntities: false,\n  ignoreDeclaration: false,\n  ignorePiTags: false,\n  transformTagName: false,\n  transformAttributeName: false,\n  updateTag: function (tagName, jPath, attrs) {\n    return tagName\n  },\n  // skipEmptyListItem: false\n  captureMetaData: false,\n};\n\n/**\n * Normalizes processEntities option for backward compatibility\n * @param {boolean|object} value \n * @returns {object} Always returns normalized object\n */\nfunction normalizeProcessEntities(value) {\n  // Boolean backward compatibility\n  if (typeof value === 'boolean') {\n    return {\n      enabled: value, // true or false\n      maxEntitySize: 10000,\n      maxExpansionDepth: 10,\n      maxTotalExpansions: 1000,\n      maxExpandedLength: 100000,\n      allowedTags: null,\n      tagFilter: null\n    };\n  }\n\n  // Object config - merge with defaults\n  if (typeof value === 'object' && value !== null) {\n    return {\n      enabled: value.enabled !== false, // default true if not specified\n      maxEntitySize: value.maxEntitySize ?? 10000,\n      maxExpansionDepth: value.maxExpansionDepth ?? 10,\n      maxTotalExpansions: value.maxTotalExpansions ?? 1000,\n      maxExpandedLength: value.maxExpandedLength ?? 100000,\n      allowedTags: value.allowedTags ?? null,\n      tagFilter: value.tagFilter ?? null\n    };\n  }\n\n  // Default to enabled with limits\n  return normalizeProcessEntities(true);\n}\n\nexport const buildOptions = function (options) {\n  const built = Object.assign({}, defaultOptions, options);\n\n  // Always normalize processEntities for backward compatibility and validation\n  built.processEntities = normalizeProcessEntities(built.processEntities);\n  //console.debug(built.processEntities)\n  return built;\n};","'use strict';\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nexport const nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*';\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nexport function getAllMatches(string, regex) {\n  const matches = [];\n  let match = regex.exec(string);\n  while (match) {\n    const allmatches = [];\n    allmatches.startIndex = regex.lastIndex - match[0].length;\n    const len = match.length;\n    for (let index = 0; index < len; index++) {\n      allmatches.push(match[index]);\n    }\n    matches.push(allmatches);\n    match = regex.exec(string);\n  }\n  return matches;\n}\n\nexport const isName = function(string) {\n  const match = regexName.exec(string);\n  return !(match === null || typeof match === 'undefined');\n}\n\nexport function isExist(v) {\n  return typeof v !== 'undefined';\n}\n\nexport function isEmptyObject(obj) {\n  return Object.keys(obj).length === 0;\n}\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexport function merge(target, a, arrayMode) {\n  if (a) {\n    const keys = Object.keys(a); // will return an array of own properties\n    const len = keys.length; //don't make it inline\n    for (let i = 0; i < len; i++) {\n      if (arrayMode === 'strict') {\n        target[keys[i]] = [ a[keys[i]] ];\n      } else {\n        target[keys[i]] = a[keys[i]];\n      }\n    }\n  }\n}\n/* exports.merge =function (b,a){\n  return Object.assign(b,a);\n} */\n\nexport function getValue(v) {\n  if (exports.isExist(v)) {\n    return v;\n  } else {\n    return '';\n  }\n}\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};","'use strict';\n\nlet METADATA_SYMBOL;\n\nif (typeof Symbol !== \"function\") {\n  METADATA_SYMBOL = \"@@xmlMetadata\";\n} else {\n  METADATA_SYMBOL = Symbol(\"XML Node Metadata\");\n}\n\nexport default class XmlNode{\n  constructor(tagname) {\n    this.tagname = tagname;\n    this.child = []; //nested tags, text, cdata, comments in order\n    this[\":@\"] = {}; //attributes map\n  }\n  add(key,val){\n    // this.child.push( {name : key, val: val, isCdata: isCdata });\n    if(key === \"__proto__\") key = \"#__proto__\";\n    this.child.push( {[key]: val });\n  }\n  addChild(node, startIndex) {\n    if(node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n    if(node[\":@\"] && Object.keys(node[\":@\"]).length > 0){\n      this.child.push( { [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n    }else{\n      this.child.push( { [node.tagname]: node.child });\n    }\n    // if requested, add the startIndex\n    if (startIndex !== undefined) {\n      // Note: for now we just overwrite the metadata. If we had more complex metadata,\n      // we might need to do an object append here:  metadata = { ...metadata, startIndex }\n      this.child[this.child.length - 1][METADATA_SYMBOL] = { startIndex };\n    }\n  }\n  /** symbol used for metadata */\n  static getMetaDataSymbol() {\n    return METADATA_SYMBOL;\n  }\n}\n","import { isName } from '../util.js';\n\nexport default class DocTypeReader {\n    constructor(options) {\n        this.suppressValidationErr = !options;\n        this.options = options;\n    }\n\n    readDocType(xmlData, i) {\n\n        const entities = {};\n        if (xmlData[i + 3] === 'O' &&\n            xmlData[i + 4] === 'C' &&\n            xmlData[i + 5] === 'T' &&\n            xmlData[i + 6] === 'Y' &&\n            xmlData[i + 7] === 'P' &&\n            xmlData[i + 8] === 'E') {\n            i = i + 9;\n            let angleBracketsCount = 1;\n            let hasBody = false, comment = false;\n            let exp = \"\";\n            for (; i < xmlData.length; i++) {\n                if (xmlData[i] === '<' && !comment) { //Determine the tag type\n                    if (hasBody && hasSeq(xmlData, \"!ENTITY\", i)) {\n                        i += 7;\n                        let entityName, val;\n                        [entityName, val, i] = this.readEntityExp(xmlData, i + 1, this.suppressValidationErr);\n                        if (val.indexOf(\"&\") === -1) { //Parameter entities are not supported\n                            const escaped = entityName.replace(/[.\\-+*:]/g, '\\\\.');\n                            entities[entityName] = {\n                                regx: RegExp(`&${escaped};`, \"g\"),\n                                val: val\n                            };\n                        }\n                    }\n                    else if (hasBody && hasSeq(xmlData, \"!ELEMENT\", i)) {\n                        i += 8;//Not supported\n                        const { index } = this.readElementExp(xmlData, i + 1);\n                        i = index;\n                    } else if (hasBody && hasSeq(xmlData, \"!ATTLIST\", i)) {\n                        i += 8;//Not supported\n                        // const {index} = this.readAttlistExp(xmlData,i+1);\n                        // i = index;\n                    } else if (hasBody && hasSeq(xmlData, \"!NOTATION\", i)) {\n                        i += 9;//Not supported\n                        const { index } = this.readNotationExp(xmlData, i + 1, this.suppressValidationErr);\n                        i = index;\n                    } else if (hasSeq(xmlData, \"!--\", i)) comment = true;\n                    else throw new Error(`Invalid DOCTYPE`);\n\n                    angleBracketsCount++;\n                    exp = \"\";\n                } else if (xmlData[i] === '>') { //Read tag content\n                    if (comment) {\n                        if (xmlData[i - 1] === \"-\" && xmlData[i - 2] === \"-\") {\n                            comment = false;\n                            angleBracketsCount--;\n                        }\n                    } else {\n                        angleBracketsCount--;\n                    }\n                    if (angleBracketsCount === 0) {\n                        break;\n                    }\n                } else if (xmlData[i] === '[') {\n                    hasBody = true;\n                } else {\n                    exp += xmlData[i];\n                }\n            }\n            if (angleBracketsCount !== 0) {\n                throw new Error(`Unclosed DOCTYPE`);\n            }\n        } else {\n            throw new Error(`Invalid Tag instead of DOCTYPE`);\n        }\n        return { entities, i };\n    }\n    readEntityExp(xmlData, i) {\n        //External entities are not supported\n        //    \n\n        //Parameter entities are not supported\n        //    \n\n        //Internal entities are supported\n        //    \n\n        // Skip leading whitespace after  this.options.maxEntitySize) {\n            throw new Error(\n                `Entity \"${entityName}\" size (${entityValue.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`\n            );\n        }\n\n        i--;\n        return [entityName, entityValue, i];\n    }\n\n    readNotationExp(xmlData, i) {\n        // Skip leading whitespace after \n        // \n        // \n        // \n        // \n\n        // Skip leading whitespace after  {\n    while (index < data.length && /\\s/.test(data[index])) {\n        index++;\n    }\n    return index;\n};\n\n\n\nfunction hasSeq(data, seq, i) {\n    for (let j = 0; j < seq.length; j++) {\n        if (seq[j] !== data[i + j + 1]) return false;\n    }\n    return true;\n}\n\nfunction validateEntityName(name) {\n    if (isName(name))\n        return name;\n    else\n        throw new Error(`Invalid entity name ${name}`);\n}","const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)([0-9]*(\\.[0-9]*)?)$/;\n// const octRegex = /^0x[a-z0-9]+/;\n// const binRegex = /0x[a-z0-9]+/;\n\n \nconst consider = {\n    hex :  true,\n    // oct: false,\n    leadingZeros: true,\n    decimalPoint: \"\\.\",\n    eNotation: true,\n    //skipLike: /regex/\n};\n\nexport default function toNumber(str, options = {}){\n    options = Object.assign({}, consider, options );\n    if(!str || typeof str !== \"string\" ) return str;\n    \n    let trimmedStr  = str.trim();\n    \n    if(options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;\n    else if(str===\"0\") return 0;\n    else if (options.hex && hexRegex.test(trimmedStr)) {\n        return parse_int(trimmedStr, 16);\n    // }else if (options.oct && octRegex.test(str)) {\n    //     return Number.parseInt(val, 8);\n    }else if (trimmedStr.includes('e') || trimmedStr.includes('E')) { //eNotation\n        return resolveEnotation(str,trimmedStr,options);\n    // }else if (options.parseBin && binRegex.test(str)) {\n    //     return Number.parseInt(val, 2);\n    }else{\n        //separate negative sign, leading zeros, and rest number\n        const match = numRegex.exec(trimmedStr);\n        // +00.123 => [ , '+', '00', '.123', ..\n        if(match){\n            const sign = match[1] || \"\";\n            const leadingZeros = match[2];\n            let numTrimmedByZeros = trimZeros(match[3]); //complete num without leading zeros\n            const decimalAdjacentToLeadingZeros = sign ? // 0., -00., 000.\n                str[leadingZeros.length+1] === \".\" \n                : str[leadingZeros.length] === \".\";\n\n            //trim ending zeros for floating number\n            if(!options.leadingZeros //leading zeros are not allowed\n                && (leadingZeros.length > 1 \n                    || (leadingZeros.length === 1 && !decimalAdjacentToLeadingZeros))){\n                // 00, 00.3, +03.24, 03, 03.24\n                return str;\n            }\n            else{//no leading zeros or leading zeros are allowed\n                const num = Number(trimmedStr);\n                const parsedStr = String(num);\n\n                if( num === 0) return num;\n                if(parsedStr.search(/[eE]/) !== -1){ //given number is long and parsed to eNotation\n                    if(options.eNotation) return num;\n                    else return str;\n                }else if(trimmedStr.indexOf(\".\") !== -1){ //floating number\n                    if(parsedStr === \"0\") return num; //0.0\n                    else if(parsedStr === numTrimmedByZeros) return num; //0.456. 0.79000\n                    else if( parsedStr === `${sign}${numTrimmedByZeros}`) return num;\n                    else return str;\n                }\n                \n                let n = leadingZeros? numTrimmedByZeros : trimmedStr;\n                if(leadingZeros){\n                    // -009 => -9\n                    return (n === parsedStr) || (sign+n === parsedStr) ? num : str\n                }else  {\n                    // +9\n                    return (n === parsedStr) || (n === sign+parsedStr) ? num : str\n                }\n            }\n        }else{ //non-numeric string\n            return str;\n        }\n    }\n}\n\nconst eNotationRegx = /^([-+])?(0*)(\\d*(\\.\\d*)?[eE][-\\+]?\\d+)$/;\nfunction resolveEnotation(str,trimmedStr,options){\n    if(!options.eNotation) return str;\n    const notation = trimmedStr.match(eNotationRegx); \n    if(notation){\n        let sign = notation[1] || \"\";\n        const eChar = notation[3].indexOf(\"e\") === -1 ? \"E\" : \"e\";\n        const leadingZeros = notation[2];\n        const eAdjacentToLeadingZeros = sign ? // 0E.\n            str[leadingZeros.length+1] === eChar \n            : str[leadingZeros.length] === eChar;\n\n        if(leadingZeros.length > 1 && eAdjacentToLeadingZeros) return str;\n        else if(leadingZeros.length === 1 \n            && (notation[3].startsWith(`.${eChar}`) || notation[3][0] === eChar)){\n                return Number(trimmedStr);\n        }else if(options.leadingZeros && !eAdjacentToLeadingZeros){ //accept with leading zeros\n            //remove leading 0s\n            trimmedStr = (notation[1] || \"\") + notation[3];\n            return Number(trimmedStr);\n        }else return str;\n    }else{\n        return str;\n    }\n}\n\n/**\n * \n * @param {string} numStr without leading zeros\n * @returns \n */\nfunction trimZeros(numStr){\n    if(numStr && numStr.indexOf(\".\") !== -1){//float\n        numStr = numStr.replace(/0+$/, \"\"); //remove ending zeros\n        if(numStr === \".\")  numStr = \"0\";\n        else if(numStr[0] === \".\")  numStr = \"0\"+numStr;\n        else if(numStr[numStr.length-1] === \".\")  numStr = numStr.substring(0,numStr.length-1);\n        return numStr;\n    }\n    return numStr;\n}\n\nfunction parse_int(numStr, base){\n    //polyfill\n    if(parseInt) return parseInt(numStr, base);\n    else if(Number.parseInt) return Number.parseInt(numStr, base);\n    else if(window && window.parseInt) return window.parseInt(numStr, base);\n    else throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")\n}","export default function getIgnoreAttributesFn(ignoreAttributes) {\n    if (typeof ignoreAttributes === 'function') {\n        return ignoreAttributes\n    }\n    if (Array.isArray(ignoreAttributes)) {\n        return (attrName) => {\n            for (const pattern of ignoreAttributes) {\n                if (typeof pattern === 'string' && attrName === pattern) {\n                    return true\n                }\n                if (pattern instanceof RegExp && pattern.test(attrName)) {\n                    return true\n                }\n            }\n        }\n    }\n    return () => false\n}","'use strict';\n///@ts-check\n\nimport { getAllMatches, isExist } from '../util.js';\nimport xmlNode from './xmlNode.js';\nimport DocTypeReader from './DocTypeReader.js';\nimport toNumber from \"strnum\";\nimport getIgnoreAttributesFn from \"../ignoreAttributes.js\";\n\n// const regx =\n//   '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n//   .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\nexport default class OrderedObjParser {\n  constructor(options) {\n    this.options = options;\n    this.currentNode = null;\n    this.tagsNodeStack = [];\n    this.docTypeEntities = {};\n    this.lastEntities = {\n      \"apos\": { regex: /&(apos|#39|#x27);/g, val: \"'\" },\n      \"gt\": { regex: /&(gt|#62|#x3E);/g, val: \">\" },\n      \"lt\": { regex: /&(lt|#60|#x3C);/g, val: \"<\" },\n      \"quot\": { regex: /&(quot|#34|#x22);/g, val: \"\\\"\" },\n    };\n    this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" };\n    this.htmlEntities = {\n      \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n      // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n      // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n      // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n      // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n      // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n      \"cent\": { regex: /&(cent|#162);/g, val: \"¢\" },\n      \"pound\": { regex: /&(pound|#163);/g, val: \"£\" },\n      \"yen\": { regex: /&(yen|#165);/g, val: \"Â¥\" },\n      \"euro\": { regex: /&(euro|#8364);/g, val: \"€\" },\n      \"copyright\": { regex: /&(copy|#169);/g, val: \"©\" },\n      \"reg\": { regex: /&(reg|#174);/g, val: \"®\" },\n      \"inr\": { regex: /&(inr|#8377);/g, val: \"₹\" },\n      \"num_dec\": { regex: /&#([0-9]{1,7});/g, val: (_, str) => fromCodePoint(str, 10, \"&#\") },\n      \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val: (_, str) => fromCodePoint(str, 16, \"&#x\") },\n    };\n    this.addExternalEntities = addExternalEntities;\n    this.parseXml = parseXml;\n    this.parseTextData = parseTextData;\n    this.resolveNameSpace = resolveNameSpace;\n    this.buildAttributesMap = buildAttributesMap;\n    this.isItStopNode = isItStopNode;\n    this.replaceEntitiesValue = replaceEntitiesValue;\n    this.readStopNodeData = readStopNodeData;\n    this.saveTextToParentTag = saveTextToParentTag;\n    this.addChild = addChild;\n    this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes)\n    this.entityExpansionCount = 0;\n    this.currentExpandedLength = 0;\n\n    if (this.options.stopNodes && this.options.stopNodes.length > 0) {\n      this.stopNodesExact = new Set();\n      this.stopNodesWildcard = new Set();\n      for (let i = 0; i < this.options.stopNodes.length; i++) {\n        const stopNodeExp = this.options.stopNodes[i];\n        if (typeof stopNodeExp !== 'string') continue;\n        if (stopNodeExp.startsWith(\"*.\")) {\n          this.stopNodesWildcard.add(stopNodeExp.substring(2));\n        } else {\n          this.stopNodesExact.add(stopNodeExp);\n        }\n      }\n    }\n  }\n\n}\n\nfunction addExternalEntities(externalEntities) {\n  const entKeys = Object.keys(externalEntities);\n  for (let i = 0; i < entKeys.length; i++) {\n    const ent = entKeys[i];\n    const escaped = ent.replace(/[.\\-+*:]/g, '\\\\.');\n    this.lastEntities[ent] = {\n      regex: new RegExp(\"&\" + escaped + \";\", \"g\"),\n      val: externalEntities[ent]\n    }\n  }\n}\n\n/**\n * @param {string} val\n * @param {string} tagName\n * @param {string} jPath\n * @param {boolean} dontTrim\n * @param {boolean} hasAttributes\n * @param {boolean} isLeafNode\n * @param {boolean} escapeEntities\n */\nfunction parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n  if (val !== undefined) {\n    if (this.options.trimValues && !dontTrim) {\n      val = val.trim();\n    }\n    if (val.length > 0) {\n      if (!escapeEntities) val = this.replaceEntitiesValue(val, tagName, jPath);\n\n      const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n      if (newval === null || newval === undefined) {\n        //don't parse\n        return val;\n      } else if (typeof newval !== typeof val || newval !== val) {\n        //overwrite\n        return newval;\n      } else if (this.options.trimValues) {\n        return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n      } else {\n        const trimmedVal = val.trim();\n        if (trimmedVal === val) {\n          return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n        } else {\n          return val;\n        }\n      }\n    }\n  }\n}\n\nfunction resolveNameSpace(tagname) {\n  if (this.options.removeNSPrefix) {\n    const tags = tagname.split(':');\n    const prefix = tagname.charAt(0) === '/' ? '/' : '';\n    if (tags[0] === 'xmlns') {\n      return '';\n    }\n    if (tags.length === 2) {\n      tagname = prefix + tags[1];\n    }\n  }\n  return tagname;\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nfunction buildAttributesMap(attrStr, jPath, tagName) {\n  if (this.options.ignoreAttributes !== true && typeof attrStr === 'string') {\n    // attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n    //attrStr = attrStr || attrStr.trim();\n\n    const matches = getAllMatches(attrStr, attrsRegx);\n    const len = matches.length; //don't make it inline\n    const attrs = {};\n    for (let i = 0; i < len; i++) {\n      const attrName = this.resolveNameSpace(matches[i][1]);\n      if (this.ignoreAttributesFn(attrName, jPath)) {\n        continue\n      }\n      let oldVal = matches[i][4];\n      let aName = this.options.attributeNamePrefix + attrName;\n      if (attrName.length) {\n        if (this.options.transformAttributeName) {\n          aName = this.options.transformAttributeName(aName);\n        }\n        if (aName === \"__proto__\") aName = \"#__proto__\";\n        if (oldVal !== undefined) {\n          if (this.options.trimValues) {\n            oldVal = oldVal.trim();\n          }\n          oldVal = this.replaceEntitiesValue(oldVal, tagName, jPath);\n          const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n          if (newVal === null || newVal === undefined) {\n            //don't parse\n            attrs[aName] = oldVal;\n          } else if (typeof newVal !== typeof oldVal || newVal !== oldVal) {\n            //overwrite\n            attrs[aName] = newVal;\n          } else {\n            //parse\n            attrs[aName] = parseValue(\n              oldVal,\n              this.options.parseAttributeValue,\n              this.options.numberParseOptions\n            );\n          }\n        } else if (this.options.allowBooleanAttributes) {\n          attrs[aName] = true;\n        }\n      }\n    }\n    if (!Object.keys(attrs).length) {\n      return;\n    }\n    if (this.options.attributesGroupName) {\n      const attrCollection = {};\n      attrCollection[this.options.attributesGroupName] = attrs;\n      return attrCollection;\n    }\n    return attrs\n  }\n}\n\nconst parseXml = function (xmlData) {\n  xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\"); //TODO: remove this line\n  const xmlObj = new xmlNode('!xml');\n  let currentNode = xmlObj;\n  let textData = \"\";\n  let jPath = \"\";\n\n  // Reset entity expansion counters for this document\n  this.entityExpansionCount = 0;\n  this.currentExpandedLength = 0;\n\n  const docTypeReader = new DocTypeReader(this.options.processEntities);\n  for (let i = 0; i < xmlData.length; i++) {//for each char in XML data\n    const ch = xmlData[i];\n    if (ch === '<') {\n      // const nextIndex = i+1;\n      // const _2ndChar = xmlData[nextIndex];\n      if (xmlData[i + 1] === '/') {//Closing Tag\n        const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n        let tagName = xmlData.substring(i + 2, closeIndex).trim();\n\n        if (this.options.removeNSPrefix) {\n          const colonIndex = tagName.indexOf(\":\");\n          if (colonIndex !== -1) {\n            tagName = tagName.substr(colonIndex + 1);\n          }\n        }\n\n        if (this.options.transformTagName) {\n          tagName = this.options.transformTagName(tagName);\n        }\n\n        if (currentNode) {\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        }\n\n        //check if last tag of nested tag was unpaired tag\n        const lastTagName = jPath.substring(jPath.lastIndexOf(\".\") + 1);\n        if (tagName && this.options.unpairedTags.indexOf(tagName) !== -1) {\n          throw new Error(`Unpaired tag can not be used as closing tag: `);\n        }\n        let propIndex = 0\n        if (lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1) {\n          propIndex = jPath.lastIndexOf('.', jPath.lastIndexOf('.') - 1)\n          this.tagsNodeStack.pop();\n        } else {\n          propIndex = jPath.lastIndexOf(\".\");\n        }\n        jPath = jPath.substring(0, propIndex);\n\n        currentNode = this.tagsNodeStack.pop();//avoid recursion, set the parent tag scope\n        textData = \"\";\n        i = closeIndex;\n      } else if (xmlData[i + 1] === '?') {\n\n        let tagData = readTagExp(xmlData, i, false, \"?>\");\n        if (!tagData) throw new Error(\"Pi Tag is not closed.\");\n\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        if ((this.options.ignoreDeclaration && tagData.tagName === \"?xml\") || this.options.ignorePiTags) {\n          //do nothing\n        } else {\n\n          const childNode = new xmlNode(tagData.tagName);\n          childNode.add(this.options.textNodeName, \"\");\n\n          if (tagData.tagName !== tagData.tagExp && tagData.attrExpPresent) {\n            childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n          }\n          this.addChild(currentNode, childNode, jPath, i);\n        }\n\n\n        i = tagData.closeIndex + 1;\n      } else if (xmlData.substr(i + 1, 3) === '!--') {\n        const endIndex = findClosingIndex(xmlData, \"-->\", i + 4, \"Comment is not closed.\")\n        if (this.options.commentPropName) {\n          const comment = xmlData.substring(i + 4, endIndex - 2);\n\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n          currentNode.add(this.options.commentPropName, [{ [this.options.textNodeName]: comment }]);\n        }\n        i = endIndex;\n      } else if (xmlData.substr(i + 1, 2) === '!D') {\n        const result = docTypeReader.readDocType(xmlData, i);\n        this.docTypeEntities = result.entities;\n        i = result.i;\n      } else if (xmlData.substr(i + 1, 2) === '![') {\n        const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n        const tagExp = xmlData.substring(i + 9, closeIndex);\n\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n        let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n        if (val == undefined) val = \"\";\n\n        //cdata should be set even if it is 0 length string\n        if (this.options.cdataPropName) {\n          currentNode.add(this.options.cdataPropName, [{ [this.options.textNodeName]: tagExp }]);\n        } else {\n          currentNode.add(this.options.textNodeName, val);\n        }\n\n        i = closeIndex + 2;\n      } else {//Opening tag\n        let result = readTagExp(xmlData, i, this.options.removeNSPrefix);\n        let tagName = result.tagName;\n        const rawTagName = result.rawTagName;\n        let tagExp = result.tagExp;\n        let attrExpPresent = result.attrExpPresent;\n        let closeIndex = result.closeIndex;\n\n        if (this.options.transformTagName) {\n          //console.log(tagExp, tagName)\n          const newTagName = this.options.transformTagName(tagName);\n          if (tagExp === tagName) {\n            tagExp = newTagName\n          }\n          tagName = newTagName;\n        }\n\n        //save text as child node\n        if (currentNode && textData) {\n          if (currentNode.tagname !== '!xml') {\n            //when nested tag is found\n            textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n          }\n        }\n\n        //check if last tag was unpaired tag\n        const lastTag = currentNode;\n        if (lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1) {\n          currentNode = this.tagsNodeStack.pop();\n          jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n        }\n        if (tagName !== xmlObj.tagname) {\n          jPath += jPath ? \".\" + tagName : tagName;\n        }\n        const startIndex = i;\n        if (this.isItStopNode(this.stopNodesExact, this.stopNodesWildcard, jPath, tagName)) {\n          let tagContent = \"\";\n          //self-closing tag\n          if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n            if (tagName[tagName.length - 1] === \"/\") { //remove trailing '/'\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            } else {\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n            i = result.closeIndex;\n          }\n          //unpaired tag\n          else if (this.options.unpairedTags.indexOf(tagName) !== -1) {\n\n            i = result.closeIndex;\n          }\n          //normal tag\n          else {\n            //read until closing tag is found\n            const result = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n            if (!result) throw new Error(`Unexpected end of ${rawTagName}`);\n            i = result.i;\n            tagContent = result.tagContent;\n          }\n\n          const childNode = new xmlNode(tagName);\n\n          if (tagName !== tagExp && attrExpPresent) {\n            childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n          }\n          if (tagContent) {\n            tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n          }\n\n          jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          childNode.add(this.options.textNodeName, tagContent);\n\n          this.addChild(currentNode, childNode, jPath, startIndex);\n        } else {\n          //selfClosing tag\n          if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n            if (tagName[tagName.length - 1] === \"/\") { //remove trailing '/'\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            } else {\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n\n            if (this.options.transformTagName) {\n              const newTagName = this.options.transformTagName(tagName);\n              if (tagExp === tagName) {\n                tagExp = newTagName\n              }\n              tagName = newTagName;\n            }\n\n            const childNode = new xmlNode(tagName);\n            if (tagName !== tagExp && attrExpPresent) {\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n            }\n            this.addChild(currentNode, childNode, jPath, startIndex);\n            jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          }\n          //opening tag\n          else {\n            const childNode = new xmlNode(tagName);\n            this.tagsNodeStack.push(currentNode);\n\n            if (tagName !== tagExp && attrExpPresent) {\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n            }\n            this.addChild(currentNode, childNode, jPath, startIndex);\n            currentNode = childNode;\n          }\n          textData = \"\";\n          i = closeIndex;\n        }\n      }\n    } else {\n      textData += xmlData[i];\n    }\n  }\n  return xmlObj.child;\n}\n\nfunction addChild(currentNode, childNode, jPath, startIndex) {\n  // unset startIndex if not requested\n  if (!this.options.captureMetaData) startIndex = undefined;\n  const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"])\n  if (result === false) {\n    //do nothing\n  } else if (typeof result === \"string\") {\n    childNode.tagname = result\n    currentNode.addChild(childNode, startIndex);\n  } else {\n    currentNode.addChild(childNode, startIndex);\n  }\n}\n\nconst replaceEntitiesValue = function (val, tagName, jPath) {\n  // Performance optimization: Early return if no entities to replace\n  if (val.indexOf('&') === -1) {\n    return val;\n  }\n\n  const entityConfig = this.options.processEntities;\n\n  if (!entityConfig.enabled) {\n    return val;\n  }\n\n  // Check tag-specific filtering\n  if (entityConfig.allowedTags) {\n    if (!entityConfig.allowedTags.includes(tagName)) {\n      return val; // Skip entity replacement for current tag as not set\n    }\n  }\n\n  if (entityConfig.tagFilter) {\n    if (!entityConfig.tagFilter(tagName, jPath)) {\n      return val; // Skip based on custom filter\n    }\n  }\n\n  // Replace DOCTYPE entities\n  for (let entityName in this.docTypeEntities) {\n    const entity = this.docTypeEntities[entityName];\n    const matches = val.match(entity.regx);\n\n    if (matches) {\n      // Track expansions\n      this.entityExpansionCount += matches.length;\n\n      // Check expansion limit\n      if (entityConfig.maxTotalExpansions &&\n        this.entityExpansionCount > entityConfig.maxTotalExpansions) {\n        throw new Error(\n          `Entity expansion limit exceeded: ${this.entityExpansionCount} > ${entityConfig.maxTotalExpansions}`\n        );\n      }\n\n      // Store length before replacement\n      const lengthBefore = val.length;\n      val = val.replace(entity.regx, entity.val);\n\n      // Check expanded length immediately after replacement\n      if (entityConfig.maxExpandedLength) {\n        this.currentExpandedLength += (val.length - lengthBefore);\n\n        if (this.currentExpandedLength > entityConfig.maxExpandedLength) {\n          throw new Error(\n            `Total expanded content size exceeded: ${this.currentExpandedLength} > ${entityConfig.maxExpandedLength}`\n          );\n        }\n      }\n    }\n  }\n  if (val.indexOf('&') === -1) return val;  // Early exit\n\n  // Replace standard entities\n  for (let entityName in this.lastEntities) {\n    const entity = this.lastEntities[entityName];\n    val = val.replace(entity.regex, entity.val);\n  }\n  if (val.indexOf('&') === -1) return val;  // Early exit\n\n  // Replace HTML entities if enabled\n  if (this.options.htmlEntities) {\n    for (let entityName in this.htmlEntities) {\n      const entity = this.htmlEntities[entityName];\n      val = val.replace(entity.regex, entity.val);\n    }\n  }\n\n  // Replace ampersand entity last\n  val = val.replace(this.ampEntity.regex, this.ampEntity.val);\n\n  return val;\n}\n\n\nfunction saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n  if (textData) { //store previously collected data as textNode\n    if (isLeafNode === undefined) isLeafNode = currentNode.child.length === 0\n\n    textData = this.parseTextData(textData,\n      currentNode.tagname,\n      jPath,\n      false,\n      currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n      isLeafNode);\n\n    if (textData !== undefined && textData !== \"\")\n      currentNode.add(this.options.textNodeName, textData);\n    textData = \"\";\n  }\n  return textData;\n}\n\n//TODO: use jPath to simplify the logic\n/**\n * @param {Set} stopNodesExact\n * @param {Set} stopNodesWildcard\n * @param {string} jPath\n * @param {string} currentTagName\n */\nfunction isItStopNode(stopNodesExact, stopNodesWildcard, jPath, currentTagName) {\n  if (stopNodesWildcard && stopNodesWildcard.has(currentTagName)) return true;\n  if (stopNodesExact && stopNodesExact.has(jPath)) return true;\n  return false;\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-double quotes situation\n * @param {string} xmlData \n * @param {number} i starting index\n * @returns \n */\nfunction tagExpWithClosingIndex(xmlData, i, closingChar = \">\") {\n  let attrBoundary;\n  let tagExp = \"\";\n  for (let index = i; index < xmlData.length; index++) {\n    let ch = xmlData[index];\n    if (attrBoundary) {\n      if (ch === attrBoundary) attrBoundary = \"\";//reset\n    } else if (ch === '\"' || ch === \"'\") {\n      attrBoundary = ch;\n    } else if (ch === closingChar[0]) {\n      if (closingChar[1]) {\n        if (xmlData[index + 1] === closingChar[1]) {\n          return {\n            data: tagExp,\n            index: index\n          }\n        }\n      } else {\n        return {\n          data: tagExp,\n          index: index\n        }\n      }\n    } else if (ch === '\\t') {\n      ch = \" \"\n    }\n    tagExp += ch;\n  }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg) {\n  const closingIndex = xmlData.indexOf(str, i);\n  if (closingIndex === -1) {\n    throw new Error(errMsg)\n  } else {\n    return closingIndex + str.length - 1;\n  }\n}\n\nfunction readTagExp(xmlData, i, removeNSPrefix, closingChar = \">\") {\n  const result = tagExpWithClosingIndex(xmlData, i + 1, closingChar);\n  if (!result) return;\n  let tagExp = result.data;\n  const closeIndex = result.index;\n  const separatorIndex = tagExp.search(/\\s/);\n  let tagName = tagExp;\n  let attrExpPresent = true;\n  if (separatorIndex !== -1) {//separate tag name and attributes expression\n    tagName = tagExp.substring(0, separatorIndex);\n    tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n  }\n\n  const rawTagName = tagName;\n  if (removeNSPrefix) {\n    const colonIndex = tagName.indexOf(\":\");\n    if (colonIndex !== -1) {\n      tagName = tagName.substr(colonIndex + 1);\n      attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n    }\n  }\n\n  return {\n    tagName: tagName,\n    tagExp: tagExp,\n    closeIndex: closeIndex,\n    attrExpPresent: attrExpPresent,\n    rawTagName: rawTagName,\n  }\n}\n/**\n * find paired tag for a stop node\n * @param {string} xmlData \n * @param {string} tagName \n * @param {number} i \n */\nfunction readStopNodeData(xmlData, tagName, i) {\n  const startIndex = i;\n  // Starting at 1 since we already have an open tag\n  let openTagCount = 1;\n\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === \"<\") {\n      if (xmlData[i + 1] === \"/\") {//close tag\n        const closeIndex = findClosingIndex(xmlData, \">\", i, `${tagName} is not closed`);\n        let closeTagName = xmlData.substring(i + 2, closeIndex).trim();\n        if (closeTagName === tagName) {\n          openTagCount--;\n          if (openTagCount === 0) {\n            return {\n              tagContent: xmlData.substring(startIndex, i),\n              i: closeIndex\n            }\n          }\n        }\n        i = closeIndex;\n      } else if (xmlData[i + 1] === '?') {\n        const closeIndex = findClosingIndex(xmlData, \"?>\", i + 1, \"StopNode is not closed.\")\n        i = closeIndex;\n      } else if (xmlData.substr(i + 1, 3) === '!--') {\n        const closeIndex = findClosingIndex(xmlData, \"-->\", i + 3, \"StopNode is not closed.\")\n        i = closeIndex;\n      } else if (xmlData.substr(i + 1, 2) === '![') {\n        const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"StopNode is not closed.\") - 2;\n        i = closeIndex;\n      } else {\n        const tagData = readTagExp(xmlData, i, '>')\n\n        if (tagData) {\n          const openTagName = tagData && tagData.tagName;\n          if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length - 1] !== \"/\") {\n            openTagCount++;\n          }\n          i = tagData.closeIndex;\n        }\n      }\n    }\n  }//end for loop\n}\n\nfunction parseValue(val, shouldParse, options) {\n  if (shouldParse && typeof val === 'string') {\n    //console.log(options)\n    const newval = val.trim();\n    if (newval === 'true') return true;\n    else if (newval === 'false') return false;\n    else return toNumber(val, options);\n  } else {\n    if (isExist(val)) {\n      return val;\n    } else {\n      return '';\n    }\n  }\n}\n\nfunction fromCodePoint(str, base, prefix) {\n  const codePoint = Number.parseInt(str, base);\n\n  if (codePoint >= 0 && codePoint <= 0x10FFFF) {\n    return String.fromCodePoint(codePoint);\n  } else {\n    return prefix + str + \";\";\n  }\n}","'use strict';\n\nimport XmlNode from './xmlNode.js';\n\nconst METADATA_SYMBOL = XmlNode.getMetaDataSymbol();\n\n/**\n * \n * @param {array} node \n * @param {any} options \n * @returns \n */\nexport default function prettify(node, options){\n  return compress( node, options);\n}\n\n/**\n * \n * @param {array} arr \n * @param {object} options \n * @param {string} jPath \n * @returns object\n */\nfunction compress(arr, options, jPath){\n  let text;\n  const compressedObj = {};\n  for (let i = 0; i < arr.length; i++) {\n    const tagObj = arr[i];\n    const property = propName(tagObj);\n    let newJpath = \"\";\n    if(jPath === undefined) newJpath = property;\n    else newJpath = jPath + \".\" + property;\n\n    if(property === options.textNodeName){\n      if(text === undefined) text = tagObj[property];\n      else text += \"\" + tagObj[property];\n    }else if(property === undefined){\n      continue;\n    }else if(tagObj[property]){\n      \n      let val = compress(tagObj[property], options, newJpath);\n      const isLeaf = isLeafTag(val, options);\n      if (tagObj[METADATA_SYMBOL] !== undefined) {\n        val[METADATA_SYMBOL] = tagObj[METADATA_SYMBOL]; // copy over metadata\n      }\n\n      if(tagObj[\":@\"]){\n        assignAttributes( val, tagObj[\":@\"], newJpath, options);\n      }else if(Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode){\n        val = val[options.textNodeName];\n      }else if(Object.keys(val).length === 0){\n        if(options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n        else val = \"\";\n      }\n\n      if(compressedObj[property] !== undefined && compressedObj.hasOwnProperty(property)) {\n        if(!Array.isArray(compressedObj[property])) {\n            compressedObj[property] = [ compressedObj[property] ];\n        }\n        compressedObj[property].push(val);\n      }else{\n        //TODO: if a node is not an array, then check if it should be an array\n        //also determine if it is a leaf node\n        if (options.isArray(property, newJpath, isLeaf )) {\n          compressedObj[property] = [val];\n        }else{\n          compressedObj[property] = val;\n        }\n      }\n    }\n    \n  }\n  // if(text && text.length > 0) compressedObj[options.textNodeName] = text;\n  if(typeof text === \"string\"){\n    if(text.length > 0) compressedObj[options.textNodeName] = text;\n  }else if(text !== undefined) compressedObj[options.textNodeName] = text;\n  return compressedObj;\n}\n\nfunction propName(obj){\n  const keys = Object.keys(obj);\n  for (let i = 0; i < keys.length; i++) {\n    const key = keys[i];\n    if(key !== \":@\") return key;\n  }\n}\n\nfunction assignAttributes(obj, attrMap, jpath, options){\n  if (attrMap) {\n    const keys = Object.keys(attrMap);\n    const len = keys.length; //don't make it inline\n    for (let i = 0; i < len; i++) {\n      const atrrName = keys[i];\n      if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n        obj[atrrName] = [ attrMap[atrrName] ];\n      } else {\n        obj[atrrName] = attrMap[atrrName];\n      }\n    }\n  }\n}\n\nfunction isLeafTag(obj, options){\n  const { textNodeName } = options;\n  const propCount = Object.keys(obj).length;\n  \n  if (propCount === 0) {\n    return true;\n  }\n\n  if (\n    propCount === 1 &&\n    (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)\n  ) {\n    return true;\n  }\n\n  return false;\n}\n","'use strict';\n\nimport {getAllMatches, isName} from './util.js';\n\nconst defaultOptions = {\n  allowBooleanAttributes: false, //A tag can have attributes without any value\n  unpairedTags: []\n};\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexport function validate(xmlData, options) {\n  options = Object.assign({}, defaultOptions, options);\n\n  //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n  //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n  //xmlData = xmlData.replace(/()/g,\"\");//Remove DOCTYPE\n  const tags = [];\n  let tagFound = false;\n\n  //indicates that the root tag has been closed (aka. depth 0 has been reached)\n  let reachedRoot = false;\n\n  if (xmlData[0] === '\\ufeff') {\n    // check for byte order mark (BOM)\n    xmlData = xmlData.substr(1);\n  }\n  \n  for (let i = 0; i < xmlData.length; i++) {\n\n    if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n      i+=2;\n      i = readPI(xmlData,i);\n      if (i.err) return i;\n    }else if (xmlData[i] === '<') {\n      //starting of tag\n      //read until you reach to '>' avoiding any '>' in attribute value\n      let tagStartPos = i;\n      i++;\n      \n      if (xmlData[i] === '!') {\n        i = readCommentAndCDATA(xmlData, i);\n        continue;\n      } else {\n        let closingTag = false;\n        if (xmlData[i] === '/') {\n          //closing tag\n          closingTag = true;\n          i++;\n        }\n        //read tagname\n        let tagName = '';\n        for (; i < xmlData.length &&\n          xmlData[i] !== '>' &&\n          xmlData[i] !== ' ' &&\n          xmlData[i] !== '\\t' &&\n          xmlData[i] !== '\\n' &&\n          xmlData[i] !== '\\r'; i++\n        ) {\n          tagName += xmlData[i];\n        }\n        tagName = tagName.trim();\n        //console.log(tagName);\n\n        if (tagName[tagName.length - 1] === '/') {\n          //self closing tag without attributes\n          tagName = tagName.substring(0, tagName.length - 1);\n          //continue;\n          i--;\n        }\n        if (!validateTagName(tagName)) {\n          let msg;\n          if (tagName.trim().length === 0) {\n            msg = \"Invalid space after '<'.\";\n          } else {\n            msg = \"Tag '\"+tagName+\"' is an invalid name.\";\n          }\n          return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n        }\n\n        const result = readAttributeStr(xmlData, i);\n        if (result === false) {\n          return getErrorObject('InvalidAttr', \"Attributes for '\"+tagName+\"' have open quote.\", getLineNumberForPosition(xmlData, i));\n        }\n        let attrStr = result.value;\n        i = result.index;\n\n        if (attrStr[attrStr.length - 1] === '/') {\n          //self closing tag\n          const attrStrStart = i - attrStr.length;\n          attrStr = attrStr.substring(0, attrStr.length - 1);\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid === true) {\n            tagFound = true;\n            //continue; //text may presents after self closing tag\n          } else {\n            //the result from the nested function returns the position of the error within the attribute\n            //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n            //this gives us the absolute index in the entire xml, which we can use to find the line at last\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n          }\n        } else if (closingTag) {\n          if (!result.tagClosed) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n          } else if (attrStr.trim().length > 0) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else if (tags.length === 0) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else {\n            const otg = tags.pop();\n            if (tagName !== otg.tagName) {\n              let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n              return getErrorObject('InvalidTag',\n                \"Expected closing tag '\"+otg.tagName+\"' (opened in line \"+openPos.line+\", col \"+openPos.col+\") instead of closing tag '\"+tagName+\"'.\",\n                getLineNumberForPosition(xmlData, tagStartPos));\n            }\n\n            //when there are no more tags, we reached the root level.\n            if (tags.length == 0) {\n              reachedRoot = true;\n            }\n          }\n        } else {\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid !== true) {\n            //the result from the nested function returns the position of the error within the attribute\n            //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n            //this gives us the absolute index in the entire xml, which we can use to find the line at last\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n          }\n\n          //if the root level has been reached before ...\n          if (reachedRoot === true) {\n            return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n          } else if(options.unpairedTags.indexOf(tagName) !== -1){\n            //don't push into stack\n          } else {\n            tags.push({tagName, tagStartPos});\n          }\n          tagFound = true;\n        }\n\n        //skip tag text value\n        //It may include comments and CDATA value\n        for (i++; i < xmlData.length; i++) {\n          if (xmlData[i] === '<') {\n            if (xmlData[i + 1] === '!') {\n              //comment or CADATA\n              i++;\n              i = readCommentAndCDATA(xmlData, i);\n              continue;\n            } else if (xmlData[i+1] === '?') {\n              i = readPI(xmlData, ++i);\n              if (i.err) return i;\n            } else{\n              break;\n            }\n          } else if (xmlData[i] === '&') {\n            const afterAmp = validateAmpersand(xmlData, i);\n            if (afterAmp == -1)\n              return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n            i = afterAmp;\n          }else{\n            if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n              return getErrorObject('InvalidXml', \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n            }\n          }\n        } //end of reading tag text value\n        if (xmlData[i] === '<') {\n          i--;\n        }\n      }\n    } else {\n      if ( isWhiteSpace(xmlData[i])) {\n        continue;\n      }\n      return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n    }\n  }\n\n  if (!tagFound) {\n    return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n  }else if (tags.length == 1) {\n      return getErrorObject('InvalidTag', \"Unclosed tag '\"+tags[0].tagName+\"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n  }else if (tags.length > 0) {\n      return getErrorObject('InvalidXml', \"Invalid '\"+\n          JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '')+\n          \"' found.\", {line: 1, col: 1});\n  }\n\n  return true;\n};\n\nfunction isWhiteSpace(char){\n  return char === ' ' || char === '\\t' || char === '\\n'  || char === '\\r';\n}\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n  const start = i;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] == '?' || xmlData[i] == ' ') {\n      //tagname\n      const tagname = xmlData.substr(start, i - start);\n      if (i > 5 && tagname === 'xml') {\n        return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n      } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n        //check if valid attribut string\n        i++;\n        break;\n      } else {\n        continue;\n      }\n    }\n  }\n  return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n  if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n    //comment\n    for (i += 3; i < xmlData.length; i++) {\n      if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n        i += 2;\n        break;\n      }\n    }\n  } else if (\n    xmlData.length > i + 8 &&\n    xmlData[i + 1] === 'D' &&\n    xmlData[i + 2] === 'O' &&\n    xmlData[i + 3] === 'C' &&\n    xmlData[i + 4] === 'T' &&\n    xmlData[i + 5] === 'Y' &&\n    xmlData[i + 6] === 'P' &&\n    xmlData[i + 7] === 'E'\n  ) {\n    let angleBracketsCount = 1;\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === '<') {\n        angleBracketsCount++;\n      } else if (xmlData[i] === '>') {\n        angleBracketsCount--;\n        if (angleBracketsCount === 0) {\n          break;\n        }\n      }\n    }\n  } else if (\n    xmlData.length > i + 9 &&\n    xmlData[i + 1] === '[' &&\n    xmlData[i + 2] === 'C' &&\n    xmlData[i + 3] === 'D' &&\n    xmlData[i + 4] === 'A' &&\n    xmlData[i + 5] === 'T' &&\n    xmlData[i + 6] === 'A' &&\n    xmlData[i + 7] === '['\n  ) {\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n        i += 2;\n        break;\n      }\n    }\n  }\n\n  return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n  let attrStr = '';\n  let startChar = '';\n  let tagClosed = false;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n      if (startChar === '') {\n        startChar = xmlData[i];\n      } else if (startChar !== xmlData[i]) {\n        //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n      } else {\n        startChar = '';\n      }\n    } else if (xmlData[i] === '>') {\n      if (startChar === '') {\n        tagClosed = true;\n        break;\n      }\n    }\n    attrStr += xmlData[i];\n  }\n  if (startChar !== '') {\n    return false;\n  }\n\n  return {\n    value: attrStr,\n    index: i,\n    tagClosed: tagClosed\n  };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab  cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n  //console.log(\"start:\"+attrStr+\":end\");\n\n  //if(attrStr.trim().length === 0) return true; //empty string\n\n  const matches = getAllMatches(attrStr, validAttrStrRegxp);\n  const attrNames = {};\n\n  for (let i = 0; i < matches.length; i++) {\n    if (matches[i][1].length === 0) {\n      //nospace before attribute name: a=\"sd\"b=\"saf\"\n      return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(matches[i]))\n    } else if (matches[i][3] !== undefined && matches[i][4] === undefined) {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' is without value.\", getPositionFromMatch(matches[i]));\n    } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n      //independent attribute: ab\n      return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(matches[i]));\n    }\n    /* else if(matches[i][6] === undefined){//attribute without value: ab=\n                    return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n                } */\n    const attrName = matches[i][2];\n    if (!validateAttrName(attrName)) {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(matches[i]));\n    }\n    if (!attrNames.hasOwnProperty(attrName)) {\n      //check for duplicate attribute.\n      attrNames[attrName] = 1;\n    } else {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(matches[i]));\n    }\n  }\n\n  return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n  let re = /\\d/;\n  if (xmlData[i] === 'x') {\n    i++;\n    re = /[\\da-fA-F]/;\n  }\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === ';')\n      return i;\n    if (!xmlData[i].match(re))\n      break;\n  }\n  return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n  // https://www.w3.org/TR/xml/#dt-charref\n  i++;\n  if (xmlData[i] === ';')\n    return -1;\n  if (xmlData[i] === '#') {\n    i++;\n    return validateNumberAmpersand(xmlData, i);\n  }\n  let count = 0;\n  for (; i < xmlData.length; i++, count++) {\n    if (xmlData[i].match(/\\w/) && count < 20)\n      continue;\n    if (xmlData[i] === ';')\n      break;\n    return -1;\n  }\n  return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n  return {\n    err: {\n      code: code,\n      msg: message,\n      line: lineNumber.line || lineNumber,\n      col: lineNumber.col,\n    },\n  };\n}\n\nfunction validateAttrName(attrName) {\n  return isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n  return isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n  const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n  return {\n    line: lines.length,\n\n    // column number is last line's length + 1, because column numbering starts at 1:\n    col: lines[lines.length - 1].length + 1\n  };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n  return match.startIndex + match[1].length;\n}\n","import { buildOptions} from './OptionsBuilder.js';\nimport OrderedObjParser from './OrderedObjParser.js';\nimport prettify from './node2json.js';\nimport {validate} from \"../validator.js\";\nimport XmlNode from './xmlNode.js';\n\nexport default class XMLParser{\n    \n    constructor(options){\n        this.externalEntities = {};\n        this.options = buildOptions(options);\n        \n    }\n    /**\n     * Parse XML dats to JS object \n     * @param {string|Uint8Array} xmlData \n     * @param {boolean|Object} validationOption \n     */\n    parse(xmlData,validationOption){\n        if(typeof xmlData !== \"string\" && xmlData.toString){\n            xmlData = xmlData.toString();\n        }else if(typeof xmlData !== \"string\"){\n            throw new Error(\"XML data is accepted in String or Bytes[] form.\")\n        }\n        \n        if( validationOption){\n            if(validationOption === true) validationOption = {}; //validate with default options\n            \n            const result = validate(xmlData, validationOption);\n            if (result !== true) {\n              throw Error( `${result.err.msg}:${result.err.line}:${result.err.col}` )\n            }\n          }\n        const orderedObjParser = new OrderedObjParser(this.options);\n        orderedObjParser.addExternalEntities(this.externalEntities);\n        const orderedResult = orderedObjParser.parseXml(xmlData);\n        if(this.options.preserveOrder || orderedResult === undefined) return orderedResult;\n        else return prettify(orderedResult, this.options);\n    }\n\n    /**\n     * Add Entity which is not by default supported by this library\n     * @param {string} key \n     * @param {string} value \n     */\n    addEntity(key, value){\n        if(value.indexOf(\"&\") !== -1){\n            throw new Error(\"Entity value can't have '&'\")\n        }else if(key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1){\n            throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '
'\")\n        }else if(value === \"&\"){\n            throw new Error(\"An entity with value '&' is not permitted\");\n        }else{\n            this.externalEntities[key] = value;\n        }\n    }\n\n    /**\n     * Returns a Symbol that can be used to access the metadata\n     * property on a node.\n     * \n     * If Symbol is not available in the environment, an ordinary property is used\n     * and the name of the property is here returned.\n     * \n     * The XMLMetaData property is only present when `captureMetaData`\n     * is true in the options.\n     */\n    static getMetaDataSymbol() {\n        return XmlNode.getMetaDataSymbol();\n    }\n}\n","import path from \"path-posix\";\nimport { XMLParser } from \"fast-xml-parser\";\nimport nestedProp from \"nested-property\";\nimport { encodePath, normalisePath } from \"./path.js\";\nvar PropertyType;\n(function (PropertyType) {\n    PropertyType[\"Array\"] = \"array\";\n    PropertyType[\"Object\"] = \"object\";\n    PropertyType[\"Original\"] = \"original\";\n})(PropertyType || (PropertyType = {}));\nfunction getParser({ attributeNamePrefix, attributeParsers, tagParsers }) {\n    return new XMLParser({\n        allowBooleanAttributes: true,\n        attributeNamePrefix,\n        textNodeName: \"text\",\n        ignoreAttributes: false,\n        removeNSPrefix: true,\n        numberParseOptions: {\n            hex: true,\n            leadingZeros: false\n        },\n        attributeValueProcessor(_, attrValue, jPath) {\n            for (const processor of attributeParsers) {\n                try {\n                    const value = processor(jPath, attrValue);\n                    if (value !== attrValue) {\n                        return value;\n                    }\n                }\n                catch (error) {\n                    // skipping this invalid parser\n                }\n            }\n            return attrValue;\n        },\n        tagValueProcessor(tagName, tagValue, jPath) {\n            for (const processor of tagParsers) {\n                try {\n                    const value = processor(jPath, tagValue);\n                    if (value !== tagValue) {\n                        return value;\n                    }\n                }\n                catch (error) {\n                    // skipping this invalid parser\n                }\n            }\n            return tagValue;\n        }\n    });\n}\n/**\n * Tag parser for the displayname prop.\n * Ensure that the displayname is not parsed and always handled as is.\n * @param path The jPath of the tag\n * @param value The text value of the tag\n */\nexport function displaynameTagParser(path, value) {\n    if (path.endsWith(\"propstat.prop.displayname\")) {\n        // Do not parse the displayname, because this causes e.g. '2024.10' to result in number 2024.1\n        return;\n    }\n    return value;\n}\nfunction getPropertyOfType(obj, prop, type = PropertyType.Original) {\n    const val = nestedProp.get(obj, prop);\n    if (type === \"array\" && Array.isArray(val) === false) {\n        return [val];\n    }\n    else if (type === \"object\" && Array.isArray(val)) {\n        return val[0];\n    }\n    return val;\n}\nfunction normaliseResponse(response) {\n    const output = Object.assign({}, response);\n    // Only either status OR propstat is allowed\n    if (output.status) {\n        nestedProp.set(output, \"status\", getPropertyOfType(output, \"status\", PropertyType.Object));\n    }\n    else {\n        nestedProp.set(output, \"propstat\", getPropertyOfType(output, \"propstat\", PropertyType.Object));\n        nestedProp.set(output, \"propstat.prop\", getPropertyOfType(output, \"propstat.prop\", PropertyType.Object));\n    }\n    return output;\n}\nfunction normaliseResult(result) {\n    const { multistatus } = result;\n    if (multistatus === \"\") {\n        return {\n            multistatus: {\n                response: []\n            }\n        };\n    }\n    if (!multistatus) {\n        throw new Error(\"Invalid response: No root multistatus found\");\n    }\n    const output = {\n        multistatus: Array.isArray(multistatus) ? multistatus[0] : multistatus\n    };\n    nestedProp.set(output, \"multistatus.response\", getPropertyOfType(output, \"multistatus.response\", PropertyType.Array));\n    nestedProp.set(output, \"multistatus.response\", nestedProp.get(output, \"multistatus.response\").map(response => normaliseResponse(response)));\n    return output;\n}\n/**\n * Parse an XML response from a WebDAV service,\n *  converting it to an internal DAV result\n * @param xml The raw XML string\n * @param context The current client context\n * @returns A parsed and processed DAV result\n */\nexport function parseXML(xml, context) {\n    // backwards compatibility as this method is exported from the package\n    context = context ?? {\n        attributeNamePrefix: \"@\",\n        attributeParsers: [],\n        tagParsers: [displaynameTagParser]\n    };\n    return new Promise(resolve => {\n        const result = getParser(context).parse(xml);\n        resolve(normaliseResult(result));\n    });\n}\n/**\n * Get a file stat result from given DAV properties\n * @param props DAV properties\n * @param filename The filename for the file stat\n * @param isDetailed Whether or not the raw props of the resource should be returned\n * @returns A file stat result\n */\nexport function prepareFileFromProps(props, filename, isDetailed = false) {\n    // Last modified time, raw size, item type and mime\n    const { getlastmodified: lastMod = null, getcontentlength: rawSize = \"0\", resourcetype: resourceType = null, getcontenttype: mimeType = null, getetag: etag = null } = props;\n    const type = resourceType &&\n        typeof resourceType === \"object\" &&\n        typeof resourceType.collection !== \"undefined\"\n        ? \"directory\"\n        : \"file\";\n    const stat = {\n        filename,\n        basename: path.basename(filename),\n        lastmod: lastMod,\n        size: parseInt(rawSize, 10),\n        type,\n        etag: typeof etag === \"string\" ? etag.replace(/\"/g, \"\") : null\n    };\n    if (type === \"file\") {\n        stat.mime = mimeType && typeof mimeType === \"string\" ? mimeType.split(\";\")[0] : \"\";\n    }\n    if (isDetailed) {\n        // The XML parser tries to interpret values, but the display name is required to be a string\n        if (typeof props.displayname !== \"undefined\") {\n            props.displayname = String(props.displayname);\n        }\n        stat.props = props;\n    }\n    return stat;\n}\n/**\n * Parse a DAV result for file stats\n * @param result The resulting DAV response\n * @param filename The filename that was stat'd\n * @param isDetailed Whether or not the raw props of\n *  the resource should be returned\n * @returns A file stat result\n */\nexport function parseStat(result, filename, isDetailed = false) {\n    let responseItem = null;\n    try {\n        // should be a propstat response, if not the if below will throw an error\n        if (result.multistatus.response[0].propstat) {\n            responseItem = result.multistatus.response[0];\n        }\n    }\n    catch (e) {\n        /* ignore */\n    }\n    if (!responseItem) {\n        throw new Error(\"Failed getting item stat: bad response\");\n    }\n    const { propstat: { prop: props, status: statusLine } } = responseItem;\n    // As defined in https://tools.ietf.org/html/rfc2068#section-6.1\n    const [_, statusCodeStr, statusText] = statusLine.split(\" \", 3);\n    const statusCode = parseInt(statusCodeStr, 10);\n    if (statusCode >= 400) {\n        const err = new Error(`Invalid response: ${statusCode} ${statusText}`);\n        err.status = statusCode;\n        throw err;\n    }\n    const filePath = normalisePath(filename);\n    return prepareFileFromProps(props, filePath, isDetailed);\n}\n/**\n * Parse a DAV result for a search request\n *\n * @param result The resulting DAV response\n * @param searchArbiter The collection path that was searched\n * @param isDetailed Whether or not the raw props of the resource should be returned\n */\nexport function parseSearch(result, searchArbiter, isDetailed) {\n    const response = {\n        truncated: false,\n        results: []\n    };\n    response.truncated = result.multistatus.response.some(v => {\n        return ((v.status || v.propstat?.status).split(\" \", 3)?.[1] === \"507\" &&\n            v.href.replace(/\\/$/, \"\").endsWith(encodePath(searchArbiter).replace(/\\/$/, \"\")));\n    });\n    result.multistatus.response.forEach(result => {\n        if (result.propstat === undefined) {\n            return;\n        }\n        const filename = result.href.split(\"/\").map(decodeURIComponent).join(\"/\");\n        response.results.push(prepareFileFromProps(result.propstat.prop, filename, isDetailed));\n    });\n    return response;\n}\n/**\n * Translate a disk quota indicator to a recognised\n *  value (includes \"unlimited\" and \"unknown\")\n * @param value The quota indicator, eg. \"-3\"\n * @returns The value in bytes, or another indicator\n */\nexport function translateDiskSpace(value) {\n    switch (String(value)) {\n        case \"-3\":\n            return \"unlimited\";\n        case \"-2\":\n        /* falls-through */\n        case \"-1\":\n            // -1 is non-computed\n            return \"unknown\";\n        default:\n            return parseInt(String(value), 10);\n    }\n}\n","import { parseStat, parseXML } from \"../tools/dav.js\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode, processResponsePayload } from \"../response.js\";\nexport async function getStat(context, filename, options = {}) {\n    const { details: isDetailed = false } = options;\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filename)),\n        method: \"PROPFIND\",\n        headers: {\n            Accept: \"text/plain,application/xml\",\n            Depth: \"0\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseData = await response.text();\n    const result = await parseXML(responseData, context.parsing);\n    const stat = parseStat(result, filename, isDetailed);\n    return processResponsePayload(response, stat, isDetailed);\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath, getAllDirectories, normalisePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nimport { getStat } from \"./stat.js\";\nexport async function createDirectory(context, dirPath, options = {}) {\n    if (options.recursive === true)\n        return createDirectoryRecursively(context, dirPath, options);\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, ensureCollectionPath(encodePath(dirPath))),\n        method: \"MKCOL\"\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n/**\n * Ensure the path is a proper \"collection\" path by ensuring it has a trailing \"/\".\n * The proper format of collection according to the specification does contain the trailing slash.\n * http://www.webdav.org/specs/rfc4918.html#rfc.section.5.2\n * @param path Path of the collection\n * @return string Path of the collection with appended trailing \"/\" in case the `path` does not have it.\n */\nfunction ensureCollectionPath(path) {\n    if (!path.endsWith(\"/\")) {\n        return path + \"/\";\n    }\n    return path;\n}\nasync function createDirectoryRecursively(context, dirPath, options = {}) {\n    const paths = getAllDirectories(normalisePath(dirPath));\n    paths.sort((a, b) => {\n        if (a.length > b.length) {\n            return 1;\n        }\n        else if (b.length > a.length) {\n            return -1;\n        }\n        return 0;\n    });\n    let creating = false;\n    for (const testPath of paths) {\n        if (creating) {\n            await createDirectory(context, testPath, {\n                ...options,\n                recursive: false\n            });\n            continue;\n        }\n        try {\n            const testStat = (await getStat(context, testPath));\n            if (testStat.type !== \"directory\") {\n                throw new Error(`Path includes a file: ${dirPath}`);\n            }\n        }\n        catch (err) {\n            const error = err;\n            if (error.status === 404) {\n                creating = true;\n                await createDirectory(context, testPath, {\n                    ...options,\n                    recursive: false\n                });\n            }\n            else {\n                throw err;\n            }\n        }\n    }\n}\n","import Stream from \"stream\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nconst NOOP = () => { };\nexport function createReadStream(context, filePath, options = {}) {\n    const PassThroughStream = Stream.PassThrough;\n    const outStream = new PassThroughStream();\n    getFileStream(context, filePath, options)\n        .then(stream => {\n        stream.pipe(outStream);\n    })\n        .catch(err => {\n        outStream.emit(\"error\", err);\n    });\n    return outStream;\n}\nexport function createWriteStream(context, filePath, options = {}, callback = NOOP) {\n    const PassThroughStream = Stream.PassThrough;\n    const writeStream = new PassThroughStream();\n    const headers = {};\n    if (options.overwrite === false) {\n        headers[\"If-None-Match\"] = \"*\";\n    }\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"PUT\",\n        headers,\n        data: writeStream,\n        maxRedirects: 0\n    }, context, options);\n    request(requestOptions, context)\n        .then(response => handleResponseCode(context, response))\n        .then(response => {\n        // Fire callback asynchronously to avoid errors\n        setTimeout(() => {\n            callback(response);\n        }, 0);\n    })\n        .catch(err => {\n        writeStream.emit(\"error\", err);\n    });\n    return writeStream;\n}\nasync function getFileStream(context, filePath, options = {}) {\n    const headers = {};\n    if (typeof options.range === \"object\" && typeof options.range.start === \"number\") {\n        let rangeHeader = `bytes=${options.range.start}-`;\n        if (typeof options.range.end === \"number\") {\n            rangeHeader = `${rangeHeader}${options.range.end}`;\n        }\n        headers.Range = rangeHeader;\n    }\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"GET\",\n        headers\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    if (headers.Range && response.status !== 206) {\n        const responseError = new Error(`Invalid response code for partial request: ${response.status}`);\n        responseError.status = response.status;\n        throw responseError;\n    }\n    if (options.callback) {\n        setTimeout(() => {\n            options.callback(response);\n        }, 0);\n    }\n    // @ts-ignore\n    return response.body;\n}\n","import { Layerr } from \"layerr\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { fromBase64 } from \"../tools/encode.js\";\nimport { isReactNative, isWeb } from \"../compat/env.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode, processResponsePayload } from \"../response.js\";\nimport { AuthType, ErrorCode } from \"../types.js\";\nconst TRANSFORM_RETAIN_FORMAT = (v) => v;\nexport async function getFileContents(context, filePath, options = {}) {\n    const { format = \"binary\" } = options;\n    if (format !== \"binary\" && format !== \"text\") {\n        throw new Layerr({\n            info: {\n                code: ErrorCode.InvalidOutputFormat\n            }\n        }, `Invalid output format: ${format}`);\n    }\n    return format === \"text\"\n        ? getFileContentsString(context, filePath, options)\n        : getFileContentsBuffer(context, filePath, options);\n}\nasync function getFileContentsBuffer(context, filePath, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"GET\"\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    let body;\n    if (isWeb() || isReactNative()) {\n        body = await response.arrayBuffer();\n    }\n    else {\n        body = Buffer.from(await response.arrayBuffer());\n    }\n    return processResponsePayload(response, body, options.details);\n}\nasync function getFileContentsString(context, filePath, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"GET\",\n        headers: {\n            Accept: \"text/plain\"\n        },\n        transformResponse: [TRANSFORM_RETAIN_FORMAT]\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const body = await response.text();\n    return processResponsePayload(response, body, options.details);\n}\nexport function getFileDownloadLink(context, filePath) {\n    let url = joinURL(context.remoteURL, encodePath(filePath));\n    const protocol = /^https:/i.test(url) ? \"https\" : \"http\";\n    switch (context.authType) {\n        case AuthType.None:\n            // Do nothing\n            break;\n        case AuthType.Password: {\n            const authPart = context.headers.Authorization.replace(/^Basic /i, \"\").trim();\n            const authContents = fromBase64(authPart);\n            url = url.replace(/^https?:\\/\\//, `${protocol}://${authContents}@`);\n            break;\n        }\n        default:\n            throw new Layerr({\n                info: {\n                    code: ErrorCode.LinkUnsupportedAuthType\n                }\n            }, `Unsupported auth type for file link: ${context.authType}`);\n    }\n    return url;\n}\n","const EOL = \"\\n\";\n\n/**\n * \n * @param {array} jArray \n * @param {any} options \n * @returns \n */\nexport default function toXml(jArray, options) {\n    let indentation = \"\";\n    if (options.format && options.indentBy.length > 0) {\n        indentation = EOL;\n    }\n    return arrToStr(jArray, options, \"\", indentation);\n}\n\nfunction arrToStr(arr, options, jPath, indentation) {\n    let xmlStr = \"\";\n    let isPreviousElementTag = false;\n\n    for (let i = 0; i < arr.length; i++) {\n        const tagObj = arr[i];\n        const tagName = propName(tagObj);\n        if(tagName === undefined) continue;\n\n        let newJPath = \"\";\n        if (jPath.length === 0) newJPath = tagName\n        else newJPath = `${jPath}.${tagName}`;\n\n        if (tagName === options.textNodeName) {\n            let tagText = tagObj[tagName];\n            if (!isStopNode(newJPath, options)) {\n                tagText = options.tagValueProcessor(tagName, tagText);\n                tagText = replaceEntitiesValue(tagText, options);\n            }\n            if (isPreviousElementTag) {\n                xmlStr += indentation;\n            }\n            xmlStr += tagText;\n            isPreviousElementTag = false;\n            continue;\n        } else if (tagName === options.cdataPropName) {\n            if (isPreviousElementTag) {\n                xmlStr += indentation;\n            }\n            xmlStr += ``;\n            isPreviousElementTag = false;\n            continue;\n        } else if (tagName === options.commentPropName) {\n            xmlStr += indentation + ``;\n            isPreviousElementTag = true;\n            continue;\n        } else if (tagName[0] === \"?\") {\n            const attStr = attr_to_str(tagObj[\":@\"], options);\n            const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n            let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n            piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\"; //remove extra spacing\n            xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr}?>`;\n            isPreviousElementTag = true;\n            continue;\n        }\n        let newIdentation = indentation;\n        if (newIdentation !== \"\") {\n            newIdentation += options.indentBy;\n        }\n        const attStr = attr_to_str(tagObj[\":@\"], options);\n        const tagStart = indentation + `<${tagName}${attStr}`;\n        const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n        if (options.unpairedTags.indexOf(tagName) !== -1) {\n            if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n            else xmlStr += tagStart + \"/>\";\n        } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n            xmlStr += tagStart + \"/>\";\n        } else if (tagValue && tagValue.endsWith(\">\")) {\n            xmlStr += tagStart + `>${tagValue}${indentation}`;\n        } else {\n            xmlStr += tagStart + \">\";\n            if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"`;\n        }\n        isPreviousElementTag = true;\n    }\n\n    return xmlStr;\n}\n\nfunction propName(obj) {\n    const keys = Object.keys(obj);\n    for (let i = 0; i < keys.length; i++) {\n        const key = keys[i];\n        if(!obj.hasOwnProperty(key)) continue;\n        if (key !== \":@\") return key;\n    }\n}\n\nfunction attr_to_str(attrMap, options) {\n    let attrStr = \"\";\n    if (attrMap && !options.ignoreAttributes) {\n        for (let attr in attrMap) {\n            if(!attrMap.hasOwnProperty(attr)) continue;\n            let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n            attrVal = replaceEntitiesValue(attrVal, options);\n            if (attrVal === true && options.suppressBooleanAttributes) {\n                attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n            } else {\n                attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n            }\n        }\n    }\n    return attrStr;\n}\n\nfunction isStopNode(jPath, options) {\n    jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n    let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n    for (let index in options.stopNodes) {\n        if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n    }\n    return false;\n}\n\nfunction replaceEntitiesValue(textValue, options) {\n    if (textValue && textValue.length > 0 && options.processEntities) {\n        for (let i = 0; i < options.entities.length; i++) {\n            const entity = options.entities[i];\n            textValue = textValue.replace(entity.regex, entity.val);\n        }\n    }\n    return textValue;\n}\n","'use strict';\n//parse Empty Node as self closing node\nimport buildFromOrderedJs from './orderedJs2Xml.js';\nimport getIgnoreAttributesFn from \"../ignoreAttributes.js\";\n\nconst defaultOptions = {\n  attributeNamePrefix: '@_',\n  attributesGroupName: false,\n  textNodeName: '#text',\n  ignoreAttributes: true,\n  cdataPropName: false,\n  format: false,\n  indentBy: '  ',\n  suppressEmptyNode: false,\n  suppressUnpairedNode: true,\n  suppressBooleanAttributes: true,\n  tagValueProcessor: function(key, a) {\n    return a;\n  },\n  attributeValueProcessor: function(attrName, a) {\n    return a;\n  },\n  preserveOrder: false,\n  commentPropName: false,\n  unpairedTags: [],\n  entities: [\n    { regex: new RegExp(\"&\", \"g\"), val: \"&\" },//it must be on top\n    { regex: new RegExp(\">\", \"g\"), val: \">\" },\n    { regex: new RegExp(\"<\", \"g\"), val: \"<\" },\n    { regex: new RegExp(\"\\'\", \"g\"), val: \"'\" },\n    { regex: new RegExp(\"\\\"\", \"g\"), val: \""\" }\n  ],\n  processEntities: true,\n  stopNodes: [],\n  // transformTagName: false,\n  // transformAttributeName: false,\n  oneListGroup: false\n};\n\nexport default function Builder(options) {\n  this.options = Object.assign({}, defaultOptions, options);\n  if (this.options.ignoreAttributes === true || this.options.attributesGroupName) {\n    this.isAttribute = function(/*a*/) {\n      return false;\n    };\n  } else {\n    this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes)\n    this.attrPrefixLen = this.options.attributeNamePrefix.length;\n    this.isAttribute = isAttribute;\n  }\n\n  this.processTextOrObjNode = processTextOrObjNode\n\n  if (this.options.format) {\n    this.indentate = indentate;\n    this.tagEndChar = '>\\n';\n    this.newLine = '\\n';\n  } else {\n    this.indentate = function() {\n      return '';\n    };\n    this.tagEndChar = '>';\n    this.newLine = '';\n  }\n}\n\nBuilder.prototype.build = function(jObj) {\n  if(this.options.preserveOrder){\n    return buildFromOrderedJs(jObj, this.options);\n  }else {\n    if(Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1){\n      jObj = {\n        [this.options.arrayNodeName] : jObj\n      }\n    }\n    return this.j2x(jObj, 0, []).val;\n  }\n};\n\nBuilder.prototype.j2x = function(jObj, level, ajPath) {\n  let attrStr = '';\n  let val = '';\n  const jPath = ajPath.join('.')\n  for (let key in jObj) {\n    if(!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n    if (typeof jObj[key] === 'undefined') {\n      // supress undefined node only if it is not an attribute\n      if (this.isAttribute(key)) {\n        val += '';\n      }\n    } else if (jObj[key] === null) {\n      // null attribute should be ignored by the attribute list, but should not cause the tag closing\n      if (this.isAttribute(key)) {\n        val += '';\n      } else if (key === this.options.cdataPropName) {\n        val += '';\n      } else if (key[0] === '?') {\n        val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n      } else {\n        val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n      }\n      // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n    } else if (jObj[key] instanceof Date) {\n      val += this.buildTextValNode(jObj[key], key, '', level);\n    } else if (typeof jObj[key] !== 'object') {\n      //premitive type\n      const attr = this.isAttribute(key);\n      if (attr && !this.ignoreAttributesFn(attr, jPath)) {\n        attrStr += this.buildAttrPairStr(attr, '' + jObj[key]);\n      } else if (!attr) {\n        //tag value\n        if (key === this.options.textNodeName) {\n          let newval = this.options.tagValueProcessor(key, '' + jObj[key]);\n          val += this.replaceEntitiesValue(newval);\n        } else {\n          val += this.buildTextValNode(jObj[key], key, '', level);\n        }\n      }\n    } else if (Array.isArray(jObj[key])) {\n      //repeated nodes\n      const arrLen = jObj[key].length;\n      let listTagVal = \"\";\n      let listTagAttr = \"\";\n      for (let j = 0; j < arrLen; j++) {\n        const item = jObj[key][j];\n        if (typeof item === 'undefined') {\n          // supress undefined node\n        } else if (item === null) {\n          if(key[0] === \"?\") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n          else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n          // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n        } else if (typeof item === 'object') {\n          if(this.options.oneListGroup){\n            const result = this.j2x(item, level + 1, ajPath.concat(key));\n            listTagVal += result.val;\n            if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n              listTagAttr += result.attrStr\n            }\n          }else{\n            listTagVal += this.processTextOrObjNode(item, key, level, ajPath)\n          }\n        } else {\n          if (this.options.oneListGroup) {\n            let textValue = this.options.tagValueProcessor(key, item);\n            textValue = this.replaceEntitiesValue(textValue);\n            listTagVal += textValue;\n          } else {\n            listTagVal += this.buildTextValNode(item, key, '', level);\n          }\n        }\n      }\n      if(this.options.oneListGroup){\n        listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);\n      }\n      val += listTagVal;\n    } else {\n      //nested node\n      if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n        const Ks = Object.keys(jObj[key]);\n        const L = Ks.length;\n        for (let j = 0; j < L; j++) {\n          attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]);\n        }\n      } else {\n        val += this.processTextOrObjNode(jObj[key], key, level, ajPath)\n      }\n    }\n  }\n  return {attrStr: attrStr, val: val};\n};\n\nBuilder.prototype.buildAttrPairStr = function(attrName, val){\n  val = this.options.attributeValueProcessor(attrName, '' + val);\n  val = this.replaceEntitiesValue(val);\n  if (this.options.suppressBooleanAttributes && val === \"true\") {\n    return ' ' + attrName;\n  } else return ' ' + attrName + '=\"' + val + '\"';\n}\n\nfunction processTextOrObjNode (object, key, level, ajPath) {\n  const result = this.j2x(object, level + 1, ajPath.concat(key));\n  if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n    return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n  } else {\n    return this.buildObjectNode(result.val, key, result.attrStr, level);\n  }\n}\n\nBuilder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n  if(val === \"\"){\n    if(key[0] === \"?\") return  this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n    else {\n      return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    }\n  }else{\n\n    let tagEndExp = '' + val + tagEndExp );\n    } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n      return this.indentate(level) + `` + this.newLine;\n    }else {\n      return (\n        this.indentate(level) + '<' + key + attrStr + piClosingChar + this.tagEndChar +\n        val +\n        this.indentate(level) + tagEndExp    );\n    }\n  }\n}\n\nBuilder.prototype.closeTag = function(key){\n  let closeTag = \"\";\n  if(this.options.unpairedTags.indexOf(key) !== -1){ //unpaired\n    if(!this.options.suppressUnpairedNode) closeTag = \"/\"\n  }else if(this.options.suppressEmptyNode){ //empty\n    closeTag = \"/\";\n  }else{\n    closeTag = `>` +  this.newLine;\n  }else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n    return this.indentate(level) + `` +  this.newLine;\n  }else if(key[0] === \"?\") {//PI tag\n    return  this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar; \n  }else{\n    let textValue = this.options.tagValueProcessor(key, val);\n    textValue = this.replaceEntitiesValue(textValue);\n  \n    if( textValue === ''){\n      return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    }else{\n      return this.indentate(level) + '<' + key + attrStr + '>' +\n         textValue +\n        ' 0 && this.options.processEntities){\n    for (let i=0; i item.trim());\n    const server = response.headers.get(\"Server\") ?? \"\";\n    return {\n        compliance,\n        server\n    };\n}\n","import { extractURLPath } from \"./tools/url.js\";\nimport { setupAuth } from \"./auth/index.js\";\nimport { copyFile } from \"./operations/copyFile.js\";\nimport { createDirectory } from \"./operations/createDirectory.js\";\nimport { createReadStream, createWriteStream } from \"./operations/createStream.js\";\nimport { customRequest } from \"./operations/customRequest.js\";\nimport { deleteFile } from \"./operations/deleteFile.js\";\nimport { exists } from \"./operations/exists.js\";\nimport { getDirectoryContents } from \"./operations/directoryContents.js\";\nimport { getFileContents, getFileDownloadLink } from \"./operations/getFileContents.js\";\nimport { lock, unlock } from \"./operations/lock.js\";\nimport { getQuota } from \"./operations/getQuota.js\";\nimport { getStat } from \"./operations/stat.js\";\nimport { getSearch } from \"./operations/search.js\";\nimport { moveFile } from \"./operations/moveFile.js\";\nimport { getFileUploadLink, putFileContents } from \"./operations/putFileContents.js\";\nimport { partialUpdateFileContents } from \"./operations/partialUpdateFileContents.js\";\nimport { getDAVCompliance } from \"./operations/getDAVCompliance.js\";\nimport { displaynameTagParser } from \"./tools/dav.js\";\nimport { AuthType } from \"./types.js\";\nconst DEFAULT_CONTACT_HREF = \"https://github.com/perry-mitchell/webdav-client/blob/master/LOCK_CONTACT.md\";\nexport function createClient(remoteURL, options = {}) {\n    const { authType: authTypeRaw = null, remoteBasePath, contactHref = DEFAULT_CONTACT_HREF, ha1, headers = {}, httpAgent, httpsAgent, password, token, username, withCredentials } = options;\n    let authType = authTypeRaw;\n    if (!authType) {\n        authType = username || password ? AuthType.Password : AuthType.None;\n    }\n    const context = {\n        authType,\n        remoteBasePath,\n        contactHref,\n        ha1,\n        headers: Object.assign({}, headers),\n        httpAgent,\n        httpsAgent,\n        password,\n        parsing: {\n            attributeNamePrefix: options.attributeNamePrefix ?? \"@\",\n            attributeParsers: [],\n            tagParsers: [displaynameTagParser]\n        },\n        remotePath: extractURLPath(remoteURL),\n        remoteURL,\n        token,\n        username,\n        withCredentials\n    };\n    setupAuth(context, username, password, token, ha1);\n    return {\n        copyFile: (filename, destination, options) => copyFile(context, filename, destination, options),\n        createDirectory: (path, options) => createDirectory(context, path, options),\n        createReadStream: (filename, options) => createReadStream(context, filename, options),\n        createWriteStream: (filename, options, callback) => createWriteStream(context, filename, options, callback),\n        customRequest: (path, requestOptions) => customRequest(context, path, requestOptions),\n        deleteFile: (filename, options) => deleteFile(context, filename, options),\n        exists: (path, options) => exists(context, path, options),\n        getDirectoryContents: (path, options\n        // @ts-ignore\n        ) => getDirectoryContents(context, path, options),\n        getFileContents: (filename, options) => getFileContents(context, filename, options),\n        getFileDownloadLink: (filename) => getFileDownloadLink(context, filename),\n        getFileUploadLink: (filename) => getFileUploadLink(context, filename),\n        getHeaders: () => Object.assign({}, context.headers),\n        getQuota: (options) => getQuota(context, options),\n        lock: (path, options) => lock(context, path, options),\n        moveFile: (filename, destinationFilename, options) => moveFile(context, filename, destinationFilename, options),\n        putFileContents: (filename, data, options) => putFileContents(context, filename, data, options),\n        partialUpdateFileContents: (filePath, start, end, data, options) => partialUpdateFileContents(context, filePath, start, end, data, options),\n        getDAVCompliance: (path) => getDAVCompliance(context, path),\n        search: (path, options) => getSearch(context, path, options),\n        setHeaders: (headers) => {\n            context.headers = Object.assign({}, headers);\n        },\n        stat: (path, options) => getStat(context, path, options),\n        unlock: (path, token, options) => unlock(context, path, token, options),\n        registerAttributeParser: (parser) => {\n            context.parsing.attributeParsers.push(parser);\n        },\n        registerTagParser: (parser) => {\n            context.parsing.tagParsers.push(parser);\n        }\n    };\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateRemoteUrl } from '@nextcloud/router'\n\n/**\n *\n */\nfunction getRootPath() {\n\treturn generateRemoteUrl('dav/comments')\n}\n\nexport { getRootPath }\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\nimport { createClient } from 'webdav'\nimport { getRootPath } from '../utils/davUtils.js'\n\n// init webdav client\nconst client = createClient(getRootPath())\n\n// set CSRF token header\n/**\n * @param token\n */\nfunction setHeaders(token) {\n\tclient.setHeaders({\n\t\t// Add this so the server knows it is an request from the browser\n\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t// Inject user auth\n\t\trequesttoken: token ?? '',\n\t})\n}\n\n// refresh headers when request token changes\nonRequestTokenUpdate(setHeaders)\nsetHeaders(getRequestToken())\n\nexport default client\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function copyFile(context, filename, destination, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filename)),\n        method: \"COPY\",\n        headers: {\n            Destination: joinURL(context.remoteURL, encodePath(destination)),\n            /**\n             * From RFC4918 section 10.6: If the overwrite header is not included in a COPY or MOVE request,\n             * then the resource MUST treat the request as if it has an overwrite header of value \"T\".\n             *\n             * Meaning the overwrite header is always set to \"T\" EXCEPT the option is explicitly set to false.\n             */\n            Overwrite: options.overwrite === false ? \"F\" : \"T\",\n            /**\n             * From RFC4918 section 9.8.3: A client may submit a Depth header on a COPY on a collection with a value of \"0\"\n             * or \"infinity\". The COPY method on a collection without a Depth header MUST act as if\n             * a Depth header with value \"infinity\" was included.\n             */\n            Depth: options.shallow ? \"0\" : \"infinity\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function customRequest(context, remotePath, requestOptions) {\n    if (!requestOptions.url) {\n        requestOptions.url = joinURL(context.remoteURL, encodePath(remotePath));\n    }\n    const finalOptions = prepareRequestOptions(requestOptions, context, {});\n    const response = await request(finalOptions, context);\n    handleResponseCode(context, response);\n    return response;\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function deleteFile(context, filename, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filename)),\n        method: \"DELETE\"\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n","import { getStat } from \"./stat.js\";\nexport async function exists(context, remotePath, options = {}) {\n    try {\n        await getStat(context, remotePath, options);\n        return true;\n    }\n    catch (err) {\n        if (err.status === 404) {\n            return false;\n        }\n        throw err;\n    }\n}\n","import pathPosix from \"path-posix\";\nimport { joinURL, normaliseHREF } from \"../tools/url.js\";\nimport { encodePath, makePathAbsolute, normalisePath } from \"../tools/path.js\";\nimport { parseXML, prepareFileFromProps } from \"../tools/dav.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode, processGlobFilter, processResponsePayload } from \"../response.js\";\nexport async function getDirectoryContents(context, remotePath, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(remotePath), \"/\"),\n        method: \"PROPFIND\",\n        headers: {\n            Accept: \"text/plain,application/xml\",\n            Depth: options.deep ? \"infinity\" : \"1\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseData = await response.text();\n    if (!responseData) {\n        throw new Error(\"Failed parsing directory contents: Empty response\");\n    }\n    const davResp = await parseXML(responseData, context.parsing);\n    const _remotePath = makePathAbsolute(remotePath);\n    const remoteBasePath = makePathAbsolute(context.remoteBasePath || context.remotePath);\n    let files = getDirectoryFiles(davResp, remoteBasePath, _remotePath, options.details, options.includeSelf);\n    if (options.glob) {\n        files = processGlobFilter(files, options.glob);\n    }\n    return processResponsePayload(response, files, options.details);\n}\nfunction getDirectoryFiles(result, serverremoteBasePath, requestPath, isDetailed = false, includeSelf = false) {\n    const serverBase = pathPosix.join(serverremoteBasePath, \"/\");\n    // Extract the response items (directory contents)\n    const { multistatus: { response: responseItems } } = result;\n    // Map all items to a consistent output structure (results)\n    const nodes = responseItems.map(item => {\n        // HREF is the file path (in full) - The href is already XML entities decoded (e.g. foo&bar is reverted to foo&bar)\n        const href = normaliseHREF(item.href);\n        // Each item should contain a stat object\n        const { propstat: { prop: props } } = item;\n        // Process the true full filename (minus the base server path)\n        const filename = serverBase === \"/\"\n            ? decodeURIComponent(normalisePath(href))\n            : normalisePath(pathPosix.relative(decodeURIComponent(serverBase), decodeURIComponent(href)));\n        return prepareFileFromProps(props, filename, isDetailed);\n    });\n    // If specified, also return the current directory\n    if (includeSelf) {\n        return nodes;\n    }\n    // Else, filter out the item pointing to the current directory (not needed)\n    return nodes.filter(item => item.basename &&\n        (item.type === \"file\" || item.filename !== requestPath.replace(/\\/$/, \"\")));\n}\n","import { Layerr } from \"layerr\";\nimport Stream from \"stream\";\nimport { fromBase64 } from \"../tools/encode.js\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { calculateDataLength } from \"../tools/size.js\";\nimport { isReactNative, isWeb } from \"../compat/env.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nimport { AuthType, ErrorCode } from \"../types.js\";\nexport async function putFileContents(context, filePath, data, options = {}) {\n    const { contentLength = true, overwrite = true } = options;\n    const headers = {\n        \"Content-Type\": \"application/octet-stream\"\n    };\n    if (!isWeb() &&\n        !isReactNative() &&\n        typeof Stream !== \"undefined\" &&\n        typeof Stream?.Readable !== \"undefined\" &&\n        data instanceof Stream.Readable) {\n        // Skip, no content-length\n    }\n    else if (contentLength === false) {\n        // Skip, disabled\n    }\n    else if (typeof contentLength === \"number\") {\n        headers[\"Content-Length\"] = `${contentLength}`;\n    }\n    else {\n        headers[\"Content-Length\"] = `${calculateDataLength(data)}`;\n    }\n    if (!overwrite) {\n        headers[\"If-None-Match\"] = \"*\";\n    }\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"PUT\",\n        headers,\n        data\n    }, context, options);\n    const response = await request(requestOptions, context);\n    try {\n        handleResponseCode(context, response);\n    }\n    catch (err) {\n        const error = err;\n        if (error.status === 412 && !overwrite) {\n            return false;\n        }\n        else {\n            throw error;\n        }\n    }\n    return true;\n}\nexport function getFileUploadLink(context, filePath) {\n    let url = `${joinURL(context.remoteURL, encodePath(filePath))}?Content-Type=application/octet-stream`;\n    const protocol = /^https:/i.test(url) ? \"https\" : \"http\";\n    switch (context.authType) {\n        case AuthType.None:\n            // Do nothing\n            break;\n        case AuthType.Password: {\n            const authPart = context.headers.Authorization.replace(/^Basic /i, \"\").trim();\n            const authContents = fromBase64(authPart);\n            url = url.replace(/^https?:\\/\\//, `${protocol}://${authContents}@`);\n            break;\n        }\n        default:\n            throw new Layerr({\n                info: {\n                    code: ErrorCode.LinkUnsupportedAuthType\n                }\n            }, `Unsupported auth type for file link: ${context.authType}`);\n    }\n    return url;\n}\n","import { prepareRequestOptions, request } from \"../request.js\";\nimport { handleResponseCode, processResponsePayload } from \"../response.js\";\nimport { parseXML } from \"../tools/dav.js\";\nimport { joinURL } from \"../tools/url.js\";\nimport { parseQuota } from \"../tools/quota.js\";\nexport async function getQuota(context, options = {}) {\n    const path = options.path || \"/\";\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, path),\n        method: \"PROPFIND\",\n        headers: {\n            Accept: \"text/plain,application/xml\",\n            Depth: \"0\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseData = await response.text();\n    const result = await parseXML(responseData, context.parsing);\n    const quota = parseQuota(result);\n    return processResponsePayload(response, quota, options.details);\n}\n","import { translateDiskSpace } from \"./dav.js\";\nexport function parseQuota(result) {\n    try {\n        const [responseItem] = result.multistatus.response;\n        const { propstat: { prop: { \"quota-used-bytes\": quotaUsed, \"quota-available-bytes\": quotaAvail } } } = responseItem;\n        return typeof quotaUsed !== \"undefined\" && typeof quotaAvail !== \"undefined\"\n            ? {\n                // As it could be both a string or a number ensure we are working with a number\n                used: parseInt(String(quotaUsed), 10),\n                available: translateDiskSpace(quotaAvail)\n            }\n            : null;\n    }\n    catch (err) {\n        /* ignore */\n    }\n    return null;\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function moveFile(context, filename, destination, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filename)),\n        method: \"MOVE\",\n        headers: {\n            Destination: joinURL(context.remoteURL, encodePath(destination)),\n            /**\n             * From RFC4918 section 10.6: If the overwrite header is not included in a COPY or MOVE request,\n             * then the resource MUST treat the request as if it has an overwrite header of value \"T\".\n             *\n             * Meaning the overwrite header is always set to \"T\" EXCEPT the option is explicitly set to false.\n             */\n            Overwrite: options.overwrite === false ? \"F\" : \"T\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n","import { Layerr } from \"layerr\";\nimport { byteLength } from \"byte-length\";\nimport { isArrayBuffer } from \"../compat/arrayBuffer.js\";\nimport { isBuffer } from \"../compat/buffer.js\";\nimport { ErrorCode } from \"../types.js\";\nexport function calculateDataLength(data) {\n    if (isArrayBuffer(data)) {\n        return data.byteLength;\n    }\n    else if (isBuffer(data)) {\n        return data.length;\n    }\n    else if (typeof data === \"string\") {\n        return byteLength(data);\n    }\n    throw new Layerr({\n        info: {\n            code: ErrorCode.DataTypeNoLength\n        }\n    }, \"Cannot calculate data length: Invalid type\");\n}\n","import { Layerr } from \"layerr\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nimport { getDAVCompliance } from \"./getDAVCompliance.js\";\nimport { ErrorCode } from \"../types.js\";\nexport async function partialUpdateFileContents(context, filePath, start, end, data, options = {}) {\n    const compliance = await getDAVCompliance(context, filePath, options);\n    if (compliance.compliance.includes(\"sabredav-partialupdate\")) {\n        return await partialUpdateFileContentsSabredav(context, filePath, start, end, data, options);\n    }\n    if (compliance.server.includes(\"Apache\") &&\n        compliance.compliance.includes(\"\")) {\n        return await partialUpdateFileContentsApache(context, filePath, start, end, data, options);\n    }\n    throw new Layerr({\n        info: {\n            code: ErrorCode.NotSupported\n        }\n    }, \"Not supported\");\n}\nasync function partialUpdateFileContentsSabredav(context, filePath, start, end, data, options = {}) {\n    if (start > end || start < 0) {\n        // Actually, SabreDAV support negative start value,\n        // Do not support here for compatibility with Apache-style way\n        throw new Layerr({\n            info: {\n                code: ErrorCode.InvalidUpdateRange\n            }\n        }, `Invalid update range ${start} for partial update`);\n    }\n    const headers = {\n        \"Content-Type\": \"application/x-sabredav-partialupdate\",\n        \"Content-Length\": `${end - start + 1}`,\n        \"X-Update-Range\": `bytes=${start}-${end}`\n    };\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"PATCH\",\n        headers,\n        data\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\nasync function partialUpdateFileContentsApache(context, filePath, start, end, data, options = {}) {\n    if (start > end || start < 0) {\n        throw new Layerr({\n            info: {\n                code: ErrorCode.InvalidUpdateRange\n            }\n        }, `Invalid update range ${start} for partial update`);\n    }\n    const headers = {\n        \"Content-Type\": \"application/octet-stream\",\n        \"Content-Length\": `${end - start + 1}`,\n        \"Content-Range\": `bytes ${start}-${end}/*`\n    };\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"PUT\",\n        headers,\n        data\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n","import { parseSearch, parseXML } from \"../tools/dav.js\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode, processResponsePayload } from \"../response.js\";\nexport async function getSearch(context, searchArbiter, options = {}) {\n    const { details: isDetailed = false } = options;\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(searchArbiter)),\n        method: \"SEARCH\",\n        headers: {\n            Accept: \"text/plain,application/xml\",\n            // Ensure a Content-Type header is set was this is required by e.g. sabre/dav\n            \"Content-Type\": context.headers[\"Content-Type\"] || \"application/xml; charset=utf-8\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseText = await response.text();\n    const responseData = await parseXML(responseText, context.parsing);\n    const results = parseSearch(responseData, searchArbiter, isDetailed);\n    return processResponsePayload(response, results, isDetailed);\n}\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * @param {any} value -\n * @param {any} passes -\n */\nexport function decodeHtmlEntities(value, passes = 1) {\n\tconst parser = new DOMParser()\n\tlet decoded = value\n\tfor (let i = 0; i < passes; i++) {\n\t\tdecoded = parser.parseFromString(decoded, 'text/html').documentElement.textContent\n\t}\n\treturn decoded\n}\n","/**\n * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { defineStore } from 'pinia'\n\nexport const useDeletedCommentLimbo = defineStore('deletedCommentLimbo', {\n\tstate: () => ({\n\t\tidsInLimbo: [],\n\t}),\n\tactions: {\n\t\taddId(id) {\n\t\t\tthis.idsInLimbo.push(id)\n\t\t},\n\n\t\tremoveId(id) {\n\t\t\tconst index = this.idsInLimbo.indexOf(id)\n\t\t\tif (index > -1) {\n\t\t\t\tthis.idsInLimbo.splice(index, 1)\n\t\t\t}\n\t\t},\n\n\t\tcheckForId(id) {\n\t\t\treturn this.idsInLimbo.includes(id)\n\t\t},\n\t},\n})\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { showError, showUndo, TOAST_UNDO_TIMEOUT } from '@nextcloud/dialogs'\nimport { mapStores } from 'pinia'\nimport logger from '../logger.js'\nimport DeleteComment from '../services/DeleteComment.js'\nimport EditComment from '../services/EditComment.js'\nimport NewComment from '../services/NewComment.js'\nimport { useDeletedCommentLimbo } from '../store/deletedCommentLimbo.js'\n\nexport default {\n\tprops: {\n\t\tid: {\n\t\t\ttype: Number,\n\t\t\tdefault: null,\n\t\t},\n\t\tmessage: {\n\t\t\ttype: String,\n\t\t\tdefault: '',\n\t\t},\n\t\tresourceId: {\n\t\t\ttype: [String, Number],\n\t\t\trequired: true,\n\t\t},\n\t\tresourceType: {\n\t\t\ttype: String,\n\t\t\tdefault: 'files',\n\t\t},\n\t},\n\n\tdata() {\n\t\treturn {\n\t\t\tdeleted: false,\n\t\t\tediting: false,\n\t\t\tloading: false,\n\t\t}\n\t},\n\n\tcomputed: {\n\t\t...mapStores(useDeletedCommentLimbo),\n\t},\n\n\tmethods: {\n\t\t// EDITION\n\t\tonEdit() {\n\t\t\tthis.editing = true\n\t\t},\n\t\tonEditCancel() {\n\t\t\tthis.editing = false\n\t\t\t// Restore original value\n\t\t\tthis.updateLocalMessage(this.message)\n\t\t},\n\t\tasync onEditComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tawait EditComment(this.resourceType, this.resourceId, this.id, message)\n\t\t\t\tlogger.debug('Comment edited', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id, message })\n\t\t\t\tthis.$emit('update:message', message)\n\t\t\t\tthis.editing = false\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to edit the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to edit the comment', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\n\t\t// DELETION\n\t\tonDeleteWithUndo() {\n\t\t\tthis.$emit('delete')\n\t\t\tthis.deleted = true\n\t\t\tthis.deletedCommentLimboStore.addId(this.id)\n\t\t\tconst timeOutDelete = setTimeout(this.onDelete, TOAST_UNDO_TIMEOUT)\n\t\t\tshowUndo(t('comments', 'Comment deleted'), () => {\n\t\t\t\tclearTimeout(timeOutDelete)\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t})\n\t\t},\n\t\tasync onDelete() {\n\t\t\ttry {\n\t\t\t\tawait DeleteComment(this.resourceType, this.resourceId, this.id)\n\t\t\t\tlogger.debug('Comment deleted', { resourceType: this.resourceType, resourceId: this.resourceId, id: this.id })\n\t\t\t\tthis.$emit('delete', this.id)\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to delete the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to delete the comment', { error })\n\t\t\t\tthis.deleted = false\n\t\t\t\tthis.deletedCommentLimboStore.removeId(this.id)\n\t\t\t}\n\t\t},\n\n\t\t// CREATION\n\t\tasync onNewComment(message) {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst newComment = await NewComment(this.resourceType, this.resourceId, message)\n\t\t\t\tlogger.debug('New comment posted', { resourceType: this.resourceType, resourceId: this.resourceId, newComment })\n\t\t\t\tthis.$emit('new', newComment)\n\n\t\t\t\t// Clear old content\n\t\t\t\tthis.$emit('update:message', '')\n\t\t\t\tthis.localMessage = ''\n\t\t\t} catch (error) {\n\t\t\t\tshowError(t('comments', 'An error occurred while trying to create the comment'))\n\t\t\t\tlogger.error('An error occurred while trying to create the comment', { error })\n\t\t\t} finally {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t},\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js'\n\n/**\n * Edit an existing comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n * @param {string} message the message content\n */\nexport default async function(resourceType, resourceId, commentId, message) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\treturn await client.customRequest(commentPath, {\n\t\tmethod: 'PROPPATCH',\n\t\tdata: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${message}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n\t})\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport client from './DavClient.js'\n\n/**\n * Delete a comment\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {number} commentId the comment iD\n */\nexport default async function(resourceType, resourceId, commentId) {\n\tconst commentPath = ['', resourceType, resourceId, commentId].join('/')\n\n\t// Fetch newly created comment data\n\tawait client.deleteFile(commentPath)\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCurrentUser } from '@nextcloud/auth'\nimport axios from '@nextcloud/axios'\nimport { getRootPath } from '../utils/davUtils.js'\nimport { decodeHtmlEntities } from '../utils/decodeHtmlEntities.js'\nimport client from './DavClient.js'\n\n/**\n * Retrieve the comments list\n *\n * @param {string} resourceType the resource type\n * @param {number} resourceId the resource ID\n * @param {string} message the message\n * @return {object} the new comment\n */\nexport default async function(resourceType, resourceId, message) {\n\tconst resourcePath = ['', resourceType, resourceId].join('/')\n\n\tconst response = await axios.post(getRootPath() + resourcePath, {\n\t\tactorDisplayName: getCurrentUser().displayName,\n\t\tactorId: getCurrentUser().uid,\n\t\tactorType: 'users',\n\t\tcreationDateTime: (new Date()).toUTCString(),\n\t\tmessage,\n\t\tobjectType: resourceType,\n\t\tverb: 'comment',\n\t})\n\n\t// Retrieve comment id from resource location\n\tconst commentId = parseInt(response.headers['content-location'].split('/').pop())\n\tconst commentPath = resourcePath + '/' + commentId\n\n\t// Fetch newly created comment data\n\tconst comment = await client.stat(commentPath, {\n\t\tdetails: true,\n\t})\n\n\tconst props = comment.data.props\n\t// Decode twice to handle potentially double-encoded entities\n\t// FIXME Remove this once https://github.com/nextcloud/server/issues/29306\n\t// is resolved\n\tprops.actorDisplayName = decodeHtmlEntities(props.actorDisplayName, 2)\n\tprops.message = decodeHtmlEntities(props.message, 2)\n\n\treturn comment.data\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=script&lang=js\"","\n\n\n\n\n\n","\n      import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=style&index=0&id=70317f94&prod&lang=scss&scoped=true\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comment.vue?vue&type=style&index=0&id=70317f94&prod&lang=scss&scoped=true\";\n       export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Comment.vue?vue&type=template&id=70317f94&scoped=true\"\nimport script from \"./Comment.vue?vue&type=script&lang=js\"\nexport * from \"./Comment.vue?vue&type=script&lang=js\"\nimport style0 from \"./Comment.vue?vue&type=style&index=0&id=70317f94&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"70317f94\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c(_vm.tag,{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.deleted && !_vm.isLimbo),expression:\"!deleted && !isLimbo\"}],tag:\"component\",staticClass:\"comment\",class:{ 'comment--loading': _vm.loading }},[_c('div',{staticClass:\"comment__side\"},[_c('NcAvatar',{staticClass:\"comment__avatar\",attrs:{\"display-name\":_vm.actorDisplayName,\"user\":_vm.actorId,\"size\":32}})],1),_vm._v(\" \"),_c('div',{staticClass:\"comment__body\"},[_c('div',{staticClass:\"comment__header\"},[_c('span',{staticClass:\"comment__author\"},[_vm._v(_vm._s(_vm.actorDisplayName))]),_vm._v(\" \"),(_vm.isOwnComment && _vm.id && !_vm.loading)?_c('NcActions',{staticClass:\"comment__actions\"},[(!_vm.editing)?[_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.onEdit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconPencilOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,3345211262)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Edit comment'))+\"\\n\\t\\t\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionSeparator'),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":\"\"},on:{\"click\":_vm.onDeleteWithUndo},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconTrashCanOutline',{attrs:{\"size\":20}})]},proxy:true}],null,false,1034796883)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Delete comment'))+\"\\n\\t\\t\\t\\t\\t\")])]:_c('NcActionButton',{on:{\"click\":_vm.onEditCancel},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconClose',{attrs:{\"size\":20}})]},proxy:true}],null,false,2888946197)},[_vm._v(\"\\n\\t\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Cancel edit'))+\"\\n\\t\\t\\t\\t\")])],2):_vm._e(),_vm._v(\" \"),(_vm.id && _vm.loading)?_c('div',{staticClass:\"comment_loading icon-loading-small\"}):(_vm.creationDateTime)?_c('NcDateTime',{staticClass:\"comment__timestamp\",attrs:{\"timestamp\":_vm.timestamp,\"ignore-seconds\":true}}):_vm._e()],1),_vm._v(\" \"),(_vm.editor || _vm.editing)?_c('form',{staticClass:\"comment__editor\",on:{\"submit\":function($event){$event.preventDefault();}}},[_c('div',{staticClass:\"comment__editor-group\"},[_c('NcRichContenteditable',{ref:\"editor\",attrs:{\"auto-complete\":_vm.autoComplete,\"contenteditable\":!_vm.loading,\"label\":_vm.editor ? _vm.t('comments', 'New comment') : _vm.t('comments', 'Edit comment'),\"placeholder\":_vm.t('comments', 'Write a comment …'),\"model-value\":_vm.localMessage,\"user-data\":_vm.userData,\"aria-describedby\":\"tab-comments__editor-description\"},on:{\"update:value\":_vm.updateLocalMessage,\"submit\":_vm.onSubmit}}),_vm._v(\" \"),_c('div',{staticClass:\"comment__submit\"},[_c('NcButton',{attrs:{\"variant\":\"tertiary-no-background\",\"type\":\"submit\",\"aria-label\":_vm.t('comments', 'Post comment'),\"disabled\":_vm.isEmptyMessage},on:{\"click\":_vm.onSubmit},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('NcLoadingIcon'):_c('IconArrowRight',{attrs:{\"size\":20}})]},proxy:true}],null,false,758946661)})],1)],1),_vm._v(\" \"),_c('div',{staticClass:\"comment__editor-description\",attrs:{\"id\":\"tab-comments__editor-description\"}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', '@ for mentions, : for emoji, / for smart picker'))+\"\\n\\t\\t\\t\")])]):_c('NcRichText',{staticClass:\"comment__message\",class:{ 'comment__message--expanded': _vm.expanded },attrs:{\"text\":_vm.richContent.message,\"arguments\":_vm.richContent.mentions,\"use-markdown\":\"\"},nativeOn:{\"click\":function($event){return _vm.onExpand.apply(null, arguments)}}})],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { getCurrentUser } from '@nextcloud/auth';\nimport axios from '@nextcloud/axios';\nimport { loadState } from '@nextcloud/initial-state';\nimport { generateOcsUrl } from '@nextcloud/router';\nimport { defineComponent } from 'vue';\nexport default defineComponent({\n    props: {\n        resourceId: {\n            type: Number,\n            required: true,\n        },\n        resourceType: {\n            type: String,\n            default: 'files',\n        },\n    },\n    data() {\n        return {\n            editorData: {\n                actorDisplayName: getCurrentUser().displayName,\n                actorId: getCurrentUser().uid,\n                key: 'editor',\n            },\n            userData: {},\n            currentResourceId: this.resourceId,\n        };\n    },\n    methods: {\n        /**\n         * Autocomplete `@mentions`\n         *\n         * @param search the query\n         * @param callback the callback to process the results with\n         */\n        async autoComplete(search, callback) {\n            const { data } = await axios.get(generateOcsUrl('core/autocomplete/get'), {\n                params: {\n                    search,\n                    itemType: this.resourceType,\n                    itemId: this.currentResourceId,\n                    sorter: 'commenters|share-recipients',\n                    limit: loadState('comments', 'maxAutoCompleteResults'),\n                },\n            });\n            // Save user data so it can be used by the editor to replace mentions\n            data.ocs.data.forEach((user) => {\n                this.userData[user.id] = user;\n            });\n            return callback(Object.values(this.userData));\n        },\n        /**\n         * Make sure we have all mentions as Array of objects\n         *\n         * @param mentions the mentions list\n         */\n        // eslint-disable-next-line @typescript-eslint/no-explicit-any\n        genMentionsData(mentions) {\n            Object.values(mentions)\n                .flat()\n                .forEach((mention) => {\n                this.userData[mention.mentionId] = {\n                    // TODO: support groups\n                    icon: 'icon-user',\n                    id: mention.mentionId,\n                    label: mention.mentionDisplayName,\n                    source: 'users',\n                    primary: getCurrentUser()?.uid === mention.mentionId,\n                };\n            });\n            return this.userData;\n        },\n    },\n});\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { parseXML } from 'webdav';\nimport { processResponsePayload } from 'webdav/dist/node/response.js';\nimport { prepareFileFromProps } from 'webdav/dist/node/tools/dav.js';\nimport client from './DavClient.js';\nexport const DEFAULT_LIMIT = 20;\n/**\n * Retrieve the comments list\n *\n * @param data destructuring object\n * @param data.resourceType the resource type\n * @param data.resourceId the resource ID\n * @param [options] optional options for axios\n * @param [options.offset] the pagination offset\n * @param [options.limit] the pagination limit, defaults to 20\n * @param [options.datetime] optional date to query\n * @return the comments list\n */\nexport async function getComments({ resourceType, resourceId }, options) {\n    const resourcePath = ['', resourceType, resourceId].join('/');\n    const datetime = options.datetime ? `${options.datetime.toISOString()}` : '';\n    const response = await client.customRequest(resourcePath, {\n        method: 'REPORT',\n        data: `\n\t\t\t\n\t\t\t\t${options.limit ?? DEFAULT_LIMIT}\n\t\t\t\t${options.offset || 0}\n\t\t\t\t${datetime}\n\t\t\t`,\n        ...options,\n    });\n    const responseData = await response.text();\n    const result = await parseXML(responseData);\n    const stat = getDirectoryFiles(result, true);\n    // https://github.com/perry-mitchell/webdav-client/issues/339\n    return processResponsePayload(response, stat, true);\n}\n/**\n * https://github.com/perry-mitchell/webdav-client/blob/8d9694613c978ce7404e26a401c39a41f125f87f/source/operations/directoryContents.ts\n *\n * @param result\n * @param isDetailed\n */\nfunction getDirectoryFiles(result, isDetailed = false) {\n    // Extract the response items (directory contents)\n    const { multistatus: { response: responseItems }, } = result;\n    // Map all items to a consistent output structure (results)\n    return responseItems.map((item) => {\n        // Each item should contain a stat object\n        const props = item.propstat.prop;\n        return prepareFileFromProps(props, props.id.toString(), isDetailed);\n    });\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\n/**\n * Creates a cancelable axios 'request object'.\n *\n * @param {Function} request the axios promise request\n * @return {object}\n */\nfunction cancelableRequest(request) {\n\tconst controller = new AbortController()\n\tconst signal = controller.signal\n\n\t/**\n\t * Execute the request\n\t *\n\t * @param {string} url the url to send the request to\n\t * @param {object} [options] optional config for the request\n\t */\n\tconst fetch = async function(url, options) {\n\t\tconst response = await request(\n\t\t\turl,\n\t\t\t{ signal, ...options },\n\t\t)\n\t\treturn response\n\t}\n\n\treturn {\n\t\trequest: fetch,\n\t\tabort: () => controller.abort(),\n\t}\n}\n\nexport default cancelableRequest\n","\n\n\n\n\n\n\n","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport client from './DavClient.js';\n/**\n * Mark comments older than the date timestamp as read\n *\n * @param resourceType the resource type\n * @param resourceId the resource ID\n * @param date the date object\n */\nexport function markCommentsAsRead(resourceType, resourceId, date) {\n    const resourcePath = ['', resourceType, resourceId].join('/');\n    const readMarker = date.toUTCString();\n    return client.customRequest(resourcePath, {\n        method: 'PROPPATCH',\n        data: `\n\t\t\t\n\t\t\t\n\t\t\t\t\n\t\t\t\t\t${readMarker}\n\t\t\t\t\n\t\t\t\n\t\t\t`,\n    });\n}\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.vue?vue&type=script&lang=js\"","\n      import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n      import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n      import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n      import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n      import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n      import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n      import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.vue?vue&type=style&index=0&id=6c8c157a&prod&lang=scss&scoped=true\";\n      \n      \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\noptions.insert = insertFn.bind(null, \"head\");\noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Comments.vue?vue&type=style&index=0&id=6c8c157a&prod&lang=scss&scoped=true\";\n       export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Comments.vue?vue&type=template&id=6c8c157a&scoped=true\"\nimport script from \"./Comments.vue?vue&type=script&lang=js\"\nexport * from \"./Comments.vue?vue&type=script&lang=js\"\nimport style0 from \"./Comments.vue?vue&type=style&index=0&id=6c8c157a&prod&lang=scss&scoped=true\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  \"6c8c157a\",\n  null\n  \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{directives:[{name:\"element-visibility\",rawName:\"v-element-visibility\",value:(_vm.onVisibilityChange),expression:\"onVisibilityChange\"}],staticClass:\"comments\",class:{ 'icon-loading': _vm.isFirstLoading }},[_c('Comment',_vm._b({staticClass:\"comments__writer\",attrs:{\"auto-complete\":_vm.autoComplete,\"resource-type\":_vm.resourceType,\"editor\":true,\"user-data\":_vm.userData,\"resource-id\":_vm.currentResourceId},on:{\"new\":_vm.onNewComment}},'Comment',_vm.editorData,false)),_vm._v(\" \"),(!_vm.isFirstLoading)?[(!_vm.hasComments && _vm.done)?_c('NcEmptyContent',{staticClass:\"comments__empty\",attrs:{\"name\":_vm.t('comments', 'No comments yet, start the conversation!')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconMessageReplyTextOutline')]},proxy:true}],null,false,326612300)}):_c('ul',_vm._l((_vm.comments),function(comment){return _c('Comment',_vm._b({key:comment.props.id,staticClass:\"comments__list\",attrs:{\"tag\":\"li\",\"auto-complete\":_vm.autoComplete,\"resource-type\":_vm.resourceType,\"message\":comment.props.message,\"resource-id\":_vm.currentResourceId,\"user-data\":_vm.genMentionsData(comment.props.mentions)},on:{\"update:message\":function($event){return _vm.$set(comment.props, \"message\", $event)},\"delete\":_vm.onDelete}},'Comment',comment.props,false))}),1),_vm._v(\" \"),(_vm.loading && !_vm.isFirstLoading)?_c('div',{staticClass:\"comments__info icon-loading\"}):(_vm.hasComments && _vm.done)?_c('div',{staticClass:\"comments__info\"},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('comments', 'No more messages'))+\"\\n\\t\\t\")]):(_vm.error)?[_c('NcEmptyContent',{staticClass:\"comments__error\",attrs:{\"name\":_vm.error},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconAlertCircleOutline')]},proxy:true}],null,false,3663249556)}),_vm._v(\" \"),_c('NcButton',{staticClass:\"comments__retry\",on:{\"click\":_vm.getComments},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconRefresh')]},proxy:true}],null,false,2997625269)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('comments', 'Retry'))+\"\\n\\t\\t\\t\")])]:_vm._e()]:_vm._e()],2)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCSPNonce } from '@nextcloud/auth'\nimport { n, t } from '@nextcloud/l10n'\nimport { createPinia, PiniaVuePlugin } from 'pinia'\nimport Vue from 'vue'\nimport CommentsApp from '../views/Comments.vue'\nimport logger from '../logger.js'\n\nVue.use(PiniaVuePlugin)\n\n__webpack_nonce__ = getCSPNonce()\n\n// Add translates functions\nVue.mixin({\n\tdata() {\n\t\treturn {\n\t\t\tlogger,\n\t\t}\n\t},\n\tmethods: {\n\t\tt,\n\t\tn,\n\t},\n})\n\nexport default class CommentInstance {\n\t/**\n\t * Initialize a new Comments instance for the desired type\n\t *\n\t * @param {string} resourceType the comments endpoint type\n\t * @param  {object} options the vue options (propsData, parent, el...)\n\t */\n\tconstructor(resourceType = 'files', options = {}) {\n\t\tconst pinia = createPinia()\n\n\t\t// Merge options and set `resourceType` property\n\t\toptions = {\n\t\t\t...options,\n\t\t\tpropsData: {\n\t\t\t\t...(options.propsData ?? {}),\n\t\t\t\tresourceType,\n\t\t\t},\n\t\t\tpinia,\n\t\t}\n\t\t// Init Comments component\n\t\tconst View = Vue.extend(CommentsApp)\n\t\treturn new View(options)\n\t}\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport logger from './logger.js'\nimport CommentsInstance from './services/CommentsInstance.js'\n\n// Init Comments\nif (window.OCA && !window.OCA.Comments) {\n\tObject.assign(window.OCA, { Comments: {} })\n}\n\n// Init Comments App view\nObject.assign(window.OCA.Comments, { View: CommentsInstance })\nlogger.debug('OCA.Comments.View initialized')\n","'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n  if (a instanceof RegExp) a = maybeMatch(a, str);\n  if (b instanceof RegExp) b = maybeMatch(b, str);\n\n  var r = range(a, b, str);\n\n  return r && {\n    start: r[0],\n    end: r[1],\n    pre: str.slice(0, r[0]),\n    body: str.slice(r[0] + a.length, r[1]),\n    post: str.slice(r[1] + b.length)\n  };\n}\n\nfunction maybeMatch(reg, str) {\n  var m = str.match(reg);\n  return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n  var begs, beg, left, right, result;\n  var ai = str.indexOf(a);\n  var bi = str.indexOf(b, ai + 1);\n  var i = ai;\n\n  if (ai >= 0 && bi > 0) {\n    if(a===b) {\n      return [ai, bi];\n    }\n    begs = [];\n    left = str.length;\n\n    while (i >= 0 && !result) {\n      if (i == ai) {\n        begs.push(i);\n        ai = str.indexOf(a, i + 1);\n      } else if (begs.length == 1) {\n        result = [ begs.pop(), bi ];\n      } else {\n        beg = begs.pop();\n        if (beg < left) {\n          left = beg;\n          right = bi;\n        }\n\n        bi = str.indexOf(b, i + 1);\n      }\n\n      i = ai < bi && ai >= 0 ? ai : bi;\n    }\n\n    if (begs.length) {\n      result = [ left, right ];\n    }\n  }\n\n  return result;\n}\n","/*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '1.0.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n","var balanced = require('balanced-match');\n\nmodule.exports = expandTop;\n\nvar escSlash = '\\0SLASH'+Math.random()+'\\0';\nvar escOpen = '\\0OPEN'+Math.random()+'\\0';\nvar escClose = '\\0CLOSE'+Math.random()+'\\0';\nvar escComma = '\\0COMMA'+Math.random()+'\\0';\nvar escPeriod = '\\0PERIOD'+Math.random()+'\\0';\n\nfunction numeric(str) {\n  return parseInt(str, 10) == str\n    ? parseInt(str, 10)\n    : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n  return str.split('\\\\\\\\').join(escSlash)\n            .split('\\\\{').join(escOpen)\n            .split('\\\\}').join(escClose)\n            .split('\\\\,').join(escComma)\n            .split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n  return str.split(escSlash).join('\\\\')\n            .split(escOpen).join('{')\n            .split(escClose).join('}')\n            .split(escComma).join(',')\n            .split(escPeriod).join('.');\n}\n\n\n// Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\nfunction parseCommaParts(str) {\n  if (!str)\n    return [''];\n\n  var parts = [];\n  var m = balanced('{', '}', str);\n\n  if (!m)\n    return str.split(',');\n\n  var pre = m.pre;\n  var body = m.body;\n  var post = m.post;\n  var p = pre.split(',');\n\n  p[p.length-1] += '{' + body + '}';\n  var postParts = parseCommaParts(post);\n  if (post.length) {\n    p[p.length-1] += postParts.shift();\n    p.push.apply(p, postParts);\n  }\n\n  parts.push.apply(parts, p);\n\n  return parts;\n}\n\nfunction expandTop(str) {\n  if (!str)\n    return [];\n\n  // I don't know why Bash 4.3 does this, but it does.\n  // Anything starting with {} will have the first two bytes preserved\n  // but *only* at the top level, so {},a}b will not expand to anything,\n  // but a{},b}c will be expanded to [a}c,abc].\n  // One could argue that this is a bug in Bash, but since the goal of\n  // this module is to match Bash's rules, we escape a leading {}\n  if (str.substr(0, 2) === '{}') {\n    str = '\\\\{\\\\}' + str.substr(2);\n  }\n\n  return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction embrace(str) {\n  return '{' + str + '}';\n}\nfunction isPadded(el) {\n  return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n  return i <= y;\n}\nfunction gte(i, y) {\n  return i >= y;\n}\n\nfunction expand(str, isTop) {\n  var expansions = [];\n\n  var m = balanced('{', '}', str);\n  if (!m) return [str];\n\n  // no need to expand pre, since it is guaranteed to be free of brace-sets\n  var pre = m.pre;\n  var post = m.post.length\n    ? expand(m.post, false)\n    : [''];\n\n  if (/\\$$/.test(m.pre)) {    \n    for (var k = 0; k < post.length; k++) {\n      var expansion = pre+ '{' + m.body + '}' + post[k];\n      expansions.push(expansion);\n    }\n  } else {\n    var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n    var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n    var isSequence = isNumericSequence || isAlphaSequence;\n    var isOptions = m.body.indexOf(',') >= 0;\n    if (!isSequence && !isOptions) {\n      // {a},b}\n      if (m.post.match(/,(?!,).*\\}/)) {\n        str = m.pre + '{' + m.body + escClose + m.post;\n        return expand(str);\n      }\n      return [str];\n    }\n\n    var n;\n    if (isSequence) {\n      n = m.body.split(/\\.\\./);\n    } else {\n      n = parseCommaParts(m.body);\n      if (n.length === 1) {\n        // x{{a,b}}y ==> x{a}y x{b}y\n        n = expand(n[0], false).map(embrace);\n        if (n.length === 1) {\n          return post.map(function(p) {\n            return m.pre + n[0] + p;\n          });\n        }\n      }\n    }\n\n    // at this point, n is the parts, and we know it's not a comma set\n    // with a single entry.\n    var N;\n\n    if (isSequence) {\n      var x = numeric(n[0]);\n      var y = numeric(n[1]);\n      var width = Math.max(n[0].length, n[1].length)\n      var incr = n.length == 3\n        ? Math.abs(numeric(n[2]))\n        : 1;\n      var test = lte;\n      var reverse = y < x;\n      if (reverse) {\n        incr *= -1;\n        test = gte;\n      }\n      var pad = n.some(isPadded);\n\n      N = [];\n\n      for (var i = x; test(i, y); i += incr) {\n        var c;\n        if (isAlphaSequence) {\n          c = String.fromCharCode(i);\n          if (c === '\\\\')\n            c = '';\n        } else {\n          c = String(i);\n          if (pad) {\n            var need = width - c.length;\n            if (need > 0) {\n              var z = new Array(need + 1).join('0');\n              if (i < 0)\n                c = '-' + z + c.slice(1);\n              else\n                c = z + c;\n            }\n          }\n        }\n        N.push(c);\n      }\n    } else {\n      N = [];\n\n      for (var j = 0; j < n.length; j++) {\n        N.push.apply(N, expand(n[j], false));\n      }\n    }\n\n    for (var j = 0; j < N.length; j++) {\n      for (var k = 0; k < post.length; k++) {\n        var expansion = pre + N[j] + post[k];\n        if (!isTop || isSequence || expansion)\n          expansions.push(expansion);\n      }\n    }\n  }\n\n  return expansions;\n}\n\n","module.exports = {\n  \"100\": \"Continue\",\n  \"101\": \"Switching Protocols\",\n  \"102\": \"Processing\",\n  \"200\": \"OK\",\n  \"201\": \"Created\",\n  \"202\": \"Accepted\",\n  \"203\": \"Non-Authoritative Information\",\n  \"204\": \"No Content\",\n  \"205\": \"Reset Content\",\n  \"206\": \"Partial Content\",\n  \"207\": \"Multi-Status\",\n  \"208\": \"Already Reported\",\n  \"226\": \"IM Used\",\n  \"300\": \"Multiple Choices\",\n  \"301\": \"Moved Permanently\",\n  \"302\": \"Found\",\n  \"303\": \"See Other\",\n  \"304\": \"Not Modified\",\n  \"305\": \"Use Proxy\",\n  \"307\": \"Temporary Redirect\",\n  \"308\": \"Permanent Redirect\",\n  \"400\": \"Bad Request\",\n  \"401\": \"Unauthorized\",\n  \"402\": \"Payment Required\",\n  \"403\": \"Forbidden\",\n  \"404\": \"Not Found\",\n  \"405\": \"Method Not Allowed\",\n  \"406\": \"Not Acceptable\",\n  \"407\": \"Proxy Authentication Required\",\n  \"408\": \"Request Timeout\",\n  \"409\": \"Conflict\",\n  \"410\": \"Gone\",\n  \"411\": \"Length Required\",\n  \"412\": \"Precondition Failed\",\n  \"413\": \"Payload Too Large\",\n  \"414\": \"URI Too Long\",\n  \"415\": \"Unsupported Media Type\",\n  \"416\": \"Range Not Satisfiable\",\n  \"417\": \"Expectation Failed\",\n  \"418\": \"I'm a teapot\",\n  \"421\": \"Misdirected Request\",\n  \"422\": \"Unprocessable Entity\",\n  \"423\": \"Locked\",\n  \"424\": \"Failed Dependency\",\n  \"425\": \"Unordered Collection\",\n  \"426\": \"Upgrade Required\",\n  \"428\": \"Precondition Required\",\n  \"429\": \"Too Many Requests\",\n  \"431\": \"Request Header Fields Too Large\",\n  \"451\": \"Unavailable For Legal Reasons\",\n  \"500\": \"Internal Server Error\",\n  \"501\": \"Not Implemented\",\n  \"502\": \"Bad Gateway\",\n  \"503\": \"Service Unavailable\",\n  \"504\": \"Gateway Timeout\",\n  \"505\": \"HTTP Version Not Supported\",\n  \"506\": \"Variant Also Negotiates\",\n  \"507\": \"Insufficient Storage\",\n  \"508\": \"Loop Detected\",\n  \"509\": \"Bandwidth Limit Exceeded\",\n  \"510\": \"Not Extended\",\n  \"511\": \"Network Authentication Required\"\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\n * Calculate the byte lengths for utf8 encoded strings.\n */\nfunction byteLength(str) {\n    if (!str) {\n        return 0;\n    }\n    str = str.toString();\n    var len = str.length;\n    for (var i = str.length; i--;) {\n        var code = str.charCodeAt(i);\n        if (0xdc00 <= code && code <= 0xdfff) {\n            i--;\n        }\n        if (0x7f < code && code <= 0x7ff) {\n            len++;\n        }\n        else if (0x7ff < code && code <= 0xffff) {\n            len += 2;\n        }\n    }\n    return len;\n}\nexports.byteLength = byteLength;\n//# sourceMappingURL=index.js.map","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\nvar bind = require('function-bind');\nvar $apply = require('./functionApply');\nvar actualApply = require('./actualApply');\n\n/** @type {import('./applyBind')} */\nmodule.exports = function applyBind() {\n\treturn actualApply(bind, $apply, arguments);\n};\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar setFunctionLength = require('set-function-length');\n\nvar $defineProperty = require('es-define-property');\n\nvar callBindBasic = require('call-bind-apply-helpers');\nvar applyBind = require('call-bind-apply-helpers/applyBind');\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = callBindBasic(arguments);\n\tvar adjustedLength = originalFunction.length - (arguments.length - 1);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + (adjustedLength > 0 ? adjustedLength : 0),\n\t\ttrue\n\t);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBindBasic = require('call-bind-apply-helpers');\n\n/** @type {(thisArg: string, searchString: string, position?: number) => number} */\nvar $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);\n\n/** @type {import('.')} */\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\t/* eslint no-extra-parens: 0 */\n\n\tvar intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing));\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBindBasic(/** @type {const} */ ([intrinsic]));\n\t}\n\treturn intrinsic;\n};\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.comment[data-v-70317f94]{display:flex;gap:8px;padding:5px 10px}.comment__side[data-v-70317f94]{display:flex;align-items:flex-start;padding-top:6px}.comment__body[data-v-70317f94]{display:flex;flex-grow:1;flex-direction:column;container-type:inline-size}.comment__header[data-v-70317f94]{display:flex;align-items:center;min-height:44px}.comment__actions[data-v-70317f94]{margin-inline-start:10px !important}.comment__author[data-v-70317f94]{overflow:hidden;white-space:nowrap;text-overflow:ellipsis;color:var(--color-text-maxcontrast)}.comment_loading[data-v-70317f94],.comment__timestamp[data-v-70317f94]{margin-inline-start:auto;text-align:end;white-space:nowrap;color:var(--color-text-maxcontrast)}.comment__editor-group[data-v-70317f94]{position:relative}.comment__editor-description[data-v-70317f94]{color:var(--color-text-maxcontrast);padding-block:var(--default-grid-baseline)}.comment__submit[data-v-70317f94]{position:absolute !important;bottom:5px;inset-inline-end:0}.comment__message[data-v-70317f94]{white-space:pre-wrap;word-break:normal;max-height:200px;overflow:auto;scrollbar-gutter:stable;scrollbar-width:thin;margin-top:-6px}.comment__message--expanded[data-v-70317f94]{max-height:none;overflow:visible}.comment__message[data-v-70317f94] img{max-width:100%;height:auto}.rich-contenteditable__input[data-v-70317f94]{min-height:44px;margin:0;padding:10px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/comments/src/components/Comment.vue\"],\"names\":[],\"mappings\":\"AAKA,0BACC,YAAA,CACA,OAAA,CACA,gBAAA,CAEA,gCACC,YAAA,CACA,sBAAA,CACA,eAAA,CAGD,gCACC,YAAA,CACA,WAAA,CACA,qBAAA,CACA,0BAAA,CAGD,kCACC,YAAA,CACA,kBAAA,CACA,eAAA,CAGD,mCACC,mCAAA,CAGD,kCACC,eAAA,CACA,kBAAA,CACA,sBAAA,CACA,mCAAA,CAGD,uEAEC,wBAAA,CACA,cAAA,CACA,kBAAA,CACA,mCAAA,CAGD,wCACC,iBAAA,CAGD,8CACC,mCAAA,CACA,0CAAA,CAGD,kCACC,4BAAA,CACA,UAAA,CACA,kBAAA,CAGD,mCACC,oBAAA,CACA,iBAAA,CACA,gBAAA,CACA,aAAA,CACA,uBAAA,CACA,oBAAA,CACA,eAAA,CACA,6CACC,eAAA,CACA,gBAAA,CAED,uCACC,cAAA,CACA,WAAA,CAKH,8CACC,eAAA,CACA,QAAA,CACA,YAlFiB\",\"sourcesContent\":[\"\\n@use \\\"sass:math\\\";\\n\\n$comment-padding: 10px;\\n\\n.comment {\\n\\tdisplay: flex;\\n\\tgap: 8px;\\n\\tpadding: 5px $comment-padding;\\n\\n\\t&__side {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: flex-start;\\n\\t\\tpadding-top: 6px;\\n\\t}\\n\\n\\t&__body {\\n\\t\\tdisplay: flex;\\n\\t\\tflex-grow: 1;\\n\\t\\tflex-direction: column;\\n\\t\\tcontainer-type: inline-size;\\n\\t}\\n\\n\\t&__header {\\n\\t\\tdisplay: flex;\\n\\t\\talign-items: center;\\n\\t\\tmin-height: 44px;\\n\\t}\\n\\n\\t&__actions {\\n\\t\\tmargin-inline-start: $comment-padding !important;\\n\\t}\\n\\n\\t&__author {\\n\\t\\toverflow: hidden;\\n\\t\\twhite-space: nowrap;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&_loading,\\n\\t&__timestamp {\\n\\t\\tmargin-inline-start: auto;\\n\\t\\ttext-align: end;\\n\\t\\twhite-space: nowrap;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t}\\n\\n\\t&__editor-group {\\n\\t\\tposition: relative;\\n\\t}\\n\\n\\t&__editor-description {\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\tpadding-block: var(--default-grid-baseline);\\n\\t}\\n\\n\\t&__submit {\\n\\t\\tposition: absolute !important;\\n\\t\\tbottom: 5px;\\n\\t\\tinset-inline-end: 0;\\n\\t}\\n\\n\\t&__message {\\n\\t\\twhite-space: pre-wrap;\\n\\t\\tword-break: normal;\\n\\t\\tmax-height: 200px;\\n\\t\\toverflow: auto;\\n\\t\\tscrollbar-gutter: stable;\\n\\t\\tscrollbar-width: thin;\\n\\t\\tmargin-top: -6px;\\n\\t\\t&--expanded {\\n\\t\\t\\tmax-height: none;\\n\\t\\t\\toverflow: visible;\\n\\t\\t}\\n\\t\\t:deep(img) {\\n\\t\\t\\tmax-width: 100%;\\n\\t\\t\\theight: auto;\\n\\t\\t}\\n\\t}\\n}\\n\\n.rich-contenteditable__input {\\n\\tmin-height: 44px;\\n\\tmargin: 0;\\n\\tpadding: $comment-padding;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `.comments[data-v-6c8c157a]{min-height:100%;display:flex;flex-direction:column}.comments__empty[data-v-6c8c157a],.comments__error[data-v-6c8c157a]{flex:1 0}.comments__retry[data-v-6c8c157a]{margin:0 auto}.comments__info[data-v-6c8c157a]{height:60px;color:var(--color-text-maxcontrast);text-align:center;line-height:60px}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/comments/src/views/Comments.vue\"],\"names\":[],\"mappings\":\"AACA,2BACC,eAAA,CACA,YAAA,CACA,qBAAA,CAEA,oEAEC,QAAA,CAGD,kCACC,aAAA,CAGD,iCACC,WAAA,CACA,mCAAA,CACA,iBAAA,CACA,gBAAA\",\"sourcesContent\":[\"\\n.comments {\\n\\tmin-height: 100%;\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n\\n\\t&__empty,\\n\\t&__error {\\n\\t\\tflex: 1 0;\\n\\t}\\n\\n\\t&__retry {\\n\\t\\tmargin: 0 auto;\\n\\t}\\n\\n\\t&__info {\\n\\t\\theight: 60px;\\n\\t\\tcolor: var(--color-text-maxcontrast);\\n\\t\\ttext-align: center;\\n\\t\\tline-height: 60px;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/** @type {(arr: A, iterator: (this: This | void, value: A[number], index: number, arr: A) => void, receiver: This | undefined) => void} */\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n    for (var i = 0, len = array.length; i < len; i++) {\n        if (hasOwnProperty.call(array, i)) {\n            if (receiver == null) {\n                iterator(array[i], i, array);\n            } else {\n                iterator.call(receiver, array[i], i, array);\n            }\n        }\n    }\n};\n\n/** @type {(string: S, iterator: (this: This | void, value: S[number], index: number, string: S) => void, receiver: This | undefined) => void} */\nvar forEachString = function forEachString(string, iterator, receiver) {\n    for (var i = 0, len = string.length; i < len; i++) {\n        // no such thing as a sparse string.\n        if (receiver == null) {\n            iterator(string.charAt(i), i, string);\n        } else {\n            iterator.call(receiver, string.charAt(i), i, string);\n        }\n    }\n};\n\n/** @type {(obj: O, iterator: (this: This | void, value: O[keyof O], index: keyof O, obj: O) => void, receiver: This | undefined) => void} */\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n    for (var k in object) {\n        if (hasOwnProperty.call(object, k)) {\n            if (receiver == null) {\n                iterator(object[k], k, object);\n            } else {\n                iterator.call(receiver, object[k], k, object);\n            }\n        }\n    }\n};\n\n/** @type {(x: unknown) => x is readonly unknown[]} */\nfunction isArray(x) {\n    return toStr.call(x) === '[object Array]';\n}\n\n/** @type {import('.')._internal} */\nmodule.exports = function forEach(list, iterator, thisArg) {\n    if (!isCallable(iterator)) {\n        throw new TypeError('iterator must be a function');\n    }\n\n    var receiver;\n    if (arguments.length >= 3) {\n        receiver = thisArg;\n    }\n\n    if (isArray(list)) {\n        forEachArray(list, iterator, receiver);\n    } else if (typeof list === 'string') {\n        forEachString(list, iterator, receiver);\n    } else {\n        forEachObject(list, iterator, receiver);\n    }\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n    var arr = [];\n\n    for (var i = 0; i < a.length; i += 1) {\n        arr[i] = a[i];\n    }\n    for (var j = 0; j < b.length; j += 1) {\n        arr[j + a.length] = b[j];\n    }\n\n    return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n    var arr = [];\n    for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n        arr[j] = arrLike[i];\n    }\n    return arr;\n};\n\nvar joiny = function (arr, joiner) {\n    var str = '';\n    for (var i = 0; i < arr.length; i += 1) {\n        str += arr[i];\n        if (i + 1 < arr.length) {\n            str += joiner;\n        }\n    }\n    return str;\n};\n\nmodule.exports = function bind(that) {\n    var target = this;\n    if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n        throw new TypeError(ERROR_MESSAGE + target);\n    }\n    var args = slicy(arguments, 1);\n\n    var bound;\n    var binder = function () {\n        if (this instanceof bound) {\n            var result = target.apply(\n                this,\n                concatty(args, arguments)\n            );\n            if (Object(result) === result) {\n                return result;\n            }\n            return this;\n        }\n        return target.apply(\n            that,\n            concatty(args, arguments)\n        );\n\n    };\n\n    var boundLength = max(0, target.length - args.length);\n    var boundArgs = [];\n    for (var i = 0; i < boundLength; i++) {\n        boundArgs[i] = '$' + i;\n    }\n\n    bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n    if (target.prototype) {\n        var Empty = function Empty() {};\n        Empty.prototype = target.prototype;\n        bound.prototype = new Empty();\n        Empty.prototype = null;\n    }\n\n    return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\n// eslint-disable-next-line no-extra-parens, no-empty-function\nconst cached = /** @type {GeneratorFunctionConstructor} */ (function* () {}.constructor);\n\n/** @type {import('.')} */\nmodule.exports = () => cached;\n\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","var http = require('http')\nvar url = require('url')\n\nvar https = module.exports\n\nfor (var key in http) {\n  if (http.hasOwnProperty(key)) https[key] = http[key]\n}\n\nhttps.request = function (params, cb) {\n  params = validateParams(params)\n  return http.request.call(this, params, cb)\n}\n\nhttps.get = function (params, cb) {\n  params = validateParams(params)\n  return http.get.call(this, params, cb)\n}\n\nfunction validateParams (params) {\n  if (typeof params === 'string') {\n    params = url.parse(params)\n  }\n  if (!params.protocol) {\n    params.protocol = 'https:'\n  }\n  if (params.protocol !== 'https:') {\n    throw new Error('Protocol \"' + params.protocol + '\" not supported. Expected \"https:\"')\n  }\n  return params\n}\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bound');\n\nvar $toString = callBound('Object.prototype.toString');\n\n/** @type {import('.')} */\nvar isStandardArguments = function isArguments(value) {\n\tif (\n\t\thasToStringTag\n\t\t&& value\n\t\t&& typeof value === 'object'\n\t\t&& Symbol.toStringTag in value\n\t) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\n/** @type {import('.')} */\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null\n\t\t&& typeof value === 'object'\n\t\t&& 'length' in value\n\t\t&& typeof value.length === 'number'\n\t\t&& value.length >= 0\n\t\t&& $toString(value) !== '[object Array]'\n\t\t&& 'callee' in value\n\t\t&& $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\n// @ts-expect-error TODO make this not error\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\n/** @type {import('.')} */\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar callBound = require('call-bound');\nvar safeRegexTest = require('safe-regex-test');\nvar isFnRegex = safeRegexTest(/^\\s*(?:function)?\\*/);\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = require('get-proto');\n\nvar toStr = callBound('Object.prototype.toString');\nvar fnToStr = callBound('Function.prototype.toString');\n\nvar getGeneratorFunction = require('generator-function');\n\n/** @type {import('.')} */\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex(fnToStr(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tvar GeneratorFunction = getGeneratorFunction();\n\treturn GeneratorFunction && getProto(fn) === GeneratorFunction.prototype;\n};\n","'use strict';\n\nvar callBound = require('call-bound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar hasOwn = require('hasown');\nvar gOPD = require('gopd');\n\n/** @type {import('.')} */\nvar fn;\n\nif (hasToStringTag) {\n\t/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */\n\tvar $exec = callBound('RegExp.prototype.exec');\n\t/** @type {object} */\n\tvar isRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\t/** @type {{ toString(): never, valueOf(): never, [Symbol.toPrimitive]?(): never }} */\n\tvar badStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n\n\t/** @type {import('.')} */\n\t// @ts-expect-error TS can't figure out that the $exec call always throws\n\t// eslint-disable-next-line consistent-return\n\tfn = function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {NonNullable} */ (gOPD)(/** @type {{ lastIndex?: unknown }} */ (value), 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && hasOwn(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t$exec(value, /** @type {string} */ (/** @type {unknown} */ (badStringifier)));\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t};\n} else {\n\t/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */\n\tvar $toString = callBound('Object.prototype.toString');\n\t/** @const @type {'[object RegExp]'} */\n\tvar regexClass = '[object RegExp]';\n\n\t/** @type {import('.')} */\n\tfn = function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n}\n\nmodule.exports = fn;\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","/**\n* @license nested-property https://github.com/cosmosio/nested-property\n*\n* The MIT License (MIT)\n*\n* Copyright (c) 2014-2020 Olivier Scherrer \n*/\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar ARRAY_WILDCARD = \"+\";\nvar PATH_DELIMITER = \".\";\n\nvar ObjectPrototypeMutationError = /*#__PURE__*/function (_Error) {\n  _inherits(ObjectPrototypeMutationError, _Error);\n\n  function ObjectPrototypeMutationError(params) {\n    var _this;\n\n    _classCallCheck(this, ObjectPrototypeMutationError);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(ObjectPrototypeMutationError).call(this, params));\n    _this.name = \"ObjectPrototypeMutationError\";\n    return _this;\n  }\n\n  return ObjectPrototypeMutationError;\n}(_wrapNativeSuper(Error));\n\nmodule.exports = {\n  set: setNestedProperty,\n  get: getNestedProperty,\n  has: hasNestedProperty,\n  hasOwn: function hasOwn(object, property, options) {\n    return this.has(object, property, options || {\n      own: true\n    });\n  },\n  isIn: isInNestedProperty,\n  ObjectPrototypeMutationError: ObjectPrototypeMutationError\n};\n/**\n * Get the property of an object nested in one or more objects or array\n * Given an object such as a.b.c.d = 5, getNestedProperty(a, \"b.c.d\") will return 5.\n * It also works through arrays. Given a nested array such as a[0].b = 5, getNestedProperty(a, \"0.b\") will return 5.\n * For accessing nested properties through all items in an array, you may use the array wildcard \"+\".\n * For instance, getNestedProperty([{a:1}, {a:2}, {a:3}], \"+.a\") will return [1, 2, 3]\n * @param {Object} object the object to get the property from\n * @param {String} property the path to the property as a string\n * @returns the object or the the property value if found\n */\n\nfunction getNestedProperty(object, property) {\n  if (_typeof(object) != \"object\" || object === null) {\n    return object;\n  }\n\n  if (typeof property == \"undefined\") {\n    return object;\n  }\n\n  if (typeof property == \"number\") {\n    return object[property];\n  }\n\n  try {\n    return traverse(object, property, function _getNestedProperty(currentObject, currentProperty) {\n      return currentObject[currentProperty];\n    });\n  } catch (err) {\n    return object;\n  }\n}\n/**\n * Tell if a nested object has a given property (or array a given index)\n * given an object such as a.b.c.d = 5, hasNestedProperty(a, \"b.c.d\") will return true.\n * It also returns true if the property is in the prototype chain.\n * @param {Object} object the object to get the property from\n * @param {String} property the path to the property as a string\n * @param {Object} options:\n *  - own: set to reject properties from the prototype\n * @returns true if has (property in object), false otherwise\n */\n\n\nfunction hasNestedProperty(object, property) {\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n  if (_typeof(object) != \"object\" || object === null) {\n    return false;\n  }\n\n  if (typeof property == \"undefined\") {\n    return false;\n  }\n\n  if (typeof property == \"number\") {\n    return property in object;\n  }\n\n  try {\n    var has = false;\n    traverse(object, property, function _hasNestedProperty(currentObject, currentProperty, segments, index) {\n      if (isLastSegment(segments, index)) {\n        if (options.own) {\n          has = currentObject.hasOwnProperty(currentProperty);\n        } else {\n          has = currentProperty in currentObject;\n        }\n      } else {\n        return currentObject && currentObject[currentProperty];\n      }\n    });\n    return has;\n  } catch (err) {\n    return false;\n  }\n}\n/**\n * Set the property of an object nested in one or more objects\n * If the property doesn't exist, it gets created.\n * @param {Object} object\n * @param {String} property\n * @param value the value to set\n * @returns object if no assignment was made or the value if the assignment was made\n */\n\n\nfunction setNestedProperty(object, property, value) {\n  if (_typeof(object) != \"object\" || object === null) {\n    return object;\n  }\n\n  if (typeof property == \"undefined\") {\n    return object;\n  }\n\n  if (typeof property == \"number\") {\n    object[property] = value;\n    return object[property];\n  }\n\n  try {\n    return traverse(object, property, function _setNestedProperty(currentObject, currentProperty, segments, index) {\n      if (currentObject === Reflect.getPrototypeOf({})) {\n        throw new ObjectPrototypeMutationError(\"Attempting to mutate Object.prototype\");\n      }\n\n      if (!currentObject[currentProperty]) {\n        var nextPropIsNumber = Number.isInteger(Number(segments[index + 1]));\n        var nextPropIsArrayWildcard = segments[index + 1] === ARRAY_WILDCARD;\n\n        if (nextPropIsNumber || nextPropIsArrayWildcard) {\n          currentObject[currentProperty] = [];\n        } else {\n          currentObject[currentProperty] = {};\n        }\n      }\n\n      if (isLastSegment(segments, index)) {\n        currentObject[currentProperty] = value;\n      }\n\n      return currentObject[currentProperty];\n    });\n  } catch (err) {\n    if (err instanceof ObjectPrototypeMutationError) {\n      // rethrow\n      throw err;\n    } else {\n      return object;\n    }\n  }\n}\n/**\n * Tell if an object is on the path to a nested property\n * If the object is on the path, and the path exists, it returns true, and false otherwise.\n * @param {Object} object to get the nested property from\n * @param {String} property name of the nested property\n * @param {Object} objectInPath the object to check\n * @param {Object} options:\n *  - validPath: return false if the path is invalid, even if the object is in the path\n * @returns {boolean} true if the object is on the path\n */\n\n\nfunction isInNestedProperty(object, property, objectInPath) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n  if (_typeof(object) != \"object\" || object === null) {\n    return false;\n  }\n\n  if (typeof property == \"undefined\") {\n    return false;\n  }\n\n  try {\n    var isIn = false,\n        pathExists = false;\n    traverse(object, property, function _isInNestedProperty(currentObject, currentProperty, segments, index) {\n      isIn = isIn || currentObject === objectInPath || !!currentObject && currentObject[currentProperty] === objectInPath;\n      pathExists = isLastSegment(segments, index) && _typeof(currentObject) === \"object\" && currentProperty in currentObject;\n      return currentObject && currentObject[currentProperty];\n    });\n\n    if (options.validPath) {\n      return isIn && pathExists;\n    } else {\n      return isIn;\n    }\n  } catch (err) {\n    return false;\n  }\n}\n\nfunction traverse(object, path) {\n  var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n  var segments = path.split(PATH_DELIMITER);\n  var length = segments.length;\n\n  var _loop = function _loop(idx) {\n    var currentSegment = segments[idx];\n\n    if (!object) {\n      return {\n        v: void 0\n      };\n    }\n\n    if (currentSegment === ARRAY_WILDCARD) {\n      if (Array.isArray(object)) {\n        return {\n          v: object.map(function (value, index) {\n            var remainingSegments = segments.slice(idx + 1);\n\n            if (remainingSegments.length > 0) {\n              return traverse(value, remainingSegments.join(PATH_DELIMITER), callback);\n            } else {\n              return callback(object, index, segments, idx);\n            }\n          })\n        };\n      } else {\n        var pathToHere = segments.slice(0, idx).join(PATH_DELIMITER);\n        throw new Error(\"Object at wildcard (\".concat(pathToHere, \") is not an array\"));\n      }\n    } else {\n      object = callback(object, currentSegment, segments, idx);\n    }\n  };\n\n  for (var idx = 0; idx < length; idx++) {\n    var _ret = _loop(idx);\n\n    if (_typeof(_ret) === \"object\") return _ret.v;\n  }\n\n  return object;\n}\n\nfunction isLastSegment(segments, index) {\n  return segments.length === index + 1;\n}\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n    ? Symbol.toStringTag\n    : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n    [].__proto__ === Array.prototype // eslint-disable-line no-proto\n        ? function (O) {\n            return O.__proto__; // eslint-disable-line no-proto\n        }\n        : null\n);\n\nfunction addNumericSeparator(num, str) {\n    if (\n        num === Infinity\n        || num === -Infinity\n        || num !== num\n        || (num && num > -1000 && num < 1000)\n        || $test.call(/e/, str)\n    ) {\n        return str;\n    }\n    var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n    if (typeof num === 'number') {\n        var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n        if (int !== num) {\n            var intStr = String(int);\n            var dec = $slice.call(str, intStr.length + 1);\n            return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n        }\n    }\n    return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nvar quotes = {\n    __proto__: null,\n    'double': '\"',\n    single: \"'\"\n};\nvar quoteREs = {\n    __proto__: null,\n    'double': /([\"\\\\])/g,\n    single: /(['\\\\])/g\n};\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n    var opts = options || {};\n\n    if (has(opts, 'quoteStyle') && !has(quotes, opts.quoteStyle)) {\n        throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n    }\n    if (\n        has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n            ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n            : opts.maxStringLength !== null\n        )\n    ) {\n        throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n    }\n    var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n    if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n        throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n    }\n\n    if (\n        has(opts, 'indent')\n        && opts.indent !== null\n        && opts.indent !== '\\t'\n        && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n    ) {\n        throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n    }\n    if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n        throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n    }\n    var numericSeparator = opts.numericSeparator;\n\n    if (typeof obj === 'undefined') {\n        return 'undefined';\n    }\n    if (obj === null) {\n        return 'null';\n    }\n    if (typeof obj === 'boolean') {\n        return obj ? 'true' : 'false';\n    }\n\n    if (typeof obj === 'string') {\n        return inspectString(obj, opts);\n    }\n    if (typeof obj === 'number') {\n        if (obj === 0) {\n            return Infinity / obj > 0 ? '0' : '-0';\n        }\n        var str = String(obj);\n        return numericSeparator ? addNumericSeparator(obj, str) : str;\n    }\n    if (typeof obj === 'bigint') {\n        var bigIntStr = String(obj) + 'n';\n        return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n    }\n\n    var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n    if (typeof depth === 'undefined') { depth = 0; }\n    if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n        return isArray(obj) ? '[Array]' : '[Object]';\n    }\n\n    var indent = getIndent(opts, depth);\n\n    if (typeof seen === 'undefined') {\n        seen = [];\n    } else if (indexOf(seen, obj) >= 0) {\n        return '[Circular]';\n    }\n\n    function inspect(value, from, noIndent) {\n        if (from) {\n            seen = $arrSlice.call(seen);\n            seen.push(from);\n        }\n        if (noIndent) {\n            var newOpts = {\n                depth: opts.depth\n            };\n            if (has(opts, 'quoteStyle')) {\n                newOpts.quoteStyle = opts.quoteStyle;\n            }\n            return inspect_(value, newOpts, depth + 1, seen);\n        }\n        return inspect_(value, opts, depth + 1, seen);\n    }\n\n    if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n        var name = nameOf(obj);\n        var keys = arrObjKeys(obj, inspect);\n        return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n    }\n    if (isSymbol(obj)) {\n        var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n        return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n    }\n    if (isElement(obj)) {\n        var s = '<' + $toLowerCase.call(String(obj.nodeName));\n        var attrs = obj.attributes || [];\n        for (var i = 0; i < attrs.length; i++) {\n            s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n        }\n        s += '>';\n        if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n        s += '';\n        return s;\n    }\n    if (isArray(obj)) {\n        if (obj.length === 0) { return '[]'; }\n        var xs = arrObjKeys(obj, inspect);\n        if (indent && !singleLineValues(xs)) {\n            return '[' + indentedJoin(xs, indent) + ']';\n        }\n        return '[ ' + $join.call(xs, ', ') + ' ]';\n    }\n    if (isError(obj)) {\n        var parts = arrObjKeys(obj, inspect);\n        if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n            return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n        }\n        if (parts.length === 0) { return '[' + String(obj) + ']'; }\n        return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n    }\n    if (typeof obj === 'object' && customInspect) {\n        if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n            return utilInspect(obj, { depth: maxDepth - depth });\n        } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n            return obj.inspect();\n        }\n    }\n    if (isMap(obj)) {\n        var mapParts = [];\n        if (mapForEach) {\n            mapForEach.call(obj, function (value, key) {\n                mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n            });\n        }\n        return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n    }\n    if (isSet(obj)) {\n        var setParts = [];\n        if (setForEach) {\n            setForEach.call(obj, function (value) {\n                setParts.push(inspect(value, obj));\n            });\n        }\n        return collectionOf('Set', setSize.call(obj), setParts, indent);\n    }\n    if (isWeakMap(obj)) {\n        return weakCollectionOf('WeakMap');\n    }\n    if (isWeakSet(obj)) {\n        return weakCollectionOf('WeakSet');\n    }\n    if (isWeakRef(obj)) {\n        return weakCollectionOf('WeakRef');\n    }\n    if (isNumber(obj)) {\n        return markBoxed(inspect(Number(obj)));\n    }\n    if (isBigInt(obj)) {\n        return markBoxed(inspect(bigIntValueOf.call(obj)));\n    }\n    if (isBoolean(obj)) {\n        return markBoxed(booleanValueOf.call(obj));\n    }\n    if (isString(obj)) {\n        return markBoxed(inspect(String(obj)));\n    }\n    // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n    /* eslint-env browser */\n    if (typeof window !== 'undefined' && obj === window) {\n        return '{ [object Window] }';\n    }\n    if (\n        (typeof globalThis !== 'undefined' && obj === globalThis)\n        || (typeof global !== 'undefined' && obj === global)\n    ) {\n        return '{ [object globalThis] }';\n    }\n    if (!isDate(obj) && !isRegExp(obj)) {\n        var ys = arrObjKeys(obj, inspect);\n        var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n        var protoTag = obj instanceof Object ? '' : 'null prototype';\n        var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n        var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n        var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n        if (ys.length === 0) { return tag + '{}'; }\n        if (indent) {\n            return tag + '{' + indentedJoin(ys, indent) + '}';\n        }\n        return tag + '{ ' + $join.call(ys, ', ') + ' }';\n    }\n    return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n    var style = opts.quoteStyle || defaultStyle;\n    var quoteChar = quotes[style];\n    return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n    return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction canTrustToString(obj) {\n    return !toStringTag || !(typeof obj === 'object' && (toStringTag in obj || typeof obj[toStringTag] !== 'undefined'));\n}\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && canTrustToString(obj); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && canTrustToString(obj); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && canTrustToString(obj); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && canTrustToString(obj); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && canTrustToString(obj); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && canTrustToString(obj); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && canTrustToString(obj); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n    if (hasShammedSymbols) {\n        return obj && typeof obj === 'object' && obj instanceof Symbol;\n    }\n    if (typeof obj === 'symbol') {\n        return true;\n    }\n    if (!obj || typeof obj !== 'object' || !symToString) {\n        return false;\n    }\n    try {\n        symToString.call(obj);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nfunction isBigInt(obj) {\n    if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n        return false;\n    }\n    try {\n        bigIntValueOf.call(obj);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n    return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n    return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n    if (f.name) { return f.name; }\n    var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n    if (m) { return m[1]; }\n    return null;\n}\n\nfunction indexOf(xs, x) {\n    if (xs.indexOf) { return xs.indexOf(x); }\n    for (var i = 0, l = xs.length; i < l; i++) {\n        if (xs[i] === x) { return i; }\n    }\n    return -1;\n}\n\nfunction isMap(x) {\n    if (!mapSize || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        mapSize.call(x);\n        try {\n            setSize.call(x);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof Map; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakMap(x) {\n    if (!weakMapHas || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakMapHas.call(x, weakMapHas);\n        try {\n            weakSetHas.call(x, weakSetHas);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakRef(x) {\n    if (!weakRefDeref || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakRefDeref.call(x);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nfunction isSet(x) {\n    if (!setSize || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        setSize.call(x);\n        try {\n            mapSize.call(x);\n        } catch (m) {\n            return true;\n        }\n        return x instanceof Set; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakSet(x) {\n    if (!weakSetHas || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakSetHas.call(x, weakSetHas);\n        try {\n            weakMapHas.call(x, weakMapHas);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isElement(x) {\n    if (!x || typeof x !== 'object') { return false; }\n    if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n        return true;\n    }\n    return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n    if (str.length > opts.maxStringLength) {\n        var remaining = str.length - opts.maxStringLength;\n        var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n        return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n    }\n    var quoteRE = quoteREs[opts.quoteStyle || 'single'];\n    quoteRE.lastIndex = 0;\n    // eslint-disable-next-line no-control-regex\n    var s = $replace.call($replace.call(str, quoteRE, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n    return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n    var n = c.charCodeAt(0);\n    var x = {\n        8: 'b',\n        9: 't',\n        10: 'n',\n        12: 'f',\n        13: 'r'\n    }[n];\n    if (x) { return '\\\\' + x; }\n    return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n    return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n    return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n    var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n    return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n    for (var i = 0; i < xs.length; i++) {\n        if (indexOf(xs[i], '\\n') >= 0) {\n            return false;\n        }\n    }\n    return true;\n}\n\nfunction getIndent(opts, depth) {\n    var baseIndent;\n    if (opts.indent === '\\t') {\n        baseIndent = '\\t';\n    } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n        baseIndent = $join.call(Array(opts.indent + 1), ' ');\n    } else {\n        return null;\n    }\n    return {\n        base: baseIndent,\n        prev: $join.call(Array(depth + 1), baseIndent)\n    };\n}\n\nfunction indentedJoin(xs, indent) {\n    if (xs.length === 0) { return ''; }\n    var lineJoiner = '\\n' + indent.prev + indent.base;\n    return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n    var isArr = isArray(obj);\n    var xs = [];\n    if (isArr) {\n        xs.length = obj.length;\n        for (var i = 0; i < obj.length; i++) {\n            xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n        }\n    }\n    var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n    var symMap;\n    if (hasShammedSymbols) {\n        symMap = {};\n        for (var k = 0; k < syms.length; k++) {\n            symMap['$' + syms[k]] = syms[k];\n        }\n    }\n\n    for (var key in obj) { // eslint-disable-line no-restricted-syntax\n        if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n        if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n        if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n            // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n            continue; // eslint-disable-line no-restricted-syntax, no-continue\n        } else if ($test.call(/[^\\w$]/, key)) {\n            xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n        } else {\n            xs.push(key + ': ' + inspect(obj[key], obj));\n        }\n    }\n    if (typeof gOPS === 'function') {\n        for (var j = 0; j < syms.length; j++) {\n            if (isEnumerable.call(obj, syms[j])) {\n                xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n            }\n        }\n    }\n    return xs;\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\nvar util = require('util');\nvar isString = function (x) {\n  return typeof x === 'string';\n};\n\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n  var res = [];\n  for (var i = 0; i < parts.length; i++) {\n    var p = parts[i];\n\n    // ignore empty parts\n    if (!p || p === '.')\n      continue;\n\n    if (p === '..') {\n      if (res.length && res[res.length - 1] !== '..') {\n        res.pop();\n      } else if (allowAboveRoot) {\n        res.push('..');\n      }\n    } else {\n      res.push(p);\n    }\n  }\n\n  return res;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nvar splitPathRe =\n    /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\nvar posix = {};\n\n\nfunction posixSplitPath(filename) {\n  return splitPathRe.exec(filename).slice(1);\n}\n\n\n// path.resolve([from ...], to)\n// posix version\nposix.resolve = function() {\n  var resolvedPath = '',\n      resolvedAbsolute = false;\n\n  for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n    var path = (i >= 0) ? arguments[i] : process.cwd();\n\n    // Skip empty and invalid entries\n    if (!isString(path)) {\n      throw new TypeError('Arguments to path.resolve must be strings');\n    } else if (!path) {\n      continue;\n    }\n\n    resolvedPath = path + '/' + resolvedPath;\n    resolvedAbsolute = path.charAt(0) === '/';\n  }\n\n  // At this point the path should be resolved to a full absolute path, but\n  // handle relative paths to be safe (might happen when process.cwd() fails)\n\n  // Normalize the path\n  resolvedPath = normalizeArray(resolvedPath.split('/'),\n                                !resolvedAbsolute).join('/');\n\n  return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nposix.normalize = function(path) {\n  var isAbsolute = posix.isAbsolute(path),\n      trailingSlash = path.substr(-1) === '/';\n\n  // Normalize the path\n  path = normalizeArray(path.split('/'), !isAbsolute).join('/');\n\n  if (!path && !isAbsolute) {\n    path = '.';\n  }\n  if (path && trailingSlash) {\n    path += '/';\n  }\n\n  return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nposix.isAbsolute = function(path) {\n  return path.charAt(0) === '/';\n};\n\n// posix version\nposix.join = function() {\n  var path = '';\n  for (var i = 0; i < arguments.length; i++) {\n    var segment = arguments[i];\n    if (!isString(segment)) {\n      throw new TypeError('Arguments to path.join must be strings');\n    }\n    if (segment) {\n      if (!path) {\n        path += segment;\n      } else {\n        path += '/' + segment;\n      }\n    }\n  }\n  return posix.normalize(path);\n};\n\n\n// path.relative(from, to)\n// posix version\nposix.relative = function(from, to) {\n  from = posix.resolve(from).substr(1);\n  to = posix.resolve(to).substr(1);\n\n  function trim(arr) {\n    var start = 0;\n    for (; start < arr.length; start++) {\n      if (arr[start] !== '') break;\n    }\n\n    var end = arr.length - 1;\n    for (; end >= 0; end--) {\n      if (arr[end] !== '') break;\n    }\n\n    if (start > end) return [];\n    return arr.slice(start, end + 1);\n  }\n\n  var fromParts = trim(from.split('/'));\n  var toParts = trim(to.split('/'));\n\n  var length = Math.min(fromParts.length, toParts.length);\n  var samePartsLength = length;\n  for (var i = 0; i < length; i++) {\n    if (fromParts[i] !== toParts[i]) {\n      samePartsLength = i;\n      break;\n    }\n  }\n\n  var outputParts = [];\n  for (var i = samePartsLength; i < fromParts.length; i++) {\n    outputParts.push('..');\n  }\n\n  outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n  return outputParts.join('/');\n};\n\n\nposix._makeLong = function(path) {\n  return path;\n};\n\n\nposix.dirname = function(path) {\n  var result = posixSplitPath(path),\n      root = result[0],\n      dir = result[1];\n\n  if (!root && !dir) {\n    // No dirname whatsoever\n    return '.';\n  }\n\n  if (dir) {\n    // It has a dirname, strip trailing slash\n    dir = dir.substr(0, dir.length - 1);\n  }\n\n  return root + dir;\n};\n\n\nposix.basename = function(path, ext) {\n  var f = posixSplitPath(path)[2];\n  // TODO: make this comparison case-insensitive on windows?\n  if (ext && f.substr(-1 * ext.length) === ext) {\n    f = f.substr(0, f.length - ext.length);\n  }\n  return f;\n};\n\n\nposix.extname = function(path) {\n  return posixSplitPath(path)[3];\n};\n\n\nposix.format = function(pathObject) {\n  if (!util.isObject(pathObject)) {\n    throw new TypeError(\n        \"Parameter 'pathObject' must be an object, not \" + typeof pathObject\n    );\n  }\n\n  var root = pathObject.root || '';\n\n  if (!isString(root)) {\n    throw new TypeError(\n        \"'pathObject.root' must be a string or undefined, not \" +\n        typeof pathObject.root\n    );\n  }\n\n  var dir = pathObject.dir ? pathObject.dir + posix.sep : '';\n  var base = pathObject.base || '';\n  return dir + base;\n};\n\n\nposix.parse = function(pathString) {\n  if (!isString(pathString)) {\n    throw new TypeError(\n        \"Parameter 'pathString' must be a string, not \" + typeof pathString\n    );\n  }\n  var allParts = posixSplitPath(pathString);\n  if (!allParts || allParts.length !== 4) {\n    throw new TypeError(\"Invalid path '\" + pathString + \"'\");\n  }\n  allParts[1] = allParts[1] || '';\n  allParts[2] = allParts[2] || '';\n  allParts[3] = allParts[3] || '';\n\n  return {\n    root: allParts[0],\n    dir: allParts[0] + allParts[1].slice(0, allParts[1].length - 1),\n    base: allParts[2],\n    ext: allParts[3],\n    name: allParts[2].slice(0, allParts[2].length - allParts[3].length)\n  };\n};\n\n\nposix.sep = '/';\nposix.delimiter = ':';\n\n  module.exports = posix;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float16Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t    counter = 0,\n\t\t    length = string.length,\n\t\t    value,\n\t\t    extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t//  0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t    inputLength = input.length,\n\t\t    out,\n\t\t    i = 0,\n\t\t    n = initialN,\n\t\t    bias = initialBias,\n\t\t    basic,\n\t\t    j,\n\t\t    index,\n\t\t    oldi,\n\t\t    w,\n\t\t    k,\n\t\t    digit,\n\t\t    t,\n\t\t    /** Cached calculation results */\n\t\t    baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t    delta,\n\t\t    handledCPCount,\n\t\t    basicLength,\n\t\t    bias,\n\t\t    j,\n\t\t    m,\n\t\t    q,\n\t\t    k,\n\t\t    t,\n\t\t    currentValue,\n\t\t    output = [],\n\t\t    /** `inputLength` will hold the number of code points in `input`. */\n\t\t    inputLength,\n\t\t    /** Cached calculation results */\n\t\t    handledCPCountPlusOne,\n\t\t    baseMinusT,\n\t\t    qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's  state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n    RFC1738: 'RFC1738',\n    RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n    'default': Format.RFC3986,\n    formatters: {\n        RFC1738: function (value) {\n            return replace.call(value, percentTwenties, '+');\n        },\n        RFC3986: function (value) {\n            return String(value);\n        }\n    },\n    RFC1738: Format.RFC1738,\n    RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n    formats: formats,\n    parse: parse,\n    stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n    allowDots: false,\n    allowEmptyArrays: false,\n    allowPrototypes: false,\n    allowSparse: false,\n    arrayLimit: 20,\n    charset: 'utf-8',\n    charsetSentinel: false,\n    comma: false,\n    decodeDotInKeys: false,\n    decoder: utils.decode,\n    delimiter: '&',\n    depth: 5,\n    duplicates: 'combine',\n    ignoreQueryPrefix: false,\n    interpretNumericEntities: false,\n    parameterLimit: 1000,\n    parseArrays: true,\n    plainObjects: false,\n    strictDepth: false,\n    strictNullHandling: false,\n    throwOnLimitExceeded: false\n};\n\nvar interpretNumericEntities = function (str) {\n    return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n        return String.fromCharCode(parseInt(numberStr, 10));\n    });\n};\n\nvar parseArrayValue = function (val, options, currentArrayLength) {\n    if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n        return val.split(',');\n    }\n\n    if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) {\n        throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n    }\n\n    return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n    var obj = { __proto__: null };\n\n    var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n    cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n\n    var limit = options.parameterLimit === Infinity ? void undefined : options.parameterLimit;\n    var parts = cleanStr.split(\n        options.delimiter,\n        options.throwOnLimitExceeded ? limit + 1 : limit\n    );\n\n    if (options.throwOnLimitExceeded && parts.length > limit) {\n        throw new RangeError('Parameter limit exceeded. Only ' + limit + ' parameter' + (limit === 1 ? '' : 's') + ' allowed.');\n    }\n\n    var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n    var i;\n\n    var charset = options.charset;\n    if (options.charsetSentinel) {\n        for (i = 0; i < parts.length; ++i) {\n            if (parts[i].indexOf('utf8=') === 0) {\n                if (parts[i] === charsetSentinel) {\n                    charset = 'utf-8';\n                } else if (parts[i] === isoSentinel) {\n                    charset = 'iso-8859-1';\n                }\n                skipIndex = i;\n                i = parts.length; // The eslint settings do not allow break;\n            }\n        }\n    }\n\n    for (i = 0; i < parts.length; ++i) {\n        if (i === skipIndex) {\n            continue;\n        }\n        var part = parts[i];\n\n        var bracketEqualsPos = part.indexOf(']=');\n        var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n        var key;\n        var val;\n        if (pos === -1) {\n            key = options.decoder(part, defaults.decoder, charset, 'key');\n            val = options.strictNullHandling ? null : '';\n        } else {\n            key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n\n            if (key !== null) {\n                val = utils.maybeMap(\n                    parseArrayValue(\n                        part.slice(pos + 1),\n                        options,\n                        isArray(obj[key]) ? obj[key].length : 0\n                    ),\n                    function (encodedVal) {\n                        return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n                    }\n                );\n            }\n        }\n\n        if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n            val = interpretNumericEntities(String(val));\n        }\n\n        if (part.indexOf('[]=') > -1) {\n            val = isArray(val) ? [val] : val;\n        }\n\n        if (options.comma && isArray(val) && val.length > options.arrayLimit) {\n            if (options.throwOnLimitExceeded) {\n                throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n            }\n            val = utils.combine([], val, options.arrayLimit, options.plainObjects);\n        }\n\n        if (key !== null) {\n            var existing = has.call(obj, key);\n            if (existing && options.duplicates === 'combine') {\n                obj[key] = utils.combine(\n                    obj[key],\n                    val,\n                    options.arrayLimit,\n                    options.plainObjects\n                );\n            } else if (!existing || options.duplicates === 'last') {\n                obj[key] = val;\n            }\n        }\n    }\n\n    return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n    var currentArrayLength = 0;\n    if (chain.length > 0 && chain[chain.length - 1] === '[]') {\n        var parentKey = chain.slice(0, -1).join('');\n        currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0;\n    }\n\n    var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength);\n\n    for (var i = chain.length - 1; i >= 0; --i) {\n        var obj;\n        var root = chain[i];\n\n        if (root === '[]' && options.parseArrays) {\n            if (utils.isOverflow(leaf)) {\n                // leaf is already an overflow object, preserve it\n                obj = leaf;\n            } else {\n                obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null))\n                    ? []\n                    : utils.combine(\n                        [],\n                        leaf,\n                        options.arrayLimit,\n                        options.plainObjects\n                    );\n            }\n        } else {\n            obj = options.plainObjects ? { __proto__: null } : {};\n            var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n            var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;\n            var index = parseInt(decodedRoot, 10);\n            var isValidArrayIndex = !isNaN(index)\n                && root !== decodedRoot\n                && String(index) === decodedRoot\n                && index >= 0\n                && options.parseArrays;\n            if (!options.parseArrays && decodedRoot === '') {\n                obj = { 0: leaf };\n            } else if (isValidArrayIndex && index < options.arrayLimit) {\n                obj = [];\n                obj[index] = leaf;\n            } else if (isValidArrayIndex && options.throwOnLimitExceeded) {\n                throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n            } else if (isValidArrayIndex) {\n                obj[index] = leaf;\n                utils.markOverflow(obj, index);\n            } else if (decodedRoot !== '__proto__') {\n                obj[decodedRoot] = leaf;\n            }\n        }\n\n        leaf = obj;\n    }\n\n    return leaf;\n};\n\nvar splitKeyIntoSegments = function splitKeyIntoSegments(givenKey, options) {\n    var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n    if (options.depth <= 0) {\n        if (!options.plainObjects && has.call(Object.prototype, key)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        return [key];\n    }\n\n    var brackets = /(\\[[^[\\]]*])/;\n    var child = /(\\[[^[\\]]*])/g;\n\n    var segment = brackets.exec(key);\n    var parent = segment ? key.slice(0, segment.index) : key;\n\n    var keys = [];\n\n    if (parent) {\n        if (!options.plainObjects && has.call(Object.prototype, parent)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        keys[keys.length] = parent;\n    }\n\n    var i = 0;\n    while ((segment = child.exec(key)) !== null && i < options.depth) {\n        i += 1;\n\n        var segmentContent = segment[1].slice(1, -1);\n        if (!options.plainObjects && has.call(Object.prototype, segmentContent)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        keys[keys.length] = segment[1];\n    }\n\n    if (segment) {\n        if (options.strictDepth === true) {\n            throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');\n        }\n\n        keys[keys.length] = '[' + key.slice(segment.index) + ']';\n    }\n\n    return keys;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n    if (!givenKey) {\n        return;\n    }\n\n    var keys = splitKeyIntoSegments(givenKey, options);\n\n    if (!keys) {\n        return;\n    }\n\n    return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n    if (!opts) {\n        return defaults;\n    }\n\n    if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n        throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n    }\n\n    if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {\n        throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');\n    }\n\n    if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {\n        throw new TypeError('Decoder has to be a function.');\n    }\n\n    if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n        throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n    }\n\n    if (typeof opts.throwOnLimitExceeded !== 'undefined' && typeof opts.throwOnLimitExceeded !== 'boolean') {\n        throw new TypeError('`throwOnLimitExceeded` option must be a boolean');\n    }\n\n    var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n    var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;\n\n    if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {\n        throw new TypeError('The duplicates option must be either combine, first, or last');\n    }\n\n    var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n    return {\n        allowDots: allowDots,\n        allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n        allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n        allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n        arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n        charset: charset,\n        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n        comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n        decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,\n        decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n        delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n        // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n        depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n        duplicates: duplicates,\n        ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n        interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n        parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n        parseArrays: opts.parseArrays !== false,\n        plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n        strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth,\n        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,\n        throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === 'boolean' ? opts.throwOnLimitExceeded : false\n    };\n};\n\nmodule.exports = function (str, opts) {\n    var options = normalizeParseOptions(opts);\n\n    if (str === '' || str === null || typeof str === 'undefined') {\n        return options.plainObjects ? { __proto__: null } : {};\n    }\n\n    var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n    var obj = options.plainObjects ? { __proto__: null } : {};\n\n    // Iterate over the keys and setup the new object\n\n    var keys = Object.keys(tempObj);\n    for (var i = 0; i < keys.length; ++i) {\n        var key = keys[i];\n        var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n        obj = utils.merge(obj, newObj, options);\n    }\n\n    if (options.allowSparse === true) {\n        return obj;\n    }\n\n    return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n    brackets: function brackets(prefix) {\n        return prefix + '[]';\n    },\n    comma: 'comma',\n    indices: function indices(prefix, key) {\n        return prefix + '[' + key + ']';\n    },\n    repeat: function repeat(prefix) {\n        return prefix;\n    }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n    push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n    addQueryPrefix: false,\n    allowDots: false,\n    allowEmptyArrays: false,\n    arrayFormat: 'indices',\n    charset: 'utf-8',\n    charsetSentinel: false,\n    commaRoundTrip: false,\n    delimiter: '&',\n    encode: true,\n    encodeDotInKeys: false,\n    encoder: utils.encode,\n    encodeValuesOnly: false,\n    filter: void undefined,\n    format: defaultFormat,\n    formatter: formats.formatters[defaultFormat],\n    // deprecated\n    indices: false,\n    serializeDate: function serializeDate(date) {\n        return toISO.call(date);\n    },\n    skipNulls: false,\n    strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n    return typeof v === 'string'\n        || typeof v === 'number'\n        || typeof v === 'boolean'\n        || typeof v === 'symbol'\n        || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n    object,\n    prefix,\n    generateArrayPrefix,\n    commaRoundTrip,\n    allowEmptyArrays,\n    strictNullHandling,\n    skipNulls,\n    encodeDotInKeys,\n    encoder,\n    filter,\n    sort,\n    allowDots,\n    serializeDate,\n    format,\n    formatter,\n    encodeValuesOnly,\n    charset,\n    sideChannel\n) {\n    var obj = object;\n\n    var tmpSc = sideChannel;\n    var step = 0;\n    var findFlag = false;\n    while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n        // Where object last appeared in the ref tree\n        var pos = tmpSc.get(object);\n        step += 1;\n        if (typeof pos !== 'undefined') {\n            if (pos === step) {\n                throw new RangeError('Cyclic object value');\n            } else {\n                findFlag = true; // Break while\n            }\n        }\n        if (typeof tmpSc.get(sentinel) === 'undefined') {\n            step = 0;\n        }\n    }\n\n    if (typeof filter === 'function') {\n        obj = filter(prefix, obj);\n    } else if (obj instanceof Date) {\n        obj = serializeDate(obj);\n    } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n        obj = utils.maybeMap(obj, function (value) {\n            if (value instanceof Date) {\n                return serializeDate(value);\n            }\n            return value;\n        });\n    }\n\n    if (obj === null) {\n        if (strictNullHandling) {\n            return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n        }\n\n        obj = '';\n    }\n\n    if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n        if (encoder) {\n            var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n            return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n        }\n        return [formatter(prefix) + '=' + formatter(String(obj))];\n    }\n\n    var values = [];\n\n    if (typeof obj === 'undefined') {\n        return values;\n    }\n\n    var objKeys;\n    if (generateArrayPrefix === 'comma' && isArray(obj)) {\n        // we need to join elements in\n        if (encodeValuesOnly && encoder) {\n            obj = utils.maybeMap(obj, encoder);\n        }\n        objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n    } else if (isArray(filter)) {\n        objKeys = filter;\n    } else {\n        var keys = Object.keys(obj);\n        objKeys = sort ? keys.sort(sort) : keys;\n    }\n\n    var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\\./g, '%2E') : String(prefix);\n\n    var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;\n\n    if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n        return adjustedPrefix + '[]';\n    }\n\n    for (var j = 0; j < objKeys.length; ++j) {\n        var key = objKeys[j];\n        var value = typeof key === 'object' && key && typeof key.value !== 'undefined'\n            ? key.value\n            : obj[key];\n\n        if (skipNulls && value === null) {\n            continue;\n        }\n\n        var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\\./g, '%2E') : String(key);\n        var keyPrefix = isArray(obj)\n            ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix\n            : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');\n\n        sideChannel.set(object, step);\n        var valueSideChannel = getSideChannel();\n        valueSideChannel.set(sentinel, sideChannel);\n        pushToArray(values, stringify(\n            value,\n            keyPrefix,\n            generateArrayPrefix,\n            commaRoundTrip,\n            allowEmptyArrays,\n            strictNullHandling,\n            skipNulls,\n            encodeDotInKeys,\n            generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n            filter,\n            sort,\n            allowDots,\n            serializeDate,\n            format,\n            formatter,\n            encodeValuesOnly,\n            charset,\n            valueSideChannel\n        ));\n    }\n\n    return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n    if (!opts) {\n        return defaults;\n    }\n\n    if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n        throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n    }\n\n    if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n        throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n    }\n\n    if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n        throw new TypeError('Encoder has to be a function.');\n    }\n\n    var charset = opts.charset || defaults.charset;\n    if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n        throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n    }\n\n    var format = formats['default'];\n    if (typeof opts.format !== 'undefined') {\n        if (!has.call(formats.formatters, opts.format)) {\n            throw new TypeError('Unknown format option provided.');\n        }\n        format = opts.format;\n    }\n    var formatter = formats.formatters[format];\n\n    var filter = defaults.filter;\n    if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n        filter = opts.filter;\n    }\n\n    var arrayFormat;\n    if (opts.arrayFormat in arrayPrefixGenerators) {\n        arrayFormat = opts.arrayFormat;\n    } else if ('indices' in opts) {\n        arrayFormat = opts.indices ? 'indices' : 'repeat';\n    } else {\n        arrayFormat = defaults.arrayFormat;\n    }\n\n    if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n        throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n    }\n\n    var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n    return {\n        addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n        allowDots: allowDots,\n        allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n        arrayFormat: arrayFormat,\n        charset: charset,\n        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n        commaRoundTrip: !!opts.commaRoundTrip,\n        delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n        encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n        encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n        encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n        encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n        filter: filter,\n        format: format,\n        formatter: formatter,\n        serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n        skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n        sort: typeof opts.sort === 'function' ? opts.sort : null,\n        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n    };\n};\n\nmodule.exports = function (object, opts) {\n    var obj = object;\n    var options = normalizeStringifyOptions(opts);\n\n    var objKeys;\n    var filter;\n\n    if (typeof options.filter === 'function') {\n        filter = options.filter;\n        obj = filter('', obj);\n    } else if (isArray(options.filter)) {\n        filter = options.filter;\n        objKeys = filter;\n    }\n\n    var keys = [];\n\n    if (typeof obj !== 'object' || obj === null) {\n        return '';\n    }\n\n    var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];\n    var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n\n    if (!objKeys) {\n        objKeys = Object.keys(obj);\n    }\n\n    if (options.sort) {\n        objKeys.sort(options.sort);\n    }\n\n    var sideChannel = getSideChannel();\n    for (var i = 0; i < objKeys.length; ++i) {\n        var key = objKeys[i];\n        var value = obj[key];\n\n        if (options.skipNulls && value === null) {\n            continue;\n        }\n        pushToArray(keys, stringify(\n            value,\n            key,\n            generateArrayPrefix,\n            commaRoundTrip,\n            options.allowEmptyArrays,\n            options.strictNullHandling,\n            options.skipNulls,\n            options.encodeDotInKeys,\n            options.encode ? options.encoder : null,\n            options.filter,\n            options.sort,\n            options.allowDots,\n            options.serializeDate,\n            options.format,\n            options.formatter,\n            options.encodeValuesOnly,\n            options.charset,\n            sideChannel\n        ));\n    }\n\n    var joined = keys.join(options.delimiter);\n    var prefix = options.addQueryPrefix === true ? '?' : '';\n\n    if (options.charsetSentinel) {\n        if (options.charset === 'iso-8859-1') {\n            // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n            prefix += 'utf8=%26%2310003%3B&';\n        } else {\n            // encodeURIComponent('✓')\n            prefix += 'utf8=%E2%9C%93&';\n        }\n    }\n\n    return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\nvar getSideChannel = require('side-channel');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\n// Track objects created from arrayLimit overflow using side-channel\n// Stores the current max numeric index for O(1) lookup\nvar overflowChannel = getSideChannel();\n\nvar markOverflow = function markOverflow(obj, maxIndex) {\n    overflowChannel.set(obj, maxIndex);\n    return obj;\n};\n\nvar isOverflow = function isOverflow(obj) {\n    return overflowChannel.has(obj);\n};\n\nvar getMaxIndex = function getMaxIndex(obj) {\n    return overflowChannel.get(obj);\n};\n\nvar setMaxIndex = function setMaxIndex(obj, maxIndex) {\n    overflowChannel.set(obj, maxIndex);\n};\n\nvar hexTable = (function () {\n    var array = [];\n    for (var i = 0; i < 256; ++i) {\n        array[array.length] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase();\n    }\n\n    return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n    while (queue.length > 1) {\n        var item = queue.pop();\n        var obj = item.obj[item.prop];\n\n        if (isArray(obj)) {\n            var compacted = [];\n\n            for (var j = 0; j < obj.length; ++j) {\n                if (typeof obj[j] !== 'undefined') {\n                    compacted[compacted.length] = obj[j];\n                }\n            }\n\n            item.obj[item.prop] = compacted;\n        }\n    }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n    var obj = options && options.plainObjects ? { __proto__: null } : {};\n    for (var i = 0; i < source.length; ++i) {\n        if (typeof source[i] !== 'undefined') {\n            obj[i] = source[i];\n        }\n    }\n\n    return obj;\n};\n\nvar merge = function merge(target, source, options) {\n    /* eslint no-param-reassign: 0 */\n    if (!source) {\n        return target;\n    }\n\n    if (typeof source !== 'object' && typeof source !== 'function') {\n        if (isArray(target)) {\n            var nextIndex = target.length;\n            if (options && typeof options.arrayLimit === 'number' && nextIndex > options.arrayLimit) {\n                return markOverflow(arrayToObject(target.concat(source), options), nextIndex);\n            }\n            target[nextIndex] = source;\n        } else if (target && typeof target === 'object') {\n            if (isOverflow(target)) {\n                // Add at next numeric index for overflow objects\n                var newIndex = getMaxIndex(target) + 1;\n                target[newIndex] = source;\n                setMaxIndex(target, newIndex);\n            } else if (\n                (options && (options.plainObjects || options.allowPrototypes))\n                || !has.call(Object.prototype, source)\n            ) {\n                target[source] = true;\n            }\n        } else {\n            return [target, source];\n        }\n\n        return target;\n    }\n\n    if (!target || typeof target !== 'object') {\n        if (isOverflow(source)) {\n            // Create new object with target at 0, source values shifted by 1\n            var sourceKeys = Object.keys(source);\n            var result = options && options.plainObjects\n                ? { __proto__: null, 0: target }\n                : { 0: target };\n            for (var m = 0; m < sourceKeys.length; m++) {\n                var oldKey = parseInt(sourceKeys[m], 10);\n                result[oldKey + 1] = source[sourceKeys[m]];\n            }\n            return markOverflow(result, getMaxIndex(source) + 1);\n        }\n        var combined = [target].concat(source);\n        if (options && typeof options.arrayLimit === 'number' && combined.length > options.arrayLimit) {\n            return markOverflow(arrayToObject(combined, options), combined.length - 1);\n        }\n        return combined;\n    }\n\n    var mergeTarget = target;\n    if (isArray(target) && !isArray(source)) {\n        mergeTarget = arrayToObject(target, options);\n    }\n\n    if (isArray(target) && isArray(source)) {\n        source.forEach(function (item, i) {\n            if (has.call(target, i)) {\n                var targetItem = target[i];\n                if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n                    target[i] = merge(targetItem, item, options);\n                } else {\n                    target[target.length] = item;\n                }\n            } else {\n                target[i] = item;\n            }\n        });\n        return target;\n    }\n\n    return Object.keys(source).reduce(function (acc, key) {\n        var value = source[key];\n\n        if (has.call(acc, key)) {\n            acc[key] = merge(acc[key], value, options);\n        } else {\n            acc[key] = value;\n        }\n\n        if (isOverflow(source) && !isOverflow(acc)) {\n            markOverflow(acc, getMaxIndex(source));\n        }\n        if (isOverflow(acc)) {\n            var keyNum = parseInt(key, 10);\n            if (String(keyNum) === key && keyNum >= 0 && keyNum > getMaxIndex(acc)) {\n                setMaxIndex(acc, keyNum);\n            }\n        }\n\n        return acc;\n    }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n    return Object.keys(source).reduce(function (acc, key) {\n        acc[key] = source[key];\n        return acc;\n    }, target);\n};\n\nvar decode = function (str, defaultDecoder, charset) {\n    var strWithoutPlus = str.replace(/\\+/g, ' ');\n    if (charset === 'iso-8859-1') {\n        // unescape never throws, no try...catch needed:\n        return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n    }\n    // utf-8\n    try {\n        return decodeURIComponent(strWithoutPlus);\n    } catch (e) {\n        return strWithoutPlus;\n    }\n};\n\nvar limit = 1024;\n\n/* eslint operator-linebreak: [2, \"before\"] */\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n    // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n    // It has been adapted here for stricter adherence to RFC 3986\n    if (str.length === 0) {\n        return str;\n    }\n\n    var string = str;\n    if (typeof str === 'symbol') {\n        string = Symbol.prototype.toString.call(str);\n    } else if (typeof str !== 'string') {\n        string = String(str);\n    }\n\n    if (charset === 'iso-8859-1') {\n        return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n            return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n        });\n    }\n\n    var out = '';\n    for (var j = 0; j < string.length; j += limit) {\n        var segment = string.length >= limit ? string.slice(j, j + limit) : string;\n        var arr = [];\n\n        for (var i = 0; i < segment.length; ++i) {\n            var c = segment.charCodeAt(i);\n            if (\n                c === 0x2D // -\n                || c === 0x2E // .\n                || c === 0x5F // _\n                || c === 0x7E // ~\n                || (c >= 0x30 && c <= 0x39) // 0-9\n                || (c >= 0x41 && c <= 0x5A) // a-z\n                || (c >= 0x61 && c <= 0x7A) // A-Z\n                || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n            ) {\n                arr[arr.length] = segment.charAt(i);\n                continue;\n            }\n\n            if (c < 0x80) {\n                arr[arr.length] = hexTable[c];\n                continue;\n            }\n\n            if (c < 0x800) {\n                arr[arr.length] = hexTable[0xC0 | (c >> 6)]\n                    + hexTable[0x80 | (c & 0x3F)];\n                continue;\n            }\n\n            if (c < 0xD800 || c >= 0xE000) {\n                arr[arr.length] = hexTable[0xE0 | (c >> 12)]\n                    + hexTable[0x80 | ((c >> 6) & 0x3F)]\n                    + hexTable[0x80 | (c & 0x3F)];\n                continue;\n            }\n\n            i += 1;\n            c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF));\n\n            arr[arr.length] = hexTable[0xF0 | (c >> 18)]\n                + hexTable[0x80 | ((c >> 12) & 0x3F)]\n                + hexTable[0x80 | ((c >> 6) & 0x3F)]\n                + hexTable[0x80 | (c & 0x3F)];\n        }\n\n        out += arr.join('');\n    }\n\n    return out;\n};\n\nvar compact = function compact(value) {\n    var queue = [{ obj: { o: value }, prop: 'o' }];\n    var refs = [];\n\n    for (var i = 0; i < queue.length; ++i) {\n        var item = queue[i];\n        var obj = item.obj[item.prop];\n\n        var keys = Object.keys(obj);\n        for (var j = 0; j < keys.length; ++j) {\n            var key = keys[j];\n            var val = obj[key];\n            if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n                queue[queue.length] = { obj: obj, prop: key };\n                refs[refs.length] = val;\n            }\n        }\n    }\n\n    compactQueue(queue);\n\n    return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n    return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n    if (!obj || typeof obj !== 'object') {\n        return false;\n    }\n\n    return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b, arrayLimit, plainObjects) {\n    // If 'a' is already an overflow object, add to it\n    if (isOverflow(a)) {\n        var newIndex = getMaxIndex(a) + 1;\n        a[newIndex] = b;\n        setMaxIndex(a, newIndex);\n        return a;\n    }\n\n    var result = [].concat(a, b);\n    if (result.length > arrayLimit) {\n        return markOverflow(arrayToObject(result, { plainObjects: plainObjects }), result.length - 1);\n    }\n    return result;\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n    if (isArray(val)) {\n        var mapped = [];\n        for (var i = 0; i < val.length; i += 1) {\n            mapped[mapped.length] = fn(val[i]);\n        }\n        return mapped;\n    }\n    return fn(val);\n};\n\nmodule.exports = {\n    arrayToObject: arrayToObject,\n    assign: assign,\n    combine: combine,\n    compact: compact,\n    decode: decode,\n    encode: encode,\n    isBuffer: isBuffer,\n    isOverflow: isOverflow,\n    isRegExp: isRegExp,\n    markOverflow: markOverflow,\n    maybeMap: maybeMap,\n    merge: merge\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n  , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n  try {\n    return decodeURIComponent(input.replace(/\\+/g, ' '));\n  } catch (e) {\n    return null;\n  }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n  try {\n    return encodeURIComponent(input);\n  } catch (e) {\n    return null;\n  }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n  var parser = /([^=?#&]+)=?([^&]*)/g\n    , result = {}\n    , part;\n\n  while (part = parser.exec(query)) {\n    var key = decode(part[1])\n      , value = decode(part[2]);\n\n    //\n    // Prevent overriding of existing properties. This ensures that build-in\n    // methods like `toString` or __proto__ are not overriden by malicious\n    // querystrings.\n    //\n    // In the case if failed decoding, we want to omit the key/value pairs\n    // from the result.\n    //\n    if (key === null || value === null || key in result) continue;\n    result[key] = value;\n  }\n\n  return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n  prefix = prefix || '';\n\n  var pairs = []\n    , value\n    , key;\n\n  //\n  // Optionally prefix with a '?' if needed\n  //\n  if ('string' !== typeof prefix) prefix = '?';\n\n  for (key in obj) {\n    if (has.call(obj, key)) {\n      value = obj[key];\n\n      //\n      // Edge cases where we actually want to encode the value to an empty\n      // string instead of the stringified value.\n      //\n      if (!value && (value === null || value === undef || isNaN(value))) {\n        value = '';\n      }\n\n      key = encode(key);\n      value = encode(value);\n\n      //\n      // If we failed to encode the strings, we should bail out as we don't\n      // want to add invalid strings to the query.\n      //\n      if (key === null || value === null) continue;\n      pairs.push(key +'='+ value);\n    }\n  }\n\n  return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n  protocol = protocol.split(':')[0];\n  port = +port;\n\n  if (!port) return false;\n\n  switch (protocol) {\n    case 'http':\n    case 'ws':\n    return port !== 80;\n\n    case 'https':\n    case 'wss':\n    return port !== 443;\n\n    case 'ftp':\n    return port !== 21;\n\n    case 'gopher':\n    return port !== 70;\n\n    case 'file':\n    return false;\n  }\n\n  return port !== 0;\n};\n","'use strict';\n\nvar callBound = require('call-bound');\nvar isRegex = require('is-regex');\n\nvar $exec = callBound('RegExp.prototype.exec');\nvar $TypeError = require('es-errors/type');\n\n/** @type {import('.')} */\nmodule.exports = function regexTester(regex) {\n\tif (!isRegex(regex)) {\n\t\tthrow new $TypeError('`regex` must be a RegExp');\n\t}\n\treturn function test(s) {\n\t\treturn $exec(regex, s) !== null;\n\t};\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* 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.\n* By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('./list.d.ts').listGetNode} */\n// eslint-disable-next-line consistent-return\nvar listGetNode = function (list, key, isDelete) {\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\t// eslint-disable-next-line eqeqeq\n\tfor (; (curr = prev.next) != null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tif (!isDelete) {\n\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\tcurr.next = /** @type {NonNullable} */ (list.next);\n\t\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\t}\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('./list.d.ts').listGet} */\nvar listGet = function (objects, key) {\n\tif (!objects) {\n\t\treturn void undefined;\n\t}\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('./list.d.ts').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('./list.d.ts').ListNode} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('./list.d.ts').listHas} */\nvar listHas = function (objects, key) {\n\tif (!objects) {\n\t\treturn false;\n\t}\n\treturn !!listGetNode(objects, key);\n};\n/** @type {import('./list.d.ts').listDelete} */\n// eslint-disable-next-line consistent-return\nvar listDelete = function (objects, key) {\n\tif (objects) {\n\t\treturn listGetNode(objects, key, true);\n\t}\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannelList() {\n\t/** @typedef {ReturnType} Channel */\n\t/** @typedef {Parameters[0]} K */\n\t/** @typedef {Parameters[1]} V */\n\n\t/** @type {import('./list.d.ts').RootNode | undefined} */ var $o;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tvar root = $o && $o.next;\n\t\t\tvar deletedNode = listDelete($o, key);\n\t\t\tif (deletedNode && root && root === deletedNode) {\n\t\t\t\t$o = void undefined;\n\t\t\t}\n\t\t\treturn !!deletedNode;\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn listGet($o, key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn listHas($o, key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$o) {\n\t\t\t\t// 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\n\t\t\t\t$o = {\n\t\t\t\t\tnext: void undefined\n\t\t\t\t};\n\t\t\t}\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tlistSet(/** @type {NonNullable} */ ($o), key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $Map = GetIntrinsic('%Map%', true);\n\n/** @type {(thisArg: Map, key: K) => V} */\nvar $mapGet = callBound('Map.prototype.get', true);\n/** @type {(thisArg: Map, key: K, value: V) => void} */\nvar $mapSet = callBound('Map.prototype.set', true);\n/** @type {(thisArg: Map, key: K) => boolean} */\nvar $mapHas = callBound('Map.prototype.has', true);\n/** @type {(thisArg: Map, key: K) => boolean} */\nvar $mapDelete = callBound('Map.prototype.delete', true);\n/** @type {(thisArg: Map) => number} */\nvar $mapSize = callBound('Map.prototype.size', true);\n\n/** @type {import('.')} */\nmodule.exports = !!$Map && /** @type {Exclude} */ function getSideChannelMap() {\n\t/** @typedef {ReturnType} Channel */\n\t/** @typedef {Parameters[0]} K */\n\t/** @typedef {Parameters[1]} V */\n\n\t/** @type {Map | undefined} */ var $m;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tif ($m) {\n\t\t\t\tvar result = $mapDelete($m, key);\n\t\t\t\tif ($mapSize($m) === 0) {\n\t\t\t\t\t$m = void undefined;\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($m) {\n\t\t\t\treturn $mapGet($m, key);\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($m) {\n\t\t\t\treturn $mapHas($m, key);\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$m) {\n\t\t\t\t// @ts-expect-error TS can't handle narrowing a variable inside a closure\n\t\t\t\t$m = new $Map();\n\t\t\t}\n\t\t\t$mapSet($m, key, value);\n\t\t}\n\t};\n\n\t// @ts-expect-error TODO: figure out why TS is erroring here\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\nvar getSideChannelMap = require('side-channel-map');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\n\n/** @type {(thisArg: WeakMap, key: K) => V} */\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\n/** @type {(thisArg: WeakMap, key: K, value: V) => void} */\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\n/** @type {(thisArg: WeakMap, key: K) => boolean} */\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\n/** @type {(thisArg: WeakMap, key: K) => boolean} */\nvar $weakMapDelete = callBound('WeakMap.prototype.delete', true);\n\n/** @type {import('.')} */\nmodule.exports = $WeakMap\n\t? /** @type {Exclude} */ function getSideChannelWeakMap() {\n\t\t/** @typedef {ReturnType} Channel */\n\t\t/** @typedef {Parameters[0]} K */\n\t\t/** @typedef {Parameters[1]} V */\n\n\t\t/** @type {WeakMap | undefined} */ var $wm;\n\t\t/** @type {Channel | undefined} */ var $m;\n\n\t\t/** @type {Channel} */\n\t\tvar channel = {\n\t\t\tassert: function (key) {\n\t\t\t\tif (!channel.has(key)) {\n\t\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t\t}\n\t\t\t},\n\t\t\t'delete': function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapDelete($wm, key);\n\t\t\t\t\t}\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif ($m) {\n\t\t\t\t\t\treturn $m['delete'](key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tget: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn $m && $m.get(key);\n\t\t\t},\n\t\t\thas: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn !!$m && $m.has(key);\n\t\t\t},\n\t\t\tset: function (key, value) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif (!$wm) {\n\t\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t\t}\n\t\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif (!$m) {\n\t\t\t\t\t\t$m = getSideChannelMap();\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\t\t/** @type {NonNullable} */ ($m).set(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// @ts-expect-error TODO: figure out why this is erroring\n\t\treturn channel;\n\t}\n\t: getSideChannelMap;\n","'use strict';\n\nvar $TypeError = require('es-errors/type');\nvar inspect = require('object-inspect');\nvar getSideChannelList = require('side-channel-list');\nvar getSideChannelMap = require('side-channel-map');\nvar getSideChannelWeakMap = require('side-channel-weakmap');\n\nvar makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @typedef {ReturnType} Channel */\n\n\t/** @type {Channel | undefined} */ var $channelData;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\treturn !!$channelData && $channelData['delete'](key);\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn $channelData && $channelData.get(key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn !!$channelData && $channelData.has(key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$channelData) {\n\t\t\t\t$channelData = makeChannel();\n\t\t\t}\n\n\t\t\t$channelData.set(key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || checkTypeSupport('arraybuffer')\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && checkTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + Buffer.from(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\tself._socketTimeout = null\n\tself._socketTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tif ('timeout' in opts && opts.timeout !== 0) {\n\t\tself.setTimeout(opts.timeout)\n\t}\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n        body = new Blob(self._body, {\n            type: (headersObj['content-type'] || {}).value || ''\n        });\n    }\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._resetTimers(false)\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tself._resetTimers(true)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself._resetTimers(true)\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tself._resetTimers(false)\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress(self._resetTimers.bind(self))\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._resetTimers.bind(self))\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype._resetTimers = function (done) {\n\tvar self = this\n\n\tglobal.clearTimeout(self._socketTimer)\n\tself._socketTimer = null\n\n\tif (done) {\n\t\tglobal.clearTimeout(self._fetchTimer)\n\t\tself._fetchTimer = null\n\t} else if (self._socketTimeout) {\n\t\tself._socketTimer = global.setTimeout(function () {\n\t\t\tself.emit('timeout')\n\t\t}, self._socketTimeout)\n\t}\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function (err) {\n\tvar self = this\n\tself._destroyed = true\n\tself._resetTimers(true)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n\n\tif (err)\n\t\tself.emit('error', err)\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.setTimeout = function (timeout, cb) {\n\tvar self = this\n\n\tif (cb)\n\t\tself.once('timeout', cb)\n\n\tself._socketTimeout = timeout\n\tself._resetTimers(false)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, resetTimers) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\tresetTimers(false)\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(Buffer.from(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tresetTimers(result.done)\n\t\t\t\tif (result.done) {\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(Buffer.from(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tresetTimers(true)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function (resetTimers) {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text':\n\t\t\tresponse = xhr.responseText\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = Buffer.alloc(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(Buffer.from(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tresetTimers(true)\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tresetTimers(true)\n\t\tself.push(null)\n\t}\n}\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n  if (!Base) {\n    Base = Error;\n  }\n\n  function getMessage(arg1, arg2, arg3) {\n    if (typeof message === 'string') {\n      return message;\n    } else {\n      return message(arg1, arg2, arg3);\n    }\n  }\n\n  var NodeError =\n  /*#__PURE__*/\n  function (_Base) {\n    _inheritsLoose(NodeError, _Base);\n\n    function NodeError(arg1, arg2, arg3) {\n      return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n    }\n\n    return NodeError;\n  }(Base);\n\n  NodeError.prototype.name = Base.name;\n  NodeError.prototype.code = code;\n  codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n  if (Array.isArray(expected)) {\n    var len = expected.length;\n    expected = expected.map(function (i) {\n      return String(i);\n    });\n\n    if (len > 2) {\n      return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n    } else if (len === 2) {\n      return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n    } else {\n      return \"of \".concat(thing, \" \").concat(expected[0]);\n    }\n  } else {\n    return \"of \".concat(thing, \" \").concat(String(expected));\n  }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n  return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n  if (this_len === undefined || this_len > str.length) {\n    this_len = str.length;\n  }\n\n  return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n  if (typeof start !== 'number') {\n    start = 0;\n  }\n\n  if (start + search.length > str.length) {\n    return false;\n  } else {\n    return str.indexOf(search, start) !== -1;\n  }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n  return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n  // determiner: 'must be' or 'must not be'\n  var determiner;\n\n  if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n    determiner = 'must not be';\n    expected = expected.replace(/^not /, '');\n  } else {\n    determiner = 'must be';\n  }\n\n  var msg;\n\n  if (endsWith(name, ' argument')) {\n    // For cases like 'first argument'\n    msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n  } else {\n    var type = includes(name, '.') ? 'property' : 'argument';\n    msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n  }\n\n  msg += \". Received type \".concat(typeof actual);\n  return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n  return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n  return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n  return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n  var keys = [];\n  for (var key in obj) keys.push(key);\n  return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n  // Allow the keys array to be GC'ed.\n  var keys = objectKeys(Writable.prototype);\n  for (var v = 0; v < keys.length; v++) {\n    var method = keys[v];\n    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n  }\n}\nfunction Duplex(options) {\n  if (!(this instanceof Duplex)) return new Duplex(options);\n  Readable.call(this, options);\n  Writable.call(this, options);\n  this.allowHalfOpen = true;\n  if (options) {\n    if (options.readable === false) this.readable = false;\n    if (options.writable === false) this.writable = false;\n    if (options.allowHalfOpen === false) {\n      this.allowHalfOpen = false;\n      this.once('end', onend);\n    }\n  }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.highWaterMark;\n  }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState && this._writableState.getBuffer();\n  }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.length;\n  }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n  // If the writable side ended, then we're ok.\n  if (this._writableState.ended) return;\n\n  // no more data can be written.\n  // But allow more writes to happen in this tick.\n  process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n  self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed && this._writableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n    this._writableState.destroyed = value;\n  }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n  if (!(this instanceof PassThrough)) return new PassThrough(options);\n  Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n  cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n  return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n  debug = debugUtil.debuglog('stream');\n} else {\n  debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n  getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n  ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n  ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n  ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n  // Sadly this is not cacheable as some libraries bundle their own\n  // event emitter implementation with them.\n  if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n  // This is a hack to make sure that our error handler is attached before any\n  // userland ones.  NEVER DO THIS. This is here only because this code needs\n  // to continue to work with older versions of Node.js that do not include\n  // the prependListener() method. The goal is to eventually remove this hack.\n  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n  Duplex = Duplex || require('./_stream_duplex');\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n  // object stream flag. Used to make read(n) ignore n and to\n  // make all the buffer merging and length checks go away\n  this.objectMode = !!options.objectMode;\n  if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n  // the point at which it stops calling _read() to fill the buffer\n  // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n  this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n  // A linked list is used to store data chunks instead of an array because the\n  // linked list can remove elements from the beginning faster than\n  // array.shift()\n  this.buffer = new BufferList();\n  this.length = 0;\n  this.pipes = null;\n  this.pipesCount = 0;\n  this.flowing = null;\n  this.ended = false;\n  this.endEmitted = false;\n  this.reading = false;\n\n  // a flag to be able to tell if the event 'readable'/'data' is emitted\n  // immediately, or on a later tick.  We set this to true at first, because\n  // any actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first read call.\n  this.sync = true;\n\n  // whenever we return null, then we set a flag to say\n  // that we're awaiting a 'readable' event emission.\n  this.needReadable = false;\n  this.emittedReadable = false;\n  this.readableListening = false;\n  this.resumeScheduled = false;\n  this.paused = true;\n\n  // Should close be emitted on destroy. Defaults to true.\n  this.emitClose = options.emitClose !== false;\n\n  // Should .destroy() be called after 'end' (and potentially 'finish')\n  this.autoDestroy = !!options.autoDestroy;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // the number of writers that are awaiting a drain event in .pipe()s\n  this.awaitDrain = 0;\n\n  // if true, a maybeReadMore has been scheduled\n  this.readingMore = false;\n  this.decoder = null;\n  this.encoding = null;\n  if (options.encoding) {\n    if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n    this.decoder = new StringDecoder(options.encoding);\n    this.encoding = options.encoding;\n  }\n}\nfunction Readable(options) {\n  Duplex = Duplex || require('./_stream_duplex');\n  if (!(this instanceof Readable)) return new Readable(options);\n\n  // Checking for a Stream.Duplex instance is faster here instead of inside\n  // the ReadableState constructor, at least with V8 6.5\n  var isDuplex = this instanceof Duplex;\n  this._readableState = new ReadableState(options, this, isDuplex);\n\n  // legacy\n  this.readable = true;\n  if (options) {\n    if (typeof options.read === 'function') this._read = options.read;\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n  }\n  Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._readableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._readableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n  }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n  cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n  var state = this._readableState;\n  var skipChunkCheck;\n  if (!state.objectMode) {\n    if (typeof chunk === 'string') {\n      encoding = encoding || state.defaultEncoding;\n      if (encoding !== state.encoding) {\n        chunk = Buffer.from(chunk, encoding);\n        encoding = '';\n      }\n      skipChunkCheck = true;\n    }\n  } else {\n    skipChunkCheck = true;\n  }\n  return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n  return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n  debug('readableAddChunk', chunk);\n  var state = stream._readableState;\n  if (chunk === null) {\n    state.reading = false;\n    onEofChunk(stream, state);\n  } else {\n    var er;\n    if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n    if (er) {\n      errorOrDestroy(stream, er);\n    } else if (state.objectMode || chunk && chunk.length > 0) {\n      if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n        chunk = _uint8ArrayToBuffer(chunk);\n      }\n      if (addToFront) {\n        if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n      } else if (state.ended) {\n        errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n      } else if (state.destroyed) {\n        return false;\n      } else {\n        state.reading = false;\n        if (state.decoder && !encoding) {\n          chunk = state.decoder.write(chunk);\n          if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n        } else {\n          addChunk(stream, state, chunk, false);\n        }\n      }\n    } else if (!addToFront) {\n      state.reading = false;\n      maybeReadMore(stream, state);\n    }\n  }\n\n  // We can push more data if we are below the highWaterMark.\n  // Also, if we have no data yet, we can stand some more bytes.\n  // This is to work around cases where hwm=0, such as the repl.\n  return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n  if (state.flowing && state.length === 0 && !state.sync) {\n    state.awaitDrain = 0;\n    stream.emit('data', chunk);\n  } else {\n    // update the buffer info.\n    state.length += state.objectMode ? 1 : chunk.length;\n    if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n    if (state.needReadable) emitReadable(stream);\n  }\n  maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n  var er;\n  if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n    er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n  }\n  return er;\n}\nReadable.prototype.isPaused = function () {\n  return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n  if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n  var decoder = new StringDecoder(enc);\n  this._readableState.decoder = decoder;\n  // If setEncoding(null), decoder.encoding equals utf8\n  this._readableState.encoding = this._readableState.decoder.encoding;\n\n  // Iterate over current buffer to convert already stored Buffers:\n  var p = this._readableState.buffer.head;\n  var content = '';\n  while (p !== null) {\n    content += decoder.write(p.data);\n    p = p.next;\n  }\n  this._readableState.buffer.clear();\n  if (content !== '') this._readableState.buffer.push(content);\n  this._readableState.length = content.length;\n  return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n  if (n >= MAX_HWM) {\n    // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n    n = MAX_HWM;\n  } else {\n    // Get the next highest power of 2 to prevent increasing hwm excessively in\n    // tiny amounts\n    n--;\n    n |= n >>> 1;\n    n |= n >>> 2;\n    n |= n >>> 4;\n    n |= n >>> 8;\n    n |= n >>> 16;\n    n++;\n  }\n  return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n  if (n <= 0 || state.length === 0 && state.ended) return 0;\n  if (state.objectMode) return 1;\n  if (n !== n) {\n    // Only flow one buffer at a time\n    if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n  }\n  // If we're asking for more than the current hwm, then raise the hwm.\n  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n  if (n <= state.length) return n;\n  // Don't have enough\n  if (!state.ended) {\n    state.needReadable = true;\n    return 0;\n  }\n  return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n  debug('read', n);\n  n = parseInt(n, 10);\n  var state = this._readableState;\n  var nOrig = n;\n  if (n !== 0) state.emittedReadable = false;\n\n  // if we're doing read(0) to trigger a readable event, but we\n  // already have a bunch of data in the buffer, then just trigger\n  // the 'readable' event and move on.\n  if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n    debug('read: emitReadable', state.length, state.ended);\n    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n    return null;\n  }\n  n = howMuchToRead(n, state);\n\n  // if we've ended, and we're now clear, then finish it up.\n  if (n === 0 && state.ended) {\n    if (state.length === 0) endReadable(this);\n    return null;\n  }\n\n  // All the actual chunk generation logic needs to be\n  // *below* the call to _read.  The reason is that in certain\n  // synthetic stream cases, such as passthrough streams, _read\n  // may be a completely synchronous operation which may change\n  // the state of the read buffer, providing enough data when\n  // before there was *not* enough.\n  //\n  // So, the steps are:\n  // 1. Figure out what the state of things will be after we do\n  // a read from the buffer.\n  //\n  // 2. If that resulting state will trigger a _read, then call _read.\n  // Note that this may be asynchronous, or synchronous.  Yes, it is\n  // deeply ugly to write APIs this way, but that still doesn't mean\n  // that the Readable class should behave improperly, as streams are\n  // designed to be sync/async agnostic.\n  // Take note if the _read call is sync or async (ie, if the read call\n  // has returned yet), so that we know whether or not it's safe to emit\n  // 'readable' etc.\n  //\n  // 3. Actually pull the requested chunks out of the buffer and return.\n\n  // if we need a readable event, then we need to do some reading.\n  var doRead = state.needReadable;\n  debug('need readable', doRead);\n\n  // if we currently have less than the highWaterMark, then also read some\n  if (state.length === 0 || state.length - n < state.highWaterMark) {\n    doRead = true;\n    debug('length less than watermark', doRead);\n  }\n\n  // however, if we've ended, then there's no point, and if we're already\n  // reading, then it's unnecessary.\n  if (state.ended || state.reading) {\n    doRead = false;\n    debug('reading or ended', doRead);\n  } else if (doRead) {\n    debug('do read');\n    state.reading = true;\n    state.sync = true;\n    // if the length is currently zero, then we *need* a readable event.\n    if (state.length === 0) state.needReadable = true;\n    // call internal read method\n    this._read(state.highWaterMark);\n    state.sync = false;\n    // If _read pushed data synchronously, then `reading` will be false,\n    // and we need to re-evaluate how much data we can return to the user.\n    if (!state.reading) n = howMuchToRead(nOrig, state);\n  }\n  var ret;\n  if (n > 0) ret = fromList(n, state);else ret = null;\n  if (ret === null) {\n    state.needReadable = state.length <= state.highWaterMark;\n    n = 0;\n  } else {\n    state.length -= n;\n    state.awaitDrain = 0;\n  }\n  if (state.length === 0) {\n    // If we have nothing in the buffer, then we want to know\n    // as soon as we *do* get something into the buffer.\n    if (!state.ended) state.needReadable = true;\n\n    // If we tried to read() past the EOF, then emit end on the next tick.\n    if (nOrig !== n && state.ended) endReadable(this);\n  }\n  if (ret !== null) this.emit('data', ret);\n  return ret;\n};\nfunction onEofChunk(stream, state) {\n  debug('onEofChunk');\n  if (state.ended) return;\n  if (state.decoder) {\n    var chunk = state.decoder.end();\n    if (chunk && chunk.length) {\n      state.buffer.push(chunk);\n      state.length += state.objectMode ? 1 : chunk.length;\n    }\n  }\n  state.ended = true;\n  if (state.sync) {\n    // if we are sync, wait until next tick to emit the data.\n    // Otherwise we risk emitting data in the flow()\n    // the readable code triggers during a read() call\n    emitReadable(stream);\n  } else {\n    // emit 'readable' now to make sure it gets picked up.\n    state.needReadable = false;\n    if (!state.emittedReadable) {\n      state.emittedReadable = true;\n      emitReadable_(stream);\n    }\n  }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow.  This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n  var state = stream._readableState;\n  debug('emitReadable', state.needReadable, state.emittedReadable);\n  state.needReadable = false;\n  if (!state.emittedReadable) {\n    debug('emitReadable', state.flowing);\n    state.emittedReadable = true;\n    process.nextTick(emitReadable_, stream);\n  }\n}\nfunction emitReadable_(stream) {\n  var state = stream._readableState;\n  debug('emitReadable_', state.destroyed, state.length, state.ended);\n  if (!state.destroyed && (state.length || state.ended)) {\n    stream.emit('readable');\n    state.emittedReadable = false;\n  }\n\n  // The stream needs another readable event if\n  // 1. It is not flowing, as the flow mechanism will take\n  //    care of it.\n  // 2. It is not ended.\n  // 3. It is below the highWaterMark, so we can schedule\n  //    another readable later.\n  state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n  flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data.  that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n  if (!state.readingMore) {\n    state.readingMore = true;\n    process.nextTick(maybeReadMore_, stream, state);\n  }\n}\nfunction maybeReadMore_(stream, state) {\n  // Attempt to read more data if we should.\n  //\n  // The conditions for reading more data are (one of):\n  // - Not enough data buffered (state.length < state.highWaterMark). The loop\n  //   is responsible for filling the buffer with enough data if such data\n  //   is available. If highWaterMark is 0 and we are not in the flowing mode\n  //   we should _not_ attempt to buffer any extra data. We'll get more data\n  //   when the stream consumer calls read() instead.\n  // - No data in the buffer, and the stream is in flowing mode. In this mode\n  //   the loop below is responsible for ensuring read() is called. Failing to\n  //   call read here would abort the flow and there's no other mechanism for\n  //   continuing the flow if the stream consumer has just subscribed to the\n  //   'data' event.\n  //\n  // In addition to the above conditions to keep reading data, the following\n  // conditions prevent the data from being read:\n  // - The stream has ended (state.ended).\n  // - There is already a pending 'read' operation (state.reading). This is a\n  //   case where the the stream has called the implementation defined _read()\n  //   method, but they are processing the call asynchronously and have _not_\n  //   called push() with new data. In this case we skip performing more\n  //   read()s. The execution ends in this method again after the _read() ends\n  //   up calling push() with more data.\n  while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n    var len = state.length;\n    debug('maybeReadMore read 0');\n    stream.read(0);\n    if (len === state.length)\n      // didn't get any data, stop spinning.\n      break;\n  }\n  state.readingMore = false;\n}\n\n// abstract method.  to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n  errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n  var src = this;\n  var state = this._readableState;\n  switch (state.pipesCount) {\n    case 0:\n      state.pipes = dest;\n      break;\n    case 1:\n      state.pipes = [state.pipes, dest];\n      break;\n    default:\n      state.pipes.push(dest);\n      break;\n  }\n  state.pipesCount += 1;\n  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n  var endFn = doEnd ? onend : unpipe;\n  if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n  dest.on('unpipe', onunpipe);\n  function onunpipe(readable, unpipeInfo) {\n    debug('onunpipe');\n    if (readable === src) {\n      if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n        unpipeInfo.hasUnpiped = true;\n        cleanup();\n      }\n    }\n  }\n  function onend() {\n    debug('onend');\n    dest.end();\n  }\n\n  // when the dest drains, it reduces the awaitDrain counter\n  // on the source.  This would be more elegant with a .once()\n  // handler in flow(), but adding and removing repeatedly is\n  // too slow.\n  var ondrain = pipeOnDrain(src);\n  dest.on('drain', ondrain);\n  var cleanedUp = false;\n  function cleanup() {\n    debug('cleanup');\n    // cleanup event handlers once the pipe is broken\n    dest.removeListener('close', onclose);\n    dest.removeListener('finish', onfinish);\n    dest.removeListener('drain', ondrain);\n    dest.removeListener('error', onerror);\n    dest.removeListener('unpipe', onunpipe);\n    src.removeListener('end', onend);\n    src.removeListener('end', unpipe);\n    src.removeListener('data', ondata);\n    cleanedUp = true;\n\n    // if the reader is waiting for a drain event from this\n    // specific writer, then it would cause it to never start\n    // flowing again.\n    // So, if this is awaiting a drain, then we just call it now.\n    // If we don't know, then assume that we are waiting for one.\n    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n  }\n  src.on('data', ondata);\n  function ondata(chunk) {\n    debug('ondata');\n    var ret = dest.write(chunk);\n    debug('dest.write', ret);\n    if (ret === false) {\n      // If the user unpiped during `dest.write()`, it is possible\n      // to get stuck in a permanently paused state if that write\n      // also returned false.\n      // => Check whether `dest` is still a piping destination.\n      if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n        debug('false write response, pause', state.awaitDrain);\n        state.awaitDrain++;\n      }\n      src.pause();\n    }\n  }\n\n  // if the dest has an error, then stop piping into it.\n  // however, don't suppress the throwing behavior for this.\n  function onerror(er) {\n    debug('onerror', er);\n    unpipe();\n    dest.removeListener('error', onerror);\n    if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n  }\n\n  // Make sure our error handler is attached before userland ones.\n  prependListener(dest, 'error', onerror);\n\n  // Both close and finish should trigger unpipe, but only once.\n  function onclose() {\n    dest.removeListener('finish', onfinish);\n    unpipe();\n  }\n  dest.once('close', onclose);\n  function onfinish() {\n    debug('onfinish');\n    dest.removeListener('close', onclose);\n    unpipe();\n  }\n  dest.once('finish', onfinish);\n  function unpipe() {\n    debug('unpipe');\n    src.unpipe(dest);\n  }\n\n  // tell the dest that it's being piped to\n  dest.emit('pipe', src);\n\n  // start the flow if it hasn't been started already.\n  if (!state.flowing) {\n    debug('pipe resume');\n    src.resume();\n  }\n  return dest;\n};\nfunction pipeOnDrain(src) {\n  return function pipeOnDrainFunctionResult() {\n    var state = src._readableState;\n    debug('pipeOnDrain', state.awaitDrain);\n    if (state.awaitDrain) state.awaitDrain--;\n    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n      state.flowing = true;\n      flow(src);\n    }\n  };\n}\nReadable.prototype.unpipe = function (dest) {\n  var state = this._readableState;\n  var unpipeInfo = {\n    hasUnpiped: false\n  };\n\n  // if we're not piping anywhere, then do nothing.\n  if (state.pipesCount === 0) return this;\n\n  // just one destination.  most common case.\n  if (state.pipesCount === 1) {\n    // passed in one, but it's not the right one.\n    if (dest && dest !== state.pipes) return this;\n    if (!dest) dest = state.pipes;\n\n    // got a match.\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n    if (dest) dest.emit('unpipe', this, unpipeInfo);\n    return this;\n  }\n\n  // slow case. multiple pipe destinations.\n\n  if (!dest) {\n    // remove all.\n    var dests = state.pipes;\n    var len = state.pipesCount;\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n    for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n      hasUnpiped: false\n    });\n    return this;\n  }\n\n  // try to find the right one.\n  var index = indexOf(state.pipes, dest);\n  if (index === -1) return this;\n  state.pipes.splice(index, 1);\n  state.pipesCount -= 1;\n  if (state.pipesCount === 1) state.pipes = state.pipes[0];\n  dest.emit('unpipe', this, unpipeInfo);\n  return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n  var res = Stream.prototype.on.call(this, ev, fn);\n  var state = this._readableState;\n  if (ev === 'data') {\n    // update readableListening so that resume() may be a no-op\n    // a few lines down. This is needed to support once('readable').\n    state.readableListening = this.listenerCount('readable') > 0;\n\n    // Try start flowing on next tick if stream isn't explicitly paused\n    if (state.flowing !== false) this.resume();\n  } else if (ev === 'readable') {\n    if (!state.endEmitted && !state.readableListening) {\n      state.readableListening = state.needReadable = true;\n      state.flowing = false;\n      state.emittedReadable = false;\n      debug('on readable', state.length, state.reading);\n      if (state.length) {\n        emitReadable(this);\n      } else if (!state.reading) {\n        process.nextTick(nReadingNextTick, this);\n      }\n    }\n  }\n  return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n  var res = Stream.prototype.removeListener.call(this, ev, fn);\n  if (ev === 'readable') {\n    // We need to check if there is someone still listening to\n    // readable and reset the state. However this needs to happen\n    // after readable has been emitted but before I/O (nextTick) to\n    // support once('readable', fn) cycles. This means that calling\n    // resume within the same tick will have no\n    // effect.\n    process.nextTick(updateReadableListening, this);\n  }\n  return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n  var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n  if (ev === 'readable' || ev === undefined) {\n    // We need to check if there is someone still listening to\n    // readable and reset the state. However this needs to happen\n    // after readable has been emitted but before I/O (nextTick) to\n    // support once('readable', fn) cycles. This means that calling\n    // resume within the same tick will have no\n    // effect.\n    process.nextTick(updateReadableListening, this);\n  }\n  return res;\n};\nfunction updateReadableListening(self) {\n  var state = self._readableState;\n  state.readableListening = self.listenerCount('readable') > 0;\n  if (state.resumeScheduled && !state.paused) {\n    // flowing needs to be set to true now, otherwise\n    // the upcoming resume will not flow.\n    state.flowing = true;\n\n    // crude way to check if we should resume\n  } else if (self.listenerCount('data') > 0) {\n    self.resume();\n  }\n}\nfunction nReadingNextTick(self) {\n  debug('readable nexttick read 0');\n  self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n  var state = this._readableState;\n  if (!state.flowing) {\n    debug('resume');\n    // we flow only if there is no one listening\n    // for readable, but we still have to call\n    // resume()\n    state.flowing = !state.readableListening;\n    resume(this, state);\n  }\n  state.paused = false;\n  return this;\n};\nfunction resume(stream, state) {\n  if (!state.resumeScheduled) {\n    state.resumeScheduled = true;\n    process.nextTick(resume_, stream, state);\n  }\n}\nfunction resume_(stream, state) {\n  debug('resume', state.reading);\n  if (!state.reading) {\n    stream.read(0);\n  }\n  state.resumeScheduled = false;\n  stream.emit('resume');\n  flow(stream);\n  if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n  debug('call pause flowing=%j', this._readableState.flowing);\n  if (this._readableState.flowing !== false) {\n    debug('pause');\n    this._readableState.flowing = false;\n    this.emit('pause');\n  }\n  this._readableState.paused = true;\n  return this;\n};\nfunction flow(stream) {\n  var state = stream._readableState;\n  debug('flow', state.flowing);\n  while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n  var _this = this;\n  var state = this._readableState;\n  var paused = false;\n  stream.on('end', function () {\n    debug('wrapped end');\n    if (state.decoder && !state.ended) {\n      var chunk = state.decoder.end();\n      if (chunk && chunk.length) _this.push(chunk);\n    }\n    _this.push(null);\n  });\n  stream.on('data', function (chunk) {\n    debug('wrapped data');\n    if (state.decoder) chunk = state.decoder.write(chunk);\n\n    // don't skip over falsy values in objectMode\n    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n    var ret = _this.push(chunk);\n    if (!ret) {\n      paused = true;\n      stream.pause();\n    }\n  });\n\n  // proxy all the other methods.\n  // important when wrapping filters and duplexes.\n  for (var i in stream) {\n    if (this[i] === undefined && typeof stream[i] === 'function') {\n      this[i] = function methodWrap(method) {\n        return function methodWrapReturnFunction() {\n          return stream[method].apply(stream, arguments);\n        };\n      }(i);\n    }\n  }\n\n  // proxy certain important events.\n  for (var n = 0; n < kProxyEvents.length; n++) {\n    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n  }\n\n  // when we try to consume some more bytes, simply unpause the\n  // underlying stream.\n  this._read = function (n) {\n    debug('wrapped _read', n);\n    if (paused) {\n      paused = false;\n      stream.resume();\n    }\n  };\n  return this;\n};\nif (typeof Symbol === 'function') {\n  Readable.prototype[Symbol.asyncIterator] = function () {\n    if (createReadableStreamAsyncIterator === undefined) {\n      createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n    }\n    return createReadableStreamAsyncIterator(this);\n  };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.highWaterMark;\n  }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState && this._readableState.buffer;\n  }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.flowing;\n  },\n  set: function set(state) {\n    if (this._readableState) {\n      this._readableState.flowing = state;\n    }\n  }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.length;\n  }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n  // nothing buffered\n  if (state.length === 0) return null;\n  var ret;\n  if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n    // read it all, truncate the list\n    if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n    state.buffer.clear();\n  } else {\n    // read part of list\n    ret = state.buffer.consume(n, state.decoder);\n  }\n  return ret;\n}\nfunction endReadable(stream) {\n  var state = stream._readableState;\n  debug('endReadable', state.endEmitted);\n  if (!state.endEmitted) {\n    state.ended = true;\n    process.nextTick(endReadableNT, state, stream);\n  }\n}\nfunction endReadableNT(state, stream) {\n  debug('endReadableNT', state.endEmitted, state.length);\n\n  // Check that we didn't get one last unshift.\n  if (!state.endEmitted && state.length === 0) {\n    state.endEmitted = true;\n    stream.readable = false;\n    stream.emit('end');\n    if (state.autoDestroy) {\n      // In case of duplex streams we need a way to detect\n      // if the writable side is ready for autoDestroy as well\n      var wState = stream._writableState;\n      if (!wState || wState.autoDestroy && wState.finished) {\n        stream.destroy();\n      }\n    }\n  }\n}\nif (typeof Symbol === 'function') {\n  Readable.from = function (iterable, opts) {\n    if (from === undefined) {\n      from = require('./internal/streams/from');\n    }\n    return from(Readable, iterable, opts);\n  };\n}\nfunction indexOf(xs, x) {\n  for (var i = 0, l = xs.length; i < l; i++) {\n    if (xs[i] === x) return i;\n  }\n  return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data.  Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored.  (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation.  For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes.  When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up.  When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer.  When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks.  If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk.  However,\n// a pathological inflate type of transform can cause excessive buffering\n// here.  For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output.  In this case, you could write a very small\n// amount of input, and end up with a very large amount of output.  In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform.  A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n  ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n  ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n  ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n  var ts = this._transformState;\n  ts.transforming = false;\n  var cb = ts.writecb;\n  if (cb === null) {\n    return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n  }\n  ts.writechunk = null;\n  ts.writecb = null;\n  if (data != null)\n    // single equals check for both `null` and `undefined`\n    this.push(data);\n  cb(er);\n  var rs = this._readableState;\n  rs.reading = false;\n  if (rs.needReadable || rs.length < rs.highWaterMark) {\n    this._read(rs.highWaterMark);\n  }\n}\nfunction Transform(options) {\n  if (!(this instanceof Transform)) return new Transform(options);\n  Duplex.call(this, options);\n  this._transformState = {\n    afterTransform: afterTransform.bind(this),\n    needTransform: false,\n    transforming: false,\n    writecb: null,\n    writechunk: null,\n    writeencoding: null\n  };\n\n  // start out asking for a readable event once data is transformed.\n  this._readableState.needReadable = true;\n\n  // we have implemented the _read method, and done the other things\n  // that Readable wants before the first _read call, so unset the\n  // sync guard flag.\n  this._readableState.sync = false;\n  if (options) {\n    if (typeof options.transform === 'function') this._transform = options.transform;\n    if (typeof options.flush === 'function') this._flush = options.flush;\n  }\n\n  // When the writable side finishes, then flush out anything remaining.\n  this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n  var _this = this;\n  if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n    this._flush(function (er, data) {\n      done(_this, er, data);\n    });\n  } else {\n    done(this, null, null);\n  }\n}\nTransform.prototype.push = function (chunk, encoding) {\n  this._transformState.needTransform = false;\n  return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side.  You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk.  If you pass\n// an error, then that'll put the hurt on the whole operation.  If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n  cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n  var ts = this._transformState;\n  ts.writecb = cb;\n  ts.writechunk = chunk;\n  ts.writeencoding = encoding;\n  if (!ts.transforming) {\n    var rs = this._readableState;\n    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n  }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n  var ts = this._transformState;\n  if (ts.writechunk !== null && !ts.transforming) {\n    ts.transforming = true;\n    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n  } else {\n    // mark that we need a transform, so that any data that comes in\n    // will get processed, now that we've asked for it.\n    ts.needTransform = true;\n  }\n};\nTransform.prototype._destroy = function (err, cb) {\n  Duplex.prototype._destroy.call(this, err, function (err2) {\n    cb(err2);\n  });\n};\nfunction done(stream, er, data) {\n  if (er) return stream.emit('error', er);\n  if (data != null)\n    // single equals check for both `null` and `undefined`\n    stream.push(data);\n\n  // TODO(BridgeAR): Write a test for these two error cases\n  // if there's nothing in the write buffer, then that means\n  // that nothing more will ever be provided\n  if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n  if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n  return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/*  */\nfunction WriteReq(chunk, encoding, cb) {\n  this.chunk = chunk;\n  this.encoding = encoding;\n  this.callback = cb;\n  this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n  var _this = this;\n  this.next = null;\n  this.entry = null;\n  this.finish = function () {\n    onCorkedFinish(_this, state);\n  };\n}\n/*  */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n  deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n  getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n  ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n  ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n  ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n  ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n  ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n  ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n  ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n  Duplex = Duplex || require('./_stream_duplex');\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream,\n  // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n  // object stream flag to indicate whether or not this stream\n  // contains buffers or objects.\n  this.objectMode = !!options.objectMode;\n  if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n  // the point at which write() starts returning false\n  // Note: 0 is a valid value, means that we always return false if\n  // the entire buffer is not flushed immediately on write()\n  this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n  // if _final has been called\n  this.finalCalled = false;\n\n  // drain event flag.\n  this.needDrain = false;\n  // at the start of calling end()\n  this.ending = false;\n  // when end() has been called, and returned\n  this.ended = false;\n  // when 'finish' is emitted\n  this.finished = false;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // should we decode strings into buffers before passing to _write?\n  // this is here so that some node-core streams can optimize string\n  // handling at a lower level.\n  var noDecode = options.decodeStrings === false;\n  this.decodeStrings = !noDecode;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // not an actual buffer we keep track of, but a measurement\n  // of how much we're waiting to get pushed to some underlying\n  // socket or file.\n  this.length = 0;\n\n  // a flag to see when we're in the middle of a write.\n  this.writing = false;\n\n  // when true all writes will be buffered until .uncork() call\n  this.corked = 0;\n\n  // a flag to be able to tell if the onwrite cb is called immediately,\n  // or on a later tick.  We set this to true at first, because any\n  // actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first write call.\n  this.sync = true;\n\n  // a flag to know if we're processing previously buffered items, which\n  // may call the _write() callback in the same tick, so that we don't\n  // end up in an overlapped onwrite situation.\n  this.bufferProcessing = false;\n\n  // the callback that's passed to _write(chunk,cb)\n  this.onwrite = function (er) {\n    onwrite(stream, er);\n  };\n\n  // the callback that the user supplies to write(chunk,encoding,cb)\n  this.writecb = null;\n\n  // the amount that is being written when _write is called.\n  this.writelen = 0;\n  this.bufferedRequest = null;\n  this.lastBufferedRequest = null;\n\n  // number of pending user-supplied write callbacks\n  // this must be 0 before 'finish' can be emitted\n  this.pendingcb = 0;\n\n  // emit prefinish if the only thing we're waiting for is _write cbs\n  // This is relevant for synchronous Transform streams\n  this.prefinished = false;\n\n  // True if the error was already emitted and should not be thrown again\n  this.errorEmitted = false;\n\n  // Should close be emitted on destroy. Defaults to true.\n  this.emitClose = options.emitClose !== false;\n\n  // Should .destroy() be called after 'finish' (and potentially 'end')\n  this.autoDestroy = !!options.autoDestroy;\n\n  // count buffered requests\n  this.bufferedRequestCount = 0;\n\n  // allocate the first CorkedRequest, there is always\n  // one allocated and free to use, and we maintain at most two\n  this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n  var current = this.bufferedRequest;\n  var out = [];\n  while (current) {\n    out.push(current);\n    current = current.next;\n  }\n  return out;\n};\n(function () {\n  try {\n    Object.defineProperty(WritableState.prototype, 'buffer', {\n      get: internalUtil.deprecate(function writableStateBufferGetter() {\n        return this.getBuffer();\n      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n    });\n  } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n  realHasInstance = Function.prototype[Symbol.hasInstance];\n  Object.defineProperty(Writable, Symbol.hasInstance, {\n    value: function value(object) {\n      if (realHasInstance.call(this, object)) return true;\n      if (this !== Writable) return false;\n      return object && object._writableState instanceof WritableState;\n    }\n  });\n} else {\n  realHasInstance = function realHasInstance(object) {\n    return object instanceof this;\n  };\n}\nfunction Writable(options) {\n  Duplex = Duplex || require('./_stream_duplex');\n\n  // Writable ctor is applied to Duplexes, too.\n  // `realHasInstance` is necessary because using plain `instanceof`\n  // would return false, as no `_writableState` property is attached.\n\n  // Trying to use the custom `instanceof` for Writable here will also break the\n  // Node.js LazyTransform implementation, which has a non-trivial getter for\n  // `_writableState` that would lead to infinite recursion.\n\n  // Checking for a Stream.Duplex instance is faster here instead of inside\n  // the WritableState constructor, at least with V8 6.5\n  var isDuplex = this instanceof Duplex;\n  if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n  this._writableState = new WritableState(options, this, isDuplex);\n\n  // legacy.\n  this.writable = true;\n  if (options) {\n    if (typeof options.write === 'function') this._write = options.write;\n    if (typeof options.writev === 'function') this._writev = options.writev;\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n    if (typeof options.final === 'function') this._final = options.final;\n  }\n  Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n  errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n  var er = new ERR_STREAM_WRITE_AFTER_END();\n  // TODO: defer error events consistently everywhere, not just the cb\n  errorOrDestroy(stream, er);\n  process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n  var er;\n  if (chunk === null) {\n    er = new ERR_STREAM_NULL_VALUES();\n  } else if (typeof chunk !== 'string' && !state.objectMode) {\n    er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n  }\n  if (er) {\n    errorOrDestroy(stream, er);\n    process.nextTick(cb, er);\n    return false;\n  }\n  return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n  var state = this._writableState;\n  var ret = false;\n  var isBuf = !state.objectMode && _isUint8Array(chunk);\n  if (isBuf && !Buffer.isBuffer(chunk)) {\n    chunk = _uint8ArrayToBuffer(chunk);\n  }\n  if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n  if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n  if (typeof cb !== 'function') cb = nop;\n  if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n    state.pendingcb++;\n    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n  }\n  return ret;\n};\nWritable.prototype.cork = function () {\n  this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n  var state = this._writableState;\n  if (state.corked) {\n    state.corked--;\n    if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n  }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n  // node::ParseEncoding() requires lower case.\n  if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n  this._writableState.defaultEncoding = encoding;\n  return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState && this._writableState.getBuffer();\n  }\n});\nfunction decodeChunk(state, chunk, encoding) {\n  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n    chunk = Buffer.from(chunk, encoding);\n  }\n  return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.highWaterMark;\n  }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn.  Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n  if (!isBuf) {\n    var newChunk = decodeChunk(state, chunk, encoding);\n    if (chunk !== newChunk) {\n      isBuf = true;\n      encoding = 'buffer';\n      chunk = newChunk;\n    }\n  }\n  var len = state.objectMode ? 1 : chunk.length;\n  state.length += len;\n  var ret = state.length < state.highWaterMark;\n  // we must ensure that previous needDrain will not be reset to false.\n  if (!ret) state.needDrain = true;\n  if (state.writing || state.corked) {\n    var last = state.lastBufferedRequest;\n    state.lastBufferedRequest = {\n      chunk: chunk,\n      encoding: encoding,\n      isBuf: isBuf,\n      callback: cb,\n      next: null\n    };\n    if (last) {\n      last.next = state.lastBufferedRequest;\n    } else {\n      state.bufferedRequest = state.lastBufferedRequest;\n    }\n    state.bufferedRequestCount += 1;\n  } else {\n    doWrite(stream, state, false, len, chunk, encoding, cb);\n  }\n  return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n  state.writelen = len;\n  state.writecb = cb;\n  state.writing = true;\n  state.sync = true;\n  if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n  state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n  --state.pendingcb;\n  if (sync) {\n    // defer the callback if we are being called synchronously\n    // to avoid piling up things on the stack\n    process.nextTick(cb, er);\n    // this can emit finish, and it will always happen\n    // after error\n    process.nextTick(finishMaybe, stream, state);\n    stream._writableState.errorEmitted = true;\n    errorOrDestroy(stream, er);\n  } else {\n    // the caller expect this to happen before if\n    // it is async\n    cb(er);\n    stream._writableState.errorEmitted = true;\n    errorOrDestroy(stream, er);\n    // this can emit finish, but finish must\n    // always follow error\n    finishMaybe(stream, state);\n  }\n}\nfunction onwriteStateUpdate(state) {\n  state.writing = false;\n  state.writecb = null;\n  state.length -= state.writelen;\n  state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n  var state = stream._writableState;\n  var sync = state.sync;\n  var cb = state.writecb;\n  if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n  onwriteStateUpdate(state);\n  if (er) onwriteError(stream, state, sync, er, cb);else {\n    // Check if we're actually ready to finish, but don't emit yet\n    var finished = needFinish(state) || stream.destroyed;\n    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n      clearBuffer(stream, state);\n    }\n    if (sync) {\n      process.nextTick(afterWrite, stream, state, finished, cb);\n    } else {\n      afterWrite(stream, state, finished, cb);\n    }\n  }\n}\nfunction afterWrite(stream, state, finished, cb) {\n  if (!finished) onwriteDrain(stream, state);\n  state.pendingcb--;\n  cb();\n  finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n  if (state.length === 0 && state.needDrain) {\n    state.needDrain = false;\n    stream.emit('drain');\n  }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n  state.bufferProcessing = true;\n  var entry = state.bufferedRequest;\n  if (stream._writev && entry && entry.next) {\n    // Fast case, write everything using _writev()\n    var l = state.bufferedRequestCount;\n    var buffer = new Array(l);\n    var holder = state.corkedRequestsFree;\n    holder.entry = entry;\n    var count = 0;\n    var allBuffers = true;\n    while (entry) {\n      buffer[count] = entry;\n      if (!entry.isBuf) allBuffers = false;\n      entry = entry.next;\n      count += 1;\n    }\n    buffer.allBuffers = allBuffers;\n    doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n    // doWrite is almost always async, defer these to save a bit of time\n    // as the hot path ends with doWrite\n    state.pendingcb++;\n    state.lastBufferedRequest = null;\n    if (holder.next) {\n      state.corkedRequestsFree = holder.next;\n      holder.next = null;\n    } else {\n      state.corkedRequestsFree = new CorkedRequest(state);\n    }\n    state.bufferedRequestCount = 0;\n  } else {\n    // Slow case, write chunks one-by-one\n    while (entry) {\n      var chunk = entry.chunk;\n      var encoding = entry.encoding;\n      var cb = entry.callback;\n      var len = state.objectMode ? 1 : chunk.length;\n      doWrite(stream, state, false, len, chunk, encoding, cb);\n      entry = entry.next;\n      state.bufferedRequestCount--;\n      // if we didn't call the onwrite immediately, then\n      // it means that we need to wait until it does.\n      // also, that means that the chunk and cb are currently\n      // being processed, so move the buffer counter past them.\n      if (state.writing) {\n        break;\n      }\n    }\n    if (entry === null) state.lastBufferedRequest = null;\n  }\n  state.bufferedRequest = entry;\n  state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n  cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n  var state = this._writableState;\n  if (typeof chunk === 'function') {\n    cb = chunk;\n    chunk = null;\n    encoding = null;\n  } else if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n  // .end() fully uncorks\n  if (state.corked) {\n    state.corked = 1;\n    this.uncork();\n  }\n\n  // ignore unnecessary end() calls.\n  if (!state.ending) endWritable(this, state, cb);\n  return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.length;\n  }\n});\nfunction needFinish(state) {\n  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n  stream._final(function (err) {\n    state.pendingcb--;\n    if (err) {\n      errorOrDestroy(stream, err);\n    }\n    state.prefinished = true;\n    stream.emit('prefinish');\n    finishMaybe(stream, state);\n  });\n}\nfunction prefinish(stream, state) {\n  if (!state.prefinished && !state.finalCalled) {\n    if (typeof stream._final === 'function' && !state.destroyed) {\n      state.pendingcb++;\n      state.finalCalled = true;\n      process.nextTick(callFinal, stream, state);\n    } else {\n      state.prefinished = true;\n      stream.emit('prefinish');\n    }\n  }\n}\nfunction finishMaybe(stream, state) {\n  var need = needFinish(state);\n  if (need) {\n    prefinish(stream, state);\n    if (state.pendingcb === 0) {\n      state.finished = true;\n      stream.emit('finish');\n      if (state.autoDestroy) {\n        // In case of duplex streams we need a way to detect\n        // if the readable side is ready for autoDestroy as well\n        var rState = stream._readableState;\n        if (!rState || rState.autoDestroy && rState.endEmitted) {\n          stream.destroy();\n        }\n      }\n    }\n  }\n  return need;\n}\nfunction endWritable(stream, state, cb) {\n  state.ending = true;\n  finishMaybe(stream, state);\n  if (cb) {\n    if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n  }\n  state.ended = true;\n  stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n  var entry = corkReq.entry;\n  corkReq.entry = null;\n  while (entry) {\n    var cb = entry.callback;\n    state.pendingcb--;\n    cb(err);\n    entry = entry.next;\n  }\n\n  // reuse the free corkReq.\n  state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._writableState === undefined) {\n      return false;\n    }\n    return this._writableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._writableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._writableState.destroyed = value;\n  }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n  cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n  return {\n    value: value,\n    done: done\n  };\n}\nfunction readAndResolve(iter) {\n  var resolve = iter[kLastResolve];\n  if (resolve !== null) {\n    var data = iter[kStream].read();\n    // we defer if data is null\n    // we can be expecting either 'end' or\n    // 'error'\n    if (data !== null) {\n      iter[kLastPromise] = null;\n      iter[kLastResolve] = null;\n      iter[kLastReject] = null;\n      resolve(createIterResult(data, false));\n    }\n  }\n}\nfunction onReadable(iter) {\n  // we wait for the next tick, because it might\n  // emit an error with process.nextTick\n  process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n  return function (resolve, reject) {\n    lastPromise.then(function () {\n      if (iter[kEnded]) {\n        resolve(createIterResult(undefined, true));\n        return;\n      }\n      iter[kHandlePromise](resolve, reject);\n    }, reject);\n  };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n  get stream() {\n    return this[kStream];\n  },\n  next: function next() {\n    var _this = this;\n    // if we have detected an error in the meanwhile\n    // reject straight away\n    var error = this[kError];\n    if (error !== null) {\n      return Promise.reject(error);\n    }\n    if (this[kEnded]) {\n      return Promise.resolve(createIterResult(undefined, true));\n    }\n    if (this[kStream].destroyed) {\n      // We need to defer via nextTick because if .destroy(err) is\n      // called, the error will be emitted via nextTick, and\n      // we cannot guarantee that there is no error lingering around\n      // waiting to be emitted.\n      return new Promise(function (resolve, reject) {\n        process.nextTick(function () {\n          if (_this[kError]) {\n            reject(_this[kError]);\n          } else {\n            resolve(createIterResult(undefined, true));\n          }\n        });\n      });\n    }\n\n    // if we have multiple next() calls\n    // we will wait for the previous Promise to finish\n    // this logic is optimized to support for await loops,\n    // where next() is only called once at a time\n    var lastPromise = this[kLastPromise];\n    var promise;\n    if (lastPromise) {\n      promise = new Promise(wrapForNext(lastPromise, this));\n    } else {\n      // fast path needed to support multiple this.push()\n      // without triggering the next() queue\n      var data = this[kStream].read();\n      if (data !== null) {\n        return Promise.resolve(createIterResult(data, false));\n      }\n      promise = new Promise(this[kHandlePromise]);\n    }\n    this[kLastPromise] = promise;\n    return promise;\n  }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n  return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n  var _this2 = this;\n  // destroy(err, cb) is a private API\n  // we can guarantee we have that here, because we control the\n  // Readable class this is attached to\n  return new Promise(function (resolve, reject) {\n    _this2[kStream].destroy(null, function (err) {\n      if (err) {\n        reject(err);\n        return;\n      }\n      resolve(createIterResult(undefined, true));\n    });\n  });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n  var _Object$create;\n  var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n    value: stream,\n    writable: true\n  }), _defineProperty(_Object$create, kLastResolve, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kLastReject, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kError, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kEnded, {\n    value: stream._readableState.endEmitted,\n    writable: true\n  }), _defineProperty(_Object$create, kHandlePromise, {\n    value: function value(resolve, reject) {\n      var data = iterator[kStream].read();\n      if (data) {\n        iterator[kLastPromise] = null;\n        iterator[kLastResolve] = null;\n        iterator[kLastReject] = null;\n        resolve(createIterResult(data, false));\n      } else {\n        iterator[kLastResolve] = resolve;\n        iterator[kLastReject] = reject;\n      }\n    },\n    writable: true\n  }), _Object$create));\n  iterator[kLastPromise] = null;\n  finished(stream, function (err) {\n    if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n      var reject = iterator[kLastReject];\n      // reject if we are waiting for data in the Promise\n      // returned by next() and store the error\n      if (reject !== null) {\n        iterator[kLastPromise] = null;\n        iterator[kLastResolve] = null;\n        iterator[kLastReject] = null;\n        reject(err);\n      }\n      iterator[kError] = err;\n      return;\n    }\n    var resolve = iterator[kLastResolve];\n    if (resolve !== null) {\n      iterator[kLastPromise] = null;\n      iterator[kLastResolve] = null;\n      iterator[kLastReject] = null;\n      resolve(createIterResult(undefined, true));\n    }\n    iterator[kEnded] = true;\n  });\n  stream.on('readable', onReadable.bind(null, iterator));\n  return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n  Buffer = _require.Buffer;\nvar _require2 = require('util'),\n  inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n  Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n  function BufferList() {\n    _classCallCheck(this, BufferList);\n    this.head = null;\n    this.tail = null;\n    this.length = 0;\n  }\n  _createClass(BufferList, [{\n    key: \"push\",\n    value: function push(v) {\n      var entry = {\n        data: v,\n        next: null\n      };\n      if (this.length > 0) this.tail.next = entry;else this.head = entry;\n      this.tail = entry;\n      ++this.length;\n    }\n  }, {\n    key: \"unshift\",\n    value: function unshift(v) {\n      var entry = {\n        data: v,\n        next: this.head\n      };\n      if (this.length === 0) this.tail = entry;\n      this.head = entry;\n      ++this.length;\n    }\n  }, {\n    key: \"shift\",\n    value: function shift() {\n      if (this.length === 0) return;\n      var ret = this.head.data;\n      if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n      --this.length;\n      return ret;\n    }\n  }, {\n    key: \"clear\",\n    value: function clear() {\n      this.head = this.tail = null;\n      this.length = 0;\n    }\n  }, {\n    key: \"join\",\n    value: function join(s) {\n      if (this.length === 0) return '';\n      var p = this.head;\n      var ret = '' + p.data;\n      while (p = p.next) ret += s + p.data;\n      return ret;\n    }\n  }, {\n    key: \"concat\",\n    value: function concat(n) {\n      if (this.length === 0) return Buffer.alloc(0);\n      var ret = Buffer.allocUnsafe(n >>> 0);\n      var p = this.head;\n      var i = 0;\n      while (p) {\n        copyBuffer(p.data, ret, i);\n        i += p.data.length;\n        p = p.next;\n      }\n      return ret;\n    }\n\n    // Consumes a specified amount of bytes or characters from the buffered data.\n  }, {\n    key: \"consume\",\n    value: function consume(n, hasStrings) {\n      var ret;\n      if (n < this.head.data.length) {\n        // `slice` is the same for buffers and strings.\n        ret = this.head.data.slice(0, n);\n        this.head.data = this.head.data.slice(n);\n      } else if (n === this.head.data.length) {\n        // First chunk is a perfect match.\n        ret = this.shift();\n      } else {\n        // Result spans more than one buffer.\n        ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n      }\n      return ret;\n    }\n  }, {\n    key: \"first\",\n    value: function first() {\n      return this.head.data;\n    }\n\n    // Consumes a specified amount of characters from the buffered data.\n  }, {\n    key: \"_getString\",\n    value: function _getString(n) {\n      var p = this.head;\n      var c = 1;\n      var ret = p.data;\n      n -= ret.length;\n      while (p = p.next) {\n        var str = p.data;\n        var nb = n > str.length ? str.length : n;\n        if (nb === str.length) ret += str;else ret += str.slice(0, n);\n        n -= nb;\n        if (n === 0) {\n          if (nb === str.length) {\n            ++c;\n            if (p.next) this.head = p.next;else this.head = this.tail = null;\n          } else {\n            this.head = p;\n            p.data = str.slice(nb);\n          }\n          break;\n        }\n        ++c;\n      }\n      this.length -= c;\n      return ret;\n    }\n\n    // Consumes a specified amount of bytes from the buffered data.\n  }, {\n    key: \"_getBuffer\",\n    value: function _getBuffer(n) {\n      var ret = Buffer.allocUnsafe(n);\n      var p = this.head;\n      var c = 1;\n      p.data.copy(ret);\n      n -= p.data.length;\n      while (p = p.next) {\n        var buf = p.data;\n        var nb = n > buf.length ? buf.length : n;\n        buf.copy(ret, ret.length - n, 0, nb);\n        n -= nb;\n        if (n === 0) {\n          if (nb === buf.length) {\n            ++c;\n            if (p.next) this.head = p.next;else this.head = this.tail = null;\n          } else {\n            this.head = p;\n            p.data = buf.slice(nb);\n          }\n          break;\n        }\n        ++c;\n      }\n      this.length -= c;\n      return ret;\n    }\n\n    // Make sure the linked list only shows the minimal necessary information.\n  }, {\n    key: custom,\n    value: function value(_, options) {\n      return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n        // Only inspect one level.\n        depth: 0,\n        // It should not recurse.\n        customInspect: false\n      }));\n    }\n  }]);\n  return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n  var _this = this;\n  var readableDestroyed = this._readableState && this._readableState.destroyed;\n  var writableDestroyed = this._writableState && this._writableState.destroyed;\n  if (readableDestroyed || writableDestroyed) {\n    if (cb) {\n      cb(err);\n    } else if (err) {\n      if (!this._writableState) {\n        process.nextTick(emitErrorNT, this, err);\n      } else if (!this._writableState.errorEmitted) {\n        this._writableState.errorEmitted = true;\n        process.nextTick(emitErrorNT, this, err);\n      }\n    }\n    return this;\n  }\n\n  // we set destroyed to true before firing error callbacks in order\n  // to make it re-entrance safe in case destroy() is called within callbacks\n\n  if (this._readableState) {\n    this._readableState.destroyed = true;\n  }\n\n  // if this is a duplex stream mark the writable part as destroyed as well\n  if (this._writableState) {\n    this._writableState.destroyed = true;\n  }\n  this._destroy(err || null, function (err) {\n    if (!cb && err) {\n      if (!_this._writableState) {\n        process.nextTick(emitErrorAndCloseNT, _this, err);\n      } else if (!_this._writableState.errorEmitted) {\n        _this._writableState.errorEmitted = true;\n        process.nextTick(emitErrorAndCloseNT, _this, err);\n      } else {\n        process.nextTick(emitCloseNT, _this);\n      }\n    } else if (cb) {\n      process.nextTick(emitCloseNT, _this);\n      cb(err);\n    } else {\n      process.nextTick(emitCloseNT, _this);\n    }\n  });\n  return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n  emitErrorNT(self, err);\n  emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n  if (self._writableState && !self._writableState.emitClose) return;\n  if (self._readableState && !self._readableState.emitClose) return;\n  self.emit('close');\n}\nfunction undestroy() {\n  if (this._readableState) {\n    this._readableState.destroyed = false;\n    this._readableState.reading = false;\n    this._readableState.ended = false;\n    this._readableState.endEmitted = false;\n  }\n  if (this._writableState) {\n    this._writableState.destroyed = false;\n    this._writableState.ended = false;\n    this._writableState.ending = false;\n    this._writableState.finalCalled = false;\n    this._writableState.prefinished = false;\n    this._writableState.finished = false;\n    this._writableState.errorEmitted = false;\n  }\n}\nfunction emitErrorNT(self, err) {\n  self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n  // We have tests that rely on errors being emitted\n  // in the same tick, so changing this is semver major.\n  // For now when you opt-in to autoDestroy we allow\n  // the error to be emitted nextTick. In a future\n  // semver major update we should change the default to this.\n\n  var rState = stream._readableState;\n  var wState = stream._writableState;\n  if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n  destroy: destroy,\n  undestroy: undestroy,\n  errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n  var called = false;\n  return function () {\n    if (called) return;\n    called = true;\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    callback.apply(this, args);\n  };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n  return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n  if (typeof opts === 'function') return eos(stream, null, opts);\n  if (!opts) opts = {};\n  callback = once(callback || noop);\n  var readable = opts.readable || opts.readable !== false && stream.readable;\n  var writable = opts.writable || opts.writable !== false && stream.writable;\n  var onlegacyfinish = function onlegacyfinish() {\n    if (!stream.writable) onfinish();\n  };\n  var writableEnded = stream._writableState && stream._writableState.finished;\n  var onfinish = function onfinish() {\n    writable = false;\n    writableEnded = true;\n    if (!readable) callback.call(stream);\n  };\n  var readableEnded = stream._readableState && stream._readableState.endEmitted;\n  var onend = function onend() {\n    readable = false;\n    readableEnded = true;\n    if (!writable) callback.call(stream);\n  };\n  var onerror = function onerror(err) {\n    callback.call(stream, err);\n  };\n  var onclose = function onclose() {\n    var err;\n    if (readable && !readableEnded) {\n      if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n      return callback.call(stream, err);\n    }\n    if (writable && !writableEnded) {\n      if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n      return callback.call(stream, err);\n    }\n  };\n  var onrequest = function onrequest() {\n    stream.req.on('finish', onfinish);\n  };\n  if (isRequest(stream)) {\n    stream.on('complete', onfinish);\n    stream.on('abort', onclose);\n    if (stream.req) onrequest();else stream.on('request', onrequest);\n  } else if (writable && !stream._writableState) {\n    // legacy streams\n    stream.on('end', onlegacyfinish);\n    stream.on('close', onlegacyfinish);\n  }\n  stream.on('end', onend);\n  stream.on('finish', onfinish);\n  if (opts.error !== false) stream.on('error', onerror);\n  stream.on('close', onclose);\n  return function () {\n    stream.removeListener('complete', onfinish);\n    stream.removeListener('abort', onclose);\n    stream.removeListener('request', onrequest);\n    if (stream.req) stream.req.removeListener('finish', onfinish);\n    stream.removeListener('end', onlegacyfinish);\n    stream.removeListener('close', onlegacyfinish);\n    stream.removeListener('finish', onfinish);\n    stream.removeListener('end', onend);\n    stream.removeListener('error', onerror);\n    stream.removeListener('close', onclose);\n  };\n}\nmodule.exports = eos;","module.exports = function () {\n  throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n  var called = false;\n  return function () {\n    if (called) return;\n    called = true;\n    callback.apply(void 0, arguments);\n  };\n}\nvar _require$codes = require('../../../errors').codes,\n  ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n  ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n  // Rethrow the error if it exists to avoid swallowing it\n  if (err) throw err;\n}\nfunction isRequest(stream) {\n  return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n  callback = once(callback);\n  var closed = false;\n  stream.on('close', function () {\n    closed = true;\n  });\n  if (eos === undefined) eos = require('./end-of-stream');\n  eos(stream, {\n    readable: reading,\n    writable: writing\n  }, function (err) {\n    if (err) return callback(err);\n    closed = true;\n    callback();\n  });\n  var destroyed = false;\n  return function (err) {\n    if (closed) return;\n    if (destroyed) return;\n    destroyed = true;\n\n    // request.destroy just do .end - .abort is what we want\n    if (isRequest(stream)) return stream.abort();\n    if (typeof stream.destroy === 'function') return stream.destroy();\n    callback(err || new ERR_STREAM_DESTROYED('pipe'));\n  };\n}\nfunction call(fn) {\n  fn();\n}\nfunction pipe(from, to) {\n  return from.pipe(to);\n}\nfunction popCallback(streams) {\n  if (!streams.length) return noop;\n  if (typeof streams[streams.length - 1] !== 'function') return noop;\n  return streams.pop();\n}\nfunction pipeline() {\n  for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n    streams[_key] = arguments[_key];\n  }\n  var callback = popCallback(streams);\n  if (Array.isArray(streams[0])) streams = streams[0];\n  if (streams.length < 2) {\n    throw new ERR_MISSING_ARGS('streams');\n  }\n  var error;\n  var destroys = streams.map(function (stream, i) {\n    var reading = i < streams.length - 1;\n    var writing = i > 0;\n    return destroyer(stream, reading, writing, function (err) {\n      if (!error) error = err;\n      if (err) destroys.forEach(call);\n      if (reading) return;\n      destroys.forEach(call);\n      callback(error);\n    });\n  });\n  return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n  return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n  var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n  if (hwm != null) {\n    if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n      var name = isDuplex ? duplexKey : 'highWaterMark';\n      throw new ERR_INVALID_OPT_VALUE(name, hwm);\n    }\n    return Math.floor(hwm);\n  }\n\n  // Default value\n  return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n  getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict';\n\nvar required = require('requires-port')\n  , qs = require('querystringify')\n  , controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n  , CRHTLF = /[\\n\\r\\t]/g\n  , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n  , port = /:\\d+$/\n  , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n  , windowsDriveLetter = /^[a-zA-Z]:/;\n\n/**\n * Remove control characters and whitespace from the beginning of a string.\n *\n * @param {Object|String} str String to trim.\n * @returns {String} A new string representing `str` stripped of control\n *     characters and whitespace from its beginning.\n * @public\n */\nfunction trimLeft(str) {\n  return (str ? str : '').toString().replace(controlOrWhitespace, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n *    indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n *    the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n  ['#', 'hash'],                        // Extract from the back.\n  ['?', 'query'],                       // Extract from the back.\n  function sanitize(address, url) {     // Sanitize what is left of the address\n    return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n  },\n  ['/', 'pathname'],                    // Extract from the back.\n  ['@', 'auth', 1],                     // Extract from the front.\n  [NaN, 'host', undefined, 1, 1],       // Set left over value.\n  [/:(\\d*)$/, 'port', undefined, 1],    // RegExp the back.\n  [NaN, 'hostname', undefined, 1, 1]    // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n  var globalVar;\n\n  if (typeof window !== 'undefined') globalVar = window;\n  else if (typeof global !== 'undefined') globalVar = global;\n  else if (typeof self !== 'undefined') globalVar = self;\n  else globalVar = {};\n\n  var location = globalVar.location || {};\n  loc = loc || location;\n\n  var finaldestination = {}\n    , type = typeof loc\n    , key;\n\n  if ('blob:' === loc.protocol) {\n    finaldestination = new Url(unescape(loc.pathname), {});\n  } else if ('string' === type) {\n    finaldestination = new Url(loc, {});\n    for (key in ignore) delete finaldestination[key];\n  } else if ('object' === type) {\n    for (key in loc) {\n      if (key in ignore) continue;\n      finaldestination[key] = loc[key];\n    }\n\n    if (finaldestination.slashes === undefined) {\n      finaldestination.slashes = slashes.test(loc.href);\n    }\n  }\n\n  return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n  return (\n    scheme === 'file:' ||\n    scheme === 'ftp:' ||\n    scheme === 'http:' ||\n    scheme === 'https:' ||\n    scheme === 'ws:' ||\n    scheme === 'wss:'\n  );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n  address = trimLeft(address);\n  address = address.replace(CRHTLF, '');\n  location = location || {};\n\n  var match = protocolre.exec(address);\n  var protocol = match[1] ? match[1].toLowerCase() : '';\n  var forwardSlashes = !!match[2];\n  var otherSlashes = !!match[3];\n  var slashesCount = 0;\n  var rest;\n\n  if (forwardSlashes) {\n    if (otherSlashes) {\n      rest = match[2] + match[3] + match[4];\n      slashesCount = match[2].length + match[3].length;\n    } else {\n      rest = match[2] + match[4];\n      slashesCount = match[2].length;\n    }\n  } else {\n    if (otherSlashes) {\n      rest = match[3] + match[4];\n      slashesCount = match[3].length;\n    } else {\n      rest = match[4]\n    }\n  }\n\n  if (protocol === 'file:') {\n    if (slashesCount >= 2) {\n      rest = rest.slice(2);\n    }\n  } else if (isSpecial(protocol)) {\n    rest = match[4];\n  } else if (protocol) {\n    if (forwardSlashes) {\n      rest = rest.slice(2);\n    }\n  } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n    rest = match[4];\n  }\n\n  return {\n    protocol: protocol,\n    slashes: forwardSlashes || isSpecial(protocol),\n    slashesCount: slashesCount,\n    rest: rest\n  };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n  if (relative === '') return base;\n\n  var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n    , i = path.length\n    , last = path[i - 1]\n    , unshift = false\n    , up = 0;\n\n  while (i--) {\n    if (path[i] === '.') {\n      path.splice(i, 1);\n    } else if (path[i] === '..') {\n      path.splice(i, 1);\n      up++;\n    } else if (up) {\n      if (i === 0) unshift = true;\n      path.splice(i, 1);\n      up--;\n    }\n  }\n\n  if (unshift) path.unshift('');\n  if (last === '.' || last === '..') path.push('');\n\n  return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n  address = trimLeft(address);\n  address = address.replace(CRHTLF, '');\n\n  if (!(this instanceof Url)) {\n    return new Url(address, location, parser);\n  }\n\n  var relative, extracted, parse, instruction, index, key\n    , instructions = rules.slice()\n    , type = typeof location\n    , url = this\n    , i = 0;\n\n  //\n  // The following if statements allows this module two have compatibility with\n  // 2 different API:\n  //\n  // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n  //    where the boolean indicates that the query string should also be parsed.\n  //\n  // 2. The `URL` interface of the browser which accepts a URL, object as\n  //    arguments. The supplied object will be used as default values / fall-back\n  //    for relative paths.\n  //\n  if ('object' !== type && 'string' !== type) {\n    parser = location;\n    location = null;\n  }\n\n  if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n  location = lolcation(location);\n\n  //\n  // Extract protocol information before running the instructions.\n  //\n  extracted = extractProtocol(address || '', location);\n  relative = !extracted.protocol && !extracted.slashes;\n  url.slashes = extracted.slashes || relative && location.slashes;\n  url.protocol = extracted.protocol || location.protocol || '';\n  address = extracted.rest;\n\n  //\n  // When the authority component is absent the URL starts with a path\n  // component.\n  //\n  if (\n    extracted.protocol === 'file:' && (\n      extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n    (!extracted.slashes &&\n      (extracted.protocol ||\n        extracted.slashesCount < 2 ||\n        !isSpecial(url.protocol)))\n  ) {\n    instructions[3] = [/(.*)/, 'pathname'];\n  }\n\n  for (; i < instructions.length; i++) {\n    instruction = instructions[i];\n\n    if (typeof instruction === 'function') {\n      address = instruction(address, url);\n      continue;\n    }\n\n    parse = instruction[0];\n    key = instruction[1];\n\n    if (parse !== parse) {\n      url[key] = address;\n    } else if ('string' === typeof parse) {\n      index = parse === '@'\n        ? address.lastIndexOf(parse)\n        : address.indexOf(parse);\n\n      if (~index) {\n        if ('number' === typeof instruction[2]) {\n          url[key] = address.slice(0, index);\n          address = address.slice(index + instruction[2]);\n        } else {\n          url[key] = address.slice(index);\n          address = address.slice(0, index);\n        }\n      }\n    } else if ((index = parse.exec(address))) {\n      url[key] = index[1];\n      address = address.slice(0, index.index);\n    }\n\n    url[key] = url[key] || (\n      relative && instruction[3] ? location[key] || '' : ''\n    );\n\n    //\n    // Hostname, host and protocol should be lowercased so they can be used to\n    // create a proper `origin`.\n    //\n    if (instruction[4]) url[key] = url[key].toLowerCase();\n  }\n\n  //\n  // Also parse the supplied query string in to an object. If we're supplied\n  // with a custom parser as function use that instead of the default build-in\n  // parser.\n  //\n  if (parser) url.query = parser(url.query);\n\n  //\n  // If the URL is relative, resolve the pathname against the base URL.\n  //\n  if (\n      relative\n    && location.slashes\n    && url.pathname.charAt(0) !== '/'\n    && (url.pathname !== '' || location.pathname !== '')\n  ) {\n    url.pathname = resolve(url.pathname, location.pathname);\n  }\n\n  //\n  // Default to a / for pathname if none exists. This normalizes the URL\n  // to always have a /\n  //\n  if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n    url.pathname = '/' + url.pathname;\n  }\n\n  //\n  // We should not add port numbers if they are already the default port number\n  // for a given protocol. As the host also contains the port number we're going\n  // override it with the hostname which contains no port number.\n  //\n  if (!required(url.port, url.protocol)) {\n    url.host = url.hostname;\n    url.port = '';\n  }\n\n  //\n  // Parse down the `auth` for the username and password.\n  //\n  url.username = url.password = '';\n\n  if (url.auth) {\n    index = url.auth.indexOf(':');\n\n    if (~index) {\n      url.username = url.auth.slice(0, index);\n      url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n      url.password = url.auth.slice(index + 1);\n      url.password = encodeURIComponent(decodeURIComponent(url.password))\n    } else {\n      url.username = encodeURIComponent(decodeURIComponent(url.auth));\n    }\n\n    url.auth = url.password ? url.username +':'+ url.password : url.username;\n  }\n\n  url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n    ? url.protocol +'//'+ url.host\n    : 'null';\n\n  //\n  // The href is just the compiled result.\n  //\n  url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part          Property we need to adjust.\n * @param {Mixed} value          The newly assigned value.\n * @param {Boolean|Function} fn  When setting the query, it will be the function\n *                               used to parse the query.\n *                               When setting the protocol, double slash will be\n *                               removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n  var url = this;\n\n  switch (part) {\n    case 'query':\n      if ('string' === typeof value && value.length) {\n        value = (fn || qs.parse)(value);\n      }\n\n      url[part] = value;\n      break;\n\n    case 'port':\n      url[part] = value;\n\n      if (!required(value, url.protocol)) {\n        url.host = url.hostname;\n        url[part] = '';\n      } else if (value) {\n        url.host = url.hostname +':'+ value;\n      }\n\n      break;\n\n    case 'hostname':\n      url[part] = value;\n\n      if (url.port) value += ':'+ url.port;\n      url.host = value;\n      break;\n\n    case 'host':\n      url[part] = value;\n\n      if (port.test(value)) {\n        value = value.split(':');\n        url.port = value.pop();\n        url.hostname = value.join(':');\n      } else {\n        url.hostname = value;\n        url.port = '';\n      }\n\n      break;\n\n    case 'protocol':\n      url.protocol = value.toLowerCase();\n      url.slashes = !fn;\n      break;\n\n    case 'pathname':\n    case 'hash':\n      if (value) {\n        var char = part === 'pathname' ? '/' : '#';\n        url[part] = value.charAt(0) !== char ? char + value : value;\n      } else {\n        url[part] = value;\n      }\n      break;\n\n    case 'username':\n    case 'password':\n      url[part] = encodeURIComponent(value);\n      break;\n\n    case 'auth':\n      var index = value.indexOf(':');\n\n      if (~index) {\n        url.username = value.slice(0, index);\n        url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n        url.password = value.slice(index + 1);\n        url.password = encodeURIComponent(decodeURIComponent(url.password));\n      } else {\n        url.username = encodeURIComponent(decodeURIComponent(value));\n      }\n  }\n\n  for (var i = 0; i < rules.length; i++) {\n    var ins = rules[i];\n\n    if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n  }\n\n  url.auth = url.password ? url.username +':'+ url.password : url.username;\n\n  url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n    ? url.protocol +'//'+ url.host\n    : 'null';\n\n  url.href = url.toString();\n\n  return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n  if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n  var query\n    , url = this\n    , host = url.host\n    , protocol = url.protocol;\n\n  if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n  var result =\n    protocol +\n    ((url.protocol && url.slashes) || isSpecial(url.protocol) ? '//' : '');\n\n  if (url.username) {\n    result += url.username;\n    if (url.password) result += ':'+ url.password;\n    result += '@';\n  } else if (url.password) {\n    result += ':'+ url.password;\n    result += '@';\n  } else if (\n    url.protocol !== 'file:' &&\n    isSpecial(url.protocol) &&\n    !host &&\n    url.pathname !== '/'\n  ) {\n    //\n    // Add back the empty userinfo, otherwise the original invalid URL\n    // might be transformed into a valid one with `url.pathname` as host.\n    //\n    result += '@';\n  }\n\n  //\n  // Trailing colon is removed from `url.host` when it is parsed. If it still\n  // ends with a colon, then add back the trailing colon that was removed. This\n  // prevents an invalid URL from being transformed into a valid one.\n  //\n  if (host[host.length - 1] === ':' || (port.test(url.hostname) && !url.port)) {\n    host += ':';\n  }\n\n  result += host + url.pathname;\n\n  query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n  if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n  if (url.hash) result += url.hash;\n\n  return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n","/*\n * Copyright Joyent, Inc. and other Node contributors.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to permit\n * persons to whom the Software is furnished to do so, subject to the\n * following conditions:\n *\n * The above copyright notice and this permission notice shall be included\n * in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n * USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n'use strict';\n\nvar punycode = require('punycode/');\n\nfunction Url() {\n  this.protocol = null;\n  this.slashes = null;\n  this.auth = null;\n  this.host = null;\n  this.port = null;\n  this.hostname = null;\n  this.hash = null;\n  this.search = null;\n  this.query = null;\n  this.pathname = null;\n  this.path = null;\n  this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n/*\n * define these here so at least they only have to be\n * compiled once on the first module load.\n */\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n  portPattern = /:[0-9]*$/,\n\n  // Special case for a simple path URL\n  simplePathPattern = /^(\\/\\/?(?!\\/)[^?\\s]*)(\\?[^\\s]*)?$/,\n\n  /*\n   * RFC 2396: characters reserved for delimiting URLs.\n   * We actually just auto-escape these.\n   */\n  delims = [\n    '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'\n  ],\n\n  // RFC 2396: characters not allowed for various reasons.\n  unwise = [\n    '{', '}', '|', '\\\\', '^', '`'\n  ].concat(delims),\n\n  // Allowed by RFCs, but cause of XSS attacks.  Always escape these.\n  autoEscape = ['\\''].concat(unwise),\n  /*\n   * Characters that are never ever allowed in a hostname.\n   * Note that any invalid chars are also handled, but these\n   * are the ones that are *expected* to be seen, so we fast-path\n   * them.\n   */\n  nonHostChars = [\n    '%', '/', '?', ';', '#'\n  ].concat(autoEscape),\n  hostEndingChars = [\n    '/', '?', '#'\n  ],\n  hostnameMaxLen = 255,\n  hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n  hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n  // protocols that can allow \"unsafe\" and \"unwise\" chars.\n  unsafeProtocol = {\n    javascript: true,\n    'javascript:': true\n  },\n  // protocols that never have a hostname.\n  hostlessProtocol = {\n    javascript: true,\n    'javascript:': true\n  },\n  // protocols that always contain a // bit.\n  slashedProtocol = {\n    http: true,\n    https: true,\n    ftp: true,\n    gopher: true,\n    file: true,\n    'http:': true,\n    'https:': true,\n    'ftp:': true,\n    'gopher:': true,\n    'file:': true\n  },\n  querystring = require('qs');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n  if (url && typeof url === 'object' && url instanceof Url) { return url; }\n\n  var u = new Url();\n  u.parse(url, parseQueryString, slashesDenoteHost);\n  return u;\n}\n\nUrl.prototype.parse = function (url, parseQueryString, slashesDenoteHost) {\n  if (typeof url !== 'string') {\n    throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n  }\n\n  /*\n   * Copy chrome, IE, opera backslash-handling behavior.\n   * Back slashes before the query string get converted to forward slashes\n   * See: https://code.google.com/p/chromium/issues/detail?id=25916\n   */\n  var queryIndex = url.indexOf('?'),\n    splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n    uSplit = url.split(splitter),\n    slashRegex = /\\\\/g;\n  uSplit[0] = uSplit[0].replace(slashRegex, '/');\n  url = uSplit.join(splitter);\n\n  var rest = url;\n\n  /*\n   * trim before proceeding.\n   * This is to support parse stuff like \"  http://foo.com  \\n\"\n   */\n  rest = rest.trim();\n\n  if (!slashesDenoteHost && url.split('#').length === 1) {\n    // Try fast path regexp\n    var simplePath = simplePathPattern.exec(rest);\n    if (simplePath) {\n      this.path = rest;\n      this.href = rest;\n      this.pathname = simplePath[1];\n      if (simplePath[2]) {\n        this.search = simplePath[2];\n        if (parseQueryString) {\n          this.query = querystring.parse(this.search.substr(1));\n        } else {\n          this.query = this.search.substr(1);\n        }\n      } else if (parseQueryString) {\n        this.search = '';\n        this.query = {};\n      }\n      return this;\n    }\n  }\n\n  var proto = protocolPattern.exec(rest);\n  if (proto) {\n    proto = proto[0];\n    var lowerProto = proto.toLowerCase();\n    this.protocol = lowerProto;\n    rest = rest.substr(proto.length);\n  }\n\n  /*\n   * figure out if it's got a host\n   * user@server is *always* interpreted as a hostname, and url\n   * resolution will treat //foo/bar as host=foo,path=bar because that's\n   * how the browser resolves relative URLs.\n   */\n  if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@/]+@[^@/]+/)) {\n    var slashes = rest.substr(0, 2) === '//';\n    if (slashes && !(proto && hostlessProtocol[proto])) {\n      rest = rest.substr(2);\n      this.slashes = true;\n    }\n  }\n\n  if (!hostlessProtocol[proto] && (slashes || (proto && !slashedProtocol[proto]))) {\n\n    /*\n     * there's a hostname.\n     * the first instance of /, ?, ;, or # ends the host.\n     *\n     * If there is an @ in the hostname, then non-host chars *are* allowed\n     * to the left of the last @ sign, unless some host-ending character\n     * comes *before* the @-sign.\n     * URLs are obnoxious.\n     *\n     * ex:\n     * http://a@b@c/ => user:a@b host:c\n     * http://a@b?@c => user:a host:c path:/?@c\n     */\n\n    /*\n     * v0.12 TODO(isaacs): This is not quite how Chrome does things.\n     * Review our test case against browsers more comprehensively.\n     */\n\n    // find the first instance of any hostEndingChars\n    var hostEnd = -1;\n    for (var i = 0; i < hostEndingChars.length; i++) {\n      var hec = rest.indexOf(hostEndingChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n    }\n\n    /*\n     * at this point, either we have an explicit point where the\n     * auth portion cannot go past, or the last @ char is the decider.\n     */\n    var auth, atSign;\n    if (hostEnd === -1) {\n      // atSign can be anywhere.\n      atSign = rest.lastIndexOf('@');\n    } else {\n      /*\n       * atSign must be in auth portion.\n       * http://a@b/c@d => host:b auth:a path:/c@d\n       */\n      atSign = rest.lastIndexOf('@', hostEnd);\n    }\n\n    /*\n     * Now we have a portion which is definitely the auth.\n     * Pull that off.\n     */\n    if (atSign !== -1) {\n      auth = rest.slice(0, atSign);\n      rest = rest.slice(atSign + 1);\n      this.auth = decodeURIComponent(auth);\n    }\n\n    // the host is the remaining to the left of the first non-host char\n    hostEnd = -1;\n    for (var i = 0; i < nonHostChars.length; i++) {\n      var hec = rest.indexOf(nonHostChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n    }\n    // if we still have not hit it, then the entire thing is a host.\n    if (hostEnd === -1) { hostEnd = rest.length; }\n\n    this.host = rest.slice(0, hostEnd);\n    rest = rest.slice(hostEnd);\n\n    // pull out port.\n    this.parseHost();\n\n    /*\n     * we've indicated that there is a hostname,\n     * so even if it's empty, it has to be present.\n     */\n    this.hostname = this.hostname || '';\n\n    /*\n     * if hostname begins with [ and ends with ]\n     * assume that it's an IPv6 address.\n     */\n    var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']';\n\n    // validate a little.\n    if (!ipv6Hostname) {\n      var hostparts = this.hostname.split(/\\./);\n      for (var i = 0, l = hostparts.length; i < l; i++) {\n        var part = hostparts[i];\n        if (!part) { continue; }\n        if (!part.match(hostnamePartPattern)) {\n          var newpart = '';\n          for (var j = 0, k = part.length; j < k; j++) {\n            if (part.charCodeAt(j) > 127) {\n              /*\n               * we replace non-ASCII char with a temporary placeholder\n               * we need this to make sure size of hostname is not\n               * broken by replacing non-ASCII by nothing\n               */\n              newpart += 'x';\n            } else {\n              newpart += part[j];\n            }\n          }\n          // we test again with ASCII char only\n          if (!newpart.match(hostnamePartPattern)) {\n            var validParts = hostparts.slice(0, i);\n            var notHost = hostparts.slice(i + 1);\n            var bit = part.match(hostnamePartStart);\n            if (bit) {\n              validParts.push(bit[1]);\n              notHost.unshift(bit[2]);\n            }\n            if (notHost.length) {\n              rest = '/' + notHost.join('.') + rest;\n            }\n            this.hostname = validParts.join('.');\n            break;\n          }\n        }\n      }\n    }\n\n    if (this.hostname.length > hostnameMaxLen) {\n      this.hostname = '';\n    } else {\n      // hostnames are always lower case.\n      this.hostname = this.hostname.toLowerCase();\n    }\n\n    if (!ipv6Hostname) {\n      /*\n       * IDNA Support: Returns a punycoded representation of \"domain\".\n       * It only converts parts of the domain name that\n       * have non-ASCII characters, i.e. it doesn't matter if\n       * you call it with a domain that already is ASCII-only.\n       */\n      this.hostname = punycode.toASCII(this.hostname);\n    }\n\n    var p = this.port ? ':' + this.port : '';\n    var h = this.hostname || '';\n    this.host = h + p;\n    this.href += this.host;\n\n    /*\n     * strip [ and ] from the hostname\n     * the host field still retains them, though\n     */\n    if (ipv6Hostname) {\n      this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n      if (rest[0] !== '/') {\n        rest = '/' + rest;\n      }\n    }\n  }\n\n  /*\n   * now rest is set to the post-host stuff.\n   * chop off any delim chars.\n   */\n  if (!unsafeProtocol[lowerProto]) {\n\n    /*\n     * First, make 100% sure that any \"autoEscape\" chars get\n     * escaped, even if encodeURIComponent doesn't think they\n     * need to be.\n     */\n    for (var i = 0, l = autoEscape.length; i < l; i++) {\n      var ae = autoEscape[i];\n      if (rest.indexOf(ae) === -1) { continue; }\n      var esc = encodeURIComponent(ae);\n      if (esc === ae) {\n        esc = escape(ae);\n      }\n      rest = rest.split(ae).join(esc);\n    }\n  }\n\n  // chop off from the tail first.\n  var hash = rest.indexOf('#');\n  if (hash !== -1) {\n    // got a fragment string.\n    this.hash = rest.substr(hash);\n    rest = rest.slice(0, hash);\n  }\n  var qm = rest.indexOf('?');\n  if (qm !== -1) {\n    this.search = rest.substr(qm);\n    this.query = rest.substr(qm + 1);\n    if (parseQueryString) {\n      this.query = querystring.parse(this.query);\n    }\n    rest = rest.slice(0, qm);\n  } else if (parseQueryString) {\n    // no query string, but parseQueryString still requested\n    this.search = '';\n    this.query = {};\n  }\n  if (rest) { this.pathname = rest; }\n  if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n    this.pathname = '/';\n  }\n\n  // to support http.request\n  if (this.pathname || this.search) {\n    var p = this.pathname || '';\n    var s = this.search || '';\n    this.path = p + s;\n  }\n\n  // finally, reconstruct the href based on what has been validated.\n  this.href = this.format();\n  return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n  /*\n   * ensure it's an object, and not a string url.\n   * If it's an obj, this is a no-op.\n   * this way, you can call url_format() on strings\n   * to clean up potentially wonky urls.\n   */\n  if (typeof obj === 'string') { obj = urlParse(obj); }\n  if (!(obj instanceof Url)) { return Url.prototype.format.call(obj); }\n  return obj.format();\n}\n\nUrl.prototype.format = function () {\n  var auth = this.auth || '';\n  if (auth) {\n    auth = encodeURIComponent(auth);\n    auth = auth.replace(/%3A/i, ':');\n    auth += '@';\n  }\n\n  var protocol = this.protocol || '',\n    pathname = this.pathname || '',\n    hash = this.hash || '',\n    host = false,\n    query = '';\n\n  if (this.host) {\n    host = auth + this.host;\n  } else if (this.hostname) {\n    host = auth + (this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']');\n    if (this.port) {\n      host += ':' + this.port;\n    }\n  }\n\n  if (this.query && typeof this.query === 'object' && Object.keys(this.query).length) {\n    query = querystring.stringify(this.query, {\n      arrayFormat: 'repeat',\n      addQueryPrefix: false\n    });\n  }\n\n  var search = this.search || (query && ('?' + query)) || '';\n\n  if (protocol && protocol.substr(-1) !== ':') { protocol += ':'; }\n\n  /*\n   * only the slashedProtocols get the //.  Not mailto:, xmpp:, etc.\n   * unless they had them to begin with.\n   */\n  if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {\n    host = '//' + (host || '');\n    if (pathname && pathname.charAt(0) !== '/') { pathname = '/' + pathname; }\n  } else if (!host) {\n    host = '';\n  }\n\n  if (hash && hash.charAt(0) !== '#') { hash = '#' + hash; }\n  if (search && search.charAt(0) !== '?') { search = '?' + search; }\n\n  pathname = pathname.replace(/[?#]/g, function (match) {\n    return encodeURIComponent(match);\n  });\n  search = search.replace('#', '%23');\n\n  return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n  return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function (relative) {\n  return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n  if (!source) { return relative; }\n  return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function (relative) {\n  if (typeof relative === 'string') {\n    var rel = new Url();\n    rel.parse(relative, false, true);\n    relative = rel;\n  }\n\n  var result = new Url();\n  var tkeys = Object.keys(this);\n  for (var tk = 0; tk < tkeys.length; tk++) {\n    var tkey = tkeys[tk];\n    result[tkey] = this[tkey];\n  }\n\n  /*\n   * hash is always overridden, no matter what.\n   * even href=\"\" will remove it.\n   */\n  result.hash = relative.hash;\n\n  // if the relative url is empty, then there's nothing left to do here.\n  if (relative.href === '') {\n    result.href = result.format();\n    return result;\n  }\n\n  // hrefs like //foo/bar always cut to the protocol.\n  if (relative.slashes && !relative.protocol) {\n    // take everything except the protocol from relative\n    var rkeys = Object.keys(relative);\n    for (var rk = 0; rk < rkeys.length; rk++) {\n      var rkey = rkeys[rk];\n      if (rkey !== 'protocol') { result[rkey] = relative[rkey]; }\n    }\n\n    // urlParse appends trailing / to urls like http://www.example.com\n    if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n      result.pathname = '/';\n      result.path = result.pathname;\n    }\n\n    result.href = result.format();\n    return result;\n  }\n\n  if (relative.protocol && relative.protocol !== result.protocol) {\n    /*\n     * if it's a known url protocol, then changing\n     * the protocol does weird things\n     * first, if it's not file:, then we MUST have a host,\n     * and if there was a path\n     * to begin with, then we MUST have a path.\n     * if it is file:, then the host is dropped,\n     * because that's known to be hostless.\n     * anything else is assumed to be absolute.\n     */\n    if (!slashedProtocol[relative.protocol]) {\n      var keys = Object.keys(relative);\n      for (var v = 0; v < keys.length; v++) {\n        var k = keys[v];\n        result[k] = relative[k];\n      }\n      result.href = result.format();\n      return result;\n    }\n\n    result.protocol = relative.protocol;\n    if (!relative.host && !hostlessProtocol[relative.protocol]) {\n      var relPath = (relative.pathname || '').split('/');\n      while (relPath.length && !(relative.host = relPath.shift())) { }\n      if (!relative.host) { relative.host = ''; }\n      if (!relative.hostname) { relative.hostname = ''; }\n      if (relPath[0] !== '') { relPath.unshift(''); }\n      if (relPath.length < 2) { relPath.unshift(''); }\n      result.pathname = relPath.join('/');\n    } else {\n      result.pathname = relative.pathname;\n    }\n    result.search = relative.search;\n    result.query = relative.query;\n    result.host = relative.host || '';\n    result.auth = relative.auth;\n    result.hostname = relative.hostname || relative.host;\n    result.port = relative.port;\n    // to support http.request\n    if (result.pathname || result.search) {\n      var p = result.pathname || '';\n      var s = result.search || '';\n      result.path = p + s;\n    }\n    result.slashes = result.slashes || relative.slashes;\n    result.href = result.format();\n    return result;\n  }\n\n  var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/',\n    isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n    mustEndAbs = isRelAbs || isSourceAbs || (result.host && relative.pathname),\n    removeAllDots = mustEndAbs,\n    srcPath = result.pathname && result.pathname.split('/') || [],\n    relPath = relative.pathname && relative.pathname.split('/') || [],\n    psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n  /*\n   * if the url is a non-slashed url, then relative\n   * links like ../.. should be able\n   * to crawl up to the hostname, as well.  This is strange.\n   * result.protocol has already been set by now.\n   * Later on, put the first path part into the host field.\n   */\n  if (psychotic) {\n    result.hostname = '';\n    result.port = null;\n    if (result.host) {\n      if (srcPath[0] === '') { srcPath[0] = result.host; } else { srcPath.unshift(result.host); }\n    }\n    result.host = '';\n    if (relative.protocol) {\n      relative.hostname = null;\n      relative.port = null;\n      if (relative.host) {\n        if (relPath[0] === '') { relPath[0] = relative.host; } else { relPath.unshift(relative.host); }\n      }\n      relative.host = null;\n    }\n    mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n  }\n\n  if (isRelAbs) {\n    // it's absolute.\n    result.host = relative.host || relative.host === '' ? relative.host : result.host;\n    result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n    result.search = relative.search;\n    result.query = relative.query;\n    srcPath = relPath;\n    // fall through to the dot-handling below.\n  } else if (relPath.length) {\n    /*\n     * it's relative\n     * throw away the existing file, and take the new path instead.\n     */\n    if (!srcPath) { srcPath = []; }\n    srcPath.pop();\n    srcPath = srcPath.concat(relPath);\n    result.search = relative.search;\n    result.query = relative.query;\n  } else if (relative.search != null) {\n    /*\n     * just pull out the search.\n     * like href='?foo'.\n     * Put this after the other two cases because it simplifies the booleans\n     */\n    if (psychotic) {\n      result.host = srcPath.shift();\n      result.hostname = result.host;\n      /*\n       * occationaly the auth can get stuck only in host\n       * this especially happens in cases like\n       * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n       */\n      var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n      if (authInHost) {\n        result.auth = authInHost.shift();\n        result.hostname = authInHost.shift();\n        result.host = result.hostname;\n      }\n    }\n    result.search = relative.search;\n    result.query = relative.query;\n    // to support http.request\n    if (result.pathname !== null || result.search !== null) {\n      result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n    }\n    result.href = result.format();\n    return result;\n  }\n\n  if (!srcPath.length) {\n    /*\n     * no path at all.  easy.\n     * we've already handled the other stuff above.\n     */\n    result.pathname = null;\n    // to support http.request\n    if (result.search) {\n      result.path = '/' + result.search;\n    } else {\n      result.path = null;\n    }\n    result.href = result.format();\n    return result;\n  }\n\n  /*\n   * if a url ENDs in . or .., then it must get a trailing slash.\n   * however, if it ends in anything else non-slashy,\n   * then it must NOT get a trailing slash.\n   */\n  var last = srcPath.slice(-1)[0];\n  var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === '';\n\n  /*\n   * strip single dots, resolve double dots to parent dir\n   * if the path tries to go above the root, `up` ends up > 0\n   */\n  var up = 0;\n  for (var i = srcPath.length; i >= 0; i--) {\n    last = srcPath[i];\n    if (last === '.') {\n      srcPath.splice(i, 1);\n    } else if (last === '..') {\n      srcPath.splice(i, 1);\n      up++;\n    } else if (up) {\n      srcPath.splice(i, 1);\n      up--;\n    }\n  }\n\n  // if the path is allowed to go above the root, restore leading ..s\n  if (!mustEndAbs && !removeAllDots) {\n    for (; up--; up) {\n      srcPath.unshift('..');\n    }\n  }\n\n  if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n    srcPath.unshift('');\n  }\n\n  if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n    srcPath.push('');\n  }\n\n  var isAbsolute = srcPath[0] === '' || (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n  // put the host back\n  if (psychotic) {\n    result.hostname = isAbsolute ? '' : srcPath.length ? srcPath.shift() : '';\n    result.host = result.hostname;\n    /*\n     * occationaly the auth can get stuck only in host\n     * this especially happens in cases like\n     * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n     */\n    var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n    if (authInHost) {\n      result.auth = authInHost.shift();\n      result.hostname = authInHost.shift();\n      result.host = result.hostname;\n    }\n  }\n\n  mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n  if (mustEndAbs && !isAbsolute) {\n    srcPath.unshift('');\n  }\n\n  if (srcPath.length > 0) {\n    result.pathname = srcPath.join('/');\n  } else {\n    result.pathname = null;\n    result.path = null;\n  }\n\n  // to support request.http\n  if (result.pathname !== null || result.search !== null) {\n    result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n  }\n  result.auth = relative.auth || result.auth;\n  result.slashes = result.slashes || relative.slashes;\n  result.href = result.format();\n  return result;\n};\n\nUrl.prototype.parseHost = function () {\n  var host = this.host;\n  var port = portPattern.exec(host);\n  if (port) {\n    port = port[0];\n    if (port !== ':') {\n      this.port = port.substr(1);\n    }\n    host = host.substr(0, host.length - port.length);\n  }\n  if (host) { this.hostname = host; }\n};\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n","module.exports = function isBuffer(arg) {\n  return arg && typeof arg === 'object'\n    && typeof arg.copy === 'function'\n    && typeof arg.fill === 'function'\n    && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n  return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n  var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n  var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n  if (typeof value !== 'object') {\n    return false;\n  }\n  try {\n    prototypeValueOf(value);\n    return true;\n  } catch(e) {\n    return false;\n  }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n  if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n    return ArrayBuffer.isView(value);\n  }\n\n  return (\n    isTypedArray(value) ||\n    isDataView(value)\n  );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n  return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n  return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n  return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n  return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n  return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n  return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n  return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n  return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n  return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n  return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n  return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n  return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n  typeof Map !== 'undefined' &&\n  isMapToString(new Map())\n);\n\nfunction isMap(value) {\n  if (typeof Map === 'undefined') {\n    return false;\n  }\n\n  return isMapToString.working\n    ? isMapToString(value)\n    : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n  return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n  typeof Set !== 'undefined' &&\n  isSetToString(new Set())\n);\nfunction isSet(value) {\n  if (typeof Set === 'undefined') {\n    return false;\n  }\n\n  return isSetToString.working\n    ? isSetToString(value)\n    : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n  return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n  typeof WeakMap !== 'undefined' &&\n  isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n  if (typeof WeakMap === 'undefined') {\n    return false;\n  }\n\n  return isWeakMapToString.working\n    ? isWeakMapToString(value)\n    : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n  return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n  typeof WeakSet !== 'undefined' &&\n  isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n  return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n  return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n  typeof ArrayBuffer !== 'undefined' &&\n  isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n  if (typeof ArrayBuffer === 'undefined') {\n    return false;\n  }\n\n  return isArrayBufferToString.working\n    ? isArrayBufferToString(value)\n    : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n  return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n  typeof ArrayBuffer !== 'undefined' &&\n  typeof DataView !== 'undefined' &&\n  isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n  if (typeof DataView === 'undefined') {\n    return false;\n  }\n\n  return isDataViewToString.working\n    ? isDataViewToString(value)\n    : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n  return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n  if (typeof SharedArrayBufferCopy === 'undefined') {\n    return false;\n  }\n\n  if (typeof isSharedArrayBufferToString.working === 'undefined') {\n    isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n  }\n\n  return isSharedArrayBufferToString.working\n    ? isSharedArrayBufferToString(value)\n    : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n  return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n  return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n  return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n  return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n  return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n  return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n  return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n  return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n  return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n  return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n  return (\n    isNumberObject(value) ||\n    isStringObject(value) ||\n    isBooleanObject(value) ||\n    isBigIntObject(value) ||\n    isSymbolObject(value)\n  );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n  return typeof Uint8Array !== 'undefined' && (\n    isArrayBuffer(value) ||\n    isSharedArrayBuffer(value)\n  );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n  Object.defineProperty(exports, method, {\n    enumerable: false,\n    value: function() {\n      throw new Error(method + ' is not supported in userland');\n    }\n  });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n  function getOwnPropertyDescriptors(obj) {\n    var keys = Object.keys(obj);\n    var descriptors = {};\n    for (var i = 0; i < keys.length; i++) {\n      descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n    }\n    return descriptors;\n  };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n  if (!isString(f)) {\n    var objects = [];\n    for (var i = 0; i < arguments.length; i++) {\n      objects.push(inspect(arguments[i]));\n    }\n    return objects.join(' ');\n  }\n\n  var i = 1;\n  var args = arguments;\n  var len = args.length;\n  var str = String(f).replace(formatRegExp, function(x) {\n    if (x === '%%') return '%';\n    if (i >= len) return x;\n    switch (x) {\n      case '%s': return String(args[i++]);\n      case '%d': return Number(args[i++]);\n      case '%j':\n        try {\n          return JSON.stringify(args[i++]);\n        } catch (_) {\n          return '[Circular]';\n        }\n      default:\n        return x;\n    }\n  });\n  for (var x = args[i]; i < len; x = args[++i]) {\n    if (isNull(x) || !isObject(x)) {\n      str += ' ' + x;\n    } else {\n      str += ' ' + inspect(x);\n    }\n  }\n  return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n  if (typeof process !== 'undefined' && process.noDeprecation === true) {\n    return fn;\n  }\n\n  // Allow for deprecating things in the process of starting up.\n  if (typeof process === 'undefined') {\n    return function() {\n      return exports.deprecate(fn, msg).apply(this, arguments);\n    };\n  }\n\n  var warned = false;\n  function deprecated() {\n    if (!warned) {\n      if (process.throwDeprecation) {\n        throw new Error(msg);\n      } else if (process.traceDeprecation) {\n        console.trace(msg);\n      } else {\n        console.error(msg);\n      }\n      warned = true;\n    }\n    return fn.apply(this, arguments);\n  }\n\n  return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n  var debugEnv = process.env.NODE_DEBUG;\n  debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n    .replace(/\\*/g, '.*')\n    .replace(/,/g, '$|^')\n    .toUpperCase();\n  debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n  set = set.toUpperCase();\n  if (!debugs[set]) {\n    if (debugEnvRegex.test(set)) {\n      var pid = process.pid;\n      debugs[set] = function() {\n        var msg = exports.format.apply(exports, arguments);\n        console.error('%s %d: %s', set, pid, msg);\n      };\n    } else {\n      debugs[set] = function() {};\n    }\n  }\n  return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n  // default options\n  var ctx = {\n    seen: [],\n    stylize: stylizeNoColor\n  };\n  // legacy...\n  if (arguments.length >= 3) ctx.depth = arguments[2];\n  if (arguments.length >= 4) ctx.colors = arguments[3];\n  if (isBoolean(opts)) {\n    // legacy...\n    ctx.showHidden = opts;\n  } else if (opts) {\n    // got an \"options\" object\n    exports._extend(ctx, opts);\n  }\n  // set default options\n  if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n  if (isUndefined(ctx.depth)) ctx.depth = 2;\n  if (isUndefined(ctx.colors)) ctx.colors = false;\n  if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n  if (ctx.colors) ctx.stylize = stylizeWithColor;\n  return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n  'bold' : [1, 22],\n  'italic' : [3, 23],\n  'underline' : [4, 24],\n  'inverse' : [7, 27],\n  'white' : [37, 39],\n  'grey' : [90, 39],\n  'black' : [30, 39],\n  'blue' : [34, 39],\n  'cyan' : [36, 39],\n  'green' : [32, 39],\n  'magenta' : [35, 39],\n  'red' : [31, 39],\n  'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n  'special': 'cyan',\n  'number': 'yellow',\n  'boolean': 'yellow',\n  'undefined': 'grey',\n  'null': 'bold',\n  'string': 'green',\n  'date': 'magenta',\n  // \"name\": intentionally not styling\n  'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n  var style = inspect.styles[styleType];\n\n  if (style) {\n    return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n           '\\u001b[' + inspect.colors[style][1] + 'm';\n  } else {\n    return str;\n  }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n  return str;\n}\n\n\nfunction arrayToHash(array) {\n  var hash = {};\n\n  array.forEach(function(val, idx) {\n    hash[val] = true;\n  });\n\n  return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n  // Provide a hook for user-specified inspect functions.\n  // Check that value is an object with an inspect function on it\n  if (ctx.customInspect &&\n      value &&\n      isFunction(value.inspect) &&\n      // Filter out the util module, it's inspect function is special\n      value.inspect !== exports.inspect &&\n      // Also filter out any prototype objects using the circular check.\n      !(value.constructor && value.constructor.prototype === value)) {\n    var ret = value.inspect(recurseTimes, ctx);\n    if (!isString(ret)) {\n      ret = formatValue(ctx, ret, recurseTimes);\n    }\n    return ret;\n  }\n\n  // Primitive types cannot have properties\n  var primitive = formatPrimitive(ctx, value);\n  if (primitive) {\n    return primitive;\n  }\n\n  // Look up the keys of the object.\n  var keys = Object.keys(value);\n  var visibleKeys = arrayToHash(keys);\n\n  if (ctx.showHidden) {\n    keys = Object.getOwnPropertyNames(value);\n  }\n\n  // IE doesn't make error fields non-enumerable\n  // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n  if (isError(value)\n      && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n    return formatError(value);\n  }\n\n  // Some type of object without properties can be shortcutted.\n  if (keys.length === 0) {\n    if (isFunction(value)) {\n      var name = value.name ? ': ' + value.name : '';\n      return ctx.stylize('[Function' + name + ']', 'special');\n    }\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    }\n    if (isDate(value)) {\n      return ctx.stylize(Date.prototype.toString.call(value), 'date');\n    }\n    if (isError(value)) {\n      return formatError(value);\n    }\n  }\n\n  var base = '', array = false, braces = ['{', '}'];\n\n  // Make Array say that they are Array\n  if (isArray(value)) {\n    array = true;\n    braces = ['[', ']'];\n  }\n\n  // Make functions say that they are functions\n  if (isFunction(value)) {\n    var n = value.name ? ': ' + value.name : '';\n    base = ' [Function' + n + ']';\n  }\n\n  // Make RegExps say that they are RegExps\n  if (isRegExp(value)) {\n    base = ' ' + RegExp.prototype.toString.call(value);\n  }\n\n  // Make dates with properties first say the date\n  if (isDate(value)) {\n    base = ' ' + Date.prototype.toUTCString.call(value);\n  }\n\n  // Make error with message first say the error\n  if (isError(value)) {\n    base = ' ' + formatError(value);\n  }\n\n  if (keys.length === 0 && (!array || value.length == 0)) {\n    return braces[0] + base + braces[1];\n  }\n\n  if (recurseTimes < 0) {\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    } else {\n      return ctx.stylize('[Object]', 'special');\n    }\n  }\n\n  ctx.seen.push(value);\n\n  var output;\n  if (array) {\n    output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n  } else {\n    output = keys.map(function(key) {\n      return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n    });\n  }\n\n  ctx.seen.pop();\n\n  return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n  if (isUndefined(value))\n    return ctx.stylize('undefined', 'undefined');\n  if (isString(value)) {\n    var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n                                             .replace(/'/g, \"\\\\'\")\n                                             .replace(/\\\\\"/g, '\"') + '\\'';\n    return ctx.stylize(simple, 'string');\n  }\n  if (isNumber(value))\n    return ctx.stylize('' + value, 'number');\n  if (isBoolean(value))\n    return ctx.stylize('' + value, 'boolean');\n  // For some reason typeof null is \"object\", so special case here.\n  if (isNull(value))\n    return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n  return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n  var output = [];\n  for (var i = 0, l = value.length; i < l; ++i) {\n    if (hasOwnProperty(value, String(i))) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          String(i), true));\n    } else {\n      output.push('');\n    }\n  }\n  keys.forEach(function(key) {\n    if (!key.match(/^\\d+$/)) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          key, true));\n    }\n  });\n  return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n  var name, str, desc;\n  desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n  if (desc.get) {\n    if (desc.set) {\n      str = ctx.stylize('[Getter/Setter]', 'special');\n    } else {\n      str = ctx.stylize('[Getter]', 'special');\n    }\n  } else {\n    if (desc.set) {\n      str = ctx.stylize('[Setter]', 'special');\n    }\n  }\n  if (!hasOwnProperty(visibleKeys, key)) {\n    name = '[' + key + ']';\n  }\n  if (!str) {\n    if (ctx.seen.indexOf(desc.value) < 0) {\n      if (isNull(recurseTimes)) {\n        str = formatValue(ctx, desc.value, null);\n      } else {\n        str = formatValue(ctx, desc.value, recurseTimes - 1);\n      }\n      if (str.indexOf('\\n') > -1) {\n        if (array) {\n          str = str.split('\\n').map(function(line) {\n            return '  ' + line;\n          }).join('\\n').slice(2);\n        } else {\n          str = '\\n' + str.split('\\n').map(function(line) {\n            return '   ' + line;\n          }).join('\\n');\n        }\n      }\n    } else {\n      str = ctx.stylize('[Circular]', 'special');\n    }\n  }\n  if (isUndefined(name)) {\n    if (array && key.match(/^\\d+$/)) {\n      return str;\n    }\n    name = JSON.stringify('' + key);\n    if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n      name = name.slice(1, -1);\n      name = ctx.stylize(name, 'name');\n    } else {\n      name = name.replace(/'/g, \"\\\\'\")\n                 .replace(/\\\\\"/g, '\"')\n                 .replace(/(^\"|\"$)/g, \"'\");\n      name = ctx.stylize(name, 'string');\n    }\n  }\n\n  return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n  var numLinesEst = 0;\n  var length = output.reduce(function(prev, cur) {\n    numLinesEst++;\n    if (cur.indexOf('\\n') >= 0) numLinesEst++;\n    return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n  }, 0);\n\n  if (length > 60) {\n    return braces[0] +\n           (base === '' ? '' : base + '\\n ') +\n           ' ' +\n           output.join(',\\n  ') +\n           ' ' +\n           braces[1];\n  }\n\n  return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n  return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n  return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n  return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n  return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n  return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n  return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n  return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n  return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n  return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n  return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n  return isObject(e) &&\n      (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n  return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n  return arg === null ||\n         typeof arg === 'boolean' ||\n         typeof arg === 'number' ||\n         typeof arg === 'string' ||\n         typeof arg === 'symbol' ||  // ES6 symbol\n         typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n  return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n  return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n              'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n  var d = new Date();\n  var time = [pad(d.getHours()),\n              pad(d.getMinutes()),\n              pad(d.getSeconds())].join(':');\n  return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n  console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n *     prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n  // Don't do anything if add isn't an object\n  if (!add || !isObject(add)) return origin;\n\n  var keys = Object.keys(add);\n  var i = keys.length;\n  while (i--) {\n    origin[keys[i]] = add[keys[i]];\n  }\n  return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n  return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n  if (typeof original !== 'function')\n    throw new TypeError('The \"original\" argument must be of type Function');\n\n  if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n    var fn = original[kCustomPromisifiedSymbol];\n    if (typeof fn !== 'function') {\n      throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n    }\n    Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n      value: fn, enumerable: false, writable: false, configurable: true\n    });\n    return fn;\n  }\n\n  function fn() {\n    var promiseResolve, promiseReject;\n    var promise = new Promise(function (resolve, reject) {\n      promiseResolve = resolve;\n      promiseReject = reject;\n    });\n\n    var args = [];\n    for (var i = 0; i < arguments.length; i++) {\n      args.push(arguments[i]);\n    }\n    args.push(function (err, value) {\n      if (err) {\n        promiseReject(err);\n      } else {\n        promiseResolve(value);\n      }\n    });\n\n    try {\n      original.apply(this, args);\n    } catch (err) {\n      promiseReject(err);\n    }\n\n    return promise;\n  }\n\n  Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n  if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n    value: fn, enumerable: false, writable: false, configurable: true\n  });\n  return Object.defineProperties(\n    fn,\n    getOwnPropertyDescriptors(original)\n  );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n  // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n  // Because `null` is a special error value in callbacks which means \"no error\n  // occurred\", we error-wrap so the callback consumer can distinguish between\n  // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n  if (!reason) {\n    var newReason = new Error('Promise was rejected with a falsy value');\n    newReason.reason = reason;\n    reason = newReason;\n  }\n  return cb(reason);\n}\n\nfunction callbackify(original) {\n  if (typeof original !== 'function') {\n    throw new TypeError('The \"original\" argument must be of type Function');\n  }\n\n  // We DO NOT return the promise as it gives the user a false sense that\n  // the promise is actually somehow related to the callback's execution\n  // and that the callback throwing will reject the promise.\n  function callbackified() {\n    var args = [];\n    for (var i = 0; i < arguments.length; i++) {\n      args.push(arguments[i]);\n    }\n\n    var maybeCb = args.pop();\n    if (typeof maybeCb !== 'function') {\n      throw new TypeError('The last argument must be of type Function');\n    }\n    var self = this;\n    var cb = function() {\n      return maybeCb.apply(self, arguments);\n    };\n    // In true node style we process the callback on `nextTick` with all the\n    // implications (stack, `uncaughtException`, `async_hooks`)\n    original.apply(this, args)\n      .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n            function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n  }\n\n  Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n  Object.defineProperties(callbackified,\n                          getOwnPropertyDescriptors(original));\n  return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bound');\nvar gOPD = require('gopd');\nvar getProto = require('get-proto');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\n\n/** @type {(array: readonly T[], value: unknown) => number} */\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {import('./types').Getter} Getter */\n/** @type {import('./types').Cache} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getProto) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr && getProto) {\n\t\t\tvar proto = getProto(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor && proto) {\n\t\t\t\tvar superProto = getProto(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\tcache[\n\t\t\t\t/** @type {`$${import('.').TypedArrayName}`} */ ('$' + typedArray)\n\t\t\t] = /** @type {import('./types').BoundSlice | import('./types').BoundSet} */ (\n\t\t\t\t// @ts-expect-error TODO FIXME\n\t\t\t\tcallBind(fn)\n\t\t\t);\n\t\t}\n\t});\n}\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */ (cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n\t\tfunction (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(typedArray, 1));\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */(cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(name, 1));\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\t/** @type {string} */\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n    var target = {}\n\n    for (var i = 0; i < arguments.length; i++) {\n        var source = arguments[i]\n\n        for (var key in source) {\n            if (hasOwnProperty.call(source, key)) {\n                target[key] = source[key]\n            }\n        }\n    }\n\n    return target\n}\n","'use strict';\n\nvar possibleNames = require('possible-typed-array-names');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"1140\":\"490e17ed9c8948d5a9e8\",\"2221\":\"428c2ff62c4b8b3c97fc\",\"4508\":\"04b1afd183e5ecdd9cae\",\"5448\":\"71cfe268d6f1213c4735\",\"5528\":\"1445efe9cbaf4e4cbcb8\",\"5862\":\"580b9c2e231a9169a12f\",\"6015\":\"ebcb6885c1fc8c461988\",\"7859\":\"740587c0c8c350dad157\",\"7910\":\"de857920f8beb5205bbc\",\"8815\":\"9a5c507c75429c9c04e4\"}[chunkId] + \"\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 7062;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t7062: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(48439)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","getLoggerBuilder","setApp","detectUser","build","name","emits","props","title","type","String","fillColor","default","size","Number","_vm","this","_c","_self","_b","staticClass","attrs","on","$event","$emit","$attrs","_v","_s","_e","assertError","err","isError","Error","obj","Object","prototype","toString","call","Layerr","constructor","errorOptionsOrMessage","messageText","args","arguments","options","shortMessage","length","cause","slice","join","assign","parseArguments","message","super","defineProperty","value","info","_info","captureStackTrace","ctor","constructorOpt","_cause","fullStack","stack","output","SEP_PATH_POSIX","SEP_PATH_WINDOWS","encodePath","filePath","replaced","replace","encodeURIComponent","split","makePathAbsolute","pathStr","startsWith","normalisePath","normalisedPath","test","substr","extractURLPath","fullURL","urlPath","pathname","joinURL","parts","strArray","resultArray","TypeError","match","first","shift","i","component","push","str","normalize","reduce","nextPart","partIndex","generateDigestAuthHeader","digest","url","uri","indexOf","method","toUpperCase","qop","ncString","nc","ha1","algorithm","user","realm","pass","nonce","cnonce","ha1Hash","md5","toLowerCase","ha1Compute","username","password","ha2","digestResponse","authValues","response","opaque","authHeader","k","responseIndicatesDigestAuth","headers","get","CharCodes","BinTrieFlags","EntityDecoderState","DecodingMode","EntityLevel","EncodingMode","fromBase64","text","base64","decode","generateBasicAuthHeader","encode","Map","fromCodePoint","codePointAt","root","WorkerGlobalScope","self","window","globalThis","fetch","bind","AuthType","ErrorCode","setupAuth","context","oauthToken","authType","Auto","Authorization","Digest","hasDigestAuth","createDigestContext","None","Password","Token","token","token_type","access_token","code","InvalidAuthType","Headers","Request","Response","HOT_PATCHER_TYPE","NOOP","createNewItem","original","methods","final","HotPatcher","_configuration","registry","getEmptyAction","__type__","configuration","newAction","control","target","allowTargetOverrides","keys","forEach","foreignKey","hasOwnProperty","execute","key","item","result","_this","apply","sequence","isPatched","patch","opts","chain","patchInline","plugin","restore","setFinal","__patcher","isReactNative","TARGET","cloneShallow","getPrototypeOf","proto","isPlainObject","setPrototypeOf","merge","items","nextItem","mergeObjects","obj1","obj2","Array","isArray","convertResponseHeaders","mergeHeaders","headerPayloads","headerKeys","header","lowerHeader","hasArrayBuffer","ArrayBuffer","objToString","isArrayBuffer","isBuffer","prepareRequestOptions","requestOptions","userOptions","finalOptions","data","signal","httpAgent","httpsAgent","_digest","withCredentials","async","request","requestStandard","ok","status","undefined","requestDigest","requestAuto","re","exec","uid","Math","floor","NONCE_CHARS","random","makeNonce","parseDigestAuth","response2","patcher","body","newHeaders","JSON","stringify","requestDataToFetchBody","credentials","agent","parsedURL","protocol","getFetchOptions","assertValidPattern","pattern","posixClasses","braceEscape","s","rangesToString","ranges","parseClass","glob","position","pos","charAt","negs","sawStart","uflag","escaping","negate","endPos","rangeStart","WHILE","c","cls","unip","u","neg","entries","sranges","snegs","windowsPathsNoEscape","types","Set","isExtglobType","has","startNoDot","addPatternStart","justDots","reSpecials","regExpEscape","qmark","star","starNoEmpty","AST","parent","hasMagic","p","map","n","pop","pp","part","copyIn","toJSON","ret","isStart","unshift","isEnd","pl","clone","ast","opt","inBrace","braceStart","braceNeg","acc","noext","ext","substring","fromGlob","toMMPattern","toRegExpSource","nocase","nocaseMagicOnly","flags","RegExp","_src","_glob","allowDot","dot","noEmpty","src","_","start","aps","needNoTrav","needNoDot","end","repeated","bodyDotAllowed","_hasMagic","filter","needUflag","consumed","magic","minimatch","nocomment","Minimatch","starDotExtRE","starDotExtTest","f","endsWith","starDotExtTestDot","starDotExtTestNocase","starDotExtTestNocaseDot","starDotStarRE","starDotStarTest","includes","starDotStarTestDot","dotStarRE","dotStarTest","starRE","starTest","starTestDot","qmarksRE","qmarksTestNocase","$0","qmarksTestNoExt","qmarksTestNocaseDot","qmarksTestNoExtDot","qmarksTestDot","qmarksTest","len","defaultPlatform","process","env","__MINIMATCH_TESTING_PLATFORM__","platform","sep","GLOBSTAR","Symbol","a","b","defaults","def","orig","unescape","escape","makeRe","braceExpand","list","nobrace","mm","nonull","globMagic","set","nonegate","comment","empty","preserveMultipleSlashes","partial","globSet","globParts","isWindows","windowsNoMagicRoot","regexp","allowWindowsEscape","make","magicalBraces","debug","parseNegate","console","error","rawGlobParts","slashSplit","preprocess","__","isUNC","isDrive","ss","parse","noglobstar","j","optimizationLevel","firstPhasePreProcess","secondPhasePreProcess","levelOneOptimize","adjascentGlobstarOptimize","gs","splice","prev","levelTwoFileOptimize","didSomething","dd","gss","next","p2","other","splin","matched","partsMatch","emptyGSMatch","ai","bi","which","negateOffset","matchOne","file","fileDrive","fileUNC","patternDrive","fdi","pdi","fd","pd","fi","pi","fl","fr","pr","swallowee","hit","m","fastTest","Reflect","twoStar","add","open","close","ex","ff","filename","matchBase","flipNegate","createErrorFromResponse","prefix","statusText","handleResponseCode","processResponsePayload","isDetailed","defaultOptions","preserveOrder","attributeNamePrefix","attributesGroupName","textNodeName","ignoreAttributes","removeNSPrefix","allowBooleanAttributes","parseTagValue","parseAttributeValue","trimValues","cdataPropName","numberParseOptions","hex","leadingZeros","eNotation","tagValueProcessor","tagName","val","attributeValueProcessor","attrName","stopNodes","alwaysCreateTextNode","commentPropName","unpairedTags","processEntities","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","jPath","captureMetaData","normalizeProcessEntities","enabled","maxEntitySize","maxExpansionDepth","maxTotalExpansions","maxExpandedLength","allowedTags","tagFilter","buildOptions","built","nameStartChar","regexName","getAllMatches","string","regex","matches","allmatches","startIndex","lastIndex","index","isName","METADATA_SYMBOL","XmlNode","tagname","child","addChild","node","getMetaDataSymbol","DocTypeReader","suppressValidationErr","readDocType","xmlData","entities","angleBracketsCount","hasBody","exp","hasSeq","entityName","readEntityExp","escaped","regx","readElementExp","readNotationExp","skipWhitespace","validateEntityName","entityValue","readIdentifierVal","notationName","identifierType","publicIdentifier","systemIdentifier","identifierVal","startChar","elementName","contentModel","trim","readAttlistExp","attributeName","attributeType","allowedNotations","notation","validTypes","defaultValue","seq","hexRegex","numRegex","consider","decimalPoint","eNotationRegx","getIgnoreAttributesFn","OrderedObjParser","currentNode","tagsNodeStack","docTypeEntities","lastEntities","ampEntity","addExternalEntities","parseXml","parseTextData","resolveNameSpace","buildAttributesMap","isItStopNode","replaceEntitiesValue","readStopNodeData","saveTextToParentTag","ignoreAttributesFn","entityExpansionCount","currentExpandedLength","stopNodesExact","stopNodesWildcard","stopNodeExp","externalEntities","entKeys","ent","dontTrim","hasAttributes","isLeafNode","escapeEntities","newval","parseValue","tags","attrsRegx","attrStr","oldVal","aName","newVal","attrCollection","xmlObj","textData","docTypeReader","closeIndex","findClosingIndex","colonIndex","lastTagName","lastIndexOf","propIndex","tagData","readTagExp","childNode","tagExp","attrExpPresent","endIndex","rawTagName","newTagName","lastTag","tagContent","entityConfig","entity","lengthBefore","currentTagName","errMsg","closingIndex","closingChar","attrBoundary","ch","tagExpWithClosingIndex","separatorIndex","search","trimStart","openTagCount","shouldParse","trimmedStr","skipLike","numStr","parseInt","parse_int","sign","eChar","eAdjacentToLeadingZeros","resolveEnotation","numTrimmedByZeros","decimalAdjacentToLeadingZeros","num","parsedStr","toNumber","base","codePoint","prettify","compress","arr","compressedObj","tagObj","property","propName","newJpath","isLeaf","isLeafTag","assignAttributes","attrMap","jpath","atrrName","propCount","isWhiteSpace","char","readPI","getErrorObject","getLineNumberForPosition","readCommentAndCDATA","readAttributeStr","tagClosed","validAttrStrRegxp","validateAttributeString","attrNames","getPositionFromMatch","validateAttrName","validateAmpersand","validateNumberAmpersand","count","lineNumber","msg","line","col","validateTagName","lines","XMLParser","validationOption","tagFound","reachedRoot","tagStartPos","closingTag","attrStrStart","isValid","otg","openPos","afterAmp","t","validate","orderedObjParser","orderedResult","addEntity","PropertyType","displaynameTagParser","path","getPropertyOfType","prop","Original","parseXML","xml","attributeParsers","tagParsers","Promise","resolve","multistatus","normaliseResponse","normaliseResult","attrValue","processor","tagValue","getParser","prepareFileFromProps","getlastmodified","lastMod","getcontentlength","rawSize","resourcetype","resourceType","getcontenttype","mimeType","getetag","etag","collection","stat","basename","lastmod","mime","displayname","translateDiskSpace","getStat","details","remoteURL","Accept","Depth","responseData","responseItem","propstat","e","statusLine","statusCodeStr","statusCode","parseStat","parsing","createDirectory","dirPath","recursive","paths","directory","currentPath","getAllDirectories","sort","creating","testPath","createDirectoryRecursively","TRANSFORM_RETAIN_FORMAT","v","toXml","jArray","indentation","format","indentBy","arrToStr","xmlStr","isPreviousElementTag","newJPath","tagText","isStopNode","attStr","attr_to_str","tempInd","piTextNodeName","newIdentation","tagStart","suppressUnpairedNode","suppressEmptyNode","attr","attrVal","suppressBooleanAttributes","textValue","oneListGroup","Builder","isAttribute","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","object","level","ajPath","j2x","concat","buildTextValNode","buildObjectNode","repeat","generateLockXML","ownerHREF","namespace","lockinfo","lockscope","exclusive","locktype","write","owner","href","ns","copy","jObj","arrayNodeName","Date","buildAttrPairStr","arrLen","listTagVal","listTagAttr","Ks","L","closeTag","tagEndExp","piClosingChar","DEFAULT_TIMEOUT","getDAVCompliance","compliance","server","DEFAULT_CONTACT_HREF","getRootPath","generateRemoteUrl","client","authTypeRaw","remoteBasePath","contactHref","remotePath","copyFile","destination","Destination","Overwrite","overwrite","shallow","createReadStream","outStream","PassThroughStream","range","rangeHeader","Range","responseError","callback","setTimeout","getFileStream","then","stream","pipe","catch","emit","createWriteStream","writeStream","maxRedirects","customRequest","deleteFile","exists","getDirectoryContents","deep","davResp","_remotePath","files","serverremoteBasePath","requestPath","includeSelf","serverBase","responseItems","nodes","normaliseHREF","decodeURIComponent","getDirectoryFiles","processGlobFilter","getFileContents","InvalidOutputFormat","transformResponse","getFileContentsString","arrayBuffer","Buffer","from","getFileContentsBuffer","getFileDownloadLink","authContents","LinkUnsupportedAuthType","getFileUploadLink","getHeaders","getQuota","quotaUsed","quotaAvail","used","available","parseQuota","lock","refreshToken","timeout","Timeout","If","lockPayload","serverTimeout","moveFile","destinationFilename","putFileContents","contentLength","Readable","byteLength","DataTypeNoLength","calculateDataLength","partialUpdateFileContents","InvalidUpdateRange","partialUpdateFileContentsSabredav","partialUpdateFileContentsApache","NotSupported","searchArbiter","responseText","results","truncated","some","parseSearch","getSearch","setHeaders","unlock","registerAttributeParser","parser","registerTagParser","createClient","requesttoken","onRequestTokenUpdate","getRequestToken","decodeHtmlEntities","passes","DOMParser","decoded","parseFromString","documentElement","textContent","useDeletedCommentLimbo","defineStore","state","idsInLimbo","actions","addId","id","removeId","checkForId","resourceId","required","deleted","editing","loading","computed","mapStores","onEdit","onEditCancel","updateLocalMessage","onEditComment","commentId","commentPath","EditComment","logger","showError","onDeleteWithUndo","deletedCommentLimboStore","timeOutDelete","onDelete","TOAST_UNDO_TIMEOUT","showUndo","clearTimeout","DeleteComment","onNewComment","newComment","resourcePath","axios","post","actorDisplayName","getCurrentUser","displayName","actorId","actorType","creationDateTime","toUTCString","objectType","verb","NewComment","localMessage","components","IconArrowRight","IconClose","IconTrashCanOutline","IconPencilOutline","NcActionButton","NcActions","NcActionSeparator","NcAvatar","NcButton","NcDateTime","NcLoadingIcon","NcRichContenteditable","NcRichText","mixins","CommentMixin","inheritAttrs","editor","Boolean","autoComplete","Function","userData","tag","expanded","submitted","isOwnComment","richContent","mentions","NcUserBubble","label","primary","isEmptyMessage","timestamp","isLimbo","watch","beforeMount","onSubmit","$nextTick","$refs","$el","focus","onExpand","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","directives","rawName","expression","class","scopedSlots","_u","fn","proxy","preventDefault","ref","nativeOn","defineComponent","editorData","currentResourceId","generateOcsUrl","params","itemType","itemId","sorter","limit","loadState","ocs","values","genMentionsData","flat","mention","mentionId","icon","mentionDisplayName","source","getComments","datetime","toISOString","offset","Comment","NcEmptyContent","IconRefresh","IconMessageReplyTextOutline","IconAlertCircleOutline","elementVisibility","CommentView","done","comments","cancelRequest","hasComments","isFirstLoading","onVisibilityChange","isVisible","date","readMarker","markCommentsAsRead","update","resetState","onScrollBottomReached","abort","controller","AbortController","cancelableRequest","findIndex","_l","$set","Vue","use","PiniaVuePlugin","__webpack_nonce__","getCSPNonce","mixin","OCA","Comments","View","pinia","createPinia","propsData","extend","CommentsApp","balanced","maybeMatch","r","pre","reg","begs","beg","left","right","module","exports","freeGlobal","global","InvalidCharacterError","TABLE","REGEX_SPACE_CHARACTERS","input","buffer","padding","charCodeAt","bitStorage","bitCounter","fromCharCode","expand","escSlash","escOpen","escClose","escComma","escPeriod","escapeBraces","unescapeBraces","numeric","parseCommaParts","postParts","embrace","isPadded","el","lte","y","gte","isTop","expansions","expansion","N","isNumericSequence","isAlphaSequence","isSequence","isOptions","x","width","max","incr","abs","pad","need","z","$apply","$call","$reflectApply","actualApply","$TypeError","$actualApply","setFunctionLength","$defineProperty","callBindBasic","applyBind","originalFunction","func","adjustedLength","GetIntrinsic","$indexOf","allowMissing","intrinsic","___CSS_LOADER_EXPORT___","$SyntaxError","gopd","nonEnumerable","nonWritable","nonConfigurable","loose","desc","configurable","enumerable","writable","hasProtoAccessor","callBind","gOPD","__proto__","$Object","$getPrototypeOf","EvalError","RangeError","ReferenceError","SyntaxError","URIError","isCallable","toStr","iterator","thisArg","receiver","array","forEachArray","forEachString","forEachObject","concatty","that","bound","arrLike","slicy","boundLength","boundArgs","joiny","Empty","implementation","cached","$Error","$EvalError","$RangeError","$ReferenceError","$URIError","min","pow","round","$Function","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","getProto","$ObjectGPO","$ReflectGPO","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","Atomics","BigInt","BigInt64Array","BigUint64Array","DataView","decodeURI","encodeURI","eval","Float16Array","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","parseFloat","Proxy","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","WeakRef","WeakSet","errorProto","doEval","gen","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","$replace","$strSlice","$exec","rePropName","reEscapeChar","getBaseIntrinsic","alias","intrinsicName","last","number","quote","subString","stringToPath","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","reflectGetProto","originalGetProto","getDunderProto","O","getOwnPropertyDescriptor","hasPropertyDescriptors","hasArrayLengthDefineBug","origSymbol","hasSymbolSham","getOwnPropertySymbols","sym","symObj","getOwnPropertyNames","syms","propertyIsEnumerable","descriptor","toStringTag","$hasOwn","http","https","validateParams","cb","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","badArrayLike","isCallableMarker","fnToStr","reflectApply","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","isIE68","isDDA","document","all","strClass","isFnRegex","safeRegexTest","getGeneratorFunction","GeneratorFunction","isRegexMarker","throwRegexMarker","badStringifier","valueOf","toPrimitive","whichTypedArray","$isNaN","_typeof","_wrapNativeSuper","Class","_cache","Wrapper","_construct","_getPrototypeOf","create","_setPrototypeOf","Parent","construct","sham","_isNativeReflectConstruct","instance","o","ObjectPrototypeMutationError","_Error","Constructor","_classCallCheck","_assertThisInitialized","_possibleConstructorReturn","subClass","superClass","_inherits","traverse","segments","_loop","idx","currentSegment","remainingSegments","pathToHere","_ret","isLastSegment","currentObject","currentProperty","nextPropIsNumber","isInteger","nextPropIsArrayWildcard","own","isIn","objectInPath","pathExists","validPath","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","weakMapHas","weakSetHas","weakRefDeref","deref","booleanValueOf","objectToString","functionToString","$match","$slice","$toUpperCase","$toLowerCase","$test","$join","$arrSlice","$floor","bigIntValueOf","gOPS","symToString","hasShammedSymbols","isEnumerable","gPO","addNumericSeparator","Infinity","sepRegex","int","intStr","dec","utilInspect","inspectCustom","custom","inspectSymbol","isSymbol","quotes","single","quoteREs","wrapQuotes","defaultStyle","style","quoteStyle","quoteChar","canTrustToString","isRegExp","inspect_","depth","seen","maxStringLength","customInspect","indent","numericSeparator","inspectString","bigIntStr","maxDepth","baseIndent","getIndent","inspect","noIndent","newOpts","nameOf","arrObjKeys","symString","markBoxed","HTMLElement","nodeName","getAttribute","attributes","childNodes","xs","singleLineValues","indentedJoin","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","isBigInt","isBoolean","isString","isDate","ys","protoTag","stringTag","l","remaining","trailer","quoteRE","lowbyte","lineJoiner","isArr","symMap","util","normalizeArray","allowAboveRoot","res","splitPathRe","posix","posixSplitPath","resolvedPath","resolvedAbsolute","cwd","isAbsolute","trailingSlash","segment","relative","to","fromParts","toParts","samePartsLength","outputParts","_makeLong","dirname","dir","extname","pathObject","isObject","pathString","allParts","delimiter","nodeType","punycode","maxInt","regexPunycode","regexNonASCII","regexSeparators","errors","stringFromCharCode","mapDomain","ucs2decode","extra","counter","ucs2encode","basicToDigit","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","baseMinusTMin","out","basic","oldi","w","baseMinusT","inputLength","bias","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","percentTwenties","Format","formatters","RFC1738","RFC3986","formats","utils","allowDots","allowEmptyArrays","allowPrototypes","allowSparse","arrayLimit","charset","charsetSentinel","comma","decodeDotInKeys","decoder","duplicates","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictDepth","strictNullHandling","throwOnLimitExceeded","numberStr","parseArrayValue","currentArrayLength","parseKeys","givenKey","valuesParsed","segmentContent","splitKeyIntoSegments","parentKey","leaf","isOverflow","combine","cleanRoot","decodedRoot","isValidArrayIndex","markOverflow","parseObject","normalizeParseOptions","tempObj","cleanStr","skipIndex","bracketEqualsPos","maybeMap","encodedVal","existing","parseValues","newObj","compact","getSideChannel","arrayPrefixGenerators","brackets","indices","pushToArray","valueOrArray","toISO","defaultFormat","addQueryPrefix","arrayFormat","commaRoundTrip","encodeDotInKeys","encoder","encodeValuesOnly","formatter","serializeDate","skipNulls","sentinel","generateArrayPrefix","sideChannel","tmpSc","step","findFlag","objKeys","encodedPrefix","adjustedPrefix","encodedKey","keyPrefix","valueSideChannel","normalizeStringifyOptions","joined","overflowChannel","maxIndex","getMaxIndex","setMaxIndex","hexTable","arrayToObject","newIndex","queue","refs","compacted","compactQueue","defaultDecoder","strWithoutPlus","defaultEncoder","kind","mapped","nextIndex","sourceKeys","combined","mergeTarget","targetItem","keyNum","pairs","query","port","isRegex","define","hasDescriptors","functionLengthIsConfigurable","functionLengthIsWritable","listGetNode","isDelete","curr","$o","channel","assert","deletedNode","objects","listDelete","listGet","listHas","listSet","$Map","$mapGet","$mapSet","$mapHas","$mapDelete","$mapSize","$m","getSideChannelMap","$WeakMap","$weakMapGet","$weakMapSet","$weakMapHas","$weakMapDelete","$wm","getSideChannelList","makeChannel","$channelData","ClientRequest","statusCodes","defaultProtocol","location","host","hostname","req","IncomingMessage","Agent","defaultMaxSockets","globalAgent","STATUS_CODES","METHODS","xhr","getXHR","XMLHttpRequest","XDomainRequest","checkTypeSupport","responseType","isFunction","ReadableStream","writableStream","WritableStream","abortController","arraybuffer","msstream","mozchunkedarraybuffer","overrideMimeType","capability","inherits","rStates","readyStates","preferBinary","Writable","_opts","_body","_headers","auth","setHeader","useFetch","mode","_mode","decideMode","_fetchTimer","_socketTimeout","_socketTimer","_onFinish","lowerName","unsafeHeaders","getHeader","removeHeader","_destroyed","headersObj","Blob","headersList","keyName","_fetchAbortController","requestTimeout","_fetchResponse","_resetTimers","_connect","reason","_xhr","nextTick","ontimeout","setRequestHeader","_response","onreadystatechange","readyState","LOADING","DONE","_onXHRProgress","onprogress","onerror","send","statusValid","_write","chunk","encoding","destroy","once","flushHeaders","setNoDelay","setSocketKeepAlive","UNSENT","OPENED","HEADERS_RECEIVED","resetTimers","rawHeaders","trailers","rawTrailers","statusMessage","reject","_resumeFetch","pipeTo","reader","getReader","read","_pos","responseURL","getAllResponseHeaders","_charset","charsetMatch","_read","newData","alloc","MSStreamReader","onload","readAsArrayBuffer","codes","createErrorType","Base","NodeError","_Base","arg1","arg2","arg3","getMessage","oneOf","expected","thing","actual","determiner","this_len","arg","objectKeys","Duplex","allowHalfOpen","readable","onend","_writableState","ended","onEndNT","highWaterMark","getBuffer","_readableState","destroyed","PassThrough","Transform","_transform","ReadableState","EElistenerCount","emitter","listeners","Stream","OurUint8Array","debugUtil","debuglog","StringDecoder","createReadableStreamAsyncIterator","BufferList","destroyImpl","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","isDuplex","objectMode","readableObjectMode","pipes","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","defaultEncoding","awaitDrain","readingMore","_destroy","readableAddChunk","addToFront","skipChunkCheck","er","emitReadable","emitReadable_","onEofChunk","chunkInvalid","_uint8ArrayToBuffer","addChunk","maybeReadMore","_undestroy","undestroy","isPaused","setEncoding","enc","head","content","clear","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","listenerCount","resume","nReadingNextTick","resume_","fromList","consume","endReadable","endReadableNT","wState","finished","nOrig","doRead","dest","pipeOpts","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","removeListener","onclose","onfinish","ondrain","ondata","cleanedUp","needDrain","pipeOnDrain","pause","event","prependListener","_events","dests","ev","addListener","removeAllListeners","wrap","asyncIterator","_fromList","iterable","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writecb","writechunk","rs","needTransform","writeencoding","transform","flush","_flush","prefinish","err2","CorkedRequest","entry","finish","corkReq","pendingcb","onCorkedFinish","corkedRequestsFree","WritableState","realHasInstance","internalUtil","deprecate","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","finalCalled","ending","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","writev","_writev","_final","doWrite","onwriteDrain","holder","allBuffers","isBuf","callFinal","rState","current","hasInstance","writeAfterEnd","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_Object$setPrototypeO","_defineProperty","prim","hint","_toPrimitive","_toPropertyKey","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","promise","lastPromise","wrapForNext","_this2","_Object$create","ownKeys","enumerableOnly","symbols","_objectSpread","getOwnPropertyDescriptors","defineProperties","_defineProperties","copyBuffer","tail","protoProps","allocUnsafe","hasStrings","_getString","_getBuffer","nb","buf","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","ERR_STREAM_PREMATURE_CLOSE","noop","eos","called","_len","_key","onlegacyfinish","writableEnded","readableEnded","onrequest","isRequest","ERR_MISSING_ARGS","streams","popCallback","destroys","closed","destroyer","ERR_INVALID_OPT_VALUE","duplexKey","hwm","highWaterMarkFrom","pipeline","qs","controlOrWhitespace","CRHTLF","slashes","protocolre","windowsDriveLetter","trimLeft","rules","address","isSpecial","NaN","ignore","hash","lolcation","loc","finaldestination","Url","scheme","extractProtocol","rest","forwardSlashes","otherSlashes","slashesCount","extracted","instruction","instructions","up","origin","ins","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","hostlessProtocol","slashedProtocol","ftp","gopher","querystring","urlParse","parseQueryString","slashesDenoteHost","queryIndex","splitter","uSplit","simplePath","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","toASCII","h","ae","esc","qm","resolveObject","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","fill","readUInt8","isArgumentsObject","isGeneratorFunction","isTypedArray","uncurryThis","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","working","isDataViewToString","isDataView","isPromise","isArrayBufferView","isView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isFloat32Array","isFloat64Array","isBigInt64Array","isBigUint64Array","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","isBoxedPrimitive","isAnyArrayBuffer","descriptors","formatRegExp","isNull","noDeprecation","warned","throwDeprecation","traceDeprecation","trace","debugs","debugEnvRegex","NODE_DEBUG","debugEnv","ctx","stylize","stylizeNoColor","colors","showHidden","_extend","isUndefined","stylizeWithColor","formatValue","styleType","styles","recurseTimes","primitive","simple","formatPrimitive","visibleKeys","arrayToHash","formatError","braces","formatProperty","formatArray","cur","reduceToSingleString","ar","d","pid","isNullOrUndefined","isNativeError","isPrimitive","months","log","time","getHours","getMinutes","getSeconds","getDate","getMonth","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","promiseResolve","promiseReject","callbackify","callbackified","maybeCb","rej","availableTypedArrays","g","typedArrays","cache","typedArray","superProto","found","getter","trySlices","tryTypedArrays","possibleNames","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","fulfilled","every","__esModule","definition","chunkId","promises","script","needAttach","scripts","getElementsByTagName","createElement","setAttribute","onScriptComplete","doneFns","parentNode","removeChild","appendChild","nmd","children","scriptUrl","importScripts","currentScript","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/comments-comments-tab.js b/dist/comments-comments-tab.js
index 2056d9fd16df1..5c70a7d267a42 100644
--- a/dist/comments-comments-tab.js
+++ b/dist/comments-comments-tab.js
@@ -1,2 +1,2 @@
-(()=>{var t,e,r,n={96689(t,e,r){"use strict";r.d(e,{A:()=>n});const n=(0,r(35947).YK)().setApp("comments").detectUser().build()},35550(t,e,r){"use strict";r.d(e,{A:()=>u});var n=r(21777),o=r(82415),i=r(17003);const a=(0,o.UU)((0,i.e)());function s(t){a.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:t??""})}(0,n.zo)(s),s((0,n.do)());const u=a},17003(t,e,r){"use strict";r.d(e,{e:()=>o});var n=r(63814);function o(){return(0,n.dC)("dav/comments")}},80609(t,e,r){"use strict";var n=r(21777),o=r(35810),i=r(53334),a=r(26422),s=r(10810),u=r(85471),l=r(51651),c=r(96689),f=r(35906);let p,h;u.Ay.use(s.R2);var d=r(81222);r.nc=(0,n.aV)();const y="comments_files-sidebar-tab";(0,d.C)("comments","activityEnabled",!1)&&void 0!==window.OCA?.Activity?.registerSidebarAction?window.addEventListener("DOMContentLoaded",function(){window.OCA.Activity.registerSidebarAction({mount:async(t,{node:e,reload:n})=>{const o=(0,s.Ey)();if(!p){const{default:t}=await Promise.all([r.e(4208),r.e(3556),r.e(4906)]).then(r.bind(r,44906));p=u.Ay.extend(t)}h=new p({el:t,pinia:o,propsData:{reloadCallback:n,resourceId:e.fileid}}),c.A.info("Comments plugin mounted in Activity sidebar action",{node:e})},unmount:()=>{h&&h.$destroy()}}),window.OCA.Activity.registerSidebarEntries(async({node:t,limit:e,offset:n})=>{const{data:o}=await(0,f.v)({resourceType:"files",resourceId:t.fileid},{limit:e,offset:n??0});c.A.debug("Loaded comments",{node:t,comments:o});const{default:i}=await Promise.all([r.e(4208),r.e(3556),r.e(7039)]).then(r.bind(r,57039)),a=u.Ay.extend(i);return o.map(e=>({_CommentsViewInstance:void 0,timestamp:(0,l.A)(e.props?.creationDateTime).toDate().getTime(),mount(r,{reload:n}){this._CommentsViewInstance=new a({el:r,propsData:{comment:e,resourceId:t.fileid,reloadCallback:n}})},unmount(){this._CommentsViewInstance?.$destroy()}}))}),window.OCA.Activity.registerSidebarFilter(t=>"comments"!==t.type),c.A.info("Comments plugin registered for Activity sidebar action")}):(0,o.rS)({id:"comments",displayName:(0,i.t)("comments","Comments"),iconSvgInline:'',order:50,tagName:y,async onInit(){const{default:t}=await Promise.all([r.e(4208),r.e(3556),r.e(8124)]).then(r.bind(r,38124));u.Ay.use(s.R2),u.Ay.mixin({pinia:(0,s.Ey)()});const e=(0,a.A)(u.Ay,t);Object.defineProperty(e.prototype,"attachShadow",{value(){return this}}),Object.defineProperty(e.prototype,"shadowRoot",{get(){return this}}),window.customElements.define(y,e)}})},35906(t,e,r){"use strict";r.d(e,{e:()=>s,v:()=>u});var n=r(82415),o=r(5e3),i=r(90176),a=r(35550);const s=20;async function u({resourceType:t,resourceId:e},r){const u=["",t,e].join("/"),l=r.datetime?`${r.datetime.toISOString()}`:"",c=await a.A.customRequest(u,{method:"REPORT",data:`\n\t\t\t\n\t\t\t\t${r.limit??s}\n\t\t\t\t${r.offset||0}\n\t\t\t\t${l}\n\t\t\t`,...r}),f=await c.text(),p=function(t,e=!1){const{multistatus:{response:r}}=t;return r.map(t=>{const r=t.propstat.prop;return(0,i.ch)(r,r.id.toString(),e)})}(await(0,n.h4)(f),!0);return(0,o.hq)(c,p,!0)}},8505(t){"use strict";function e(t,e,o){t instanceof RegExp&&(t=r(t,o)),e instanceof RegExp&&(e=r(e,o));var i=n(t,e,o);return i&&{start:i[0],end:i[1],pre:o.slice(0,i[0]),body:o.slice(i[0]+t.length,i[1]),post:o.slice(i[1]+e.length)}}function r(t,e){var r=e.match(t);return r?r[0]:null}function n(t,e,r){var n,o,i,a,s,u=r.indexOf(t),l=r.indexOf(e,u+1),c=u;if(u>=0&&l>0){if(t===e)return[u,l];for(n=[],i=r.length;c>=0&&!s;)c==u?(n.push(c),u=r.indexOf(t,c+1)):1==n.length?s=[n.pop(),l]:((o=n.pop())=0?u:l;n.length&&(s=[i,a])}return s}t.exports=e,e.range=n},85914(t,e,r){var n;t=r.nmd(t),function(){var o=(t&&t.exports,"object"==typeof globalThis&&globalThis);o.global!==o&&o.window;var i=function(t){this.message=t};(i.prototype=new Error).name="InvalidCharacterError";var a=function(t){throw new i(t)},s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u=/[\t\n\f\r ]/g,l={encode:function(t){t=String(t),/[^\0-\xFF]/.test(t)&&a("The string to be encoded contains characters outside of the Latin1 range.");for(var e,r,n,o,i=t.length%3,u="",l=-1,c=t.length-i;++l>18&63)+s.charAt(o>>12&63)+s.charAt(o>>6&63)+s.charAt(63&o);return 2==i?(e=t.charCodeAt(l)<<8,r=t.charCodeAt(++l),u+=s.charAt((o=e+r)>>10)+s.charAt(o>>4&63)+s.charAt(o<<2&63)+"="):1==i&&(o=t.charCodeAt(l),u+=s.charAt(o>>2)+s.charAt(o<<4&63)+"=="),u},decode:function(t){var e=(t=String(t).replace(u,"")).length;e%4==0&&(e=(t=t.replace(/==?$/,"")).length),(e%4==1||/[^+a-zA-Z0-9/]/.test(t))&&a("Invalid character: the string to be decoded is not correctly encoded.");for(var r,n,o=0,i="",l=-1;++l>(-2*o&6)));return i},version:"1.0.0"};void 0===(n=function(){return l}.call(e,r,e,t))||(t.exports=n)}()},68928(t,e,r){var n=r(8505);t.exports=function(t){return t?("{}"===t.substr(0,2)&&(t="\\{\\}"+t.substr(2)),g(function(t){return t.split("\\\\").join(o).split("\\{").join(i).split("\\}").join(a).split("\\,").join(s).split("\\.").join(u)}(t),!0).map(c)):[]};var o="\0SLASH"+Math.random()+"\0",i="\0OPEN"+Math.random()+"\0",a="\0CLOSE"+Math.random()+"\0",s="\0COMMA"+Math.random()+"\0",u="\0PERIOD"+Math.random()+"\0";function l(t){return parseInt(t,10)==t?parseInt(t,10):t.charCodeAt(0)}function c(t){return t.split(o).join("\\").split(i).join("{").split(a).join("}").split(s).join(",").split(u).join(".")}function f(t){if(!t)return[""];var e=[],r=n("{","}",t);if(!r)return t.split(",");var o=r.pre,i=r.body,a=r.post,s=o.split(",");s[s.length-1]+="{"+i+"}";var u=f(a);return a.length&&(s[s.length-1]+=u.shift(),s.push.apply(s,u)),e.push.apply(e,s),e}function p(t){return"{"+t+"}"}function h(t){return/^-?0\d/.test(t)}function d(t,e){return t<=e}function y(t,e){return t>=e}function g(t,e){var r=[],o=n("{","}",t);if(!o)return[t];var i=o.pre,s=o.post.length?g(o.post,!1):[""];if(/\$$/.test(o.pre))for(var u=0;u=0;if(!E&&!x)return o.post.match(/,(?!,).*\}/)?g(t=o.pre+"{"+o.body+a+o.post):[t];if(E)m=o.body.split(/\.\./);else if(1===(m=f(o.body)).length&&1===(m=g(m[0],!1).map(p)).length)return s.map(function(t){return o.pre+m[0]+t});if(E){var S=l(m[0]),A=l(m[1]),O=Math.max(m[0].length,m[1].length),_=3==m.length?Math.abs(l(m[2])):1,T=d;A0){var k=new Array(N+1).join("0");R=P<0?"-"+k+R.slice(1):k+R}}b.push(R)}}else{b=[];for(var I=0;I0?r:0),!0)},o?o(t.exports,"apply",{value:a}):t.exports.apply=a},36556(t,e,r){"use strict";var n=r(70453),o=r(73126),i=o([n("%String.prototype.indexOf%")]);t.exports=function(t,e){var r=n(t,!!e);return"function"==typeof r&&i(t,".prototype.")>-1?o([r]):r}},30041(t,e,r){"use strict";var n=r(30655),o=r(58068),i=r(69675),a=r(75795);t.exports=function(t,e,r){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new i("`obj` must be an object or a function`");if("string"!=typeof e&&"symbol"!=typeof e)throw new i("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new i("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new i("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new i("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new i("`loose`, if provided, must be a boolean");var s=arguments.length>3?arguments[3]:null,u=arguments.length>4?arguments[4]:null,l=arguments.length>5?arguments[5]:null,c=arguments.length>6&&arguments[6],f=!!a&&a(t,e);if(n)n(t,e,{configurable:null===l&&f?f.configurable:!l,enumerable:null===s&&f?f.enumerable:!s,value:r,writable:null===u&&f?f.writable:!u});else{if(!c&&(s||u||l))throw new o("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");t[e]=r}}},7176(t,e,r){"use strict";var n,o=r(73126),i=r(75795);try{n=[].__proto__===Array.prototype}catch(t){if(!t||"object"!=typeof t||!("code"in t)||"ERR_PROTO_ACCESS"!==t.code)throw t}var a=!!n&&i&&i(Object.prototype,"__proto__"),s=Object,u=s.getPrototypeOf;t.exports=a&&"function"==typeof a.get?o([a.get]):"function"==typeof u&&function(t){return u(null==t?t:s(t))}},30655(t){"use strict";var e=Object.defineProperty||!1;if(e)try{e({},"a",{value:1})}catch(t){e=!1}t.exports=e},41237(t){"use strict";t.exports=EvalError},69383(t){"use strict";t.exports=Error},79290(t){"use strict";t.exports=RangeError},79538(t){"use strict";t.exports=ReferenceError},58068(t){"use strict";t.exports=SyntaxError},69675(t){"use strict";t.exports=TypeError},35345(t){"use strict";t.exports=URIError},79612(t){"use strict";t.exports=Object},82682(t,e,r){"use strict";var n=r(69600),o=Object.prototype.toString,i=Object.prototype.hasOwnProperty;t.exports=function(t,e,r){if(!n(e))throw new TypeError("iterator must be a function");var a,s;arguments.length>=3&&(a=r),s=t,"[object Array]"===o.call(s)?function(t,e,r){for(var n=0,o=t.length;ne},70453(t,e,r){"use strict";var n,o=r(79612),i=r(69383),a=r(41237),s=r(79290),u=r(79538),l=r(58068),c=r(69675),f=r(35345),p=r(71514),h=r(58968),d=r(6188),y=r(68002),g=r(75880),m=r(70414),b=r(73093),v=Function,w=function(t){try{return v('"use strict"; return ('+t+").constructor;")()}catch(t){}},E=r(75795),x=r(30655),S=function(){throw new c},A=E?function(){try{return S}catch(t){try{return E(arguments,"callee").get}catch(t){return S}}}():S,O=r(64039)(),_=r(93628),T=r(71064),j=r(48648),P=r(11002),R=r(10076),N={},k="undefined"!=typeof Uint8Array&&_?_(Uint8Array):n,I={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?n:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer,"%ArrayIteratorPrototype%":O&&_?_([][Symbol.iterator]()):n,"%AsyncFromSyncIteratorPrototype%":n,"%AsyncFunction%":N,"%AsyncGenerator%":N,"%AsyncGeneratorFunction%":N,"%AsyncIteratorPrototype%":N,"%Atomics%":"undefined"==typeof Atomics?n:Atomics,"%BigInt%":"undefined"==typeof BigInt?n:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?n:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?n:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?n:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":i,"%eval%":eval,"%EvalError%":a,"%Float16Array%":"undefined"==typeof Float16Array?n:Float16Array,"%Float32Array%":"undefined"==typeof Float32Array?n:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?n:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?n:FinalizationRegistry,"%Function%":v,"%GeneratorFunction%":N,"%Int8Array%":"undefined"==typeof Int8Array?n:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?n:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?n:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":O&&_?_(_([][Symbol.iterator]())):n,"%JSON%":"object"==typeof JSON?JSON:n,"%Map%":"undefined"==typeof Map?n:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&O&&_?_((new Map)[Symbol.iterator]()):n,"%Math%":Math,"%Number%":Number,"%Object%":o,"%Object.getOwnPropertyDescriptor%":E,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?n:Promise,"%Proxy%":"undefined"==typeof Proxy?n:Proxy,"%RangeError%":s,"%ReferenceError%":u,"%Reflect%":"undefined"==typeof Reflect?n:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?n:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&O&&_?_((new Set)[Symbol.iterator]()):n,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":O&&_?_(""[Symbol.iterator]()):n,"%Symbol%":O?Symbol:n,"%SyntaxError%":l,"%ThrowTypeError%":A,"%TypedArray%":k,"%TypeError%":c,"%Uint8Array%":"undefined"==typeof Uint8Array?n:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?n:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?n:Uint32Array,"%URIError%":f,"%WeakMap%":"undefined"==typeof WeakMap?n:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?n:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?n:WeakSet,"%Function.prototype.call%":R,"%Function.prototype.apply%":P,"%Object.defineProperty%":x,"%Object.getPrototypeOf%":T,"%Math.abs%":p,"%Math.floor%":h,"%Math.max%":d,"%Math.min%":y,"%Math.pow%":g,"%Math.round%":m,"%Math.sign%":b,"%Reflect.getPrototypeOf%":j};if(_)try{null.error}catch(t){var M=_(_(t));I["%Error.prototype%"]=M}var C=function t(e){var r;if("%AsyncFunction%"===e)r=w("async function () {}");else if("%GeneratorFunction%"===e)r=w("function* () {}");else if("%AsyncGeneratorFunction%"===e)r=w("async function* () {}");else if("%AsyncGenerator%"===e){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if("%AsyncIteratorPrototype%"===e){var o=t("%AsyncGenerator%");o&&_&&(r=_(o.prototype))}return I[e]=r,r},L={__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"]},D=r(66743),U=r(9957),$=D.call(R,Array.prototype.concat),F=D.call(P,Array.prototype.splice),q=D.call(R,String.prototype.replace),H=D.call(R,String.prototype.slice),B=D.call(R,RegExp.prototype.exec),W=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,V=/\\(\\)?/g,G=function(t,e){var r,n=t;if(U(L,n)&&(n="%"+(r=L[n])[0]+"%"),U(I,n)){var o=I[n];if(o===N&&(o=C(n)),void 0===o&&!e)throw new c("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:r,name:n,value:o}}throw new l("intrinsic "+t+" does not exist!")};t.exports=function(t,e){if("string"!=typeof t||0===t.length)throw new c("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof e)throw new c('"allowMissing" argument must be a boolean');if(null===B(/^%?[^%]*%?$/,t))throw new l("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=function(t){var e=H(t,0,1),r=H(t,-1);if("%"===e&&"%"!==r)throw new l("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==e)throw new l("invalid intrinsic syntax, expected opening `%`");var n=[];return q(t,W,function(t,e,r,o){n[n.length]=r?q(o,V,"$1"):e||t}),n}(t),n=r.length>0?r[0]:"",o=G("%"+n+"%",e),i=o.name,a=o.value,s=!1,u=o.alias;u&&(n=u[0],F(r,$([0,1],u)));for(var f=1,p=!0;f=r.length){var g=E(a,h);a=(p=!!g)&&"get"in g&&!("originalValue"in g.get)?g.get:a[h]}else p=U(a,h),a=a[h];p&&!s&&(I[i]=a)}}return a}},71064(t,e,r){"use strict";var n=r(79612);t.exports=n.getPrototypeOf||null},48648(t){"use strict";t.exports="undefined"!=typeof Reflect&&Reflect.getPrototypeOf||null},93628(t,e,r){"use strict";var n=r(48648),o=r(71064),i=r(7176);t.exports=n?function(t){return n(t)}:o?function(t){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("getProto: not an object");return o(t)}:i?function(t){return i(t)}:null},6549(t){"use strict";t.exports=Object.getOwnPropertyDescriptor},75795(t,e,r){"use strict";var n=r(6549);if(n)try{n([],"length")}catch(t){n=null}t.exports=n},30592(t,e,r){"use strict";var n=r(30655),o=function(){return!!n};o.hasArrayLengthDefineBug=function(){if(!n)return null;try{return 1!==n([],"length",{value:1}).length}catch(t){return!0}},t.exports=o},64039(t,e,r){"use strict";var n="undefined"!=typeof Symbol&&Symbol,o=r(41333);t.exports=function(){return"function"==typeof n&&"function"==typeof Symbol&&"symbol"==typeof n("foo")&&"symbol"==typeof Symbol("bar")&&o()}},41333(t){"use strict";t.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var t={},e=Symbol("test"),r=Object(e);if("string"==typeof e)return!1;if("[object Symbol]"!==Object.prototype.toString.call(e))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(var n in t[e]=42,t)return!1;if("function"==typeof Object.keys&&0!==Object.keys(t).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var o=Object.getOwnPropertySymbols(t);if(1!==o.length||o[0]!==e)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(t,e);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},49092(t,e,r){"use strict";var n=r(41333);t.exports=function(){return n()&&!!Symbol.toStringTag}},9957(t,e,r){"use strict";var n=Function.prototype.call,o=Object.prototype.hasOwnProperty,i=r(66743);t.exports=i.call(n,o)},11083(t,e,r){var n=r(11568),o=r(88835),i=t.exports;for(var a in n)n.hasOwnProperty(a)&&(i[a]=n[a]);function s(t){if("string"==typeof t&&(t=o.parse(t)),t.protocol||(t.protocol="https:"),"https:"!==t.protocol)throw new Error('Protocol "'+t.protocol+'" not supported. Expected "https:"');return t}i.request=function(t,e){return t=s(t),n.request.call(this,t,e)},i.get=function(t,e){return t=s(t),n.get.call(this,t,e)}},47244(t,e,r){"use strict";var n=r(49092)(),o=r(36556)("Object.prototype.toString"),i=function(t){return!(n&&t&&"object"==typeof t&&Symbol.toStringTag in t)&&"[object Arguments]"===o(t)},a=function(t){return!!i(t)||null!==t&&"object"==typeof t&&"length"in t&&"number"==typeof t.length&&t.length>=0&&"[object Array]"!==o(t)&&"callee"in t&&"[object Function]"===o(t.callee)},s=function(){return i(arguments)}();i.isLegacyArguments=a,t.exports=s?i:a},69600(t){"use strict";var e,r,n=Function.prototype.toString,o="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof o&&"function"==typeof Object.defineProperty)try{e=Object.defineProperty({},"length",{get:function(){throw r}}),r={},o(function(){throw 42},null,e)}catch(t){t!==r&&(o=null)}else o=null;var i=/^\s*class\b/,a=function(t){try{var e=n.call(t);return i.test(e)}catch(t){return!1}},s=function(t){try{return!a(t)&&(n.call(t),!0)}catch(t){return!1}},u=Object.prototype.toString,l="function"==typeof Symbol&&!!Symbol.toStringTag,c=!(0 in[,]),f=function(){return!1};if("object"==typeof document){var p=document.all;u.call(p)===u.call(document.all)&&(f=function(t){if((c||!t)&&(void 0===t||"object"==typeof t))try{var e=u.call(t);return("[object HTMLAllCollection]"===e||"[object HTML document.all class]"===e||"[object HTMLCollection]"===e||"[object Object]"===e)&&null==t("")}catch(t){}return!1})}t.exports=o?function(t){if(f(t))return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;try{o(t,null,e)}catch(t){if(t!==r)return!1}return!a(t)&&s(t)}:function(t){if(f(t))return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;if(l)return s(t);if(a(t))return!1;var e=u.call(t);return!("[object Function]"!==e&&"[object GeneratorFunction]"!==e&&!/^\[object HTML/.test(e))&&s(t)}},48184(t,e,r){"use strict";var n=r(36556),o=r(99721)(/^\s*(?:function)?\*/),i=r(49092)(),a=r(93628),s=n("Object.prototype.toString"),u=n("Function.prototype.toString"),l=r(4233);t.exports=function(t){if("function"!=typeof t)return!1;if(o(u(t)))return!0;if(!i)return"[object GeneratorFunction]"===s(t);if(!a)return!1;var e=l();return e&&a(t)===e.prototype}},14035(t,e,r){"use strict";var n,o=r(36556),i=r(49092)(),a=r(9957),s=r(75795);if(i){var u=o("RegExp.prototype.exec"),l={},c=function(){throw l},f={toString:c,valueOf:c};"symbol"==typeof Symbol.toPrimitive&&(f[Symbol.toPrimitive]=c),n=function(t){if(!t||"object"!=typeof t)return!1;var e=s(t,"lastIndex");if(!e||!a(e,"value"))return!1;try{u(t,f)}catch(t){return t===l}}}else{var p=o("Object.prototype.toString");n=function(t){return!(!t||"object"!=typeof t&&"function"!=typeof t)&&"[object RegExp]"===p(t)}}t.exports=n},35680(t,e,r){"use strict";var n=r(25767);t.exports=function(t){return!!n(t)}},71514(t){"use strict";t.exports=Math.abs},58968(t){"use strict";t.exports=Math.floor},94459(t){"use strict";t.exports=Number.isNaN||function(t){return t!=t}},6188(t){"use strict";t.exports=Math.max},68002(t){"use strict";t.exports=Math.min},75880(t){"use strict";t.exports=Math.pow},70414(t){"use strict";t.exports=Math.round},73093(t,e,r){"use strict";var n=r(94459);t.exports=function(t){return n(t)||0===t?t:t<0?-1:1}},26602(t){"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function r(t){var e="function"==typeof Map?new Map:void 0;return r=function(t){if(null===t||(r=t,-1===Function.toString.call(r).indexOf("[native code]")))return t;var r;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,a)}function a(){return n(t,arguments,i(this).constructor)}return a.prototype=Object.create(t.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),o(a,t)},r(t)}function n(t,e,r){return n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}()?Reflect.construct:function(t,e,r){var n=[null];n.push.apply(n,e);var i=new(Function.bind.apply(t,n));return r&&o(i,r.prototype),i},n.apply(null,arguments)}function o(t,e){return o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},o(t,e)}function i(t){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},i(t)}var a=function(t){function r(t){var n;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),(n=function(t,r){return!r||"object"!==e(r)&&"function"!=typeof r?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):r}(this,i(r).call(this,t))).name="ObjectPrototypeMutationError",n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(r,t),r}(r(Error));function s(t,r){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},o=r.split("."),i=o.length,a=function(e){var r=o[e];if(!t)return{v:void 0};if("+"===r){if(Array.isArray(t))return{v:t.map(function(r,i){var a=o.slice(e+1);return a.length>0?s(r,a.join("."),n):n(t,i,o,e)})};var i=o.slice(0,e).join(".");throw new Error("Object at wildcard (".concat(i,") is not an array"))}t=n(t,r,o,e)},u=0;u2&&void 0!==arguments[2]?arguments[2]:{};if("object"!=e(t)||null===t)return!1;if(void 0===r)return!1;if("number"==typeof r)return r in t;try{var o=!1;return s(t,r,function(t,e,r,i){if(!u(r,i))return t&&t[e];o=n.own?t.hasOwnProperty(e):e in t}),o}catch(t){return!1}},hasOwn:function(t,e,r){return this.has(t,e,r||{own:!0})},isIn:function(t,r,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if("object"!=e(t)||null===t)return!1;if(void 0===r)return!1;try{var i=!1,a=!1;return s(t,r,function(t,r,o,s){return i=i||t===n||!!t&&t[r]===n,a=u(o,s)&&"object"===e(t)&&r in t,t&&t[r]}),o.validPath?i&&a:i}catch(t){return!1}},ObjectPrototypeMutationError:a}},58859(t,e,r){var n="function"==typeof Map&&Map.prototype,o=Object.getOwnPropertyDescriptor&&n?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,i=n&&o&&"function"==typeof o.get?o.get:null,a=n&&Map.prototype.forEach,s="function"==typeof Set&&Set.prototype,u=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,l=s&&u&&"function"==typeof u.get?u.get:null,c=s&&Set.prototype.forEach,f="function"==typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,p="function"==typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,h="function"==typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,d=Boolean.prototype.valueOf,y=Object.prototype.toString,g=Function.prototype.toString,m=String.prototype.match,b=String.prototype.slice,v=String.prototype.replace,w=String.prototype.toUpperCase,E=String.prototype.toLowerCase,x=RegExp.prototype.test,S=Array.prototype.concat,A=Array.prototype.join,O=Array.prototype.slice,_=Math.floor,T="function"==typeof BigInt?BigInt.prototype.valueOf:null,j=Object.getOwnPropertySymbols,P="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,R="function"==typeof Symbol&&"object"==typeof Symbol.iterator,N="function"==typeof Symbol&&Symbol.toStringTag&&(Symbol.toStringTag,1)?Symbol.toStringTag:null,k=Object.prototype.propertyIsEnumerable,I=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function M(t,e){if(t===1/0||t===-1/0||t!=t||t&&t>-1e3&&t<1e3||x.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"==typeof t){var n=t<0?-_(-t):_(t);if(n!==t){var o=String(n),i=b.call(e,o.length+1);return v.call(o,r,"$&_")+"."+v.call(v.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return v.call(e,r,"$&_")}var C=r(42634),L=C.custom,D=V(L)?L:null,U={__proto__:null,double:'"',single:"'"},$={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};function F(t,e,r){var n=r.quoteStyle||e,o=U[n];return o+t+o}function q(t){return v.call(String(t),/"/g,""")}function H(t){return!N||!("object"==typeof t&&(N in t||void 0!==t[N]))}function B(t){return"[object Array]"===K(t)&&H(t)}function W(t){return"[object RegExp]"===K(t)&&H(t)}function V(t){if(R)return t&&"object"==typeof t&&t instanceof Symbol;if("symbol"==typeof t)return!0;if(!t||"object"!=typeof t||!P)return!1;try{return P.call(t),!0}catch(t){}return!1}t.exports=function t(e,r,n,o){var s=r||{};if(z(s,"quoteStyle")&&!z(U,s.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(z(s,"maxStringLength")&&("number"==typeof s.maxStringLength?s.maxStringLength<0&&s.maxStringLength!==1/0:null!==s.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var u=!z(s,"customInspect")||s.customInspect;if("boolean"!=typeof u&&"symbol"!==u)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(z(s,"indent")&&null!==s.indent&&"\t"!==s.indent&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(z(s,"numericSeparator")&&"boolean"!=typeof s.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var y=s.numericSeparator;if(void 0===e)return"undefined";if(null===e)return"null";if("boolean"==typeof e)return e?"true":"false";if("string"==typeof e)return Y(e,s);if("number"==typeof e){if(0===e)return 1/0/e>0?"0":"-0";var w=String(e);return y?M(e,w):w}if("bigint"==typeof e){var x=String(e)+"n";return y?M(e,x):x}var _=void 0===s.depth?5:s.depth;if(void 0===n&&(n=0),n>=_&&_>0&&"object"==typeof e)return B(e)?"[Array]":"[Object]";var j,L=function(t,e){var r;if("\t"===t.indent)r="\t";else{if(!("number"==typeof t.indent&&t.indent>0))return null;r=A.call(Array(t.indent+1)," ")}return{base:r,prev:A.call(Array(e+1),r)}}(s,n);if(void 0===o)o=[];else if(X(o,e)>=0)return"[Circular]";function $(e,r,i){if(r&&(o=O.call(o)).push(r),i){var a={depth:s.depth};return z(s,"quoteStyle")&&(a.quoteStyle=s.quoteStyle),t(e,a,n+1,o)}return t(e,s,n+1,o)}if("function"==typeof e&&!W(e)){var G=function(t){if(t.name)return t.name;var e=m.call(g.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}(e),Z=rt(e,$);return"[Function"+(G?": "+G:" (anonymous)")+"]"+(Z.length>0?" { "+A.call(Z,", ")+" }":"")}if(V(e)){var nt=R?v.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):P.call(e);return"object"!=typeof e||R?nt:J(nt)}if((j=e)&&"object"==typeof j&&("undefined"!=typeof HTMLElement&&j instanceof HTMLElement||"string"==typeof j.nodeName&&"function"==typeof j.getAttribute)){for(var ot="<"+E.call(String(e.nodeName)),it=e.attributes||[],at=0;at"}if(B(e)){if(0===e.length)return"[]";var st=rt(e,$);return L&&!function(t){for(var e=0;e=0)return!1;return!0}(st)?"["+et(st,L)+"]":"[ "+A.call(st,", ")+" ]"}if(function(t){return"[object Error]"===K(t)&&H(t)}(e)){var ut=rt(e,$);return"cause"in Error.prototype||!("cause"in e)||k.call(e,"cause")?0===ut.length?"["+String(e)+"]":"{ ["+String(e)+"] "+A.call(ut,", ")+" }":"{ ["+String(e)+"] "+A.call(S.call("[cause]: "+$(e.cause),ut),", ")+" }"}if("object"==typeof e&&u){if(D&&"function"==typeof e[D]&&C)return C(e,{depth:_-n});if("symbol"!==u&&"function"==typeof e.inspect)return e.inspect()}if(function(t){if(!i||!t||"object"!=typeof t)return!1;try{i.call(t);try{l.call(t)}catch(t){return!0}return t instanceof Map}catch(t){}return!1}(e)){var lt=[];return a&&a.call(e,function(t,r){lt.push($(r,e,!0)+" => "+$(t,e))}),tt("Map",i.call(e),lt,L)}if(function(t){if(!l||!t||"object"!=typeof t)return!1;try{l.call(t);try{i.call(t)}catch(t){return!0}return t instanceof Set}catch(t){}return!1}(e)){var ct=[];return c&&c.call(e,function(t){ct.push($(t,e))}),tt("Set",l.call(e),ct,L)}if(function(t){if(!f||!t||"object"!=typeof t)return!1;try{f.call(t,f);try{p.call(t,p)}catch(t){return!0}return t instanceof WeakMap}catch(t){}return!1}(e))return Q("WeakMap");if(function(t){if(!p||!t||"object"!=typeof t)return!1;try{p.call(t,p);try{f.call(t,f)}catch(t){return!0}return t instanceof WeakSet}catch(t){}return!1}(e))return Q("WeakSet");if(function(t){if(!h||!t||"object"!=typeof t)return!1;try{return h.call(t),!0}catch(t){}return!1}(e))return Q("WeakRef");if(function(t){return"[object Number]"===K(t)&&H(t)}(e))return J($(Number(e)));if(function(t){if(!t||"object"!=typeof t||!T)return!1;try{return T.call(t),!0}catch(t){}return!1}(e))return J($(T.call(e)));if(function(t){return"[object Boolean]"===K(t)&&H(t)}(e))return J(d.call(e));if(function(t){return"[object String]"===K(t)&&H(t)}(e))return J($(String(e)));if("undefined"!=typeof window&&e===window)return"{ [object Window] }";if("undefined"!=typeof globalThis&&e===globalThis||"undefined"!=typeof globalThis&&e===globalThis)return"{ [object globalThis] }";if(!function(t){return"[object Date]"===K(t)&&H(t)}(e)&&!W(e)){var ft=rt(e,$),pt=I?I(e)===Object.prototype:e instanceof Object||e.constructor===Object,ht=e instanceof Object?"":"null prototype",dt=!pt&&N&&Object(e)===e&&N in e?b.call(K(e),8,-1):ht?"Object":"",yt=(pt||"function"!=typeof e.constructor?"":e.constructor.name?e.constructor.name+" ":"")+(dt||ht?"["+A.call(S.call([],dt||[],ht||[]),": ")+"] ":"");return 0===ft.length?yt+"{}":L?yt+"{"+et(ft,L)+"}":yt+"{ "+A.call(ft,", ")+" }"}return String(e)};var G=Object.prototype.hasOwnProperty||function(t){return t in this};function z(t,e){return G.call(t,e)}function K(t){return y.call(t)}function X(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 Y(b.call(t,0,e.maxStringLength),e)+n}var o=$[e.quoteStyle||"single"];return o.lastIndex=0,F(v.call(v.call(t,o,"\\$1"),/[\x00-\x1f]/g,Z),"single",e)}function Z(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":"")+w.call(e.toString(16))}function J(t){return"Object("+t+")"}function Q(t){return t+" { ? }"}function tt(t,e,r,n){return t+" ("+e+") {"+(n?et(r,n):A.call(r,", "))+"}"}function et(t,e){if(0===t.length)return"";var r="\n"+e.prev+e.base;return r+A.call(t,","+r)+"\n"+e.prev}function rt(t,e){var r=B(t),n=[];if(r){n.length=t.length;for(var o=0;o=-1&&!e;r--){var o=r>=0?arguments[r]:n.cwd();if(!i(o))throw new TypeError("Arguments to path.resolve must be strings");o&&(t=o+"/"+t,e="/"===o.charAt(0))}return(e?"/":"")+(t=a(t.split("/"),!e).join("/"))||"."},u.normalize=function(t){var e=u.isAbsolute(t),r="/"===t.substr(-1);return(t=a(t.split("/"),!e).join("/"))||e||(t="."),t&&r&&(t+="/"),(e?"/":"")+t},u.isAbsolute=function(t){return"/"===t.charAt(0)},u.join=function(){for(var t="",e=0;e=0&&""===t[r];r--);return e>r?[]:t.slice(e,r+1)}t=u.resolve(t).substr(1),e=u.resolve(e).substr(1);for(var n=r(t.split("/")),o=r(e.split("/")),i=Math.min(n.length,o.length),a=i,s=0;s= 0x80 (not a basic code point)","invalid-input":"Invalid input"},p=Math.floor,h=String.fromCharCode;function d(t){throw new RangeError(f[t])}function y(t,e){for(var r=t.length,n=[];r--;)n[r]=e(t[r]);return n}function g(t,e){var r=t.split("@"),n="";return r.length>1&&(n=r[0]+"@",t=r[1]),n+y((t=t.replace(c,".")).split("."),e).join(".")}function m(t){for(var e,r,n=[],o=0,i=t.length;o=55296&&e<=56319&&o65535&&(e+=h((t-=65536)>>>10&1023|55296),t=56320|1023&t),e+h(t)}).join("")}function v(t){return t-48<10?t-22:t-65<26?t-65:t-97<26?t-97:s}function w(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function E(t,e,r){var n=0;for(t=r?p(t/700):t>>1,t+=p(t/e);t>455;n+=s)t=p(t/35);return p(n+36*t/(t+38))}function x(t){var e,r,n,o,i,u,l,c,f,h,y=[],g=t.length,m=0,w=128,x=72;for((r=t.lastIndexOf("-"))<0&&(r=0),n=0;n=128&&d("not-basic"),y.push(t.charCodeAt(n));for(o=r>0?r+1:0;o=g&&d("invalid-input"),((c=v(t.charCodeAt(o++)))>=s||c>p((a-m)/u))&&d("overflow"),m+=c*u,!(c<(f=l<=x?1:l>=x+26?26:l-x));l+=s)u>p(a/(h=s-f))&&d("overflow"),u*=h;x=E(m-i,e=y.length+1,0==i),p(m/e)>a-w&&d("overflow"),w+=p(m/e),m%=e,y.splice(m++,0,w)}return b(y)}function S(t){var e,r,n,o,i,u,l,c,f,y,g,b,v,x,S,A=[];for(b=(t=m(t)).length,e=128,r=0,i=72,u=0;u=e&&gp((a-r)/(v=n+1))&&d("overflow"),r+=(l-e)*v,e=l,u=0;ua&&d("overflow"),g==e){for(c=r,f=s;!(c<(y=f<=i?1:f>=i+26?26:f-i));f+=s)S=c-y,x=s-y,A.push(h(w(y+S%x,0))),c=p(S/x);A.push(h(w(c,0))),i=E(r,v,n==o),r=0,++n}++r,++e}return A.join("")}i={version:"1.4.1",ucs2:{decode:m,encode:b},decode:x,encode:S,toASCII:function(t){return g(t,function(t){return l.test(t)?"xn--"+S(t):t})},toUnicode:function(t){return g(t,function(t){return u.test(t)?x(t.slice(4).toLowerCase()):t})}},void 0===(n=function(){return i}.call(e,r,e,t))||(t.exports=n)}()},74765(t){"use strict";var e=String.prototype.replace,r=/%20/g,n="RFC3986";t.exports={default:n,formatters:{RFC1738:function(t){return e.call(t,r,"+")},RFC3986:function(t){return String(t)}},RFC1738:"RFC1738",RFC3986:n}},55373(t,e,r){"use strict";var n=r(98636),o=r(62642),i=r(74765);t.exports={formats:i,parse:o,stringify:n}},62642(t,e,r){"use strict";var n=r(37720),o=Object.prototype.hasOwnProperty,i=Array.isArray,a={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:n.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},s=function(t){return t.replace(/&#(\d+);/g,function(t,e){return String.fromCharCode(parseInt(e,10))})},u=function(t,e,r){if(t&&"string"==typeof t&&e.comma&&t.indexOf(",")>-1)return t.split(",");if(e.throwOnLimitExceeded&&r>=e.arrayLimit)throw new RangeError("Array limit exceeded. Only "+e.arrayLimit+" element"+(1===e.arrayLimit?"":"s")+" allowed in an array.");return t},l=function(t,e,r,i){if(t){var a=function(t,e){var r=e.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t;if(e.depth<=0){if(!e.plainObjects&&o.call(Object.prototype,r)&&!e.allowPrototypes)return;return[r]}var n=/(\[[^[\]]*])/g,i=/(\[[^[\]]*])/.exec(r),a=i?r.slice(0,i.index):r,s=[];if(a){if(!e.plainObjects&&o.call(Object.prototype,a)&&!e.allowPrototypes)return;s[s.length]=a}for(var u=0;null!==(i=n.exec(r))&&u0&&"[]"===t[t.length-1]){var a=t.slice(0,-1).join("");i=Array.isArray(e)&&e[a]?e[a].length:0}for(var s=o?e:u(e,r,i),l=t.length-1;l>=0;--l){var c,f=t[l];if("[]"===f&&r.parseArrays)c=n.isOverflow(s)?s:r.allowEmptyArrays&&(""===s||r.strictNullHandling&&null===s)?[]:n.combine([],s,r.arrayLimit,r.plainObjects);else{c=r.plainObjects?{__proto__:null}:{};var p="["===f.charAt(0)&&"]"===f.charAt(f.length-1)?f.slice(1,-1):f,h=r.decodeDotInKeys?p.replace(/%2E/g,"."):p,d=parseInt(h,10),y=!isNaN(d)&&f!==h&&String(d)===h&&d>=0&&r.parseArrays;if(r.parseArrays||""!==h)if(y&&dc)throw new RangeError("Parameter limit exceeded. Only "+c+" parameter"+(1===c?"":"s")+" allowed.");var p,h=-1,d=e.charset;if(e.charsetSentinel)for(p=0;p-1&&(g=i(g)?[g]:g),e.comma&&i(g)&&g.length>e.arrayLimit){if(e.throwOnLimitExceeded)throw new RangeError("Array limit exceeded. Only "+e.arrayLimit+" element"+(1===e.arrayLimit?"":"s")+" allowed in an array.");g=n.combine([],g,e.arrayLimit,e.plainObjects)}if(null!==y){var w=o.call(r,y);w&&"combine"===e.duplicates?r[y]=n.combine(r[y],g,e.arrayLimit,e.plainObjects):w&&"last"!==e.duplicates||(r[y]=g)}}return r}(t,r):t,f=r.plainObjects?{__proto__:null}:{},p=Object.keys(c),h=0;h0?_.join(",")||null:void 0}];else if(u(g))N=g;else{var I=Object.keys(_);N=m?I.sort(m):I}var M=p?String(r).replace(/\./g,"%2E"):String(r),C=a&&u(_)&&1===_.length?M+"[]":M;if(s&&u(_)&&0===_.length)return C+"[]";for(var L=0;L0?E+w:""}},37720(t,e,r){"use strict";var n=r(74765),o=r(920),i=Object.prototype.hasOwnProperty,a=Array.isArray,s=o(),u=function(t,e){return s.set(t,e),t},l=function(t){return s.has(t)},c=function(t){return s.get(t)},f=function(t,e){s.set(t,e)},p=function(){for(var t=[],e=0;e<256;++e)t[t.length]="%"+((e<16?"0":"")+e.toString(16)).toUpperCase();return t}(),h=function(t,e){for(var r=e&&e.plainObjects?{__proto__:null}:{},n=0;nr?u(h(i,{plainObjects:n}),i.length-1):i},compact:function(t){for(var e=[{obj:{o:t},prop:"o"}],r=[],n=0;n1;){var e=t.pop(),r=e.obj[e.prop];if(a(r)){for(var n=[],o=0;o=d?a.slice(u,u+d):a,c=[],f=0;f=48&&h<=57||h>=65&&h<=90||h>=97&&h<=122||i===n.RFC1738&&(40===h||41===h)?c[c.length]=l.charAt(f):h<128?c[c.length]=p[h]:h<2048?c[c.length]=p[192|h>>6]+p[128|63&h]:h<55296||h>=57344?c[c.length]=p[224|h>>12]+p[128|h>>6&63]+p[128|63&h]:(f+=1,h=65536+((1023&h)<<10|1023&l.charCodeAt(f)),c[c.length]=p[240|h>>18]+p[128|h>>12&63]+p[128|h>>6&63]+p[128|63&h])}s+=c.join("")}return s},isBuffer:function(t){return!(!t||"object"!=typeof t||!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t)))},isOverflow:l,isRegExp:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},markOverflow:u,maybeMap:function(t,e){if(a(t)){for(var r=[],n=0;nn.arrayLimit)return u(h(e.concat(r),n),o);e[o]=r}else{if(!e||"object"!=typeof e)return[e,r];if(l(e)){var s=c(e)+1;e[s]=r,f(e,s)}else(n&&(n.plainObjects||n.allowPrototypes)||!i.call(Object.prototype,r))&&(e[r]=!0)}return e}if(!e||"object"!=typeof e){if(l(r)){for(var p=Object.keys(r),d=n&&n.plainObjects?{__proto__:null,0:e}:{0:e},y=0;yn.arrayLimit?u(h(g,n),g.length-1):g}var m=e;return a(e)&&!a(r)&&(m=h(e,n)),a(e)&&a(r)?(r.forEach(function(r,o){if(i.call(e,o)){var a=e[o];a&&"object"==typeof a&&r&&"object"==typeof r?e[o]=t(a,r,n):e[e.length]=r}else e[o]=r}),e):Object.keys(r).reduce(function(e,o){var a=r[o];if(i.call(e,o)?e[o]=t(e[o],a,n):e[o]=a,l(r)&&!l(e)&&u(e,c(r)),l(e)){var s=parseInt(o,10);String(s)===o&&s>=0&&s>c(e)&&f(e,s)}return e},m)}}},73992(t,e){"use strict";var r=Object.prototype.hasOwnProperty;function n(t){try{return decodeURIComponent(t.replace(/\+/g," "))}catch(t){return null}}function o(t){try{return encodeURIComponent(t)}catch(t){return null}}e.stringify=function(t,e){e=e||"";var n,i,a=[];for(i in"string"!=typeof e&&(e="?"),t)if(r.call(t,i)){if((n=t[i])||null!=n&&!isNaN(n)||(n=""),i=o(i),n=o(n),null===i||null===n)continue;a.push(i+"="+n)}return a.length?e+a.join("&"):""},e.parse=function(t){for(var e,r=/([^=?#&]+)=?([^&]*)/g,o={};e=r.exec(t);){var i=n(e[1]),a=n(e[2]);null===i||null===a||i in o||(o[i]=a)}return o}},92063(t){"use strict";t.exports=function(t,e){if(e=e.split(":")[0],!(t=+t))return!1;switch(e){case"http":case"ws":return 80!==t;case"https":case"wss":return 443!==t;case"ftp":return 21!==t;case"gopher":return 70!==t;case"file":return!1}return 0!==t}},99721(t,e,r){"use strict";var n=r(36556),o=r(14035),i=n("RegExp.prototype.exec"),a=r(69675);t.exports=function(t){if(!o(t))throw new a("`regex` must be a RegExp");return function(e){return null!==i(t,e)}}},96897(t,e,r){"use strict";var n=r(70453),o=r(30041),i=r(30592)(),a=r(75795),s=r(69675),u=n("%Math.floor%");t.exports=function(t,e){if("function"!=typeof t)throw new s("`fn` is not a function");if("number"!=typeof e||e<0||e>4294967295||u(e)!==e)throw new s("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],n=!0,l=!0;if("length"in t&&a){var c=a(t,"length");c&&!c.configurable&&(n=!1),c&&!c.writable&&(l=!1)}return(n||l||!r)&&(i?o(t,"length",e,!0,!0):o(t,"length",e)),t}},14803(t,e,r){"use strict";var n=r(58859),o=r(69675),i=function(t,e,r){for(var n,o=t;null!=(n=o.next);o=n)if(n.key===e)return o.next=n.next,r||(n.next=t.next,t.next=n),n};t.exports=function(){var t,e={assert:function(t){if(!e.has(t))throw new o("Side channel does not contain "+n(t))},delete:function(e){var r=t&&t.next,n=function(t,e){if(t)return i(t,e,!0)}(t,e);return n&&r&&r===n&&(t=void 0),!!n},get:function(e){return function(t,e){if(t){var r=i(t,e);return r&&r.value}}(t,e)},has:function(e){return function(t,e){return!!t&&!!i(t,e)}(t,e)},set:function(e,r){t||(t={next:void 0}),function(t,e,r){var n=i(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}}(t,e,r)}};return e}},80507(t,e,r){"use strict";var n=r(70453),o=r(36556),i=r(58859),a=r(69675),s=n("%Map%",!0),u=o("Map.prototype.get",!0),l=o("Map.prototype.set",!0),c=o("Map.prototype.has",!0),f=o("Map.prototype.delete",!0),p=o("Map.prototype.size",!0);t.exports=!!s&&function(){var t,e={assert:function(t){if(!e.has(t))throw new a("Side channel does not contain "+i(t))},delete:function(e){if(t){var r=f(t,e);return 0===p(t)&&(t=void 0),r}return!1},get:function(e){if(t)return u(t,e)},has:function(e){return!!t&&c(t,e)},set:function(e,r){t||(t=new s),l(t,e,r)}};return e}},72271(t,e,r){"use strict";var n=r(70453),o=r(36556),i=r(58859),a=r(80507),s=r(69675),u=n("%WeakMap%",!0),l=o("WeakMap.prototype.get",!0),c=o("WeakMap.prototype.set",!0),f=o("WeakMap.prototype.has",!0),p=o("WeakMap.prototype.delete",!0);t.exports=u?function(){var t,e,r={assert:function(t){if(!r.has(t))throw new s("Side channel does not contain "+i(t))},delete:function(r){if(u&&r&&("object"==typeof r||"function"==typeof r)){if(t)return p(t,r)}else if(a&&e)return e.delete(r);return!1},get:function(r){return u&&r&&("object"==typeof r||"function"==typeof r)&&t?l(t,r):e&&e.get(r)},has:function(r){return u&&r&&("object"==typeof r||"function"==typeof r)&&t?f(t,r):!!e&&e.has(r)},set:function(r,n){u&&r&&("object"==typeof r||"function"==typeof r)?(t||(t=new u),c(t,r,n)):a&&(e||(e=a()),e.set(r,n))}};return r}:a},920(t,e,r){"use strict";var n=r(69675),o=r(58859),i=r(14803),a=r(80507),s=r(72271)||a||i;t.exports=function(){var t,e={assert:function(t){if(!e.has(t))throw new n("Side channel does not contain "+o(t))},delete:function(e){return!!t&&t.delete(e)},get:function(e){return t&&t.get(e)},has:function(e){return!!t&&t.has(e)},set:function(e,r){t||(t=s()),t.set(e,r)}};return e}},11568(t,e,r){var n=r(55537),o=r(6917),i=r(57510),a=r(86866),s=r(88835),u=e;u.request=function(t,e){t="string"==typeof t?s.parse(t):i(t);var r=-1===globalThis.location.protocol.search(/^https?:$/)?"http:":"",o=t.protocol||r,a=t.hostname||t.host,u=t.port,l=t.path||"/";a&&-1!==a.indexOf(":")&&(a="["+a+"]"),t.url=(a?o+"//"+a:"")+(u?":"+u:"")+l,t.method=(t.method||"GET").toUpperCase(),t.headers=t.headers||{};var c=new n(t);return e&&c.on("response",e),c},u.get=function(t,e){var r=u.request(t,e);return r.end(),r},u.ClientRequest=n,u.IncomingMessage=o.IncomingMessage,u.Agent=function(){},u.Agent.defaultMaxSockets=4,u.globalAgent=new u.Agent,u.STATUS_CODES=a,u.METHODS=["CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REPORT","SEARCH","SUBSCRIBE","TRACE","UNLOCK","UNSUBSCRIBE"]},6688(t,e){var r;function n(){if(void 0!==r)return r;if(globalThis.XMLHttpRequest){r=new globalThis.XMLHttpRequest;try{r.open("GET",globalThis.XDomainRequest?"/":"https://example.com")}catch(t){r=null}}else r=null;return r}function o(t){var e=n();if(!e)return!1;try{return e.responseType=t,e.responseType===t}catch(t){}return!1}function i(t){return"function"==typeof t}e.fetch=i(globalThis.fetch)&&i(globalThis.ReadableStream),e.writableStream=i(globalThis.WritableStream),e.abortController=i(globalThis.AbortController),e.arraybuffer=e.fetch||o("arraybuffer"),e.msstream=!e.fetch&&o("ms-stream"),e.mozchunkedarraybuffer=!e.fetch&&o("moz-chunked-arraybuffer"),e.overrideMimeType=e.fetch||!!n()&&i(n().overrideMimeType),r=null},55537(t,e,r){var n=r(62045).hp,o=r(65606),i=r(6688),a=r(56698),s=r(6917),u=r(63242),l=s.IncomingMessage,c=s.readyStates,f=t.exports=function(t){var e,r=this;u.Writable.call(r),r._opts=t,r._body=[],r._headers={},t.auth&&r.setHeader("Authorization","Basic "+n.from(t.auth).toString("base64")),Object.keys(t.headers).forEach(function(e){r.setHeader(e,t.headers[e])});var o=!0;if("disable-fetch"===t.mode||"requestTimeout"in t&&!i.abortController)o=!1,e=!0;else if("prefer-streaming"===t.mode)e=!1;else if("allow-wrong-content-type"===t.mode)e=!i.overrideMimeType;else{if(t.mode&&"default"!==t.mode&&"prefer-fast"!==t.mode)throw new Error("Invalid value for opts.mode");e=!0}r._mode=function(t,e){return i.fetch&&e?"fetch":i.mozchunkedarraybuffer?"moz-chunked-arraybuffer":i.msstream?"ms-stream":i.arraybuffer&&t?"arraybuffer":"text"}(e,o),r._fetchTimer=null,r._socketTimeout=null,r._socketTimer=null,r.on("finish",function(){r._onFinish()})};a(f,u.Writable),f.prototype.setHeader=function(t,e){var r=t.toLowerCase();-1===p.indexOf(r)&&(this._headers[r]={name:t,value:e})},f.prototype.getHeader=function(t){var e=this._headers[t.toLowerCase()];return e?e.value:null},f.prototype.removeHeader=function(t){delete this._headers[t.toLowerCase()]},f.prototype._onFinish=function(){var t=this;if(!t._destroyed){var e=t._opts;"timeout"in e&&0!==e.timeout&&t.setTimeout(e.timeout);var r=t._headers,n=null;"GET"!==e.method&&"HEAD"!==e.method&&(n=new Blob(t._body,{type:(r["content-type"]||{}).value||""}));var a=[];if(Object.keys(r).forEach(function(t){var e=r[t].name,n=r[t].value;Array.isArray(n)?n.forEach(function(t){a.push([e,t])}):a.push([e,n])}),"fetch"===t._mode){var s=null;if(i.abortController){var u=new AbortController;s=u.signal,t._fetchAbortController=u,"requestTimeout"in e&&0!==e.requestTimeout&&(t._fetchTimer=globalThis.setTimeout(function(){t.emit("requestTimeout"),t._fetchAbortController&&t._fetchAbortController.abort()},e.requestTimeout))}globalThis.fetch(t._opts.url,{method:t._opts.method,headers:a,body:n||void 0,mode:"cors",credentials:e.withCredentials?"include":"same-origin",signal:s}).then(function(e){t._fetchResponse=e,t._resetTimers(!1),t._connect()},function(e){t._resetTimers(!0),t._destroyed||t.emit("error",e)})}else{var l=t._xhr=new globalThis.XMLHttpRequest;try{l.open(t._opts.method,t._opts.url,!0)}catch(e){return void o.nextTick(function(){t.emit("error",e)})}"responseType"in l&&(l.responseType=t._mode),"withCredentials"in l&&(l.withCredentials=!!e.withCredentials),"text"===t._mode&&"overrideMimeType"in l&&l.overrideMimeType("text/plain; charset=x-user-defined"),"requestTimeout"in e&&(l.timeout=e.requestTimeout,l.ontimeout=function(){t.emit("requestTimeout")}),a.forEach(function(t){l.setRequestHeader(t[0],t[1])}),t._response=null,l.onreadystatechange=function(){switch(l.readyState){case c.LOADING:case c.DONE:t._onXHRProgress()}},"moz-chunked-arraybuffer"===t._mode&&(l.onprogress=function(){t._onXHRProgress()}),l.onerror=function(){t._destroyed||(t._resetTimers(!0),t.emit("error",new Error("XHR error")))};try{l.send(n)}catch(e){return void o.nextTick(function(){t.emit("error",e)})}}}},f.prototype._onXHRProgress=function(){var t=this;t._resetTimers(!1),function(t){try{var e=t.status;return null!==e&&0!==e}catch(t){return!1}}(t._xhr)&&!t._destroyed&&(t._response||t._connect(),t._response._onXHRProgress(t._resetTimers.bind(t)))},f.prototype._connect=function(){var t=this;t._destroyed||(t._response=new l(t._xhr,t._fetchResponse,t._mode,t._resetTimers.bind(t)),t._response.on("error",function(e){t.emit("error",e)}),t.emit("response",t._response))},f.prototype._write=function(t,e,r){this._body.push(t),r()},f.prototype._resetTimers=function(t){var e=this;globalThis.clearTimeout(e._socketTimer),e._socketTimer=null,t?(globalThis.clearTimeout(e._fetchTimer),e._fetchTimer=null):e._socketTimeout&&(e._socketTimer=globalThis.setTimeout(function(){e.emit("timeout")},e._socketTimeout))},f.prototype.abort=f.prototype.destroy=function(t){var e=this;e._destroyed=!0,e._resetTimers(!0),e._response&&(e._response._destroyed=!0),e._xhr?e._xhr.abort():e._fetchAbortController&&e._fetchAbortController.abort(),t&&e.emit("error",t)},f.prototype.end=function(t,e,r){"function"==typeof t&&(r=t,t=void 0),u.Writable.prototype.end.call(this,t,e,r)},f.prototype.setTimeout=function(t,e){var r=this;e&&r.once("timeout",e),r._socketTimeout=t,r._resetTimers(!1)},f.prototype.flushHeaders=function(){},f.prototype.setNoDelay=function(){},f.prototype.setSocketKeepAlive=function(){};var p=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]},6917(t,e,r){var n=r(65606),o=r(62045).hp,i=r(6688),a=r(56698),s=r(63242),u=e.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},l=e.IncomingMessage=function(t,e,r,a){var u=this;if(s.Readable.call(u),u._mode=r,u.headers={},u.rawHeaders=[],u.trailers={},u.rawTrailers=[],u.on("end",function(){n.nextTick(function(){u.emit("close")})}),"fetch"===r){if(u._fetchResponse=e,u.url=e.url,u.statusCode=e.status,u.statusMessage=e.statusText,e.headers.forEach(function(t,e){u.headers[e.toLowerCase()]=t,u.rawHeaders.push(e,t)}),i.writableStream){var l=new WritableStream({write:function(t){return a(!1),new Promise(function(e,r){u._destroyed?r():u.push(o.from(t))?e():u._resumeFetch=e})},close:function(){a(!0),u._destroyed||u.push(null)},abort:function(t){a(!0),u._destroyed||u.emit("error",t)}});try{return void e.body.pipeTo(l).catch(function(t){a(!0),u._destroyed||u.emit("error",t)})}catch(t){}}var c=e.body.getReader();!function t(){c.read().then(function(e){u._destroyed||(a(e.done),e.done?u.push(null):(u.push(o.from(e.value)),t()))}).catch(function(t){a(!0),u._destroyed||u.emit("error",t)})}()}else if(u._xhr=t,u._pos=0,u.url=t.responseURL,u.statusCode=t.status,u.statusMessage=t.statusText,t.getAllResponseHeaders().split(/\r?\n/).forEach(function(t){var e=t.match(/^([^:]+):\s*(.*)/);if(e){var r=e[1].toLowerCase();"set-cookie"===r?(void 0===u.headers[r]&&(u.headers[r]=[]),u.headers[r].push(e[2])):void 0!==u.headers[r]?u.headers[r]+=", "+e[2]:u.headers[r]=e[2],u.rawHeaders.push(e[1],e[2])}}),u._charset="x-user-defined",!i.overrideMimeType){var f=u.rawHeaders["mime-type"];if(f){var p=f.match(/;\s*charset=([^;])(;|$)/);p&&(u._charset=p[1].toLowerCase())}u._charset||(u._charset="utf-8")}};a(l,s.Readable),l.prototype._read=function(){var t=this._resumeFetch;t&&(this._resumeFetch=null,t())},l.prototype._onXHRProgress=function(t){var e=this,r=e._xhr,n=null;switch(e._mode){case"text":if((n=r.responseText).length>e._pos){var i=n.substr(e._pos);if("x-user-defined"===e._charset){for(var a=o.alloc(i.length),s=0;se._pos&&(e.push(o.from(new Uint8Array(l.result.slice(e._pos)))),e._pos=l.result.byteLength)},l.onload=function(){t(!0),e.push(null)},l.readAsArrayBuffer(n)}e._xhr.readyState===u.DONE&&"ms-stream"!==e._mode&&(t(!0),e.push(null))}},73157(t){"use strict";var e={};function r(t,r,n){n||(n=Error);var o=function(t){var e,n;function o(e,n,o){return t.call(this,function(t,e,n){return"string"==typeof r?r:r(t,e,n)}(e,n,o))||this}return n=t,(e=o).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n,o}(n);o.prototype.name=n.name,o.prototype.code=t,e[t]=o}function n(t,e){if(Array.isArray(t)){var r=t.length;return t=t.map(function(t){return String(t)}),r>2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:2===r?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}r("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError),r("ERR_INVALID_ARG_TYPE",function(t,e,r){var o,i,a,s,u;if("string"==typeof e&&(i="not ",e.substr(0,4)===i)?(o="must not be",e=e.replace(/^not /,"")):o="must be",function(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-9,r)===e}(t," argument"))a="The ".concat(t," ").concat(o," ").concat(n(e,"type"));else{var l=("number"!=typeof u&&(u=0),u+1>(s=t).length||-1===s.indexOf(".",u)?"argument":"property");a='The "'.concat(t,'" ').concat(l," ").concat(o," ").concat(n(e,"type"))}return a+". Received type ".concat(typeof r)},TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"}),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"}),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.F=e},63527(t,e,r){"use strict";var n=r(65606),o=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=c;var i=r(52341),a=r(9573);r(56698)(c,i);for(var s=o(a.prototype),u=0;u0)if("string"==typeof e||s.objectMode||Object.getPrototypeOf(e)===u.prototype||(e=function(t){return u.from(t)}(e)),n)s.endEmitted?x(t,new E):T(t,s,e,!0);else if(s.ended)x(t,new v);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!r?(e=s.decoder.write(e),s.objectMode||0!==e.length?T(t,s,e,!1):k(t,s)):T(t,s,e,!1)}else n||(s.reading=!1,k(t,s));return!s.ended&&(s.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=j?t=j:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function R(t){var e=t._readableState;i("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(i("emitReadable",e.flowing),e.emittedReadable=!0,o.nextTick(N,t))}function N(t){var e=t._readableState;i("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,D(t)}function k(t,e){e.readingMore||(e.readingMore=!0,o.nextTick(I,t,e))}function I(t,e){for(;!e.reading&&!e.ended&&(e.length0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function C(t){i("readable nexttick read 0"),t.read(0)}function L(t,e){i("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),D(t),e.flowing&&!e.reading&&t.read(0)}function D(t){var e=t._readableState;for(i("flow",e.flowing);e.flowing&&null!==t.read(););}function U(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r);var r}function $(t){var e=t._readableState;i("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,o.nextTick(F,e,t))}function F(t,e){if(i("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}function q(t,e){for(var r=0,n=t.length;r=e.highWaterMark:e.length>0)||e.ended))return i("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?$(this):R(this),null;if(0===(t=P(t,e))&&e.ended)return 0===e.length&&$(this),null;var n,o=e.needReadable;return i("need readable",o),(0===e.length||e.length-t0?U(t,e):null)?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&$(this)),null!==n&&this.emit("data",n),n},O.prototype._read=function(t){x(this,new w("_read()"))},O.prototype.pipe=function(t,e){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=t;break;case 1:n.pipes=[n.pipes,t];break;default:n.pipes.push(t)}n.pipesCount+=1,i("pipe count=%d opts=%j",n.pipesCount,e);var s=e&&!1===e.end||t===o.stdout||t===o.stderr?y:u;function u(){i("onend"),t.end()}n.endEmitted?o.nextTick(s):r.once("end",s),t.on("unpipe",function e(o,a){i("onunpipe"),o===r&&a&&!1===a.hasUnpiped&&(a.hasUnpiped=!0,i("cleanup"),t.removeListener("close",h),t.removeListener("finish",d),t.removeListener("drain",l),t.removeListener("error",p),t.removeListener("unpipe",e),r.removeListener("end",u),r.removeListener("end",y),r.removeListener("data",f),c=!0,!n.awaitDrain||t._writableState&&!t._writableState.needDrain||l())});var l=function(t){return function(){var e=t._readableState;i("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&a(t,"data")&&(e.flowing=!0,D(t))}}(r);t.on("drain",l);var c=!1;function f(e){i("ondata");var o=t.write(e);i("dest.write",o),!1===o&&((1===n.pipesCount&&n.pipes===t||n.pipesCount>1&&-1!==q(n.pipes,t))&&!c&&(i("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function p(e){i("onerror",e),y(),t.removeListener("error",p),0===a(t,"error")&&x(t,e)}function h(){t.removeListener("finish",d),y()}function d(){i("onfinish"),t.removeListener("close",h),y()}function y(){i("unpipe"),r.unpipe(t)}return r.on("data",f),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",p),t.once("close",h),t.once("finish",d),t.emit("pipe",r),n.flowing||(i("pipe resume"),r.resume()),t},O.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,o=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var i=0;i0,!1!==n.flowing&&this.resume()):"readable"===t&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,i("on readable",n.length,n.reading),n.length?R(this):n.reading||o.nextTick(C,this))),r},O.prototype.addListener=O.prototype.on,O.prototype.removeListener=function(t,e){var r=s.prototype.removeListener.call(this,t,e);return"readable"===t&&o.nextTick(M,this),r},O.prototype.removeAllListeners=function(t){var e=s.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||o.nextTick(M,this),e},O.prototype.resume=function(){var t=this._readableState;return t.flowing||(i("resume"),t.flowing=!t.readableListening,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,o.nextTick(L,t,e))}(this,t)),t.paused=!1,this},O.prototype.pause=function(){return i("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(i("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},O.prototype.wrap=function(t){var e=this,r=this._readableState,n=!1;for(var o in t.on("end",function(){if(i("wrapped end"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)}),t.on("data",function(o){i("wrapped data"),r.decoder&&(o=r.decoder.write(o)),r.objectMode&&null==o||(r.objectMode||o&&o.length)&&(e.push(o)||(n=!0,t.pause()))}),t)void 0===this[o]&&"function"==typeof t[o]&&(this[o]=function(e){return function(){return t[e].apply(t,arguments)}}(o));for(var a=0;a-1))throw new E(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(O.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(O.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),O.prototype._write=function(t,e,r){r(new y("_write()"))},O.prototype._writev=null,O.prototype.end=function(t,e,r){var n=this._writableState;return"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||function(t,e,r){e.ending=!0,N(t,e),r&&(e.finished?o.nextTick(r):t.once("finish",r)),e.ended=!0,t.writable=!1}(this,n,r),this},Object.defineProperty(O.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(O.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),O.prototype.destroy=f.destroy,O.prototype._undestroy=f.undestroy,O.prototype._destroy=function(t,e){e(t)}},17356(t,e,r){"use strict";var n,o=r(65606);function i(t,e,r){return(e=function(t){var e=function(t){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var a=r(19959),s=Symbol("lastResolve"),u=Symbol("lastReject"),l=Symbol("error"),c=Symbol("ended"),f=Symbol("lastPromise"),p=Symbol("handlePromise"),h=Symbol("stream");function d(t,e){return{value:t,done:e}}function y(t){var e=t[s];if(null!==e){var r=t[h].read();null!==r&&(t[f]=null,t[s]=null,t[u]=null,e(d(r,!1)))}}function g(t){o.nextTick(y,t)}var m=Object.getPrototypeOf(function(){}),b=Object.setPrototypeOf((i(n={get stream(){return this[h]},next:function(){var t=this,e=this[l];if(null!==e)return Promise.reject(e);if(this[c])return Promise.resolve(d(void 0,!0));if(this[h].destroyed)return new Promise(function(e,r){o.nextTick(function(){t[l]?r(t[l]):e(d(void 0,!0))})});var r,n=this[f];if(n)r=new Promise(function(t,e){return function(r,n){t.then(function(){e[c]?r(d(void 0,!0)):e[p](r,n)},n)}}(n,this));else{var i=this[h].read();if(null!==i)return Promise.resolve(d(i,!1));r=new Promise(this[p])}return this[f]=r,r}},Symbol.asyncIterator,function(){return this}),i(n,"return",function(){var t=this;return new Promise(function(e,r){t[h].destroy(null,function(t){t?r(t):e(d(void 0,!0))})})}),n),m);t.exports=function(t){var e,r=Object.create(b,(i(e={},h,{value:t,writable:!0}),i(e,s,{value:null,writable:!0}),i(e,u,{value:null,writable:!0}),i(e,l,{value:null,writable:!0}),i(e,c,{value:t._readableState.endEmitted,writable:!0}),i(e,p,{value:function(t,e){var n=r[h].read();n?(r[f]=null,r[s]=null,r[u]=null,t(d(n,!1))):(r[s]=t,r[u]=e)},writable:!0}),e));return r[f]=null,a(t,function(t){if(t&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code){var e=r[u];return null!==e&&(r[f]=null,r[s]=null,r[u]=null,e(t)),void(r[l]=t)}var n=r[s];null!==n&&(r[f]=null,r[s]=null,r[u]=null,n(d(void 0,!0))),r[c]=!0}),t.on("readable",g.bind(null,r)),r}},10272(t,e,r){"use strict";function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function o(t){for(var e=1;e0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r}},{key:"concat",value:function(t){if(0===this.length)return u.alloc(0);for(var e=u.allocUnsafe(t>>>0),r=this.head,n=0;r;)f(r.data,e,n),n+=r.data.length,r=r.next;return e}},{key:"consume",value:function(t,e){var r;return to.length?o.length:t;if(i===o.length?n+=o:n+=o.slice(0,t),0===(t-=i)){i===o.length?(++r,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=o.slice(i));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(t){var e=u.allocUnsafe(t),r=this.head,n=1;for(r.data.copy(e),t-=r.data.length;r=r.next;){var o=r.data,i=t>o.length?o.length:t;if(o.copy(e,e.length-t,0,i),0===(t-=i)){i===o.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=o.slice(i));break}++n}return this.length-=n,e}},{key:c,value:function(t,e){return l(this,o(o({},e),{},{depth:0,customInspect:!1}))}}])&&a(e.prototype,r),Object.defineProperty(e,"prototype",{writable:!1}),t}()},16057(t,e,r){"use strict";var n=r(65606);function o(t,e){a(t,e),i(t)}function i(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function a(t,e){t.emit("error",e)}t.exports={destroy:function(t,e){var r=this,s=this._readableState&&this._readableState.destroyed,u=this._writableState&&this._writableState.destroyed;return s||u?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,n.nextTick(a,this,t)):n.nextTick(a,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(t){!e&&t?r._writableState?r._writableState.errorEmitted?n.nextTick(i,r):(r._writableState.errorEmitted=!0,n.nextTick(o,r,t)):n.nextTick(o,r,t):e?(n.nextTick(i,r),e(t)):n.nextTick(i,r)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(t,e){var r=t._readableState,n=t._writableState;r&&r.autoDestroy||n&&n.autoDestroy?t.destroy(e):t.emit("error",e)}}},19959(t,e,r){"use strict";var n=r(73157).F.ERR_STREAM_PREMATURE_CLOSE;function o(){}t.exports=function t(e,r,i){if("function"==typeof r)return t(e,null,r);r||(r={}),i=function(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,n=new Array(r),o=0;o0,function(t){c||(c=t),t&&p.forEach(u),i||(p.forEach(u),f(c))})});return e.reduce(l)}},11922(t,e,r){"use strict";var n=r(73157).F.ERR_INVALID_OPT_VALUE;t.exports={getHighWaterMark:function(t,e,r,o){var i=function(t,e,r){return null!=t.highWaterMark?t.highWaterMark:e?t[r]:null}(e,o,r);if(null!=i){if(!isFinite(i)||Math.floor(i)!==i||i<0)throw new n(o?r:"highWaterMark",i);return Math.floor(i)}return t.objectMode?16:16384}}},81914(t,e,r){t.exports=r(37007).EventEmitter},63242(t,e,r){(e=t.exports=r(52341)).Stream=e,e.Readable=e,e.Writable=r(9573),e.Duplex=r(63527),e.Transform=r(95689),e.PassThrough=r(82571),e.finished=r(19959),e.pipeline=r(37413)},61160(t,e,r){"use strict";var n=r(92063),o=r(73992),i=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,a=/[\n\r\t]/g,s=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,u=/:\d+$/,l=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,c=/^[a-zA-Z]:/;function f(t){return(t||"").toString().replace(i,"")}var p=[["#","hash"],["?","query"],function(t,e){return y(e.protocol)?t.replace(/\\/g,"/"):t},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d*)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],h={hash:1,query:1};function d(t){var e,r=("undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{}).location||{},n={},o=typeof(t=t||r);if("blob:"===t.protocol)n=new m(unescape(t.pathname),{});else if("string"===o)for(e in n=new m(t,{}),h)delete n[e];else if("object"===o){for(e in t)e in h||(n[e]=t[e]);void 0===n.slashes&&(n.slashes=s.test(t.href))}return n}function y(t){return"file:"===t||"ftp:"===t||"http:"===t||"https:"===t||"ws:"===t||"wss:"===t}function g(t,e){t=(t=f(t)).replace(a,""),e=e||{};var r,n=l.exec(t),o=n[1]?n[1].toLowerCase():"",i=!!n[2],s=!!n[3],u=0;return i?s?(r=n[2]+n[3]+n[4],u=n[2].length+n[3].length):(r=n[2]+n[4],u=n[2].length):s?(r=n[3]+n[4],u=n[3].length):r=n[4],"file:"===o?u>=2&&(r=r.slice(2)):y(o)?r=n[4]:o?i&&(r=r.slice(2)):u>=2&&y(e.protocol)&&(r=n[4]),{protocol:o,slashes:i||y(o),slashesCount:u,rest:r}}function m(t,e,r){if(t=(t=f(t)).replace(a,""),!(this instanceof m))return new m(t,e,r);var i,s,u,l,h,b,v=p.slice(),w=typeof e,E=this,x=0;for("object"!==w&&"string"!==w&&(r=e,e=null),r&&"function"!=typeof r&&(r=o.parse),i=!(s=g(t||"",e=d(e))).protocol&&!s.slashes,E.slashes=s.slashes||i&&e.slashes,E.protocol=s.protocol||e.protocol||"",t=s.rest,("file:"===s.protocol&&(2!==s.slashesCount||c.test(t))||!s.slashes&&(s.protocol||s.slashesCount<2||!y(E.protocol)))&&(v[3]=[/(.*)/,"pathname"]);x",'"',"`"," ","\r","\n","\t"]),l=["'"].concat(u),c=["%","/","?",";","#"].concat(l),f=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,h=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,d={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},m=r(55373);function b(t,e,r){if(t&&"object"==typeof t&&t instanceof o)return t;var n=new o;return n.parse(t,e,r),n}o.prototype.parse=function(t,e,r){if("string"!=typeof t)throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var o=t.indexOf("?"),a=-1!==o&&o127?k+="x":k+=N[I];if(!k.match(p)){var C=P.slice(0,_),L=P.slice(_+1),D=N.match(h);D&&(C.push(D[1]),L.unshift(D[2])),L.length&&(b="/"+L.join(".")+b),this.hostname=C.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),j||(this.hostname=n.toASCII(this.hostname));var U=this.port?":"+this.port:"",$=this.hostname||"";this.host=$+U,this.href+=this.host,j&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==b[0]&&(b="/"+b))}if(!d[E])for(_=0,R=l.length;_0)&&r.host.split("@"))&&(r.auth=j.shift(),r.hostname=j.shift(),r.host=r.hostname)),r.search=t.search,r.query=t.query,null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!x.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var A=x.slice(-1)[0],O=(r.host||t.host||x.length>1)&&("."===A||".."===A)||""===A,_=0,T=x.length;T>=0;T--)"."===(A=x[T])?x.splice(T,1):".."===A?(x.splice(T,1),_++):_&&(x.splice(T,1),_--);if(!w&&!E)for(;_--;_)x.unshift("..");!w||""===x[0]||x[0]&&"/"===x[0].charAt(0)||x.unshift(""),O&&"/"!==x.join("/").substr(-1)&&x.push("");var j,P=""===x[0]||x[0]&&"/"===x[0].charAt(0);return S&&(r.hostname=P?"":x.length?x.shift():"",r.host=r.hostname,(j=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=j.shift(),r.hostname=j.shift(),r.host=r.hostname)),(w=w||r.host&&x.length)&&!P&&x.unshift(""),x.length>0?r.pathname=x.join("/"):(r.pathname=null,r.path=null),null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r},o.prototype.parseHost=function(){var t=this.host,e=a.exec(t);e&&(":"!==(e=e[0])&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)},e.parse=b,e.resolve=function(t,e){return b(t,!1,!0).resolve(e)},e.resolveObject=function(t,e){return t?b(t,!1,!0).resolveObject(e):e},e.format=function(t){return"string"==typeof t&&(t=b(t)),t instanceof o?t.format():o.prototype.format.call(t)},e.Url=o},81135(t){t.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},49032(t,e,r){"use strict";var n=r(47244),o=r(48184),i=r(25767),a=r(35680);function s(t){return t.call.bind(t)}var u="undefined"!=typeof BigInt,l="undefined"!=typeof Symbol,c=s(Object.prototype.toString),f=s(Number.prototype.valueOf),p=s(String.prototype.valueOf),h=s(Boolean.prototype.valueOf);if(u)var d=s(BigInt.prototype.valueOf);if(l)var y=s(Symbol.prototype.valueOf);function g(t,e){if("object"!=typeof t)return!1;try{return e(t),!0}catch(t){return!1}}function m(t){return"[object Map]"===c(t)}function b(t){return"[object Set]"===c(t)}function v(t){return"[object WeakMap]"===c(t)}function w(t){return"[object WeakSet]"===c(t)}function E(t){return"[object ArrayBuffer]"===c(t)}function x(t){return"undefined"!=typeof ArrayBuffer&&(E.working?E(t):t instanceof ArrayBuffer)}function S(t){return"[object DataView]"===c(t)}function A(t){return"undefined"!=typeof DataView&&(S.working?S(t):t instanceof DataView)}e.isArgumentsObject=n,e.isGeneratorFunction=o,e.isTypedArray=a,e.isPromise=function(t){return"undefined"!=typeof Promise&&t instanceof Promise||null!==t&&"object"==typeof t&&"function"==typeof t.then&&"function"==typeof t.catch},e.isArrayBufferView=function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):a(t)||A(t)},e.isUint8Array=function(t){return"Uint8Array"===i(t)},e.isUint8ClampedArray=function(t){return"Uint8ClampedArray"===i(t)},e.isUint16Array=function(t){return"Uint16Array"===i(t)},e.isUint32Array=function(t){return"Uint32Array"===i(t)},e.isInt8Array=function(t){return"Int8Array"===i(t)},e.isInt16Array=function(t){return"Int16Array"===i(t)},e.isInt32Array=function(t){return"Int32Array"===i(t)},e.isFloat32Array=function(t){return"Float32Array"===i(t)},e.isFloat64Array=function(t){return"Float64Array"===i(t)},e.isBigInt64Array=function(t){return"BigInt64Array"===i(t)},e.isBigUint64Array=function(t){return"BigUint64Array"===i(t)},m.working="undefined"!=typeof Map&&m(new Map),e.isMap=function(t){return"undefined"!=typeof Map&&(m.working?m(t):t instanceof Map)},b.working="undefined"!=typeof Set&&b(new Set),e.isSet=function(t){return"undefined"!=typeof Set&&(b.working?b(t):t instanceof Set)},v.working="undefined"!=typeof WeakMap&&v(new WeakMap),e.isWeakMap=function(t){return"undefined"!=typeof WeakMap&&(v.working?v(t):t instanceof WeakMap)},w.working="undefined"!=typeof WeakSet&&w(new WeakSet),e.isWeakSet=function(t){return w(t)},E.working="undefined"!=typeof ArrayBuffer&&E(new ArrayBuffer),e.isArrayBuffer=x,S.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&S(new DataView(new ArrayBuffer(1),0,1)),e.isDataView=A;var O="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function _(t){return"[object SharedArrayBuffer]"===c(t)}function T(t){return void 0!==O&&(void 0===_.working&&(_.working=_(new O)),_.working?_(t):t instanceof O)}function j(t){return g(t,f)}function P(t){return g(t,p)}function R(t){return g(t,h)}function N(t){return u&&g(t,d)}function k(t){return l&&g(t,y)}e.isSharedArrayBuffer=T,e.isAsyncFunction=function(t){return"[object AsyncFunction]"===c(t)},e.isMapIterator=function(t){return"[object Map Iterator]"===c(t)},e.isSetIterator=function(t){return"[object Set Iterator]"===c(t)},e.isGeneratorObject=function(t){return"[object Generator]"===c(t)},e.isWebAssemblyCompiledModule=function(t){return"[object WebAssembly.Module]"===c(t)},e.isNumberObject=j,e.isStringObject=P,e.isBooleanObject=R,e.isBigIntObject=N,e.isSymbolObject=k,e.isBoxedPrimitive=function(t){return j(t)||P(t)||R(t)||N(t)||k(t)},e.isAnyArrayBuffer=function(t){return"undefined"!=typeof Uint8Array&&(x(t)||T(t))},["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(t){Object.defineProperty(e,t,{enumerable:!1,value:function(){throw new Error(t+" is not supported in userland")}})})},40537(t,e,r){var n=r(65606),o=Object.getOwnPropertyDescriptors||function(t){for(var e=Object.keys(t),r={},n=0;n=o)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}}),s=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),g(r)?n.showHidden=r:r&&e._extend(n,r),w(n.showHidden)&&(n.showHidden=!1),w(n.depth)&&(n.depth=2),w(n.colors)&&(n.colors=!1),w(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=c),p(n,t,n.depth)}function c(t,e){var r=l.styles[e];return r?"["+l.colors[r][0]+"m"+t+"["+l.colors[r][1]+"m":t}function f(t,e){return t}function p(t,r,n){if(t.customInspect&&r&&O(r.inspect)&&r.inspect!==e.inspect&&(!r.constructor||r.constructor.prototype!==r)){var o=r.inspect(n,t);return v(o)||(o=p(t,o,n)),o}var i=function(t,e){if(w(e))return t.stylize("undefined","undefined");if(v(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}return b(e)?t.stylize(""+e,"number"):g(e)?t.stylize(""+e,"boolean"):m(e)?t.stylize("null","null"):void 0}(t,r);if(i)return i;var a=Object.keys(r),s=function(t){var e={};return t.forEach(function(t,r){e[t]=!0}),e}(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(r)),A(r)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return h(r);if(0===a.length){if(O(r)){var u=r.name?": "+r.name:"";return t.stylize("[Function"+u+"]","special")}if(E(r))return t.stylize(RegExp.prototype.toString.call(r),"regexp");if(S(r))return t.stylize(Date.prototype.toString.call(r),"date");if(A(r))return h(r)}var l,c="",f=!1,x=["{","}"];return y(r)&&(f=!0,x=["[","]"]),O(r)&&(c=" [Function"+(r.name?": "+r.name:"")+"]"),E(r)&&(c=" "+RegExp.prototype.toString.call(r)),S(r)&&(c=" "+Date.prototype.toUTCString.call(r)),A(r)&&(c=" "+h(r)),0!==a.length||f&&0!=r.length?n<0?E(r)?t.stylize(RegExp.prototype.toString.call(r),"regexp"):t.stylize("[Object]","special"):(t.seen.push(r),l=f?function(t,e,r,n,o){for(var i=[],a=0,s=e.length;a60?r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n  ")+" "+r[1]:r[0]+e+" "+t.join(", ")+" "+r[1]}(l,c,x)):x[0]+c+x[1]}function h(t){return"["+Error.prototype.toString.call(t)+"]"}function d(t,e,r,n,o,i){var a,s,u;if((u=Object.getOwnPropertyDescriptor(e,o)||{value:e[o]}).get?s=u.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):u.set&&(s=t.stylize("[Setter]","special")),P(n,o)||(a="["+o+"]"),s||(t.seen.indexOf(u.value)<0?(s=m(r)?p(t,u.value,null):p(t,u.value,r-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map(function(t){return"  "+t}).join("\n").slice(2):"\n"+s.split("\n").map(function(t){return"   "+t}).join("\n")):s=t.stylize("[Circular]","special")),w(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.slice(1,-1),a=t.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=t.stylize(a,"string"))}return a+": "+s}function y(t){return Array.isArray(t)}function g(t){return"boolean"==typeof t}function m(t){return null===t}function b(t){return"number"==typeof t}function v(t){return"string"==typeof t}function w(t){return void 0===t}function E(t){return x(t)&&"[object RegExp]"===_(t)}function x(t){return"object"==typeof t&&null!==t}function S(t){return x(t)&&"[object Date]"===_(t)}function A(t){return x(t)&&("[object Error]"===_(t)||t instanceof Error)}function O(t){return"function"==typeof t}function _(t){return Object.prototype.toString.call(t)}function T(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(t){if(t=t.toUpperCase(),!a[t])if(s.test(t)){var r=n.pid;a[t]=function(){var n=e.format.apply(e,arguments);console.error("%s %d: %s",t,r,n)}}else a[t]=function(){};return a[t]},e.inspect=l,l.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},l.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.types=r(49032),e.isArray=y,e.isBoolean=g,e.isNull=m,e.isNullOrUndefined=function(t){return null==t},e.isNumber=b,e.isString=v,e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=w,e.isRegExp=E,e.types.isRegExp=E,e.isObject=x,e.isDate=S,e.types.isDate=S,e.isError=A,e.types.isNativeError=A,e.isFunction=O,e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=r(81135);var j=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function P(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){var t,r;console.log("%s - %s",(r=[T((t=new Date).getHours()),T(t.getMinutes()),T(t.getSeconds())].join(":"),[t.getDate(),j[t.getMonth()],r].join(" ")),e.format.apply(e,arguments))},e.inherits=r(56698),e._extend=function(t,e){if(!e||!x(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t};var R="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function N(t,e){if(!t){var r=new Error("Promise was rejected with a falsy value");r.reason=t,t=r}return e(t)}e.promisify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');if(R&&t[R]){var e;if("function"!=typeof(e=t[R]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(e,R,{value:e,enumerable:!1,writable:!1,configurable:!0}),e}function e(){for(var e,r,n=new Promise(function(t,n){e=t,r=n}),o=[],i=0;i-1?e:"Object"===e&&function(t){var e=!1;return n(y,function(r,n){if(!e)try{r(t),e=h(n,1)}catch(t){}}),e}(t)}return s?function(t){var e=!1;return n(y,function(r,n){if(!e)try{"$"+r(t)===n&&(e=h(n,1))}catch(t){}}),e}(t):null}},57510(t){t.exports=function(){for(var t={},r=0;ro});const n="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:"undefined"!=typeof window?window:globalThis,o=n.fetch.bind(n);n.Headers,n.Request,n.Response},72984(t,e,r){"use strict";function n(t){return"function"==typeof t?t:Array.isArray(t)?e=>{for(const r of t){if("string"==typeof r&&e===r)return!0;if(r instanceof RegExp&&r.test(e))return!0}}:()=>!1}r.d(e,{A:()=>n})},69031(t,e,r){"use strict";r.d(e,{Eo:()=>a,Xe:()=>i,yQ:()=>s});const n=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",o=new RegExp("^["+n+"]["+n+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$");function i(t,e){const r=[];let n=e.exec(t);for(;n;){const o=[];o.startIndex=e.lastIndex-n[0].length;const i=n.length;for(let t=0;ti});var n=r(69031);const o={allowBooleanAttributes:!1,unpairedTags:[]};function i(t,e){e=Object.assign({},o,e);const r=[];let n=!1,i=!1;"\ufeff"===t[0]&&(t=t.substr(1));for(let o=0;o"!==t[o]&&" "!==t[o]&&"\t"!==t[o]&&"\n"!==t[o]&&"\r"!==t[o];o++)m+=t[o];if(m=m.trim(),"/"===m[m.length-1]&&(m=m.substring(0,m.length-1),o--),!y(m)){let e;return e=0===m.trim().length?"Invalid space after '<'.":"Tag '"+m+"' is an invalid name.",h("InvalidTag",e,g(t,o))}const b=l(t,o);if(!1===b)return h("InvalidAttr","Attributes for '"+m+"' have open quote.",g(t,o));let v=b.value;if(o=b.index,"/"===v[v.length-1]){const r=o-v.length;v=v.substring(0,v.length-1);const i=f(v,e);if(!0!==i)return h(i.err.code,i.err.msg,g(t,r+i.err.line));n=!0}else if(d){if(!b.tagClosed)return h("InvalidTag","Closing tag '"+m+"' doesn't have proper closing.",g(t,o));if(v.trim().length>0)return h("InvalidTag","Closing tag '"+m+"' can't have attributes or invalid starting.",g(t,c));if(0===r.length)return h("InvalidTag","Closing tag '"+m+"' has not been opened.",g(t,c));{const e=r.pop();if(m!==e.tagName){let r=g(t,e.tagStartPos);return h("InvalidTag","Expected closing tag '"+e.tagName+"' (opened in line "+r.line+", col "+r.col+") instead of closing tag '"+m+"'.",g(t,c))}0==r.length&&(i=!0)}}else{const a=f(v,e);if(!0!==a)return h(a.err.code,a.err.msg,g(t,o-v.length+a.err.line));if(!0===i)return h("InvalidXml","Multiple possible root nodes found.",g(t,o));-1!==e.unpairedTags.indexOf(m)||r.push({tagName:m,tagStartPos:c}),n=!0}for(o++;o0)||h("InvalidXml","Invalid '"+JSON.stringify(r.map(t=>t.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):h("InvalidXml","Start tag expected.",1)}function a(t){return" "===t||"\t"===t||"\n"===t||"\r"===t}function s(t,e){const r=e;for(;e5&&"xml"===n)return h("InvalidXml","XML declaration allowed only at the start of the document.",g(t,e));if("?"==t[e]&&">"==t[e+1]){e++;break}continue}return e}function u(t,e){if(t.length>e+5&&"-"===t[e+1]&&"-"===t[e+2]){for(e+=3;e"===t[e+2]){e+=2;break}}else if(t.length>e+8&&"D"===t[e+1]&&"O"===t[e+2]&&"C"===t[e+3]&&"T"===t[e+4]&&"Y"===t[e+5]&&"P"===t[e+6]&&"E"===t[e+7]){let r=1;for(e+=8;e"===t[e]&&(r--,0===r))break}else if(t.length>e+9&&"["===t[e+1]&&"C"===t[e+2]&&"D"===t[e+3]&&"A"===t[e+4]&&"T"===t[e+5]&&"A"===t[e+6]&&"["===t[e+7])for(e+=8;e"===t[e+2]){e+=2;break}return e}function l(t,e){let r="",n="",o=!1;for(;e"===t[e]&&""===n){o=!0;break}r+=t[e]}return""===n&&{value:r,index:e,tagClosed:o}}const c=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function f(t,e){const r=(0,n.Xe)(t,c),o={};for(let t=0;ta});var n=r(85697),o=r(72984);const i={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:"  ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&"},{regex:new RegExp(">","g"),val:">"},{regex:new RegExp("<","g"),val:"<"},{regex:new RegExp("'","g"),val:"'"},{regex:new RegExp('"',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1};function a(t){this.options=Object.assign({},i,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=(0,o.A)(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=l),this.processTextOrObjNode=s,this.options.format?(this.indentate=u,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function s(t,e,r,n){const o=this.j2x(t,r+1,n.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,o.attrStr,r):this.buildObjectNode(o.val,e,o.attrStr,r)}function u(t){return this.options.indentBy.repeat(t)}function l(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}a.prototype.build=function(t){return this.options.preserveOrder?(0,n.A)(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},a.prototype.j2x=function(t,e,r){let n="",o="";const i=r.join(".");for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))if(void 0===t[a])this.isAttribute(a)&&(o+="");else if(null===t[a])this.isAttribute(a)||a===this.options.cdataPropName?o+="":"?"===a[0]?o+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:o+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if(t[a]instanceof Date)o+=this.buildTextValNode(t[a],a,"",e);else if("object"!=typeof t[a]){const r=this.isAttribute(a);if(r&&!this.ignoreAttributesFn(r,i))n+=this.buildAttrPairStr(r,""+t[a]);else if(!r)if(a===this.options.textNodeName){let e=this.options.tagValueProcessor(a,""+t[a]);o+=this.replaceEntitiesValue(e)}else o+=this.buildTextValNode(t[a],a,"",e)}else if(Array.isArray(t[a])){const n=t[a].length;let i="",s="";for(let u=0;u"+t+o}},a.prototype.closeTag=function(t){let e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(n)+`\x3c!--${t}--\x3e`+this.newLine;if("?"===e[0])return this.indentate(n)+"<"+e+r+"?"+this.tagEndChar;{let o=this.options.tagValueProcessor(e,t);return o=this.replaceEntitiesValue(o),""===o?this.indentate(n)+"<"+e+r+this.closeTag(e)+this.tagEndChar:this.indentate(n)+"<"+e+r+">"+o+"0&&this.options.processEntities)for(let e=0;e0&&(r="\n"),o(t,e,"",r)}function o(t,e,r,n){let l="",c=!1;for(let f=0;f`,c=!1;continue}if(h===e.commentPropName){l+=n+`\x3c!--${p[h][0][e.textNodeName]}--\x3e`,c=!0;continue}if("?"===h[0]){const t=a(p[":@"],e),r="?xml"===h?"":n;let o=p[h][0][e.textNodeName];o=0!==o.length?" "+o:"",l+=r+`<${h}${o}${t}?>`,c=!0;continue}let y=n;""!==y&&(y+=e.indentBy);const g=n+`<${h}${a(p[":@"],e)}`,m=o(p[h],e,d,y);-1!==e.unpairedTags.indexOf(h)?e.suppressUnpairedNode?l+=g+">":l+=g+"/>":m&&0!==m.length||!e.suppressEmptyNode?m&&m.endsWith(">")?l+=g+`>${m}${n}`:(l+=g+">",m&&""!==n&&(m.includes("/>")||m.includes("`):l+=g+"/>",c=!0}return l}function i(t){const e=Object.keys(t);for(let r=0;r0&&e.processEntities)for(let r=0;rn})},25003(t,e,r){"use strict";r.d(e,{A:()=>o});var n=r(69031);class o{constructor(t){this.suppressValidationErr=!t}readDocType(t,e){const r={};if("O"!==t[e+3]||"C"!==t[e+4]||"T"!==t[e+5]||"Y"!==t[e+6]||"P"!==t[e+7]||"E"!==t[e+8])throw new Error("Invalid Tag instead of DOCTYPE");{e+=9;let n=1,o=!1,i=!1,s="";for(;e"===t[e]){if(i?"-"===t[e-1]&&"-"===t[e-2]&&(i=!1,n--):n--,0===n)break}else"["===t[e]?o=!0:s+=t[e];else{if(o&&a(t,"!ENTITY",e)){let n,o;e+=7,[n,o,e]=this.readEntityExp(t,e+1,this.suppressValidationErr),-1===o.indexOf("&")&&(r[n]={regx:RegExp(`&${n};`,"g"),val:o})}else if(o&&a(t,"!ELEMENT",e)){e+=8;const{index:r}=this.readElementExp(t,e+1);e=r}else if(o&&a(t,"!ATTLIST",e))e+=8;else if(o&&a(t,"!NOTATION",e)){e+=9;const{index:r}=this.readNotationExp(t,e+1,this.suppressValidationErr);e=r}else{if(!a(t,"!--",e))throw new Error("Invalid DOCTYPE");i=!0}n++,s=""}if(0!==n)throw new Error("Unclosed DOCTYPE")}return{entities:r,i:e}}readEntityExp(t,e){e=i(t,e);let r="";for(;e{for(;eo});const n={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,r){return t},captureMetaData:!1},o=function(t){return Object.assign({},n,t)}},79781(t,e,r){"use strict";r.d(e,{A:()=>u});var n=r(69031),o=r(13127),i=r(25003),a=r(60524),s=r(72984);class u{constructor(t){if(this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"Â¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>S(e,10,"&#")},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>S(e,16,"&#x")}},this.addExternalEntities=l,this.parseXml=d,this.parseTextData=c,this.resolveNameSpace=f,this.buildAttributesMap=h,this.isItStopNode=b,this.replaceEntitiesValue=g,this.readStopNodeData=E,this.saveTextToParentTag=m,this.addChild=y,this.ignoreAttributesFn=(0,s.A)(this.options.ignoreAttributes),this.options.stopNodes&&this.options.stopNodes.length>0){this.stopNodesExact=new Set,this.stopNodesWildcard=new Set;for(let t=0;t0)){a||(t=this.replaceEntitiesValue(t));const n=this.options.tagValueProcessor(e,t,r,o,i);return null==n?t:typeof n!=typeof t||n!==t?n:this.options.trimValues||t.trim()===t?x(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function f(t){if(this.options.removeNSPrefix){const e=t.split(":"),r="/"===t.charAt(0)?"/":"";if("xmlns"===e[0])return"";2===e.length&&(t=r+e[1])}return t}const p=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function h(t,e){if(!0!==this.options.ignoreAttributes&&"string"==typeof t){const r=(0,n.Xe)(t,p),o=r.length,i={};for(let t=0;t",i,"Closing Tag is not closed.");let o=t.substring(i+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(":");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),r&&(n=this.saveTextToParentTag(n,r,a));const s=a.substring(a.lastIndexOf(".")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let u=0;s&&-1!==this.options.unpairedTags.indexOf(s)?(u=a.lastIndexOf(".",a.lastIndexOf(".")-1),this.tagsNodeStack.pop()):u=a.lastIndexOf("."),a=a.substring(0,u),r=this.tagsNodeStack.pop(),n="",i=e}else if("?"===t[i+1]){let e=w(t,i,!1,"?>");if(!e)throw new Error("Pi Tag is not closed.");if(n=this.saveTextToParentTag(n,r,a),this.options.ignoreDeclaration&&"?xml"===e.tagName||this.options.ignorePiTags);else{const t=new o.A(e.tagName);t.add(this.options.textNodeName,""),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[":@"]=this.buildAttributesMap(e.tagExp,a)),this.addChild(r,t,a,i)}i=e.closeIndex+1}else if("!--"===t.substr(i+1,3)){const e=v(t,"--\x3e",i+4,"Comment is not closed.");if(this.options.commentPropName){const o=t.substring(i+4,e-2);n=this.saveTextToParentTag(n,r,a),r.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}i=e}else if("!D"===t.substr(i+1,2)){const e=s.readDocType(t,i);this.docTypeEntities=e.entities,i=e.i}else if("!["===t.substr(i+1,2)){const e=v(t,"]]>",i,"CDATA is not closed.")-2,o=t.substring(i+9,e);n=this.saveTextToParentTag(n,r,a);let s=this.parseTextData(o,r.tagname,a,!0,!1,!0,!0);null==s&&(s=""),this.options.cdataPropName?r.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):r.add(this.options.textNodeName,s),i=e+2}else{let s=w(t,i,this.options.removeNSPrefix),u=s.tagName;const l=s.rawTagName;let c=s.tagExp,f=s.attrExpPresent,p=s.closeIndex;if(this.options.transformTagName){const t=this.options.transformTagName(u);c===u&&(c=t),u=t}r&&n&&"!xml"!==r.tagname&&(n=this.saveTextToParentTag(n,r,a,!1));const h=r;h&&-1!==this.options.unpairedTags.indexOf(h.tagname)&&(r=this.tagsNodeStack.pop(),a=a.substring(0,a.lastIndexOf("."))),u!==e.tagname&&(a+=a?"."+u:u);const d=i;if(this.isItStopNode(this.stopNodesExact,this.stopNodesWildcard,a,u)){let e="";if(c.length>0&&c.lastIndexOf("/")===c.length-1)"/"===u[u.length-1]?(u=u.substr(0,u.length-1),a=a.substr(0,a.length-1),c=u):c=c.substr(0,c.length-1),i=s.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(u))i=s.closeIndex;else{const r=this.readStopNodeData(t,l,p+1);if(!r)throw new Error(`Unexpected end of ${l}`);i=r.i,e=r.tagContent}const n=new o.A(u);u!==c&&f&&(n[":@"]=this.buildAttributesMap(c,a)),e&&(e=this.parseTextData(e,u,a,!0,f,!0,!0)),a=a.substr(0,a.lastIndexOf(".")),n.add(this.options.textNodeName,e),this.addChild(r,n,a,d)}else{if(c.length>0&&c.lastIndexOf("/")===c.length-1){if("/"===u[u.length-1]?(u=u.substr(0,u.length-1),a=a.substr(0,a.length-1),c=u):c=c.substr(0,c.length-1),this.options.transformTagName){const t=this.options.transformTagName(u);c===u&&(c=t),u=t}const t=new o.A(u);u!==c&&f&&(t[":@"]=this.buildAttributesMap(c,a)),this.addChild(r,t,a,d),a=a.substr(0,a.lastIndexOf("."))}else{const t=new o.A(u);this.tagsNodeStack.push(r),u!==c&&f&&(t[":@"]=this.buildAttributesMap(c,a)),this.addChild(r,t,a,d),r=t}n="",i=p}}else n+=t[i];return e.child};function y(t,e,r,n){this.options.captureMetaData||(n=void 0);const o=this.options.updateTag(e.tagname,r,e[":@"]);!1===o||("string"==typeof o?(e.tagname=o,t.addChild(e,n)):t.addChild(e,n))}const g=function(t){if(this.options.processEntities){for(let e in this.docTypeEntities){const r=this.docTypeEntities[e];t=t.replace(r.regx,r.val)}for(let e in this.lastEntities){const r=this.lastEntities[e];t=t.replace(r.regex,r.val)}if(this.options.htmlEntities)for(let e in this.htmlEntities){const r=this.htmlEntities[e];t=t.replace(r.regex,r.val)}t=t.replace(this.ampEntity.regex,this.ampEntity.val)}return t};function m(t,e,r,n){return t&&(void 0===n&&(n=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,r,!1,!!e[":@"]&&0!==Object.keys(e[":@"]).length,n))&&""!==t&&e.add(this.options.textNodeName,t),t=""),t}function b(t,e,r,n){return!(!e||!e.has(n))||!(!t||!t.has(r))}function v(t,e,r,n){const o=t.indexOf(e,r);if(-1===o)throw new Error(n);return o+e.length-1}function w(t,e,r,n=">"){const o=function(t,e,r=">"){let n,o="";for(let i=e;i",r,`${e} is not closed`);if(t.substring(r+2,i).trim()===e&&(o--,0===o))return{tagContent:t.substring(n,r),i};r=i}else if("?"===t[r+1])r=v(t,"?>",r+1,"StopNode is not closed.");else if("!--"===t.substr(r+1,3))r=v(t,"--\x3e",r+3,"StopNode is not closed.");else if("!["===t.substr(r+1,2))r=v(t,"]]>",r,"StopNode is not closed.")-2;else{const n=w(t,r,">");n&&((n&&n.tagName)===e&&"/"!==n.tagExp[n.tagExp.length-1]&&o++,r=n.closeIndex)}}function x(t,e,r){if(e&&"string"==typeof t){const e=t.trim();return"true"===e||"false"!==e&&(0,a.A)(t,r)}return(0,n.yQ)(t)?t:""}function S(t,e,r){const n=Number.parseInt(t,e);return n>=0&&n<=1114111?String.fromCodePoint(n):r+t+";"}},1912(t,e,r){"use strict";r.d(e,{A:()=>u});var n=r(60341),o=r(79781),i=r(35382),a=r(86301),s=r(13127);class u{constructor(t){this.externalEntities={},this.options=(0,n.D)(t)}parse(t,e){if("string"!=typeof t&&t.toString)t=t.toString();else if("string"!=typeof t)throw new Error("XML data is accepted in String or Bytes[] form.");if(e){!0===e&&(e={});const r=(0,a.t)(t,e);if(!0!==r)throw Error(`${r.err.msg}:${r.err.line}:${r.err.col}`)}const r=new o.A(this.options);r.addExternalEntities(this.externalEntities);const n=r.parseXml(t);return this.options.preserveOrder||void 0===n?n:(0,i.A)(n,this.options)}addEntity(t,e){if(-1!==e.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==t.indexOf("&")||-1!==t.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '
'");if("&"===e)throw new Error("An entity with value '&' is not permitted");this.externalEntities[t]=e}static getMetaDataSymbol(){return s.A.getMetaDataSymbol()}}},35382(t,e,r){"use strict";r.d(e,{A:()=>o});const n=r(13127).A.getMetaDataSymbol();function o(t,e){return i(t,e)}function i(t,e,r){let o;const l={};for(let c=0;c0&&(l[e.textNodeName]=o):void 0!==o&&(l[e.textNodeName]=o),l}function a(t){const e=Object.keys(t);for(let t=0;to}),n="function"!=typeof Symbol?"@@xmlMetadata":Symbol("XML Node Metadata");class o{constructor(t){this.tagname=t,this.child=[],this[":@"]={}}add(t,e){"__proto__"===t&&(t="#__proto__"),this.child.push({[t]:e})}addChild(t,e){"__proto__"===t.tagname&&(t.tagname="#__proto__"),t[":@"]&&Object.keys(t[":@"]).length>0?this.child.push({[t.tagname]:t.child,":@":t[":@"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][n]={startIndex:e})}static getMetaDataSymbol(){return n}}},21657(t,e,r){"use strict";function n(...t){if(0===t.length)throw new Error("Failed creating sequence: No functions provided");return function(...e){let r=e;const n=this;for(;t.length>0;)r=[t.shift().apply(n,r)];return r[0]}}r.d(e,{K:()=>n})},19621(t,e,r){"use strict";r.d(e,{T:()=>s});var n=r(21657);const o="@@HOTPATCHER",i=()=>{};function a(t){return{original:t,methods:[t],final:!1}}class s{constructor(){this._configuration={registry:{},getEmptyAction:"null"},this.__type__=o}get configuration(){return this._configuration}get getEmptyAction(){return this.configuration.getEmptyAction}set getEmptyAction(t){this.configuration.getEmptyAction=t}control(t,e=!1){if(!t||t.__type__!==o)throw new Error("Failed taking control of target HotPatcher instance: Invalid type or object");return Object.keys(t.configuration.registry).forEach(r=>{this.configuration.registry.hasOwnProperty(r)?e&&(this.configuration.registry[r]=Object.assign({},t.configuration.registry[r])):this.configuration.registry[r]=Object.assign({},t.configuration.registry[r])}),t._configuration=this.configuration,this}execute(t,...e){return(this.get(t)||i)(...e)}get(t){const e=this.configuration.registry[t];if(!e)switch(this.getEmptyAction){case"null":return null;case"throw":throw new Error(`Failed handling method request: No method provided for override: ${t}`);default:throw new Error(`Failed handling request which resulted in an empty method: Invalid empty-action specified: ${this.getEmptyAction}`)}return(0,n.K)(...e.methods)}isPatched(t){return!!this.configuration.registry[t]}patch(t,e,r={}){const{chain:n=!1}=r;if(this.configuration.registry[t]&&this.configuration.registry[t].final)throw new Error(`Failed patching '${t}': Method marked as being final`);if("function"!=typeof e)throw new Error(`Failed patching '${t}': Provided method is not a function`);if(n)this.configuration.registry[t]?this.configuration.registry[t].methods.push(e):this.configuration.registry[t]=a(e);else if(this.isPatched(t)){const{original:r}=this.configuration.registry[t];this.configuration.registry[t]=Object.assign(a(e),{original:r})}else this.configuration.registry[t]=a(e);return this}patchInline(t,e,...r){return this.isPatched(t)||this.patch(t,e),this.execute(t,...r)}plugin(t,...e){return e.forEach(e=>{this.patch(t,e,{chain:!0})}),this}restore(t){if(!this.isPatched(t))throw new Error(`Failed restoring method: No method present for key: ${t}`);if("function"!=typeof this.configuration.registry[t].original)throw new Error(`Failed restoring method: Original method not found or of invalid type for key: ${t}`);return this.configuration.registry[t].methods=[this.configuration.registry[t].original],this}setFinal(t){if(!this.configuration.registry.hasOwnProperty(t))throw new Error(`Failed marking '${t}' as final: No method found for key`);return this.configuration.registry[t].final=!0,this}}},93028(t,e,r){"use strict";function n(t){if(!o(t))throw new Error("Parameter was not an error")}function o(t){return!!t&&"object"==typeof t&&"[object Error]"===(e=t,Object.prototype.toString.call(e))||t instanceof Error;var e}r.d(e,{b:()=>o,t:()=>n})},11163(t,e,r){"use strict";r.d(e,{z:()=>n});function n(){return"Layerr"}},42294(t,e,r){"use strict";r.d(e,{GU:()=>n.G});var n=r(17601)},17601(t,e,r){"use strict";r.d(e,{G:()=>a});var n=r(93028),o=r(11163),i=r(78049);class a extends Error{constructor(t,e){const r=[...arguments],{options:n,shortMessage:a}=(0,i.W)(r);let s=a;if(n.cause&&(s=`${s}: ${n.cause.message}`),super(s),this.message=s,n.name&&"string"==typeof n.name?this.name=n.name:this.name=(0,o.z)(),n.cause&&Object.defineProperty(this,"_cause",{value:n.cause}),Object.defineProperty(this,"_info",{value:{}}),n.info&&"object"==typeof n.info&&Object.assign(this._info,n.info),Error.captureStackTrace){const t=n.constructorOpt||this.constructor;Error.captureStackTrace(this,t)}}static cause(t){return(0,n.t)(t),t._cause&&(0,n.b)(t._cause)?t._cause:null}static fullStack(t){(0,n.t)(t);const e=a.cause(t);return e?`${t.stack}\ncaused by: ${a.fullStack(e)}`:t.stack??""}static info(t){(0,n.t)(t);const e={},r=a.cause(t);return r&&Object.assign(e,a.info(r)),t._info&&Object.assign(e,t._info),e}toString(){let t=this.name||this.constructor.name||this.constructor.prototype.name;return this.message&&(t=`${t}: ${this.message}`),t}}},78049(t,e,r){"use strict";r.d(e,{W:()=>o});var n=r(93028);function o(t){let e,r="";if(0===t.length)e={};else if((0,n.b)(t[0]))e={cause:t[0]},r=t.slice(1).join(" ")||"";else if(t[0]&&"object"==typeof t[0])e=Object.assign({},t[0]),r=t.slice(1).join(" ")||"";else{if("string"!=typeof t[0])throw new Error("Invalid arguments passed to Layerr");e={},r=r=t.join(" ")||""}return{options:e,shortMessage:r}}},60524(t,e,r){"use strict";r.d(e,{A:()=>a});const n=/^[-+]?0x[a-fA-F0-9]+$/,o=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,i={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};function a(t,e={}){if(e=Object.assign({},i,e),!t||"string"!=typeof t)return t;let r=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(r))return t;if("0"===t)return 0;if(e.hex&&n.test(r))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}(r);if(r.includes("e")||r.includes("E"))return function(t,e,r){if(!r.eNotation)return t;const n=e.match(s);if(n){let o=n[1]||"";const i=-1===n[3].indexOf("e")?"E":"e",a=n[2],s=o?t[a.length+1]===i:t[a.length]===i;return a.length>1&&s?t:1!==a.length||!n[3].startsWith(`.${i}`)&&n[3][0]!==i?r.leadingZeros&&!s?(e=(n[1]||"")+n[3],Number(e)):t:Number(e)}return t}(t,r,e);{const n=o.exec(r);if(n){const o=n[1]||"",i=n[2];let s=(a=n[3])&&-1!==a.indexOf(".")?("."===(a=a.replace(/0+$/,""))?a="0":"."===a[0]?a="0"+a:"."===a[a.length-1]&&(a=a.substring(0,a.length-1)),a):a;const u=o?"."===t[i.length+1]:"."===t[i.length];if(!e.leadingZeros&&(i.length>1||1===i.length&&!u))return t;{const n=Number(r),a=String(n);if(0===n)return n;if(-1!==a.search(/[eE]/))return e.eNotation?n:t;if(-1!==r.indexOf("."))return"0"===a||a===s||a===`${o}${s}`?n:t;let u=i?s:r;return i?u===a||o+u===a?n:t:u===a||u===o+a?n:t}}return t}var a}const s=/^([-+])?(0*)(\d*(\.\d*)?[eE][-\+]?\d+)$/},406(t,e,r){"use strict";function n(){return function(t){var e=[];if(0===t.length)return"";if("string"!=typeof t[0])throw new TypeError("Url must be a string. Received "+t[0]);if(t[0].match(/^[^/:]+:\/*$/)&&t.length>1){var r=t.shift();t[0]=r+t[0]}t[0].match(/^file:\/\/\//)?t[0]=t[0].replace(/^([^/:]+):\/*/,"$1:///"):t[0]=t[0].replace(/^([^/:]+):\/*/,"$1://");for(var n=0;n0&&(o=o.replace(/^[\/]+/,"")),o=n0?"?":"")+a.join("&")}("object"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}r.d(e,{A:()=>n})},19396(t,e,r){"use strict";r.d(e,{V:()=>o});var n=r(57221);function o(t,e){return`Basic ${(0,n.nk)(`${t}:${e}`)}`}},90036(t,e,r){"use strict";r.d(e,{C8:()=>i,Wb:()=>s,XX:()=>a,oD:()=>u});var n=r(83503),o=r(35658);function i(t,e,r){return{username:t,password:e,ha1:r,nc:0,algorithm:"md5",hasDigestAuth:!1}}function a(t,e){const r=t.url.replace("//",""),i=-1==r.indexOf("/")?"/":r.slice(r.indexOf("/")),a=t.method?t.method.toUpperCase():"GET",s=!!/(^|,)\s*auth\s*($|,)/.test(e.qop)&&"auth",u=`00000000${e.nc}`.slice(-8),l=(0,o.M)(e.algorithm,e.username,e.realm,e.password,e.nonce,e.cnonce,e.ha1),c=n(`${a}:${i}`),f=n(s?`${l}:${e.nonce}:${u}:${e.cnonce}:${s}:${c}`:`${l}:${e.nonce}:${c}`),p={username:e.username,realm:e.realm,nonce:e.nonce,uri:i,qop:s,response:f,nc:u,cnonce:e.cnonce,algorithm:e.algorithm,opaque:e.opaque},h=[];for(const t in p)p[t]&&("qop"===t||"nc"===t||"algorithm"===t?h.push(`${t}=${p[t]}`):h.push(`${t}="${p[t]}"`));return`Digest ${h.join(", ")}`}function s(t,e){if(!u(t))return!1;const r=/([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi;for(;;){const n=t.headers&&t.headers.get("www-authenticate")||"",o=r.exec(n);if(!o)break;e[o[1]]=o[2]||o[3]}return e.nc+=1,e.cnonce=function(){let t="";for(let e=0;e<32;++e)t=`${t}${"abcdef0123456789"[Math.floor(16*Math.random())]}`;return t}(),!0}function u(t){return"digest"===(t.headers&&t.headers.get("www-authenticate")||"").split(/\s/)[0].toLowerCase()}},36942(t,e,r){"use strict";r.d(e,{e:()=>u});var n=r(42294),o=r(90036),i=r(19396),a=r(89793),s=r(38374);function u(t,e,r,u,l){switch(t.authType){case s.hT.Auto:e&&r&&(t.headers.Authorization=(0,i.V)(e,r));break;case s.hT.Digest:t.digest=(0,o.C8)(e,r,l);break;case s.hT.None:break;case s.hT.Password:t.headers.Authorization=(0,i.V)(e,r);break;case s.hT.Token:t.headers.Authorization=(0,a.O)(u);break;default:throw new n.GU({info:{code:s.O4.InvalidAuthType}},`Invalid auth type: ${t.authType}`)}}},89793(t,e,r){"use strict";function n(t){return`${t.token_type} ${t.access_token}`}r.d(e,{O:()=>n})},47397(t,e,r){"use strict";r.d(e,{m:()=>i});const n="function"==typeof ArrayBuffer,{toString:o}=Object.prototype;function i(t){return n&&(t instanceof ArrayBuffer||"[object ArrayBuffer]"===o.call(t))}},53850(t,e,r){"use strict";function n(t){return null!=t&&null!=t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}r.d(e,{P:()=>n})},22921(t,e,r){"use strict";function n(){return"string"==typeof TARGET&&"react-native"===TARGET}function o(){return"string"==typeof TARGET&&"web"===TARGET}r.d(e,{H:()=>o,l:()=>n})},84819(t,e,r){"use strict";r.d(e,{G:()=>i});var n=r(19621);let o=null;function i(){return o||(o=new n.T),o}},84997(t,e,r){"use strict";r.d(e,{U:()=>A});var n=r(85394),o=r(36942),i=r(50335),a=r(28161),s=r(68476),u=r(76374),l=r(77101),c=r(75892),f=r(74419),p=r(17658),h=r(39615),d=r(86772),y=r(84830),g=r(80156),m=r(77087),b=r(30047),v=r(81838),w=r(10524),E=r(90176),x=r(38374);const S="https://github.com/perry-mitchell/webdav-client/blob/master/LOCK_CONTACT.md";function A(t,e={}){const{authType:r=null,remoteBasePath:A,contactHref:O=S,ha1:_,headers:T={},httpAgent:j,httpsAgent:P,password:R,token:N,username:k,withCredentials:I}=e;let M=r;M||(M=k||R?x.hT.Password:x.hT.None);const C={authType:M,remoteBasePath:A,contactHref:O,ha1:_,headers:Object.assign({},T),httpAgent:j,httpsAgent:P,password:R,parsing:{attributeNamePrefix:e.attributeNamePrefix??"@",attributeParsers:[],tagParsers:[E.jp]},remotePath:(0,n.wB)(t),remoteURL:t,token:N,username:k,withCredentials:I};return(0,o.e)(C,k,R,N,_),{copyFile:(t,e,r)=>(0,i.m)(C,t,e,r),createDirectory:(t,e)=>(0,a.c)(C,t,e),createReadStream:(t,e)=>(0,s.V)(C,t,e),createWriteStream:(t,e,r)=>(0,s.o)(C,t,e,r),customRequest:(t,e)=>(0,u.J)(C,t,e),deleteFile:(t,e)=>(0,l.W)(C,t,e),exists:(t,e)=>(0,c.t)(C,t,e),getDirectoryContents:(t,e)=>(0,f.A)(C,t,e),getFileContents:(t,e)=>(0,p.F)(C,t,e),getFileDownloadLink:t=>(0,p.b)(C,t),getFileUploadLink:t=>(0,b.w)(C,t),getHeaders:()=>Object.assign({},C.headers),getQuota:t=>(0,d.T)(C,t),lock:(t,e)=>(0,h.s)(C,t,e),moveFile:(t,e,r)=>(0,m.m)(C,t,e,r),putFileContents:(t,e,r)=>(0,b.g)(C,t,e,r),partialUpdateFileContents:(t,e,r,n,o)=>(0,v.V)(C,t,e,r,n,o),getDAVCompliance:t=>(0,w.p)(C,t),search:(t,e)=>(0,g.T)(C,t,e),setHeaders:t=>{C.headers=Object.assign({},t)},stat:(t,e)=>(0,y.z)(C,t,e),unlock:(t,e,r)=>(0,h.T)(C,t,e,r),registerAttributeParser:t=>{C.parsing.attributeParsers.push(t)},registerTagParser:t=>{C.parsing.tagParsers.push(t)}}}},82415(t,e,r){"use strict";r.d(e,{UU:()=>n.U,h4:()=>o.h4});var n=r(84997),o=(r(38374),r(90176));r(71922),r(5e3)},50335(t,e,r){"use strict";r.d(e,{m:()=>s});var n=r(85394),o=r(36236),i=r(89062),a=r(5e3);async function s(t,e,r,s={}){const u=(0,i.H)({url:(0,n.oq)(t.remoteURL,(0,o.O0)(e)),method:"COPY",headers:{Destination:(0,n.oq)(t.remoteURL,(0,o.O0)(r)),Overwrite:!1===s.overwrite?"F":"T",Depth:s.shallow?"0":"infinity"}},t,s),l=await(0,i.E)(u,t);(0,a.HT)(t,l)}},28161(t,e,r){"use strict";r.d(e,{c:()=>u});var n=r(85394),o=r(36236),i=r(89062),a=r(5e3),s=r(84830);async function u(t,e,r={}){if(!0===r.recursive)return async function(t,e,r={}){const n=(0,o.xi)((0,o.qb)(e));n.sort((t,e)=>t.length>e.length?1:e.length>t.length?-1:0);let i=!1;for(const o of n)if(i)await u(t,o,{...r,recursive:!1});else try{if("directory"!==(await(0,s.z)(t,o)).type)throw new Error(`Path includes a file: ${e}`)}catch(e){if(404!==e.status)throw e;i=!0,await u(t,o,{...r,recursive:!1})}}(t,e,r);const l=(0,i.H)({url:(0,n.oq)(t.remoteURL,(f=(0,o.O0)(e),f.endsWith("/")?f:f+"/")),method:"MKCOL"},t,r),c=await(0,i.E)(l,t);var f;(0,a.HT)(t,c)}},68476(t,e,r){"use strict";r.d(e,{V:()=>l,o:()=>c});var n=r(88310),o=r(85394),i=r(36236),a=r(89062),s=r(5e3);const u=()=>{};function l(t,e,r={}){const u=new(0,n.PassThrough);return async function(t,e,r={}){const n={};if("object"==typeof r.range&&"number"==typeof r.range.start){let t=`bytes=${r.range.start}-`;"number"==typeof r.range.end&&(t=`${t}${r.range.end}`),n.Range=t}const u=(0,a.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"GET",headers:n},t,r),l=await(0,a.E)(u,t);if((0,s.HT)(t,l),n.Range&&206!==l.status){const t=new Error(`Invalid response code for partial request: ${l.status}`);throw t.status=l.status,t}return r.callback&&setTimeout(()=>{r.callback(l)},0),l.body}(t,e,r).then(t=>{t.pipe(u)}).catch(t=>{u.emit("error",t)}),u}function c(t,e,r={},l=u){const c=new(0,n.PassThrough),f={};!1===r.overwrite&&(f["If-None-Match"]="*");const p=(0,a.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"PUT",headers:f,data:c,maxRedirects:0},t,r);return(0,a.E)(p,t).then(e=>(0,s.HT)(t,e)).then(t=>{setTimeout(()=>{l(t)},0)}).catch(t=>{c.emit("error",t)}),c}},76374(t,e,r){"use strict";r.d(e,{J:()=>s});var n=r(85394),o=r(36236),i=r(89062),a=r(5e3);async function s(t,e,r){r.url||(r.url=(0,n.oq)(t.remoteURL,(0,o.O0)(e)));const s=(0,i.H)(r,t,{}),u=await(0,i.E)(s,t);return(0,a.HT)(t,u),u}},77101(t,e,r){"use strict";r.d(e,{W:()=>s});var n=r(85394),o=r(36236),i=r(89062),a=r(5e3);async function s(t,e,r={}){const s=(0,i.H)({url:(0,n.oq)(t.remoteURL,(0,o.O0)(e)),method:"DELETE"},t,r),u=await(0,i.E)(s,t);(0,a.HT)(t,u)}},74419(t,e,r){"use strict";r.d(e,{A:()=>l});var n=r(12692),o=r(85394),i=r(36236),a=r(90176),s=r(89062),u=r(5e3);async function l(t,e,r={}){const l=(0,s.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e),"/"),method:"PROPFIND",headers:{Accept:"text/plain,application/xml",Depth:r.deep?"infinity":"1"}},t,r),c=await(0,s.E)(l,t);(0,u.HT)(t,c);const f=await c.text();if(!f)throw new Error("Failed parsing directory contents: Empty response");const p=await(0,a.h4)(f,t.parsing),h=(0,i.dU)(e);let d=function(t,e,r,s=!1,u=!1){const l=n.join(e,"/"),{multistatus:{response:c}}=t,f=c.map(t=>{const e=(0,o.S8)(t.href),{propstat:{prop:r}}=t,u="/"===l?decodeURIComponent((0,i.qb)(e)):(0,i.qb)(n.relative(decodeURIComponent(l),decodeURIComponent(e)));return(0,a.ch)(r,u,s)});return u?f:f.filter(t=>t.basename&&("file"===t.type||t.filename!==r.replace(/\/$/,"")))}(p,(0,i.dU)(t.remoteBasePath||t.remotePath),h,r.details,r.includeSelf);return r.glob&&(d=(0,u.eh)(d,r.glob)),(0,u.hq)(c,d,r.details)}},75892(t,e,r){"use strict";r.d(e,{t:()=>o});var n=r(84830);async function o(t,e,r={}){try{return await(0,n.z)(t,e,r),!0}catch(t){if(404===t.status)return!1;throw t}}},10524(t,e,r){"use strict";r.d(e,{p:()=>s});var n=r(85394),o=r(36236),i=r(89062),a=r(5e3);async function s(t,e,r={}){const s=(0,i.H)({url:(0,n.oq)(t.remoteURL,(0,o.O0)(e)),method:"OPTIONS"},t,r),u=await(0,i.E)(s,t);try{(0,a.HT)(t,u)}catch(t){throw t}return{compliance:(u.headers.get("DAV")??"").split(",").map(t=>t.trim()),server:u.headers.get("Server")??""}}},17658(t,e,r){"use strict";r.d(e,{F:()=>h,b:()=>d});var n=r(42294),o=r(85394),i=r(36236),a=r(57221),s=r(22921),u=r(89062),l=r(5e3),c=r(38374),f=r(62045).hp;const p=t=>t;async function h(t,e,r={}){const{format:a="binary"}=r;if("binary"!==a&&"text"!==a)throw new n.GU({info:{code:c.O4.InvalidOutputFormat}},`Invalid output format: ${a}`);return"text"===a?async function(t,e,r={}){const n=(0,u.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"GET",headers:{Accept:"text/plain"},transformResponse:[p]},t,r),a=await(0,u.E)(n,t);(0,l.HT)(t,a);const s=await a.text();return(0,l.hq)(a,s,r.details)}(t,e,r):async function(t,e,r={}){const n=(0,u.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"GET"},t,r),a=await(0,u.E)(n,t);let c;return(0,l.HT)(t,a),c=(0,s.H)()||(0,s.l)()?await a.arrayBuffer():f.from(await a.arrayBuffer()),(0,l.hq)(a,c,r.details)}(t,e,r)}function d(t,e){let r=(0,o.oq)(t.remoteURL,(0,i.O0)(e));const s=/^https:/i.test(r)?"https":"http";switch(t.authType){case c.hT.None:break;case c.hT.Password:{const e=t.headers.Authorization.replace(/^Basic /i,"").trim(),n=(0,a.Ey)(e);r=r.replace(/^https?:\/\//,`${s}://${n}@`);break}default:throw new n.GU({info:{code:c.O4.LinkUnsupportedAuthType}},`Unsupported auth type for file link: ${t.authType}`)}return r}},86772(t,e,r){"use strict";r.d(e,{T:()=>u});var n=r(89062),o=r(5e3),i=r(90176),a=r(85394),s=r(7815);async function u(t,e={}){const r=e.path||"/",u=(0,n.H)({url:(0,a.oq)(t.remoteURL,r),method:"PROPFIND",headers:{Accept:"text/plain,application/xml",Depth:"0"}},t,e),l=await(0,n.E)(u,t);(0,o.HT)(t,l);const c=await l.text(),f=await(0,i.h4)(c,t.parsing),p=(0,s.K)(f);return(0,o.hq)(l,p,e.details)}},39615(t,e,r){"use strict";r.d(e,{T:()=>f,s:()=>c});var n=r(26602),o=r(85394),i=r(36236),a=r(27562),s=r(89062),u=r(5e3);const l="Infinite, Second-4100000000";async function c(t,e,r={}){const{refreshToken:c,timeout:f=l}=r,p={Accept:"text/plain,application/xml",Timeout:f};c&&(p.If=c);const h=(0,s.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"LOCK",headers:p,data:(0,a.A)(t.contactHref)},t,r),d=await(0,s.E)(h,t);(0,u.HT)(t,d);const y=await d.text(),g=(0,a.o)(y),m=n.get(g,"prop.lockdiscovery.activelock.locktoken.href"),b=n.get(g,"prop.lockdiscovery.activelock.timeout");if(!m)throw(0,u.YQ)(d,"No lock token received: ");return{token:m,serverTimeout:b}}async function f(t,e,r,n={}){const a=(0,s.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"UNLOCK",headers:{"Lock-Token":r}},t,n),l=await(0,s.E)(a,t);if((0,u.HT)(t,l),204!==l.status&&200!==l.status)throw(0,u.YQ)(l)}},77087(t,e,r){"use strict";r.d(e,{m:()=>s});var n=r(85394),o=r(36236),i=r(89062),a=r(5e3);async function s(t,e,r,s={}){const u=(0,i.H)({url:(0,n.oq)(t.remoteURL,(0,o.O0)(e)),method:"MOVE",headers:{Destination:(0,n.oq)(t.remoteURL,(0,o.O0)(r)),Overwrite:!1===s.overwrite?"F":"T"}},t,s),l=await(0,i.E)(u,t);(0,a.HT)(t,l)}},81838(t,e,r){"use strict";r.d(e,{V:()=>c});var n=r(42294),o=r(85394),i=r(36236),a=r(89062),s=r(5e3),u=r(10524),l=r(38374);async function c(t,e,r,c,f,p={}){const h=await(0,u.p)(t,e,p);if(h.compliance.includes("sabredav-partialupdate"))return await async function(t,e,r,u,c,f={}){if(r>u||r<0)throw new n.GU({info:{code:l.O4.InvalidUpdateRange}},`Invalid update range ${r} for partial update`);const p={"Content-Type":"application/x-sabredav-partialupdate","Content-Length":""+(u-r+1),"X-Update-Range":`bytes=${r}-${u}`},h=(0,a.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"PATCH",headers:p,data:c},t,f),d=await(0,a.E)(h,t);(0,s.HT)(t,d)}(t,e,r,c,f,p);if(h.server.includes("Apache")&&h.compliance.includes(""))return await async function(t,e,r,u,c,f={}){if(r>u||r<0)throw new n.GU({info:{code:l.O4.InvalidUpdateRange}},`Invalid update range ${r} for partial update`);const p={"Content-Type":"application/octet-stream","Content-Length":""+(u-r+1),"Content-Range":`bytes ${r}-${u}/*`},h=(0,a.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"PUT",headers:p,data:c},t,f),d=await(0,a.E)(h,t);(0,s.HT)(t,d)}(t,e,r,c,f,p);throw new n.GU({info:{code:l.O4.NotSupported}},"Not supported")}},30047(t,e,r){"use strict";r.d(e,{g:()=>h,w:()=>d});var n=r(42294),o=r(88310),i=r(57221),a=r(85394),s=r(36236),u=r(71922),l=r(22921),c=r(89062),f=r(5e3),p=r(38374);async function h(t,e,r,n={}){const{contentLength:i=!0,overwrite:p=!0}=n,h={"Content-Type":"application/octet-stream"};!(0,l.H)()&&!(0,l.l)()&&void 0!==o&&void 0!==o?.Readable&&r instanceof o.Readable||!1===i||(h["Content-Length"]="number"==typeof i?`${i}`:`${(0,u.J)(r)}`),p||(h["If-None-Match"]="*");const d=(0,c.H)({url:(0,a.oq)(t.remoteURL,(0,s.O0)(e)),method:"PUT",headers:h,data:r},t,n),y=await(0,c.E)(d,t);try{(0,f.HT)(t,y)}catch(t){const e=t;if(412!==e.status||p)throw e;return!1}return!0}function d(t,e){let r=`${(0,a.oq)(t.remoteURL,(0,s.O0)(e))}?Content-Type=application/octet-stream`;const o=/^https:/i.test(r)?"https":"http";switch(t.authType){case p.hT.None:break;case p.hT.Password:{const e=t.headers.Authorization.replace(/^Basic /i,"").trim(),n=(0,i.Ey)(e);r=r.replace(/^https?:\/\//,`${o}://${n}@`);break}default:throw new n.GU({info:{code:p.O4.LinkUnsupportedAuthType}},`Unsupported auth type for file link: ${t.authType}`)}return r}},80156(t,e,r){"use strict";r.d(e,{T:()=>u});var n=r(90176),o=r(85394),i=r(36236),a=r(89062),s=r(5e3);async function u(t,e,r={}){const{details:u=!1}=r,l=(0,a.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"SEARCH",headers:{Accept:"text/plain,application/xml","Content-Type":t.headers["Content-Type"]||"application/xml; charset=utf-8"}},t,r),c=await(0,a.E)(l,t);(0,s.HT)(t,c);const f=await c.text(),p=await(0,n.h4)(f,t.parsing),h=(0,n.KA)(p,e,u);return(0,s.hq)(c,h,u)}},84830(t,e,r){"use strict";r.d(e,{z:()=>u});var n=r(90176),o=r(85394),i=r(36236),a=r(89062),s=r(5e3);async function u(t,e,r={}){const{details:u=!1}=r,l=(0,a.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"PROPFIND",headers:{Accept:"text/plain,application/xml",Depth:"0"}},t,r),c=await(0,a.E)(l,t);(0,s.HT)(t,c);const f=await c.text(),p=await(0,n.h4)(f,t.parsing),h=(0,n.ky)(p,e,u);return(0,s.hq)(c,h,u)}},89062(t,e,r){"use strict";r.d(e,{E:()=>y,H:()=>d});var n=r(11568),o=r(11083),i=r(97192),a=r(84819),s=r(22921),u=r(90036),l=r(79275),c=r(79605),f=r(39299),p=r(38374),h=r(36942);function d(t,e,r){const n=(0,l.q)(t);return n.headers=(0,c.l)(e.headers,n.headers||{},r.headers||{}),void 0!==r.data&&(n.data=r.data),r.signal&&(n.signal=r.signal),e.httpAgent&&(n.httpAgent=e.httpAgent),e.httpsAgent&&(n.httpsAgent=e.httpsAgent),e.digest&&(n._digest=e.digest),"boolean"==typeof e.withCredentials&&(n.withCredentials=e.withCredentials),n}async function y(t,e){return e.authType===p.hT.Auto?async function(t,e){const r=await m(t);return r.ok?(e.authType=p.hT.Password,r):401==r.status&&(0,u.oD)(r)?(e.authType=p.hT.Digest,(0,h.e)(e,e.username,e.password,void 0,void 0),t._digest=e.digest,g(t)):r}(t,e):t._digest?g(t):m(t)}async function g(t){const e=t._digest;delete t._digest,e.hasDigestAuth&&(t=(0,l.h)(t,{headers:{Authorization:(0,u.XX)(t,e)}}));const r=await m(t);if(401==r.status){if(e.hasDigestAuth=(0,u.Wb)(r,e),e.hasDigestAuth){t=(0,l.h)(t,{headers:{Authorization:(0,u.XX)(t,e)}});const r=await m(t);return 401==r.status?e.hasDigestAuth=!1:e.nc++,r}}else e.nc++;return r}function m(t){const e=(0,a.G)();return e.patchInline("request",t=>e.patchInline("fetch",i.hd,t.url,function(t){let e={};const r={method:t.method};if(t.headers&&(e=(0,c.l)(e,t.headers)),void 0!==t.data){const[n,o]=(0,f.P)(t.data);r.body=n,e=(0,c.l)(e,o)}return t.signal&&(r.signal=t.signal),t.withCredentials&&(r.credentials="include"),(0,s.H)()||(0,s.l)()||(t.httpAgent||t.httpsAgent)&&(r.agent=e=>"http:"===e.protocol?t.httpAgent||new n.Agent:t.httpsAgent||new o.Agent),r.headers=e,r}(t)),t)}},5e3(t,e,r){"use strict";r.d(e,{HT:()=>a,YQ:()=>i,eh:()=>s,hq:()=>u});var n=r(44916),o=r(79605);function i(t,e=""){const r=new Error(`${e}Invalid response: ${t.status} ${t.statusText}`);return r.status=t.status,r.response=t,r}function a(t,e){const{status:r}=e;if(401===r&&t.digest)return e;if(r>=400)throw i(e);return e}function s(t,e){return t.filter(t=>(0,n.xF)(t.filename,e,{matchBase:!0}))}function u(t,e,r=!1){return r?{data:e,headers:t.headers?(0,o.N)(t.headers):{},status:t.status,statusText:t.statusText}:e}},39299(t,e,r){"use strict";r.d(e,{P:()=>s});var n=r(88310),o=r(47397),i=r(53850),a=r(22921);function s(t){if(!(0,a.H)()&&!(0,a.l)()&&t instanceof n.Readable)return[t,{}];if("string"==typeof t)return[t,{}];if((0,i.P)(t))return[t,{}];if((0,o.m)(t))return[t,{}];if(t&&"object"==typeof t)return[JSON.stringify(t),{"content-type":"application/json"}];throw new Error("Unable to convert request body: Unexpected body type: "+typeof t)}},35658(t,e,r){"use strict";r.d(e,{M:()=>o});var n=r(83503);function o(t,e,r,o,i,a,s){const u=s||n(`${e}:${r}:${o}`);return t&&"md5-sess"===t.toLowerCase()?n(`${u}:${i}:${a}`):u}},90176(t,e,r){"use strict";r.d(e,{KA:()=>h,ch:()=>f,h4:()=>c,i5:()=>d,jp:()=>u,ky:()=>p});var n,o=r(12692),i=r(1912),a=r(26602),s=r(36236);function u(t,e){if(!t.endsWith("propstat.prop.displayname"))return e}function l(t,e,r=n.Original){const o=a.get(t,e);return"array"===r&&!1===Array.isArray(o)?[o]:"object"===r&&Array.isArray(o)?o[0]:o}function c(t,e){return e=e??{attributeNamePrefix:"@",attributeParsers:[],tagParsers:[u]},new Promise(r=>{r(function(t){const{multistatus:e}=t;if(""===e)return{multistatus:{response:[]}};if(!e)throw new Error("Invalid response: No root multistatus found");const r={multistatus:Array.isArray(e)?e[0]:e};return a.set(r,"multistatus.response",l(r,"multistatus.response",n.Array)),a.set(r,"multistatus.response",a.get(r,"multistatus.response").map(t=>function(t){const e=Object.assign({},t);return e.status?a.set(e,"status",l(e,"status",n.Object)):(a.set(e,"propstat",l(e,"propstat",n.Object)),a.set(e,"propstat.prop",l(e,"propstat.prop",n.Object))),e}(t))),r}(function({attributeNamePrefix:t,attributeParsers:e,tagParsers:r}){return new i.A({allowBooleanAttributes:!0,attributeNamePrefix:t,textNodeName:"text",ignoreAttributes:!1,removeNSPrefix:!0,numberParseOptions:{hex:!0,leadingZeros:!1},attributeValueProcessor(t,r,n){for(const t of e)try{const e=t(n,r);if(e!==r)return e}catch(t){}return r},tagValueProcessor(t,e,n){for(const t of r)try{const r=t(n,e);if(r!==e)return r}catch(t){}return e}})}(e).parse(t)))})}function f(t,e,r=!1){const{getlastmodified:n=null,getcontentlength:i="0",resourcetype:a=null,getcontenttype:s=null,getetag:u=null}=t,l=a&&"object"==typeof a&&void 0!==a.collection?"directory":"file",c={filename:e,basename:o.basename(e),lastmod:n,size:parseInt(i,10),type:l,etag:"string"==typeof u?u.replace(/"/g,""):null};return"file"===l&&(c.mime=s&&"string"==typeof s?s.split(";")[0]:""),r&&(void 0!==t.displayname&&(t.displayname=String(t.displayname)),c.props=t),c}function p(t,e,r=!1){let n=null;try{t.multistatus.response[0].propstat&&(n=t.multistatus.response[0])}catch(t){}if(!n)throw new Error("Failed getting item stat: bad response");const{propstat:{prop:o,status:i}}=n,[a,u,l]=i.split(" ",3),c=parseInt(u,10);if(c>=400){const t=new Error(`Invalid response: ${c} ${l}`);throw t.status=c,t}return f(o,(0,s.qb)(e),r)}function h(t,e,r){const n={truncated:!1,results:[]};return n.truncated=t.multistatus.response.some(t=>"507"===(t.status||t.propstat?.status).split(" ",3)?.[1]&&t.href.replace(/\/$/,"").endsWith((0,s.O0)(e).replace(/\/$/,""))),t.multistatus.response.forEach(t=>{if(void 0===t.propstat)return;const e=t.href.split("/").map(decodeURIComponent).join("/");n.results.push(f(t.propstat.prop,e,r))}),n}function d(t){switch(String(t)){case"-3":return"unlimited";case"-2":case"-1":return"unknown";default:return parseInt(String(t),10)}}!function(t){t.Array="array",t.Object="object",t.Original="original"}(n||(n={}))},57221(t,e,r){"use strict";r.d(e,{Ey:()=>o,nk:()=>i});var n=r(85914);function o(t){return n.decode(t)}function i(t){return n.encode(t)}r(15723)},79605(t,e,r){"use strict";function n(t){const e={};for(const r of t.keys())e[r]=t.get(r);return e}function o(...t){if(0===t.length)return{};const e={};return t.reduce((t,r)=>(Object.keys(r).forEach(n=>{const o=n.toLowerCase();e.hasOwnProperty(o)?t[e[o]]=r[n]:(e[o]=n,t[n]=r[n])}),t),{})}r.d(e,{N:()=>n,l:()=>o})},79275(t,e,r){"use strict";function n(t){return function(t){if("object"!=typeof t||null===t||"[object Object]"!=Object.prototype.toString.call(t))return!1;if(null===Object.getPrototypeOf(t))return!0;let e=t;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}(t)?Object.assign({},t):Object.setPrototypeOf(Object.assign({},t),Object.getPrototypeOf(t))}function o(...t){let e=null,r=[...t];for(;r.length>0;){const t=r.shift();e=e?i(e,t):n(t)}return e}function i(t,e){const r=n(t);return Object.keys(e).forEach(t=>{r.hasOwnProperty(t)?Array.isArray(e[t])?r[t]=Array.isArray(r[t])?[...r[t],...e[t]]:[...e[t]]:"object"==typeof e[t]&&e[t]?r[t]="object"==typeof r[t]&&r[t]?i(r[t],e[t]):n(e[t]):r[t]=e[t]:r[t]=e[t]}),r}r.d(e,{h:()=>o,q:()=>n})},36236(t,e,r){"use strict";r.d(e,{O0:()=>s,dU:()=>l,qb:()=>c,xi:()=>u});var n=r(42294),o=r(12692);const i="__PATH_SEPARATOR_POSIX__",a="__PATH_SEPARATOR_WINDOWS__";function s(t){try{const e=t.replace(/\//g,i).replace(/\\\\/g,a);return encodeURIComponent(e).split(a).join("\\\\").split(i).join("/")}catch(t){throw new n.GU(t,"Failed encoding path")}}function u(t){if(!t||"/"===t)return[];let e=t;const r=[];do{r.push(e),e=o.dirname(e)}while(e&&"/"!==e);return r}function l(t){return t.startsWith("/")?t:"/"+t}function c(t){let e=t;return"/"!==e[0]&&(e="/"+e),/^.+\/$/.test(e)&&(e=e.substr(0,e.length-1)),e}},7815(t,e,r){"use strict";r.d(e,{K:()=>o});var n=r(90176);function o(t){try{const[e]=t.multistatus.response,{propstat:{prop:{"quota-used-bytes":r,"quota-available-bytes":o}}}=e;return void 0!==r&&void 0!==o?{used:parseInt(String(r),10),available:(0,n.i5)(o)}:null}catch(t){}return null}},71922(t,e,r){"use strict";r.d(e,{J:()=>u});var n=r(42294),o=r(67691),i=r(47397),a=r(53850),s=r(38374);function u(t){if((0,i.m)(t))return t.byteLength;if((0,a.P)(t))return t.length;if("string"==typeof t)return(0,o.d)(t);throw new n.GU({info:{code:s.O4.DataTypeNoLength}},"Cannot calculate data length: Invalid type")}},85394(t,e,r){"use strict";r.d(e,{S8:()=>l,oq:()=>u,wB:()=>s});var n=r(61160),o=r(42294),i=r(406),a=r(36236);function s(t){let e=new n(t).pathname;return e.length<=0&&(e="/"),(0,a.qb)(e)}function u(...t){return(0,i.A)(t.reduce((t,e,r)=>((0===r||"/"!==e||"/"===e&&"/"!==t[t.length-1])&&t.push(e),t),[]))}function l(t){try{return t.replace(/^https?:\/\/[^\/]+/,"")}catch(t){throw new o.GU(t,"Failed normalising HREF")}}},27562(t,e,r){"use strict";r.d(e,{A:()=>i,o:()=>s});var n=r(1912),o=r(99111);function i(t){return new o.A({attributeNamePrefix:"@_",format:!0,ignoreAttributes:!1,suppressEmptyNode:!0}).build(a({lockinfo:{"@_xmlns:d":"DAV:",lockscope:{exclusive:{}},locktype:{write:{}},owner:{href:t}}},"d"))}function a(t,e){const r={...t};for(const t in r)r.hasOwnProperty(t)&&(r[t]&&"object"==typeof r[t]&&-1===t.indexOf(":")?(r[`${e}:${t}`]=a(r[t],e),delete r[t]):!1===/^@_/.test(t)&&(r[`${e}:${t}`]=r[t],delete r[t]));return r}function s(t){return new n.A({removeNSPrefix:!0,parseAttributeValue:!0,parseTagValue:!0}).parse(t)}},38374(t,e,r){"use strict";var n,o;r.d(e,{O4:()=>o,hT:()=>n}),r(97192),function(t){t.Auto="auto",t.Digest="digest",t.None="none",t.Password="password",t.Token="token"}(n||(n={})),function(t){t.DataTypeNoLength="data-type-no-length",t.InvalidAuthType="invalid-auth-type",t.InvalidOutputFormat="invalid-output-format",t.LinkUnsupportedAuthType="link-unsupported-auth",t.InvalidUpdateRange="invalid-update-range",t.NotSupported="not-supported"}(o||(o={}))},27341(t,e,r){"use strict";new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),String.fromCodePoint},26549(t,e,r){"use strict";var n,o,i,a;r(75780),r(92148),r(27341),function(t){t[t.NUM=35]="NUM",t[t.SEMI=59]="SEMI",t[t.EQUALS=61]="EQUALS",t[t.ZERO=48]="ZERO",t[t.NINE=57]="NINE",t[t.LOWER_A=97]="LOWER_A",t[t.LOWER_F=102]="LOWER_F",t[t.LOWER_X=120]="LOWER_X",t[t.LOWER_Z=122]="LOWER_Z",t[t.UPPER_A=65]="UPPER_A",t[t.UPPER_F=70]="UPPER_F",t[t.UPPER_Z=90]="UPPER_Z"}(n||(n={})),function(t){t[t.VALUE_LENGTH=49152]="VALUE_LENGTH",t[t.BRANCH_LENGTH=16256]="BRANCH_LENGTH",t[t.JUMP_TABLE=127]="JUMP_TABLE"}(o||(o={})),function(t){t[t.EntityStart=0]="EntityStart",t[t.NumericStart=1]="NumericStart",t[t.NumericDecimal=2]="NumericDecimal",t[t.NumericHex=3]="NumericHex",t[t.NamedEntity=4]="NamedEntity"}(i||(i={})),function(t){t[t.Legacy=0]="Legacy",t[t.Strict=1]="Strict",t[t.Attribute=2]="Attribute"}(a||(a={}))},13197(t,e,r){"use strict";r(91573),r(40144)},40144(t,e,r){"use strict";new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]),String.prototype.codePointAt,new Map([[34,"""],[38,"&"],[160," "]]),new Map([[38,"&"],[60,"<"],[62,">"],[160," "]])},75780(t,e,r){},92148(t,e,r){},91573(t,e,r){},15723(t,e,r){"use strict";var n,o;r(26549),r(13197),r(40144),function(t){t[t.XML=0]="XML",t[t.HTML=1]="HTML"}(n||(n={})),function(t){t[t.UTF8=0]="UTF8",t[t.ASCII=1]="ASCII",t[t.Extensive=2]="Extensive",t[t.Attribute=3]="Attribute",t[t.Text=4]="Text"}(o||(o={}))},84300(t,e,r){"use strict";r.d(e,{f:()=>n});const n=t=>{if("string"!=typeof t)throw new TypeError("invalid pattern");if(t.length>65536)throw new TypeError("pattern is too long")}},17908(t,e,r){"use strict";r.d(e,{d:()=>y});var n=r(73733),o=r(24754);const i=new Set(["!","?","+","*","@"]),a=t=>i.has(t),s="(?!\\.)",u=new Set(["[","."]),l=new Set(["..","."]),c=new Set("().*{}+?[]^$\\!"),f=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),p="[^/]",h=p+"*?",d=p+"+?";class y{type;#t;#e;#r=!1;#n=[];#o;#i;#a;#s=!1;#u;#l;#c=!1;constructor(t,e,r={}){this.type=t,t&&(this.#e=!0),this.#o=e,this.#t=this.#o?this.#o.#t:this,this.#u=this.#t===this?r:this.#t.#u,this.#a=this.#t===this?[]:this.#t.#a,"!"!==t||this.#t.#s||this.#a.push(this),this.#i=this.#o?this.#o.#n.length:0}get hasMagic(){if(void 0!==this.#e)return this.#e;for(const t of this.#n)if("string"!=typeof t&&(t.type||t.hasMagic))return this.#e=!0;return this.#e}toString(){return void 0!==this.#l?this.#l:this.type?this.#l=this.type+"("+this.#n.map(t=>String(t)).join("|")+")":this.#l=this.#n.map(t=>String(t)).join("")}#f(){if(this!==this.#t)throw new Error("should only call on root");if(this.#s)return this;let t;for(this.toString(),this.#s=!0;t=this.#a.pop();){if("!"!==t.type)continue;let e=t,r=e.#o;for(;r;){for(let n=e.#i+1;!r.type&&n"string"==typeof t?t:t.toJSON()):[this.type,...this.#n.map(t=>t.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#s&&"!"===this.#o?.type)&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#o?.isStart())return!1;if(0===this.#i)return!0;const t=this.#o;for(let e=0;e{const[n,o,i,a]="string"==typeof e?y.#h(e,this.#e,r):e.toRegExpSource(t);return this.#e=this.#e||i,this.#r=this.#r||a,n}).join("");let i="";if(this.isStart()&&"string"==typeof this.#n[0]&&(1!==this.#n.length||!l.has(this.#n[0]))){const r=u,o=e&&r.has(n.charAt(0))||n.startsWith("\\.")&&r.has(n.charAt(2))||n.startsWith("\\.\\.")&&r.has(n.charAt(4)),a=!e&&!t&&r.has(n.charAt(0));i=o?"(?!(?:^|/)\\.\\.?(?:$|/))":a?s:""}let a="";return this.isEnd()&&this.#t.#s&&"!"===this.#o?.type&&(a="(?:$|\\/)"),[i+n+a,(0,o.x)(n),this.#e=!!this.#e,this.#r]}const r="*"===this.type||"+"===this.type,n="!"===this.type?"(?:(?!(?:":"(?:";let i=this.#d(e);if(this.isStart()&&this.isEnd()&&!i&&"!"!==this.type){const t=this.toString();return this.#n=[t],this.type=null,this.#e=void 0,[t,(0,o.x)(this.toString()),!1,!1]}let a=!r||t||e?"":this.#d(!0);a===i&&(a=""),a&&(i=`(?:${i})(?:${a})*?`);let c="";return c="!"===this.type&&this.#c?(this.isStart()&&!e?s:"")+d:n+i+("!"===this.type?"))"+(!this.isStart()||e||t?"":s)+h+")":"@"===this.type?")":"?"===this.type?")?":"+"===this.type&&a?")":"*"===this.type&&a?")?":`)${this.type}`),[c,(0,o.x)(i),this.#e=!!this.#e,this.#r]}#d(t){return this.#n.map(e=>{if("string"==typeof e)throw new Error("string type in extglob ast??");const[r,n,o,i]=e.toRegExpSource(t);return this.#r=this.#r||i,r}).filter(t=>!(this.isStart()&&this.isEnd()&&!t)).join("|")}static#h(t,e,r=!1){let i=!1,a="",s=!1;for(let o=0;oa});const n={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},o=t=>t.replace(/[[\]\\-]/g,"\\$&"),i=t=>t.join(""),a=(t,e)=>{const r=e;if("["!==t.charAt(r))throw new Error("not in a brace expression");const a=[],s=[];let u=r+1,l=!1,c=!1,f=!1,p=!1,h=r,d="";t:for(;ud?a.push(o(d)+"-"+o(e)):e===d&&a.push(o(e)),d="",u++):t.startsWith("-]",u+1)?(a.push(o(e+"-")),u+=2):t.startsWith("-",u+1)?(d=e,u+=2):(a.push(o(e)),u++)}else f=!0,u++}else p=!0,u++}if(hn});const n=(t,{windowsPathsNoEscape:e=!1}={})=>e?t.replace(/[?*()[\]]/g,"[$&]"):t.replace(/[?*()[\]\\]/g,"\\$&")},44916(t,e,r){"use strict";r.d(e,{xF:()=>l});var n=r(68928),o=r(84300),i=r(17908),a=r(25093),s=r(24754),u=r(65606);const l=(t,e,r={})=>((0,o.f)(e),!(!r.nocomment&&"#"===e.charAt(0))&&new L(e,r).match(t)),c=/^\*+([^+@!?\*\[\(]*)$/,f=t=>e=>!e.startsWith(".")&&e.endsWith(t),p=t=>e=>e.endsWith(t),h=t=>(t=t.toLowerCase(),e=>!e.startsWith(".")&&e.toLowerCase().endsWith(t)),d=t=>(t=t.toLowerCase(),e=>e.toLowerCase().endsWith(t)),y=/^\*+\.\*+$/,g=t=>!t.startsWith(".")&&t.includes("."),m=t=>"."!==t&&".."!==t&&t.includes("."),b=/^\.\*+$/,v=t=>"."!==t&&".."!==t&&t.startsWith("."),w=/^\*+$/,E=t=>0!==t.length&&!t.startsWith("."),x=t=>0!==t.length&&"."!==t&&".."!==t,S=/^\?+([^+@!?\*\[\(]*)?$/,A=([t,e=""])=>{const r=j([t]);return e?(e=e.toLowerCase(),t=>r(t)&&t.toLowerCase().endsWith(e)):r},O=([t,e=""])=>{const r=P([t]);return e?(e=e.toLowerCase(),t=>r(t)&&t.toLowerCase().endsWith(e)):r},_=([t,e=""])=>{const r=P([t]);return e?t=>r(t)&&t.endsWith(e):r},T=([t,e=""])=>{const r=j([t]);return e?t=>r(t)&&t.endsWith(e):r},j=([t])=>{const e=t.length;return t=>t.length===e&&!t.startsWith(".")},P=([t])=>{const e=t.length;return t=>t.length===e&&"."!==t&&".."!==t},R="object"==typeof u&&u?"object"==typeof u.env&&u.env&&u.env.__MINIMATCH_TESTING_PLATFORM__||u.platform:"posix",N="win32"===R?"\\":"/";l.sep=N;const k=Symbol("globstar **");l.GLOBSTAR=k,l.filter=(t,e={})=>r=>l(r,t,e);const I=(t,e={})=>Object.assign({},t,e);l.defaults=t=>{if(!t||"object"!=typeof t||!Object.keys(t).length)return l;const e=l;return Object.assign((r,n,o={})=>e(r,n,I(t,o)),{Minimatch:class extends e.Minimatch{constructor(e,r={}){super(e,I(t,r))}static defaults(r){return e.defaults(I(t,r)).Minimatch}},AST:class extends e.AST{constructor(e,r,n={}){super(e,r,I(t,n))}static fromGlob(r,n={}){return e.AST.fromGlob(r,I(t,n))}},unescape:(r,n={})=>e.unescape(r,I(t,n)),escape:(r,n={})=>e.escape(r,I(t,n)),filter:(r,n={})=>e.filter(r,I(t,n)),defaults:r=>e.defaults(I(t,r)),makeRe:(r,n={})=>e.makeRe(r,I(t,n)),braceExpand:(r,n={})=>e.braceExpand(r,I(t,n)),match:(r,n,o={})=>e.match(r,n,I(t,o)),sep:e.sep,GLOBSTAR:k})};const M=(t,e={})=>((0,o.f)(t),e.nobrace||!/\{(?:(?!\{).)*\}/.test(t)?[t]:n(t));l.braceExpand=M,l.makeRe=(t,e={})=>new L(t,e).makeRe(),l.match=(t,e,r={})=>{const n=new L(e,r);return t=t.filter(t=>n.match(t)),n.options.nonull&&!t.length&&t.push(e),t};const C=/[?*]|[+@!]\(.*?\)|\[|\]/;class L{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t,e={}){(0,o.f)(t),e=e||{},this.options=e,this.pattern=t,this.platform=e.platform||R,this.isWindows="win32"===this.platform,this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||!1===e.allowWindowsEscape,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!e.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!e.nonegate,this.comment=!1,this.empty=!1,this.partial=!!e.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=void 0!==e.windowsNoMagicRoot?e.windowsNoMagicRoot:!(!this.isWindows||!this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(const t of this.set)for(const e of t)if("string"!=typeof e)return!0;return!1}debug(...t){}make(){const t=this.pattern,e=this.options;if(!e.nocomment&&"#"===t.charAt(0))return void(this.comment=!0);if(!t)return void(this.empty=!0);this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],e.debug&&(this.debug=(...t)=>console.error(...t)),this.debug(this.pattern,this.globSet);const r=this.globSet.map(t=>this.slashSplit(t));this.globParts=this.preprocess(r),this.debug(this.pattern,this.globParts);let n=this.globParts.map((t,e,r)=>{if(this.isWindows&&this.windowsNoMagicRoot){const e=!(""!==t[0]||""!==t[1]||"?"!==t[2]&&C.test(t[2])||C.test(t[3])),r=/^[a-z]:/i.test(t[0]);if(e)return[...t.slice(0,4),...t.slice(4).map(t=>this.parse(t))];if(r)return[t[0],...t.slice(1).map(t=>this.parse(t))]}return t.map(t=>this.parse(t))});if(this.debug(this.pattern,n),this.set=n.filter(t=>-1===t.indexOf(!1)),this.isWindows)for(let t=0;t=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):t=e>=1?this.levelOneOptimize(t):this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(t=>{let e=-1;for(;-1!==(e=t.indexOf("**",e+1));){let r=e;for(;"**"===t[r+1];)r++;r!==e&&t.splice(e,r-e)}return t})}levelOneOptimize(t){return t.map(t=>0===(t=t.reduce((t,e)=>{const r=t[t.length-1];return"**"===e&&"**"===r?t:".."===e&&r&&".."!==r&&"."!==r&&"**"!==r?(t.pop(),t):(t.push(e),t)},[])).length?[""]:t)}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let e=!1;do{if(e=!1,!this.preserveMultipleSlashes){for(let r=1;rn&&r.splice(n+1,o-n);let i=r[n+1];const a=r[n+2],s=r[n+3];if(".."!==i)continue;if(!a||"."===a||".."===a||!s||"."===s||".."===s)continue;e=!0,r.splice(n,1);const u=r.slice(0);u[n]="**",t.push(u),n--}if(!this.preserveMultipleSlashes){for(let t=1;tt.length)}partsMatch(t,e,r=!1){let n=0,o=0,i=[],a="";for(;ni?e=e.slice(a):i>a&&(t=t.slice(i)))}}const{optimizationLevel:o=1}=this.options;o>=2&&(t=this.levelTwoFileOptimize(t)),this.debug("matchOne",this,{file:t,pattern:e}),this.debug("matchOne",t.length,e.length);for(var i=0,a=0,s=t.length,u=e.length;i>> no match, partial?",t,f,e,p),f!==s))}let o;if("string"==typeof l?(o=c===l,this.debug("string match",l,c,o)):(o=l.test(c),this.debug("pattern match",l,c,o)),!o)return!1}if(i===s&&a===u)return!0;if(i===s)return r;if(a===u)return i===s-1&&""===t[i];throw new Error("wtf?")}braceExpand(){return M(this.pattern,this.options)}parse(t){(0,o.f)(t);const e=this.options;if("**"===t)return k;if(""===t)return"";let r,n=null;(r=t.match(w))?n=e.dot?x:E:(r=t.match(c))?n=(e.nocase?e.dot?d:h:e.dot?p:f)(r[1]):(r=t.match(S))?n=(e.nocase?e.dot?O:A:e.dot?_:T)(r):(r=t.match(y))?n=e.dot?m:g:(r=t.match(b))&&(n=v);const a=i.d.fromGlob(t,this.options).toMMPattern();return n&&"object"==typeof a&&Reflect.defineProperty(a,"test",{value:n}),a}makeRe(){if(this.regexp||!1===this.regexp)return this.regexp;const t=this.set;if(!t.length)return this.regexp=!1,this.regexp;const e=this.options,r=e.noglobstar?"[^/]*?":e.dot?"(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?":"(?:(?!(?:\\/|^)\\.).)*?",n=new Set(e.nocase?["i"]:[]);let o=t.map(t=>{const e=t.map(t=>{if(t instanceof RegExp)for(const e of t.flags.split(""))n.add(e);return"string"==typeof t?t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"):t===k?k:t._src});return e.forEach((t,n)=>{const o=e[n+1],i=e[n-1];t===k&&i!==k&&(void 0===i?void 0!==o&&o!==k?e[n+1]="(?:\\/|"+r+"\\/)?"+o:e[n]=r:void 0===o?e[n-1]=i+"(?:\\/|"+r+")?":o!==k&&(e[n-1]=i+"(?:\\/|\\/"+r+"\\/)"+o,e[n+1]=k))}),e.filter(t=>t!==k).join("/")}).join("|");const[i,a]=t.length>1?["(?:",")"]:["",""];o="^"+i+o+a+"$",this.negate&&(o="^(?!"+o+").+$");try{this.regexp=new RegExp(o,[...n].join(""))}catch(t){this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,e=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return""===t;if("/"===t&&e)return!0;const r=this.options;this.isWindows&&(t=t.split("\\").join("/"));const n=this.slashSplit(t);this.debug(this.pattern,"split",n);const o=this.set;this.debug(this.pattern,"set",o);let i=n[n.length-1];if(!i)for(let t=n.length-2;!i&&t>=0;t--)i=n[t];for(let t=0;tn});const n=(t,{windowsPathsNoEscape:e=!1}={})=>e?t.replace(/\[([^\/\\])\]/g,"$1"):t.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1")}},o={};function i(t){var e=o[t];if(void 0!==e)return e.exports;var r=o[t]={id:t,loaded:!1,exports:{}};return n[t].call(r.exports,r,r.exports,i),r.loaded=!0,r.exports}i.m=n,t=[],i.O=(e,r,n,o)=>{if(!r){var a=1/0;for(c=0;c=o)&&Object.keys(i.O).every(t=>i.O[t](r[u]))?r.splice(u--,1):(s=!1,o0&&t[c-1][2]>o;c--)t[c]=t[c-1];t[c]=[r,n,o]},i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.f={},i.e=t=>Promise.all(Object.keys(i.f).reduce((e,r)=>(i.f[r](t,e),e),[])),i.u=t=>t+"-"+t+".js?v="+{1140:"490e17ed9c8948d5a9e8",2221:"428c2ff62c4b8b3c97fc",3556:"57d00a12b4953e229068",4508:"04b1afd183e5ecdd9cae",4906:"75718b28aced26adc4af",5448:"71cfe268d6f1213c4735",5528:"1445efe9cbaf4e4cbcb8",5862:"580b9c2e231a9169a12f",6015:"ebcb6885c1fc8c461988",7039:"be7eefcb933f99fc5b1f",7859:"740587c0c8c350dad157",7910:"de857920f8beb5205bbc",8124:"75a422293ae2add34a10",8815:"9a5c507c75429c9c04e4"}[t],i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),e={},r="nextcloud-ui-legacy:",i.l=(t,n,o,a)=>{if(e[t])e[t].push(n);else{var s,u;if(void 0!==o)for(var l=document.getElementsByTagName("script"),c=0;c{s.onerror=s.onload=null,clearTimeout(h);var o=e[t];if(delete e[t],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach(t=>t(n)),r)return r(n)},h=setTimeout(p.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=p.bind(null,s.onerror),s.onload=p.bind(null,s.onload),u&&document.head.appendChild(s)}},i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),i.j=2122,(()=>{var t;globalThis.importScripts&&(t=globalThis.location+"");var e=globalThis.document;if(!t&&e&&(e.currentScript&&"SCRIPT"===e.currentScript.tagName.toUpperCase()&&(t=e.currentScript.src),!t)){var r=e.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!t||!/^http(s?):/.test(t));)t=r[n--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=t})(),(()=>{i.b="undefined"!=typeof document&&document.baseURI||self.location.href;var t={2122:0};i.f.j=(e,r)=>{var n=i.o(t,e)?t[e]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise((r,o)=>n=t[e]=[r,o]);r.push(n[2]=o);var a=i.p+i.u(e),s=new Error;i.l(a,r=>{if(i.o(t,e)&&(0!==(n=t[e])&&(t[e]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+e+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}},"chunk-"+e,e)}},i.O.j=e=>0===t[e];var e=(e,r)=>{var n,o,[a,s,u]=r,l=0;if(a.some(e=>0!==t[e])){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(u)var c=u(i)}for(e&&e(r);li(80609));a=i.O(a)})();
-//# sourceMappingURL=comments-comments-tab.js.map?v=f461443ff9c67e6d0f05
\ No newline at end of file
+(()=>{var t,e,r,n={96689(t,e,r){"use strict";r.d(e,{A:()=>n});const n=(0,r(35947).YK)().setApp("comments").detectUser().build()},35550(t,e,r){"use strict";r.d(e,{A:()=>u});var n=r(21777),o=r(82415),i=r(17003);const a=(0,o.UU)((0,i.e)());function s(t){a.setHeaders({"X-Requested-With":"XMLHttpRequest",requesttoken:t??""})}(0,n.zo)(s),s((0,n.do)());const u=a},17003(t,e,r){"use strict";r.d(e,{e:()=>o});var n=r(63814);function o(){return(0,n.dC)("dav/comments")}},80609(t,e,r){"use strict";var n=r(21777),o=r(35810),i=r(53334),a=r(26422),s=r(10810),u=r(85471),l=r(51651),c=r(96689),f=r(35906);let p,h;u.Ay.use(s.R2);var d=r(81222);r.nc=(0,n.aV)();const y="comments_files-sidebar-tab";(0,d.C)("comments","activityEnabled",!1)&&void 0!==window.OCA?.Activity?.registerSidebarAction?window.addEventListener("DOMContentLoaded",function(){window.OCA.Activity.registerSidebarAction({mount:async(t,{node:e,reload:n})=>{const o=(0,s.Ey)();if(!p){const{default:t}=await Promise.all([r.e(4208),r.e(3556),r.e(4906)]).then(r.bind(r,44906));p=u.Ay.extend(t)}h=new p({el:t,pinia:o,propsData:{reloadCallback:n,resourceId:e.fileid}}),c.A.info("Comments plugin mounted in Activity sidebar action",{node:e})},unmount:()=>{h&&h.$destroy()}}),window.OCA.Activity.registerSidebarEntries(async({node:t,limit:e,offset:n})=>{const{data:o}=await(0,f.v)({resourceType:"files",resourceId:t.fileid},{limit:e,offset:n??0});c.A.debug("Loaded comments",{node:t,comments:o});const{default:i}=await Promise.all([r.e(4208),r.e(3556),r.e(7039)]).then(r.bind(r,57039)),a=u.Ay.extend(i);return o.map(e=>({_CommentsViewInstance:void 0,timestamp:(0,l.A)(e.props?.creationDateTime).toDate().getTime(),mount(r,{reload:n}){this._CommentsViewInstance=new a({el:r,propsData:{comment:e,resourceId:t.fileid,reloadCallback:n}})},unmount(){this._CommentsViewInstance?.$destroy()}}))}),window.OCA.Activity.registerSidebarFilter(t=>"comments"!==t.type),c.A.info("Comments plugin registered for Activity sidebar action")}):(0,o.rS)({id:"comments",displayName:(0,i.t)("comments","Comments"),iconSvgInline:'',order:50,tagName:y,async onInit(){const{default:t}=await Promise.all([r.e(4208),r.e(3556),r.e(8124)]).then(r.bind(r,38124));u.Ay.use(s.R2),u.Ay.mixin({pinia:(0,s.Ey)()});const e=(0,a.A)(u.Ay,t);Object.defineProperty(e.prototype,"attachShadow",{value(){return this}}),Object.defineProperty(e.prototype,"shadowRoot",{get(){return this}}),window.customElements.define(y,e)}})},35906(t,e,r){"use strict";r.d(e,{e:()=>s,v:()=>u});var n=r(82415),o=r(5e3),i=r(90176),a=r(35550);const s=20;async function u({resourceType:t,resourceId:e},r){const u=["",t,e].join("/"),l=r.datetime?`${r.datetime.toISOString()}`:"",c=await a.A.customRequest(u,{method:"REPORT",data:`\n\t\t\t\n\t\t\t\t${r.limit??s}\n\t\t\t\t${r.offset||0}\n\t\t\t\t${l}\n\t\t\t`,...r}),f=await c.text(),p=function(t,e=!1){const{multistatus:{response:r}}=t;return r.map(t=>{const r=t.propstat.prop;return(0,i.ch)(r,r.id.toString(),e)})}(await(0,n.h4)(f),!0);return(0,o.hq)(c,p,!0)}},8505(t){"use strict";function e(t,e,o){t instanceof RegExp&&(t=r(t,o)),e instanceof RegExp&&(e=r(e,o));var i=n(t,e,o);return i&&{start:i[0],end:i[1],pre:o.slice(0,i[0]),body:o.slice(i[0]+t.length,i[1]),post:o.slice(i[1]+e.length)}}function r(t,e){var r=e.match(t);return r?r[0]:null}function n(t,e,r){var n,o,i,a,s,u=r.indexOf(t),l=r.indexOf(e,u+1),c=u;if(u>=0&&l>0){if(t===e)return[u,l];for(n=[],i=r.length;c>=0&&!s;)c==u?(n.push(c),u=r.indexOf(t,c+1)):1==n.length?s=[n.pop(),l]:((o=n.pop())=0?u:l;n.length&&(s=[i,a])}return s}t.exports=e,e.range=n},85914(t,e,r){var n;t=r.nmd(t),function(){var o=(t&&t.exports,"object"==typeof globalThis&&globalThis);o.global!==o&&o.window;var i=function(t){this.message=t};(i.prototype=new Error).name="InvalidCharacterError";var a=function(t){throw new i(t)},s="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",u=/[\t\n\f\r ]/g,l={encode:function(t){t=String(t),/[^\0-\xFF]/.test(t)&&a("The string to be encoded contains characters outside of the Latin1 range.");for(var e,r,n,o,i=t.length%3,u="",l=-1,c=t.length-i;++l>18&63)+s.charAt(o>>12&63)+s.charAt(o>>6&63)+s.charAt(63&o);return 2==i?(e=t.charCodeAt(l)<<8,r=t.charCodeAt(++l),u+=s.charAt((o=e+r)>>10)+s.charAt(o>>4&63)+s.charAt(o<<2&63)+"="):1==i&&(o=t.charCodeAt(l),u+=s.charAt(o>>2)+s.charAt(o<<4&63)+"=="),u},decode:function(t){var e=(t=String(t).replace(u,"")).length;e%4==0&&(e=(t=t.replace(/==?$/,"")).length),(e%4==1||/[^+a-zA-Z0-9/]/.test(t))&&a("Invalid character: the string to be decoded is not correctly encoded.");for(var r,n,o=0,i="",l=-1;++l>(-2*o&6)));return i},version:"1.0.0"};void 0===(n=function(){return l}.call(e,r,e,t))||(t.exports=n)}()},68928(t,e,r){var n=r(8505);t.exports=function(t){return t?("{}"===t.substr(0,2)&&(t="\\{\\}"+t.substr(2)),g(function(t){return t.split("\\\\").join(o).split("\\{").join(i).split("\\}").join(a).split("\\,").join(s).split("\\.").join(u)}(t),!0).map(c)):[]};var o="\0SLASH"+Math.random()+"\0",i="\0OPEN"+Math.random()+"\0",a="\0CLOSE"+Math.random()+"\0",s="\0COMMA"+Math.random()+"\0",u="\0PERIOD"+Math.random()+"\0";function l(t){return parseInt(t,10)==t?parseInt(t,10):t.charCodeAt(0)}function c(t){return t.split(o).join("\\").split(i).join("{").split(a).join("}").split(s).join(",").split(u).join(".")}function f(t){if(!t)return[""];var e=[],r=n("{","}",t);if(!r)return t.split(",");var o=r.pre,i=r.body,a=r.post,s=o.split(",");s[s.length-1]+="{"+i+"}";var u=f(a);return a.length&&(s[s.length-1]+=u.shift(),s.push.apply(s,u)),e.push.apply(e,s),e}function p(t){return"{"+t+"}"}function h(t){return/^-?0\d/.test(t)}function d(t,e){return t<=e}function y(t,e){return t>=e}function g(t,e){var r=[],o=n("{","}",t);if(!o)return[t];var i=o.pre,s=o.post.length?g(o.post,!1):[""];if(/\$$/.test(o.pre))for(var u=0;u=0;if(!E&&!x)return o.post.match(/,(?!,).*\}/)?g(t=o.pre+"{"+o.body+a+o.post):[t];if(E)m=o.body.split(/\.\./);else if(1===(m=f(o.body)).length&&1===(m=g(m[0],!1).map(p)).length)return s.map(function(t){return o.pre+m[0]+t});if(E){var S=l(m[0]),A=l(m[1]),O=Math.max(m[0].length,m[1].length),_=3==m.length?Math.abs(l(m[2])):1,T=d;A0){var k=new Array(N+1).join("0");R=P<0?"-"+k+R.slice(1):k+R}}b.push(R)}}else{b=[];for(var I=0;I0?r:0),!0)},o?o(t.exports,"apply",{value:a}):t.exports.apply=a},36556(t,e,r){"use strict";var n=r(70453),o=r(73126),i=o([n("%String.prototype.indexOf%")]);t.exports=function(t,e){var r=n(t,!!e);return"function"==typeof r&&i(t,".prototype.")>-1?o([r]):r}},30041(t,e,r){"use strict";var n=r(30655),o=r(58068),i=r(69675),a=r(75795);t.exports=function(t,e,r){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new i("`obj` must be an object or a function`");if("string"!=typeof e&&"symbol"!=typeof e)throw new i("`property` must be a string or a symbol`");if(arguments.length>3&&"boolean"!=typeof arguments[3]&&null!==arguments[3])throw new i("`nonEnumerable`, if provided, must be a boolean or null");if(arguments.length>4&&"boolean"!=typeof arguments[4]&&null!==arguments[4])throw new i("`nonWritable`, if provided, must be a boolean or null");if(arguments.length>5&&"boolean"!=typeof arguments[5]&&null!==arguments[5])throw new i("`nonConfigurable`, if provided, must be a boolean or null");if(arguments.length>6&&"boolean"!=typeof arguments[6])throw new i("`loose`, if provided, must be a boolean");var s=arguments.length>3?arguments[3]:null,u=arguments.length>4?arguments[4]:null,l=arguments.length>5?arguments[5]:null,c=arguments.length>6&&arguments[6],f=!!a&&a(t,e);if(n)n(t,e,{configurable:null===l&&f?f.configurable:!l,enumerable:null===s&&f?f.enumerable:!s,value:r,writable:null===u&&f?f.writable:!u});else{if(!c&&(s||u||l))throw new o("This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.");t[e]=r}}},7176(t,e,r){"use strict";var n,o=r(73126),i=r(75795);try{n=[].__proto__===Array.prototype}catch(t){if(!t||"object"!=typeof t||!("code"in t)||"ERR_PROTO_ACCESS"!==t.code)throw t}var a=!!n&&i&&i(Object.prototype,"__proto__"),s=Object,u=s.getPrototypeOf;t.exports=a&&"function"==typeof a.get?o([a.get]):"function"==typeof u&&function(t){return u(null==t?t:s(t))}},30655(t){"use strict";var e=Object.defineProperty||!1;if(e)try{e({},"a",{value:1})}catch(t){e=!1}t.exports=e},41237(t){"use strict";t.exports=EvalError},69383(t){"use strict";t.exports=Error},79290(t){"use strict";t.exports=RangeError},79538(t){"use strict";t.exports=ReferenceError},58068(t){"use strict";t.exports=SyntaxError},69675(t){"use strict";t.exports=TypeError},35345(t){"use strict";t.exports=URIError},79612(t){"use strict";t.exports=Object},82682(t,e,r){"use strict";var n=r(69600),o=Object.prototype.toString,i=Object.prototype.hasOwnProperty;t.exports=function(t,e,r){if(!n(e))throw new TypeError("iterator must be a function");var a,s;arguments.length>=3&&(a=r),s=t,"[object Array]"===o.call(s)?function(t,e,r){for(var n=0,o=t.length;ne},70453(t,e,r){"use strict";var n,o=r(79612),i=r(69383),a=r(41237),s=r(79290),u=r(79538),l=r(58068),c=r(69675),f=r(35345),p=r(71514),h=r(58968),d=r(6188),y=r(68002),g=r(75880),m=r(70414),b=r(73093),v=Function,w=function(t){try{return v('"use strict"; return ('+t+").constructor;")()}catch(t){}},E=r(75795),x=r(30655),S=function(){throw new c},A=E?function(){try{return S}catch(t){try{return E(arguments,"callee").get}catch(t){return S}}}():S,O=r(64039)(),_=r(93628),T=r(71064),j=r(48648),P=r(11002),R=r(10076),N={},k="undefined"!=typeof Uint8Array&&_?_(Uint8Array):n,I={__proto__:null,"%AggregateError%":"undefined"==typeof AggregateError?n:AggregateError,"%Array%":Array,"%ArrayBuffer%":"undefined"==typeof ArrayBuffer?n:ArrayBuffer,"%ArrayIteratorPrototype%":O&&_?_([][Symbol.iterator]()):n,"%AsyncFromSyncIteratorPrototype%":n,"%AsyncFunction%":N,"%AsyncGenerator%":N,"%AsyncGeneratorFunction%":N,"%AsyncIteratorPrototype%":N,"%Atomics%":"undefined"==typeof Atomics?n:Atomics,"%BigInt%":"undefined"==typeof BigInt?n:BigInt,"%BigInt64Array%":"undefined"==typeof BigInt64Array?n:BigInt64Array,"%BigUint64Array%":"undefined"==typeof BigUint64Array?n:BigUint64Array,"%Boolean%":Boolean,"%DataView%":"undefined"==typeof DataView?n:DataView,"%Date%":Date,"%decodeURI%":decodeURI,"%decodeURIComponent%":decodeURIComponent,"%encodeURI%":encodeURI,"%encodeURIComponent%":encodeURIComponent,"%Error%":i,"%eval%":eval,"%EvalError%":a,"%Float16Array%":"undefined"==typeof Float16Array?n:Float16Array,"%Float32Array%":"undefined"==typeof Float32Array?n:Float32Array,"%Float64Array%":"undefined"==typeof Float64Array?n:Float64Array,"%FinalizationRegistry%":"undefined"==typeof FinalizationRegistry?n:FinalizationRegistry,"%Function%":v,"%GeneratorFunction%":N,"%Int8Array%":"undefined"==typeof Int8Array?n:Int8Array,"%Int16Array%":"undefined"==typeof Int16Array?n:Int16Array,"%Int32Array%":"undefined"==typeof Int32Array?n:Int32Array,"%isFinite%":isFinite,"%isNaN%":isNaN,"%IteratorPrototype%":O&&_?_(_([][Symbol.iterator]())):n,"%JSON%":"object"==typeof JSON?JSON:n,"%Map%":"undefined"==typeof Map?n:Map,"%MapIteratorPrototype%":"undefined"!=typeof Map&&O&&_?_((new Map)[Symbol.iterator]()):n,"%Math%":Math,"%Number%":Number,"%Object%":o,"%Object.getOwnPropertyDescriptor%":E,"%parseFloat%":parseFloat,"%parseInt%":parseInt,"%Promise%":"undefined"==typeof Promise?n:Promise,"%Proxy%":"undefined"==typeof Proxy?n:Proxy,"%RangeError%":s,"%ReferenceError%":u,"%Reflect%":"undefined"==typeof Reflect?n:Reflect,"%RegExp%":RegExp,"%Set%":"undefined"==typeof Set?n:Set,"%SetIteratorPrototype%":"undefined"!=typeof Set&&O&&_?_((new Set)[Symbol.iterator]()):n,"%SharedArrayBuffer%":"undefined"==typeof SharedArrayBuffer?n:SharedArrayBuffer,"%String%":String,"%StringIteratorPrototype%":O&&_?_(""[Symbol.iterator]()):n,"%Symbol%":O?Symbol:n,"%SyntaxError%":l,"%ThrowTypeError%":A,"%TypedArray%":k,"%TypeError%":c,"%Uint8Array%":"undefined"==typeof Uint8Array?n:Uint8Array,"%Uint8ClampedArray%":"undefined"==typeof Uint8ClampedArray?n:Uint8ClampedArray,"%Uint16Array%":"undefined"==typeof Uint16Array?n:Uint16Array,"%Uint32Array%":"undefined"==typeof Uint32Array?n:Uint32Array,"%URIError%":f,"%WeakMap%":"undefined"==typeof WeakMap?n:WeakMap,"%WeakRef%":"undefined"==typeof WeakRef?n:WeakRef,"%WeakSet%":"undefined"==typeof WeakSet?n:WeakSet,"%Function.prototype.call%":R,"%Function.prototype.apply%":P,"%Object.defineProperty%":x,"%Object.getPrototypeOf%":T,"%Math.abs%":p,"%Math.floor%":h,"%Math.max%":d,"%Math.min%":y,"%Math.pow%":g,"%Math.round%":m,"%Math.sign%":b,"%Reflect.getPrototypeOf%":j};if(_)try{null.error}catch(t){var C=_(_(t));I["%Error.prototype%"]=C}var M=function t(e){var r;if("%AsyncFunction%"===e)r=w("async function () {}");else if("%GeneratorFunction%"===e)r=w("function* () {}");else if("%AsyncGeneratorFunction%"===e)r=w("async function* () {}");else if("%AsyncGenerator%"===e){var n=t("%AsyncGeneratorFunction%");n&&(r=n.prototype)}else if("%AsyncIteratorPrototype%"===e){var o=t("%AsyncGenerator%");o&&_&&(r=_(o.prototype))}return I[e]=r,r},L={__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"]},D=r(66743),U=r(9957),$=D.call(R,Array.prototype.concat),F=D.call(P,Array.prototype.splice),q=D.call(R,String.prototype.replace),H=D.call(R,String.prototype.slice),B=D.call(R,RegExp.prototype.exec),W=/[^%.[\]]+|\[(?:(-?\d+(?:\.\d+)?)|(["'])((?:(?!\2)[^\\]|\\.)*?)\2)\]|(?=(?:\.|\[\])(?:\.|\[\]|%$))/g,V=/\\(\\)?/g,G=function(t,e){var r,n=t;if(U(L,n)&&(n="%"+(r=L[n])[0]+"%"),U(I,n)){var o=I[n];if(o===N&&(o=M(n)),void 0===o&&!e)throw new c("intrinsic "+t+" exists, but is not available. Please file an issue!");return{alias:r,name:n,value:o}}throw new l("intrinsic "+t+" does not exist!")};t.exports=function(t,e){if("string"!=typeof t||0===t.length)throw new c("intrinsic name must be a non-empty string");if(arguments.length>1&&"boolean"!=typeof e)throw new c('"allowMissing" argument must be a boolean');if(null===B(/^%?[^%]*%?$/,t))throw new l("`%` may not be present anywhere but at the beginning and end of the intrinsic name");var r=function(t){var e=H(t,0,1),r=H(t,-1);if("%"===e&&"%"!==r)throw new l("invalid intrinsic syntax, expected closing `%`");if("%"===r&&"%"!==e)throw new l("invalid intrinsic syntax, expected opening `%`");var n=[];return q(t,W,function(t,e,r,o){n[n.length]=r?q(o,V,"$1"):e||t}),n}(t),n=r.length>0?r[0]:"",o=G("%"+n+"%",e),i=o.name,a=o.value,s=!1,u=o.alias;u&&(n=u[0],F(r,$([0,1],u)));for(var f=1,p=!0;f=r.length){var g=E(a,h);a=(p=!!g)&&"get"in g&&!("originalValue"in g.get)?g.get:a[h]}else p=U(a,h),a=a[h];p&&!s&&(I[i]=a)}}return a}},71064(t,e,r){"use strict";var n=r(79612);t.exports=n.getPrototypeOf||null},48648(t){"use strict";t.exports="undefined"!=typeof Reflect&&Reflect.getPrototypeOf||null},93628(t,e,r){"use strict";var n=r(48648),o=r(71064),i=r(7176);t.exports=n?function(t){return n(t)}:o?function(t){if(!t||"object"!=typeof t&&"function"!=typeof t)throw new TypeError("getProto: not an object");return o(t)}:i?function(t){return i(t)}:null},6549(t){"use strict";t.exports=Object.getOwnPropertyDescriptor},75795(t,e,r){"use strict";var n=r(6549);if(n)try{n([],"length")}catch(t){n=null}t.exports=n},30592(t,e,r){"use strict";var n=r(30655),o=function(){return!!n};o.hasArrayLengthDefineBug=function(){if(!n)return null;try{return 1!==n([],"length",{value:1}).length}catch(t){return!0}},t.exports=o},64039(t,e,r){"use strict";var n="undefined"!=typeof Symbol&&Symbol,o=r(41333);t.exports=function(){return"function"==typeof n&&"function"==typeof Symbol&&"symbol"==typeof n("foo")&&"symbol"==typeof Symbol("bar")&&o()}},41333(t){"use strict";t.exports=function(){if("function"!=typeof Symbol||"function"!=typeof Object.getOwnPropertySymbols)return!1;if("symbol"==typeof Symbol.iterator)return!0;var t={},e=Symbol("test"),r=Object(e);if("string"==typeof e)return!1;if("[object Symbol]"!==Object.prototype.toString.call(e))return!1;if("[object Symbol]"!==Object.prototype.toString.call(r))return!1;for(var n in t[e]=42,t)return!1;if("function"==typeof Object.keys&&0!==Object.keys(t).length)return!1;if("function"==typeof Object.getOwnPropertyNames&&0!==Object.getOwnPropertyNames(t).length)return!1;var o=Object.getOwnPropertySymbols(t);if(1!==o.length||o[0]!==e)return!1;if(!Object.prototype.propertyIsEnumerable.call(t,e))return!1;if("function"==typeof Object.getOwnPropertyDescriptor){var i=Object.getOwnPropertyDescriptor(t,e);if(42!==i.value||!0!==i.enumerable)return!1}return!0}},49092(t,e,r){"use strict";var n=r(41333);t.exports=function(){return n()&&!!Symbol.toStringTag}},9957(t,e,r){"use strict";var n=Function.prototype.call,o=Object.prototype.hasOwnProperty,i=r(66743);t.exports=i.call(n,o)},11083(t,e,r){var n=r(11568),o=r(88835),i=t.exports;for(var a in n)n.hasOwnProperty(a)&&(i[a]=n[a]);function s(t){if("string"==typeof t&&(t=o.parse(t)),t.protocol||(t.protocol="https:"),"https:"!==t.protocol)throw new Error('Protocol "'+t.protocol+'" not supported. Expected "https:"');return t}i.request=function(t,e){return t=s(t),n.request.call(this,t,e)},i.get=function(t,e){return t=s(t),n.get.call(this,t,e)}},47244(t,e,r){"use strict";var n=r(49092)(),o=r(36556)("Object.prototype.toString"),i=function(t){return!(n&&t&&"object"==typeof t&&Symbol.toStringTag in t)&&"[object Arguments]"===o(t)},a=function(t){return!!i(t)||null!==t&&"object"==typeof t&&"length"in t&&"number"==typeof t.length&&t.length>=0&&"[object Array]"!==o(t)&&"callee"in t&&"[object Function]"===o(t.callee)},s=function(){return i(arguments)}();i.isLegacyArguments=a,t.exports=s?i:a},69600(t){"use strict";var e,r,n=Function.prototype.toString,o="object"==typeof Reflect&&null!==Reflect&&Reflect.apply;if("function"==typeof o&&"function"==typeof Object.defineProperty)try{e=Object.defineProperty({},"length",{get:function(){throw r}}),r={},o(function(){throw 42},null,e)}catch(t){t!==r&&(o=null)}else o=null;var i=/^\s*class\b/,a=function(t){try{var e=n.call(t);return i.test(e)}catch(t){return!1}},s=function(t){try{return!a(t)&&(n.call(t),!0)}catch(t){return!1}},u=Object.prototype.toString,l="function"==typeof Symbol&&!!Symbol.toStringTag,c=!(0 in[,]),f=function(){return!1};if("object"==typeof document){var p=document.all;u.call(p)===u.call(document.all)&&(f=function(t){if((c||!t)&&(void 0===t||"object"==typeof t))try{var e=u.call(t);return("[object HTMLAllCollection]"===e||"[object HTML document.all class]"===e||"[object HTMLCollection]"===e||"[object Object]"===e)&&null==t("")}catch(t){}return!1})}t.exports=o?function(t){if(f(t))return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;try{o(t,null,e)}catch(t){if(t!==r)return!1}return!a(t)&&s(t)}:function(t){if(f(t))return!0;if(!t)return!1;if("function"!=typeof t&&"object"!=typeof t)return!1;if(l)return s(t);if(a(t))return!1;var e=u.call(t);return!("[object Function]"!==e&&"[object GeneratorFunction]"!==e&&!/^\[object HTML/.test(e))&&s(t)}},48184(t,e,r){"use strict";var n=r(36556),o=r(99721)(/^\s*(?:function)?\*/),i=r(49092)(),a=r(93628),s=n("Object.prototype.toString"),u=n("Function.prototype.toString"),l=r(4233);t.exports=function(t){if("function"!=typeof t)return!1;if(o(u(t)))return!0;if(!i)return"[object GeneratorFunction]"===s(t);if(!a)return!1;var e=l();return e&&a(t)===e.prototype}},14035(t,e,r){"use strict";var n,o=r(36556),i=r(49092)(),a=r(9957),s=r(75795);if(i){var u=o("RegExp.prototype.exec"),l={},c=function(){throw l},f={toString:c,valueOf:c};"symbol"==typeof Symbol.toPrimitive&&(f[Symbol.toPrimitive]=c),n=function(t){if(!t||"object"!=typeof t)return!1;var e=s(t,"lastIndex");if(!e||!a(e,"value"))return!1;try{u(t,f)}catch(t){return t===l}}}else{var p=o("Object.prototype.toString");n=function(t){return!(!t||"object"!=typeof t&&"function"!=typeof t)&&"[object RegExp]"===p(t)}}t.exports=n},35680(t,e,r){"use strict";var n=r(25767);t.exports=function(t){return!!n(t)}},71514(t){"use strict";t.exports=Math.abs},58968(t){"use strict";t.exports=Math.floor},94459(t){"use strict";t.exports=Number.isNaN||function(t){return t!=t}},6188(t){"use strict";t.exports=Math.max},68002(t){"use strict";t.exports=Math.min},75880(t){"use strict";t.exports=Math.pow},70414(t){"use strict";t.exports=Math.round},73093(t,e,r){"use strict";var n=r(94459);t.exports=function(t){return n(t)||0===t?t:t<0?-1:1}},26602(t){"use strict";function e(t){return e="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},e(t)}function r(t){var e="function"==typeof Map?new Map:void 0;return r=function(t){if(null===t||(r=t,-1===Function.toString.call(r).indexOf("[native code]")))return t;var r;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,a)}function a(){return n(t,arguments,i(this).constructor)}return a.prototype=Object.create(t.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),o(a,t)},r(t)}function n(t,e,r){return n=function(){if("undefined"==typeof Reflect||!Reflect.construct)return!1;if(Reflect.construct.sham)return!1;if("function"==typeof Proxy)return!0;try{return Date.prototype.toString.call(Reflect.construct(Date,[],function(){})),!0}catch(t){return!1}}()?Reflect.construct:function(t,e,r){var n=[null];n.push.apply(n,e);var i=new(Function.bind.apply(t,n));return r&&o(i,r.prototype),i},n.apply(null,arguments)}function o(t,e){return o=Object.setPrototypeOf||function(t,e){return t.__proto__=e,t},o(t,e)}function i(t){return i=Object.setPrototypeOf?Object.getPrototypeOf:function(t){return t.__proto__||Object.getPrototypeOf(t)},i(t)}var a=function(t){function r(t){var n;return function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,r),(n=function(t,r){return!r||"object"!==e(r)&&"function"!=typeof r?function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t):r}(this,i(r).call(this,t))).name="ObjectPrototypeMutationError",n}return function(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&o(t,e)}(r,t),r}(r(Error));function s(t,r){for(var n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:function(){},o=r.split("."),i=o.length,a=function(e){var r=o[e];if(!t)return{v:void 0};if("+"===r){if(Array.isArray(t))return{v:t.map(function(r,i){var a=o.slice(e+1);return a.length>0?s(r,a.join("."),n):n(t,i,o,e)})};var i=o.slice(0,e).join(".");throw new Error("Object at wildcard (".concat(i,") is not an array"))}t=n(t,r,o,e)},u=0;u2&&void 0!==arguments[2]?arguments[2]:{};if("object"!=e(t)||null===t)return!1;if(void 0===r)return!1;if("number"==typeof r)return r in t;try{var o=!1;return s(t,r,function(t,e,r,i){if(!u(r,i))return t&&t[e];o=n.own?t.hasOwnProperty(e):e in t}),o}catch(t){return!1}},hasOwn:function(t,e,r){return this.has(t,e,r||{own:!0})},isIn:function(t,r,n){var o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{};if("object"!=e(t)||null===t)return!1;if(void 0===r)return!1;try{var i=!1,a=!1;return s(t,r,function(t,r,o,s){return i=i||t===n||!!t&&t[r]===n,a=u(o,s)&&"object"===e(t)&&r in t,t&&t[r]}),o.validPath?i&&a:i}catch(t){return!1}},ObjectPrototypeMutationError:a}},58859(t,e,r){var n="function"==typeof Map&&Map.prototype,o=Object.getOwnPropertyDescriptor&&n?Object.getOwnPropertyDescriptor(Map.prototype,"size"):null,i=n&&o&&"function"==typeof o.get?o.get:null,a=n&&Map.prototype.forEach,s="function"==typeof Set&&Set.prototype,u=Object.getOwnPropertyDescriptor&&s?Object.getOwnPropertyDescriptor(Set.prototype,"size"):null,l=s&&u&&"function"==typeof u.get?u.get:null,c=s&&Set.prototype.forEach,f="function"==typeof WeakMap&&WeakMap.prototype?WeakMap.prototype.has:null,p="function"==typeof WeakSet&&WeakSet.prototype?WeakSet.prototype.has:null,h="function"==typeof WeakRef&&WeakRef.prototype?WeakRef.prototype.deref:null,d=Boolean.prototype.valueOf,y=Object.prototype.toString,g=Function.prototype.toString,m=String.prototype.match,b=String.prototype.slice,v=String.prototype.replace,w=String.prototype.toUpperCase,E=String.prototype.toLowerCase,x=RegExp.prototype.test,S=Array.prototype.concat,A=Array.prototype.join,O=Array.prototype.slice,_=Math.floor,T="function"==typeof BigInt?BigInt.prototype.valueOf:null,j=Object.getOwnPropertySymbols,P="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?Symbol.prototype.toString:null,R="function"==typeof Symbol&&"object"==typeof Symbol.iterator,N="function"==typeof Symbol&&Symbol.toStringTag&&(Symbol.toStringTag,1)?Symbol.toStringTag:null,k=Object.prototype.propertyIsEnumerable,I=("function"==typeof Reflect?Reflect.getPrototypeOf:Object.getPrototypeOf)||([].__proto__===Array.prototype?function(t){return t.__proto__}:null);function C(t,e){if(t===1/0||t===-1/0||t!=t||t&&t>-1e3&&t<1e3||x.call(/e/,e))return e;var r=/[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;if("number"==typeof t){var n=t<0?-_(-t):_(t);if(n!==t){var o=String(n),i=b.call(e,o.length+1);return v.call(o,r,"$&_")+"."+v.call(v.call(i,/([0-9]{3})/g,"$&_"),/_$/,"")}}return v.call(e,r,"$&_")}var M=r(42634),L=M.custom,D=V(L)?L:null,U={__proto__:null,double:'"',single:"'"},$={__proto__:null,double:/(["\\])/g,single:/(['\\])/g};function F(t,e,r){var n=r.quoteStyle||e,o=U[n];return o+t+o}function q(t){return v.call(String(t),/"/g,""")}function H(t){return!N||!("object"==typeof t&&(N in t||void 0!==t[N]))}function B(t){return"[object Array]"===K(t)&&H(t)}function W(t){return"[object RegExp]"===K(t)&&H(t)}function V(t){if(R)return t&&"object"==typeof t&&t instanceof Symbol;if("symbol"==typeof t)return!0;if(!t||"object"!=typeof t||!P)return!1;try{return P.call(t),!0}catch(t){}return!1}t.exports=function t(e,r,n,o){var s=r||{};if(z(s,"quoteStyle")&&!z(U,s.quoteStyle))throw new TypeError('option "quoteStyle" must be "single" or "double"');if(z(s,"maxStringLength")&&("number"==typeof s.maxStringLength?s.maxStringLength<0&&s.maxStringLength!==1/0:null!==s.maxStringLength))throw new TypeError('option "maxStringLength", if provided, must be a positive integer, Infinity, or `null`');var u=!z(s,"customInspect")||s.customInspect;if("boolean"!=typeof u&&"symbol"!==u)throw new TypeError("option \"customInspect\", if provided, must be `true`, `false`, or `'symbol'`");if(z(s,"indent")&&null!==s.indent&&"\t"!==s.indent&&!(parseInt(s.indent,10)===s.indent&&s.indent>0))throw new TypeError('option "indent" must be "\\t", an integer > 0, or `null`');if(z(s,"numericSeparator")&&"boolean"!=typeof s.numericSeparator)throw new TypeError('option "numericSeparator", if provided, must be `true` or `false`');var y=s.numericSeparator;if(void 0===e)return"undefined";if(null===e)return"null";if("boolean"==typeof e)return e?"true":"false";if("string"==typeof e)return Y(e,s);if("number"==typeof e){if(0===e)return 1/0/e>0?"0":"-0";var w=String(e);return y?C(e,w):w}if("bigint"==typeof e){var x=String(e)+"n";return y?C(e,x):x}var _=void 0===s.depth?5:s.depth;if(void 0===n&&(n=0),n>=_&&_>0&&"object"==typeof e)return B(e)?"[Array]":"[Object]";var j,L=function(t,e){var r;if("\t"===t.indent)r="\t";else{if(!("number"==typeof t.indent&&t.indent>0))return null;r=A.call(Array(t.indent+1)," ")}return{base:r,prev:A.call(Array(e+1),r)}}(s,n);if(void 0===o)o=[];else if(X(o,e)>=0)return"[Circular]";function $(e,r,i){if(r&&(o=O.call(o)).push(r),i){var a={depth:s.depth};return z(s,"quoteStyle")&&(a.quoteStyle=s.quoteStyle),t(e,a,n+1,o)}return t(e,s,n+1,o)}if("function"==typeof e&&!W(e)){var G=function(t){if(t.name)return t.name;var e=m.call(g.call(t),/^function\s*([\w$]+)/);return e?e[1]:null}(e),Z=rt(e,$);return"[Function"+(G?": "+G:" (anonymous)")+"]"+(Z.length>0?" { "+A.call(Z,", ")+" }":"")}if(V(e)){var nt=R?v.call(String(e),/^(Symbol\(.*\))_[^)]*$/,"$1"):P.call(e);return"object"!=typeof e||R?nt:J(nt)}if((j=e)&&"object"==typeof j&&("undefined"!=typeof HTMLElement&&j instanceof HTMLElement||"string"==typeof j.nodeName&&"function"==typeof j.getAttribute)){for(var ot="<"+E.call(String(e.nodeName)),it=e.attributes||[],at=0;at"}if(B(e)){if(0===e.length)return"[]";var st=rt(e,$);return L&&!function(t){for(var e=0;e=0)return!1;return!0}(st)?"["+et(st,L)+"]":"[ "+A.call(st,", ")+" ]"}if(function(t){return"[object Error]"===K(t)&&H(t)}(e)){var ut=rt(e,$);return"cause"in Error.prototype||!("cause"in e)||k.call(e,"cause")?0===ut.length?"["+String(e)+"]":"{ ["+String(e)+"] "+A.call(ut,", ")+" }":"{ ["+String(e)+"] "+A.call(S.call("[cause]: "+$(e.cause),ut),", ")+" }"}if("object"==typeof e&&u){if(D&&"function"==typeof e[D]&&M)return M(e,{depth:_-n});if("symbol"!==u&&"function"==typeof e.inspect)return e.inspect()}if(function(t){if(!i||!t||"object"!=typeof t)return!1;try{i.call(t);try{l.call(t)}catch(t){return!0}return t instanceof Map}catch(t){}return!1}(e)){var lt=[];return a&&a.call(e,function(t,r){lt.push($(r,e,!0)+" => "+$(t,e))}),tt("Map",i.call(e),lt,L)}if(function(t){if(!l||!t||"object"!=typeof t)return!1;try{l.call(t);try{i.call(t)}catch(t){return!0}return t instanceof Set}catch(t){}return!1}(e)){var ct=[];return c&&c.call(e,function(t){ct.push($(t,e))}),tt("Set",l.call(e),ct,L)}if(function(t){if(!f||!t||"object"!=typeof t)return!1;try{f.call(t,f);try{p.call(t,p)}catch(t){return!0}return t instanceof WeakMap}catch(t){}return!1}(e))return Q("WeakMap");if(function(t){if(!p||!t||"object"!=typeof t)return!1;try{p.call(t,p);try{f.call(t,f)}catch(t){return!0}return t instanceof WeakSet}catch(t){}return!1}(e))return Q("WeakSet");if(function(t){if(!h||!t||"object"!=typeof t)return!1;try{return h.call(t),!0}catch(t){}return!1}(e))return Q("WeakRef");if(function(t){return"[object Number]"===K(t)&&H(t)}(e))return J($(Number(e)));if(function(t){if(!t||"object"!=typeof t||!T)return!1;try{return T.call(t),!0}catch(t){}return!1}(e))return J($(T.call(e)));if(function(t){return"[object Boolean]"===K(t)&&H(t)}(e))return J(d.call(e));if(function(t){return"[object String]"===K(t)&&H(t)}(e))return J($(String(e)));if("undefined"!=typeof window&&e===window)return"{ [object Window] }";if("undefined"!=typeof globalThis&&e===globalThis||"undefined"!=typeof globalThis&&e===globalThis)return"{ [object globalThis] }";if(!function(t){return"[object Date]"===K(t)&&H(t)}(e)&&!W(e)){var ft=rt(e,$),pt=I?I(e)===Object.prototype:e instanceof Object||e.constructor===Object,ht=e instanceof Object?"":"null prototype",dt=!pt&&N&&Object(e)===e&&N in e?b.call(K(e),8,-1):ht?"Object":"",yt=(pt||"function"!=typeof e.constructor?"":e.constructor.name?e.constructor.name+" ":"")+(dt||ht?"["+A.call(S.call([],dt||[],ht||[]),": ")+"] ":"");return 0===ft.length?yt+"{}":L?yt+"{"+et(ft,L)+"}":yt+"{ "+A.call(ft,", ")+" }"}return String(e)};var G=Object.prototype.hasOwnProperty||function(t){return t in this};function z(t,e){return G.call(t,e)}function K(t){return y.call(t)}function X(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 Y(b.call(t,0,e.maxStringLength),e)+n}var o=$[e.quoteStyle||"single"];return o.lastIndex=0,F(v.call(v.call(t,o,"\\$1"),/[\x00-\x1f]/g,Z),"single",e)}function Z(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":"")+w.call(e.toString(16))}function J(t){return"Object("+t+")"}function Q(t){return t+" { ? }"}function tt(t,e,r,n){return t+" ("+e+") {"+(n?et(r,n):A.call(r,", "))+"}"}function et(t,e){if(0===t.length)return"";var r="\n"+e.prev+e.base;return r+A.call(t,","+r)+"\n"+e.prev}function rt(t,e){var r=B(t),n=[];if(r){n.length=t.length;for(var o=0;o=-1&&!e;r--){var o=r>=0?arguments[r]:n.cwd();if(!i(o))throw new TypeError("Arguments to path.resolve must be strings");o&&(t=o+"/"+t,e="/"===o.charAt(0))}return(e?"/":"")+(t=a(t.split("/"),!e).join("/"))||"."},u.normalize=function(t){var e=u.isAbsolute(t),r="/"===t.substr(-1);return(t=a(t.split("/"),!e).join("/"))||e||(t="."),t&&r&&(t+="/"),(e?"/":"")+t},u.isAbsolute=function(t){return"/"===t.charAt(0)},u.join=function(){for(var t="",e=0;e=0&&""===t[r];r--);return e>r?[]:t.slice(e,r+1)}t=u.resolve(t).substr(1),e=u.resolve(e).substr(1);for(var n=r(t.split("/")),o=r(e.split("/")),i=Math.min(n.length,o.length),a=i,s=0;s= 0x80 (not a basic code point)","invalid-input":"Invalid input"},p=Math.floor,h=String.fromCharCode;function d(t){throw new RangeError(f[t])}function y(t,e){for(var r=t.length,n=[];r--;)n[r]=e(t[r]);return n}function g(t,e){var r=t.split("@"),n="";return r.length>1&&(n=r[0]+"@",t=r[1]),n+y((t=t.replace(c,".")).split("."),e).join(".")}function m(t){for(var e,r,n=[],o=0,i=t.length;o=55296&&e<=56319&&o65535&&(e+=h((t-=65536)>>>10&1023|55296),t=56320|1023&t),e+h(t)}).join("")}function v(t){return t-48<10?t-22:t-65<26?t-65:t-97<26?t-97:s}function w(t,e){return t+22+75*(t<26)-((0!=e)<<5)}function E(t,e,r){var n=0;for(t=r?p(t/700):t>>1,t+=p(t/e);t>455;n+=s)t=p(t/35);return p(n+36*t/(t+38))}function x(t){var e,r,n,o,i,u,l,c,f,h,y=[],g=t.length,m=0,w=128,x=72;for((r=t.lastIndexOf("-"))<0&&(r=0),n=0;n=128&&d("not-basic"),y.push(t.charCodeAt(n));for(o=r>0?r+1:0;o=g&&d("invalid-input"),((c=v(t.charCodeAt(o++)))>=s||c>p((a-m)/u))&&d("overflow"),m+=c*u,!(c<(f=l<=x?1:l>=x+26?26:l-x));l+=s)u>p(a/(h=s-f))&&d("overflow"),u*=h;x=E(m-i,e=y.length+1,0==i),p(m/e)>a-w&&d("overflow"),w+=p(m/e),m%=e,y.splice(m++,0,w)}return b(y)}function S(t){var e,r,n,o,i,u,l,c,f,y,g,b,v,x,S,A=[];for(b=(t=m(t)).length,e=128,r=0,i=72,u=0;u=e&&gp((a-r)/(v=n+1))&&d("overflow"),r+=(l-e)*v,e=l,u=0;ua&&d("overflow"),g==e){for(c=r,f=s;!(c<(y=f<=i?1:f>=i+26?26:f-i));f+=s)S=c-y,x=s-y,A.push(h(w(y+S%x,0))),c=p(S/x);A.push(h(w(c,0))),i=E(r,v,n==o),r=0,++n}++r,++e}return A.join("")}i={version:"1.4.1",ucs2:{decode:m,encode:b},decode:x,encode:S,toASCII:function(t){return g(t,function(t){return l.test(t)?"xn--"+S(t):t})},toUnicode:function(t){return g(t,function(t){return u.test(t)?x(t.slice(4).toLowerCase()):t})}},void 0===(n=function(){return i}.call(e,r,e,t))||(t.exports=n)}()},74765(t){"use strict";var e=String.prototype.replace,r=/%20/g,n="RFC3986";t.exports={default:n,formatters:{RFC1738:function(t){return e.call(t,r,"+")},RFC3986:function(t){return String(t)}},RFC1738:"RFC1738",RFC3986:n}},55373(t,e,r){"use strict";var n=r(98636),o=r(62642),i=r(74765);t.exports={formats:i,parse:o,stringify:n}},62642(t,e,r){"use strict";var n=r(37720),o=Object.prototype.hasOwnProperty,i=Array.isArray,a={allowDots:!1,allowEmptyArrays:!1,allowPrototypes:!1,allowSparse:!1,arrayLimit:20,charset:"utf-8",charsetSentinel:!1,comma:!1,decodeDotInKeys:!1,decoder:n.decode,delimiter:"&",depth:5,duplicates:"combine",ignoreQueryPrefix:!1,interpretNumericEntities:!1,parameterLimit:1e3,parseArrays:!0,plainObjects:!1,strictDepth:!1,strictNullHandling:!1,throwOnLimitExceeded:!1},s=function(t){return t.replace(/&#(\d+);/g,function(t,e){return String.fromCharCode(parseInt(e,10))})},u=function(t,e,r){if(t&&"string"==typeof t&&e.comma&&t.indexOf(",")>-1)return t.split(",");if(e.throwOnLimitExceeded&&r>=e.arrayLimit)throw new RangeError("Array limit exceeded. Only "+e.arrayLimit+" element"+(1===e.arrayLimit?"":"s")+" allowed in an array.");return t},l=function(t,e,r,i){if(t){var a=function(t,e){var r=e.allowDots?t.replace(/\.([^.[]+)/g,"[$1]"):t;if(e.depth<=0){if(!e.plainObjects&&o.call(Object.prototype,r)&&!e.allowPrototypes)return;return[r]}var n=/(\[[^[\]]*])/g,i=/(\[[^[\]]*])/.exec(r),a=i?r.slice(0,i.index):r,s=[];if(a){if(!e.plainObjects&&o.call(Object.prototype,a)&&!e.allowPrototypes)return;s[s.length]=a}for(var u=0;null!==(i=n.exec(r))&&u0&&"[]"===t[t.length-1]){var a=t.slice(0,-1).join("");i=Array.isArray(e)&&e[a]?e[a].length:0}for(var s=o?e:u(e,r,i),l=t.length-1;l>=0;--l){var c,f=t[l];if("[]"===f&&r.parseArrays)c=n.isOverflow(s)?s:r.allowEmptyArrays&&(""===s||r.strictNullHandling&&null===s)?[]:n.combine([],s,r.arrayLimit,r.plainObjects);else{c=r.plainObjects?{__proto__:null}:{};var p="["===f.charAt(0)&&"]"===f.charAt(f.length-1)?f.slice(1,-1):f,h=r.decodeDotInKeys?p.replace(/%2E/g,"."):p,d=parseInt(h,10),y=!isNaN(d)&&f!==h&&String(d)===h&&d>=0&&r.parseArrays;if(r.parseArrays||""!==h)if(y&&dc)throw new RangeError("Parameter limit exceeded. Only "+c+" parameter"+(1===c?"":"s")+" allowed.");var p,h=-1,d=e.charset;if(e.charsetSentinel)for(p=0;p-1&&(g=i(g)?[g]:g),e.comma&&i(g)&&g.length>e.arrayLimit){if(e.throwOnLimitExceeded)throw new RangeError("Array limit exceeded. Only "+e.arrayLimit+" element"+(1===e.arrayLimit?"":"s")+" allowed in an array.");g=n.combine([],g,e.arrayLimit,e.plainObjects)}if(null!==y){var w=o.call(r,y);w&&"combine"===e.duplicates?r[y]=n.combine(r[y],g,e.arrayLimit,e.plainObjects):w&&"last"!==e.duplicates||(r[y]=g)}}return r}(t,r):t,f=r.plainObjects?{__proto__:null}:{},p=Object.keys(c),h=0;h0?_.join(",")||null:void 0}];else if(u(g))N=g;else{var I=Object.keys(_);N=m?I.sort(m):I}var C=p?String(r).replace(/\./g,"%2E"):String(r),M=a&&u(_)&&1===_.length?C+"[]":C;if(s&&u(_)&&0===_.length)return M+"[]";for(var L=0;L0?E+w:""}},37720(t,e,r){"use strict";var n=r(74765),o=r(920),i=Object.prototype.hasOwnProperty,a=Array.isArray,s=o(),u=function(t,e){return s.set(t,e),t},l=function(t){return s.has(t)},c=function(t){return s.get(t)},f=function(t,e){s.set(t,e)},p=function(){for(var t=[],e=0;e<256;++e)t[t.length]="%"+((e<16?"0":"")+e.toString(16)).toUpperCase();return t}(),h=function(t,e){for(var r=e&&e.plainObjects?{__proto__:null}:{},n=0;nr?u(h(i,{plainObjects:n}),i.length-1):i},compact:function(t){for(var e=[{obj:{o:t},prop:"o"}],r=[],n=0;n1;){var e=t.pop(),r=e.obj[e.prop];if(a(r)){for(var n=[],o=0;o=d?a.slice(u,u+d):a,c=[],f=0;f=48&&h<=57||h>=65&&h<=90||h>=97&&h<=122||i===n.RFC1738&&(40===h||41===h)?c[c.length]=l.charAt(f):h<128?c[c.length]=p[h]:h<2048?c[c.length]=p[192|h>>6]+p[128|63&h]:h<55296||h>=57344?c[c.length]=p[224|h>>12]+p[128|h>>6&63]+p[128|63&h]:(f+=1,h=65536+((1023&h)<<10|1023&l.charCodeAt(f)),c[c.length]=p[240|h>>18]+p[128|h>>12&63]+p[128|h>>6&63]+p[128|63&h])}s+=c.join("")}return s},isBuffer:function(t){return!(!t||"object"!=typeof t||!(t.constructor&&t.constructor.isBuffer&&t.constructor.isBuffer(t)))},isOverflow:l,isRegExp:function(t){return"[object RegExp]"===Object.prototype.toString.call(t)},markOverflow:u,maybeMap:function(t,e){if(a(t)){for(var r=[],n=0;nn.arrayLimit)return u(h(e.concat(r),n),o);e[o]=r}else{if(!e||"object"!=typeof e)return[e,r];if(l(e)){var s=c(e)+1;e[s]=r,f(e,s)}else(n&&(n.plainObjects||n.allowPrototypes)||!i.call(Object.prototype,r))&&(e[r]=!0)}return e}if(!e||"object"!=typeof e){if(l(r)){for(var p=Object.keys(r),d=n&&n.plainObjects?{__proto__:null,0:e}:{0:e},y=0;yn.arrayLimit?u(h(g,n),g.length-1):g}var m=e;return a(e)&&!a(r)&&(m=h(e,n)),a(e)&&a(r)?(r.forEach(function(r,o){if(i.call(e,o)){var a=e[o];a&&"object"==typeof a&&r&&"object"==typeof r?e[o]=t(a,r,n):e[e.length]=r}else e[o]=r}),e):Object.keys(r).reduce(function(e,o){var a=r[o];if(i.call(e,o)?e[o]=t(e[o],a,n):e[o]=a,l(r)&&!l(e)&&u(e,c(r)),l(e)){var s=parseInt(o,10);String(s)===o&&s>=0&&s>c(e)&&f(e,s)}return e},m)}}},73992(t,e){"use strict";var r=Object.prototype.hasOwnProperty;function n(t){try{return decodeURIComponent(t.replace(/\+/g," "))}catch(t){return null}}function o(t){try{return encodeURIComponent(t)}catch(t){return null}}e.stringify=function(t,e){e=e||"";var n,i,a=[];for(i in"string"!=typeof e&&(e="?"),t)if(r.call(t,i)){if((n=t[i])||null!=n&&!isNaN(n)||(n=""),i=o(i),n=o(n),null===i||null===n)continue;a.push(i+"="+n)}return a.length?e+a.join("&"):""},e.parse=function(t){for(var e,r=/([^=?#&]+)=?([^&]*)/g,o={};e=r.exec(t);){var i=n(e[1]),a=n(e[2]);null===i||null===a||i in o||(o[i]=a)}return o}},92063(t){"use strict";t.exports=function(t,e){if(e=e.split(":")[0],!(t=+t))return!1;switch(e){case"http":case"ws":return 80!==t;case"https":case"wss":return 443!==t;case"ftp":return 21!==t;case"gopher":return 70!==t;case"file":return!1}return 0!==t}},99721(t,e,r){"use strict";var n=r(36556),o=r(14035),i=n("RegExp.prototype.exec"),a=r(69675);t.exports=function(t){if(!o(t))throw new a("`regex` must be a RegExp");return function(e){return null!==i(t,e)}}},96897(t,e,r){"use strict";var n=r(70453),o=r(30041),i=r(30592)(),a=r(75795),s=r(69675),u=n("%Math.floor%");t.exports=function(t,e){if("function"!=typeof t)throw new s("`fn` is not a function");if("number"!=typeof e||e<0||e>4294967295||u(e)!==e)throw new s("`length` must be a positive 32-bit integer");var r=arguments.length>2&&!!arguments[2],n=!0,l=!0;if("length"in t&&a){var c=a(t,"length");c&&!c.configurable&&(n=!1),c&&!c.writable&&(l=!1)}return(n||l||!r)&&(i?o(t,"length",e,!0,!0):o(t,"length",e)),t}},14803(t,e,r){"use strict";var n=r(58859),o=r(69675),i=function(t,e,r){for(var n,o=t;null!=(n=o.next);o=n)if(n.key===e)return o.next=n.next,r||(n.next=t.next,t.next=n),n};t.exports=function(){var t,e={assert:function(t){if(!e.has(t))throw new o("Side channel does not contain "+n(t))},delete:function(e){var r=t&&t.next,n=function(t,e){if(t)return i(t,e,!0)}(t,e);return n&&r&&r===n&&(t=void 0),!!n},get:function(e){return function(t,e){if(t){var r=i(t,e);return r&&r.value}}(t,e)},has:function(e){return function(t,e){return!!t&&!!i(t,e)}(t,e)},set:function(e,r){t||(t={next:void 0}),function(t,e,r){var n=i(t,e);n?n.value=r:t.next={key:e,next:t.next,value:r}}(t,e,r)}};return e}},80507(t,e,r){"use strict";var n=r(70453),o=r(36556),i=r(58859),a=r(69675),s=n("%Map%",!0),u=o("Map.prototype.get",!0),l=o("Map.prototype.set",!0),c=o("Map.prototype.has",!0),f=o("Map.prototype.delete",!0),p=o("Map.prototype.size",!0);t.exports=!!s&&function(){var t,e={assert:function(t){if(!e.has(t))throw new a("Side channel does not contain "+i(t))},delete:function(e){if(t){var r=f(t,e);return 0===p(t)&&(t=void 0),r}return!1},get:function(e){if(t)return u(t,e)},has:function(e){return!!t&&c(t,e)},set:function(e,r){t||(t=new s),l(t,e,r)}};return e}},72271(t,e,r){"use strict";var n=r(70453),o=r(36556),i=r(58859),a=r(80507),s=r(69675),u=n("%WeakMap%",!0),l=o("WeakMap.prototype.get",!0),c=o("WeakMap.prototype.set",!0),f=o("WeakMap.prototype.has",!0),p=o("WeakMap.prototype.delete",!0);t.exports=u?function(){var t,e,r={assert:function(t){if(!r.has(t))throw new s("Side channel does not contain "+i(t))},delete:function(r){if(u&&r&&("object"==typeof r||"function"==typeof r)){if(t)return p(t,r)}else if(a&&e)return e.delete(r);return!1},get:function(r){return u&&r&&("object"==typeof r||"function"==typeof r)&&t?l(t,r):e&&e.get(r)},has:function(r){return u&&r&&("object"==typeof r||"function"==typeof r)&&t?f(t,r):!!e&&e.has(r)},set:function(r,n){u&&r&&("object"==typeof r||"function"==typeof r)?(t||(t=new u),c(t,r,n)):a&&(e||(e=a()),e.set(r,n))}};return r}:a},920(t,e,r){"use strict";var n=r(69675),o=r(58859),i=r(14803),a=r(80507),s=r(72271)||a||i;t.exports=function(){var t,e={assert:function(t){if(!e.has(t))throw new n("Side channel does not contain "+o(t))},delete:function(e){return!!t&&t.delete(e)},get:function(e){return t&&t.get(e)},has:function(e){return!!t&&t.has(e)},set:function(e,r){t||(t=s()),t.set(e,r)}};return e}},11568(t,e,r){var n=r(55537),o=r(6917),i=r(57510),a=r(86866),s=r(88835),u=e;u.request=function(t,e){t="string"==typeof t?s.parse(t):i(t);var r=-1===globalThis.location.protocol.search(/^https?:$/)?"http:":"",o=t.protocol||r,a=t.hostname||t.host,u=t.port,l=t.path||"/";a&&-1!==a.indexOf(":")&&(a="["+a+"]"),t.url=(a?o+"//"+a:"")+(u?":"+u:"")+l,t.method=(t.method||"GET").toUpperCase(),t.headers=t.headers||{};var c=new n(t);return e&&c.on("response",e),c},u.get=function(t,e){var r=u.request(t,e);return r.end(),r},u.ClientRequest=n,u.IncomingMessage=o.IncomingMessage,u.Agent=function(){},u.Agent.defaultMaxSockets=4,u.globalAgent=new u.Agent,u.STATUS_CODES=a,u.METHODS=["CHECKOUT","CONNECT","COPY","DELETE","GET","HEAD","LOCK","M-SEARCH","MERGE","MKACTIVITY","MKCOL","MOVE","NOTIFY","OPTIONS","PATCH","POST","PROPFIND","PROPPATCH","PURGE","PUT","REPORT","SEARCH","SUBSCRIBE","TRACE","UNLOCK","UNSUBSCRIBE"]},6688(t,e){var r;function n(){if(void 0!==r)return r;if(globalThis.XMLHttpRequest){r=new globalThis.XMLHttpRequest;try{r.open("GET",globalThis.XDomainRequest?"/":"https://example.com")}catch(t){r=null}}else r=null;return r}function o(t){var e=n();if(!e)return!1;try{return e.responseType=t,e.responseType===t}catch(t){}return!1}function i(t){return"function"==typeof t}e.fetch=i(globalThis.fetch)&&i(globalThis.ReadableStream),e.writableStream=i(globalThis.WritableStream),e.abortController=i(globalThis.AbortController),e.arraybuffer=e.fetch||o("arraybuffer"),e.msstream=!e.fetch&&o("ms-stream"),e.mozchunkedarraybuffer=!e.fetch&&o("moz-chunked-arraybuffer"),e.overrideMimeType=e.fetch||!!n()&&i(n().overrideMimeType),r=null},55537(t,e,r){var n=r(62045).hp,o=r(65606),i=r(6688),a=r(56698),s=r(6917),u=r(63242),l=s.IncomingMessage,c=s.readyStates,f=t.exports=function(t){var e,r=this;u.Writable.call(r),r._opts=t,r._body=[],r._headers={},t.auth&&r.setHeader("Authorization","Basic "+n.from(t.auth).toString("base64")),Object.keys(t.headers).forEach(function(e){r.setHeader(e,t.headers[e])});var o=!0;if("disable-fetch"===t.mode||"requestTimeout"in t&&!i.abortController)o=!1,e=!0;else if("prefer-streaming"===t.mode)e=!1;else if("allow-wrong-content-type"===t.mode)e=!i.overrideMimeType;else{if(t.mode&&"default"!==t.mode&&"prefer-fast"!==t.mode)throw new Error("Invalid value for opts.mode");e=!0}r._mode=function(t,e){return i.fetch&&e?"fetch":i.mozchunkedarraybuffer?"moz-chunked-arraybuffer":i.msstream?"ms-stream":i.arraybuffer&&t?"arraybuffer":"text"}(e,o),r._fetchTimer=null,r._socketTimeout=null,r._socketTimer=null,r.on("finish",function(){r._onFinish()})};a(f,u.Writable),f.prototype.setHeader=function(t,e){var r=t.toLowerCase();-1===p.indexOf(r)&&(this._headers[r]={name:t,value:e})},f.prototype.getHeader=function(t){var e=this._headers[t.toLowerCase()];return e?e.value:null},f.prototype.removeHeader=function(t){delete this._headers[t.toLowerCase()]},f.prototype._onFinish=function(){var t=this;if(!t._destroyed){var e=t._opts;"timeout"in e&&0!==e.timeout&&t.setTimeout(e.timeout);var r=t._headers,n=null;"GET"!==e.method&&"HEAD"!==e.method&&(n=new Blob(t._body,{type:(r["content-type"]||{}).value||""}));var a=[];if(Object.keys(r).forEach(function(t){var e=r[t].name,n=r[t].value;Array.isArray(n)?n.forEach(function(t){a.push([e,t])}):a.push([e,n])}),"fetch"===t._mode){var s=null;if(i.abortController){var u=new AbortController;s=u.signal,t._fetchAbortController=u,"requestTimeout"in e&&0!==e.requestTimeout&&(t._fetchTimer=globalThis.setTimeout(function(){t.emit("requestTimeout"),t._fetchAbortController&&t._fetchAbortController.abort()},e.requestTimeout))}globalThis.fetch(t._opts.url,{method:t._opts.method,headers:a,body:n||void 0,mode:"cors",credentials:e.withCredentials?"include":"same-origin",signal:s}).then(function(e){t._fetchResponse=e,t._resetTimers(!1),t._connect()},function(e){t._resetTimers(!0),t._destroyed||t.emit("error",e)})}else{var l=t._xhr=new globalThis.XMLHttpRequest;try{l.open(t._opts.method,t._opts.url,!0)}catch(e){return void o.nextTick(function(){t.emit("error",e)})}"responseType"in l&&(l.responseType=t._mode),"withCredentials"in l&&(l.withCredentials=!!e.withCredentials),"text"===t._mode&&"overrideMimeType"in l&&l.overrideMimeType("text/plain; charset=x-user-defined"),"requestTimeout"in e&&(l.timeout=e.requestTimeout,l.ontimeout=function(){t.emit("requestTimeout")}),a.forEach(function(t){l.setRequestHeader(t[0],t[1])}),t._response=null,l.onreadystatechange=function(){switch(l.readyState){case c.LOADING:case c.DONE:t._onXHRProgress()}},"moz-chunked-arraybuffer"===t._mode&&(l.onprogress=function(){t._onXHRProgress()}),l.onerror=function(){t._destroyed||(t._resetTimers(!0),t.emit("error",new Error("XHR error")))};try{l.send(n)}catch(e){return void o.nextTick(function(){t.emit("error",e)})}}}},f.prototype._onXHRProgress=function(){var t=this;t._resetTimers(!1),function(t){try{var e=t.status;return null!==e&&0!==e}catch(t){return!1}}(t._xhr)&&!t._destroyed&&(t._response||t._connect(),t._response._onXHRProgress(t._resetTimers.bind(t)))},f.prototype._connect=function(){var t=this;t._destroyed||(t._response=new l(t._xhr,t._fetchResponse,t._mode,t._resetTimers.bind(t)),t._response.on("error",function(e){t.emit("error",e)}),t.emit("response",t._response))},f.prototype._write=function(t,e,r){this._body.push(t),r()},f.prototype._resetTimers=function(t){var e=this;globalThis.clearTimeout(e._socketTimer),e._socketTimer=null,t?(globalThis.clearTimeout(e._fetchTimer),e._fetchTimer=null):e._socketTimeout&&(e._socketTimer=globalThis.setTimeout(function(){e.emit("timeout")},e._socketTimeout))},f.prototype.abort=f.prototype.destroy=function(t){var e=this;e._destroyed=!0,e._resetTimers(!0),e._response&&(e._response._destroyed=!0),e._xhr?e._xhr.abort():e._fetchAbortController&&e._fetchAbortController.abort(),t&&e.emit("error",t)},f.prototype.end=function(t,e,r){"function"==typeof t&&(r=t,t=void 0),u.Writable.prototype.end.call(this,t,e,r)},f.prototype.setTimeout=function(t,e){var r=this;e&&r.once("timeout",e),r._socketTimeout=t,r._resetTimers(!1)},f.prototype.flushHeaders=function(){},f.prototype.setNoDelay=function(){},f.prototype.setSocketKeepAlive=function(){};var p=["accept-charset","accept-encoding","access-control-request-headers","access-control-request-method","connection","content-length","cookie","cookie2","date","dnt","expect","host","keep-alive","origin","referer","te","trailer","transfer-encoding","upgrade","via"]},6917(t,e,r){var n=r(65606),o=r(62045).hp,i=r(6688),a=r(56698),s=r(63242),u=e.readyStates={UNSENT:0,OPENED:1,HEADERS_RECEIVED:2,LOADING:3,DONE:4},l=e.IncomingMessage=function(t,e,r,a){var u=this;if(s.Readable.call(u),u._mode=r,u.headers={},u.rawHeaders=[],u.trailers={},u.rawTrailers=[],u.on("end",function(){n.nextTick(function(){u.emit("close")})}),"fetch"===r){if(u._fetchResponse=e,u.url=e.url,u.statusCode=e.status,u.statusMessage=e.statusText,e.headers.forEach(function(t,e){u.headers[e.toLowerCase()]=t,u.rawHeaders.push(e,t)}),i.writableStream){var l=new WritableStream({write:function(t){return a(!1),new Promise(function(e,r){u._destroyed?r():u.push(o.from(t))?e():u._resumeFetch=e})},close:function(){a(!0),u._destroyed||u.push(null)},abort:function(t){a(!0),u._destroyed||u.emit("error",t)}});try{return void e.body.pipeTo(l).catch(function(t){a(!0),u._destroyed||u.emit("error",t)})}catch(t){}}var c=e.body.getReader();!function t(){c.read().then(function(e){u._destroyed||(a(e.done),e.done?u.push(null):(u.push(o.from(e.value)),t()))}).catch(function(t){a(!0),u._destroyed||u.emit("error",t)})}()}else if(u._xhr=t,u._pos=0,u.url=t.responseURL,u.statusCode=t.status,u.statusMessage=t.statusText,t.getAllResponseHeaders().split(/\r?\n/).forEach(function(t){var e=t.match(/^([^:]+):\s*(.*)/);if(e){var r=e[1].toLowerCase();"set-cookie"===r?(void 0===u.headers[r]&&(u.headers[r]=[]),u.headers[r].push(e[2])):void 0!==u.headers[r]?u.headers[r]+=", "+e[2]:u.headers[r]=e[2],u.rawHeaders.push(e[1],e[2])}}),u._charset="x-user-defined",!i.overrideMimeType){var f=u.rawHeaders["mime-type"];if(f){var p=f.match(/;\s*charset=([^;])(;|$)/);p&&(u._charset=p[1].toLowerCase())}u._charset||(u._charset="utf-8")}};a(l,s.Readable),l.prototype._read=function(){var t=this._resumeFetch;t&&(this._resumeFetch=null,t())},l.prototype._onXHRProgress=function(t){var e=this,r=e._xhr,n=null;switch(e._mode){case"text":if((n=r.responseText).length>e._pos){var i=n.substr(e._pos);if("x-user-defined"===e._charset){for(var a=o.alloc(i.length),s=0;se._pos&&(e.push(o.from(new Uint8Array(l.result.slice(e._pos)))),e._pos=l.result.byteLength)},l.onload=function(){t(!0),e.push(null)},l.readAsArrayBuffer(n)}e._xhr.readyState===u.DONE&&"ms-stream"!==e._mode&&(t(!0),e.push(null))}},73157(t){"use strict";var e={};function r(t,r,n){n||(n=Error);var o=function(t){var e,n;function o(e,n,o){return t.call(this,function(t,e,n){return"string"==typeof r?r:r(t,e,n)}(e,n,o))||this}return n=t,(e=o).prototype=Object.create(n.prototype),e.prototype.constructor=e,e.__proto__=n,o}(n);o.prototype.name=n.name,o.prototype.code=t,e[t]=o}function n(t,e){if(Array.isArray(t)){var r=t.length;return t=t.map(function(t){return String(t)}),r>2?"one of ".concat(e," ").concat(t.slice(0,r-1).join(", "),", or ")+t[r-1]:2===r?"one of ".concat(e," ").concat(t[0]," or ").concat(t[1]):"of ".concat(e," ").concat(t[0])}return"of ".concat(e," ").concat(String(t))}r("ERR_INVALID_OPT_VALUE",function(t,e){return'The value "'+e+'" is invalid for option "'+t+'"'},TypeError),r("ERR_INVALID_ARG_TYPE",function(t,e,r){var o,i,a,s,u;if("string"==typeof e&&(i="not ",e.substr(0,4)===i)?(o="must not be",e=e.replace(/^not /,"")):o="must be",function(t,e,r){return(void 0===r||r>t.length)&&(r=t.length),t.substring(r-9,r)===e}(t," argument"))a="The ".concat(t," ").concat(o," ").concat(n(e,"type"));else{var l=("number"!=typeof u&&(u=0),u+1>(s=t).length||-1===s.indexOf(".",u)?"argument":"property");a='The "'.concat(t,'" ').concat(l," ").concat(o," ").concat(n(e,"type"))}return a+". Received type ".concat(typeof r)},TypeError),r("ERR_STREAM_PUSH_AFTER_EOF","stream.push() after EOF"),r("ERR_METHOD_NOT_IMPLEMENTED",function(t){return"The "+t+" method is not implemented"}),r("ERR_STREAM_PREMATURE_CLOSE","Premature close"),r("ERR_STREAM_DESTROYED",function(t){return"Cannot call "+t+" after a stream was destroyed"}),r("ERR_MULTIPLE_CALLBACK","Callback called multiple times"),r("ERR_STREAM_CANNOT_PIPE","Cannot pipe, not readable"),r("ERR_STREAM_WRITE_AFTER_END","write after end"),r("ERR_STREAM_NULL_VALUES","May not write null values to stream",TypeError),r("ERR_UNKNOWN_ENCODING",function(t){return"Unknown encoding: "+t},TypeError),r("ERR_STREAM_UNSHIFT_AFTER_END_EVENT","stream.unshift() after end event"),t.exports.F=e},63527(t,e,r){"use strict";var n=r(65606),o=Object.keys||function(t){var e=[];for(var r in t)e.push(r);return e};t.exports=c;var i=r(52341),a=r(9573);r(56698)(c,i);for(var s=o(a.prototype),u=0;u0)if("string"==typeof e||s.objectMode||Object.getPrototypeOf(e)===u.prototype||(e=function(t){return u.from(t)}(e)),n)s.endEmitted?x(t,new E):T(t,s,e,!0);else if(s.ended)x(t,new v);else{if(s.destroyed)return!1;s.reading=!1,s.decoder&&!r?(e=s.decoder.write(e),s.objectMode||0!==e.length?T(t,s,e,!1):k(t,s)):T(t,s,e,!1)}else n||(s.reading=!1,k(t,s));return!s.ended&&(s.lengthe.highWaterMark&&(e.highWaterMark=function(t){return t>=j?t=j:(t--,t|=t>>>1,t|=t>>>2,t|=t>>>4,t|=t>>>8,t|=t>>>16,t++),t}(t)),t<=e.length?t:e.ended?e.length:(e.needReadable=!0,0))}function R(t){var e=t._readableState;i("emitReadable",e.needReadable,e.emittedReadable),e.needReadable=!1,e.emittedReadable||(i("emitReadable",e.flowing),e.emittedReadable=!0,o.nextTick(N,t))}function N(t){var e=t._readableState;i("emitReadable_",e.destroyed,e.length,e.ended),e.destroyed||!e.length&&!e.ended||(t.emit("readable"),e.emittedReadable=!1),e.needReadable=!e.flowing&&!e.ended&&e.length<=e.highWaterMark,D(t)}function k(t,e){e.readingMore||(e.readingMore=!0,o.nextTick(I,t,e))}function I(t,e){for(;!e.reading&&!e.ended&&(e.length0,e.resumeScheduled&&!e.paused?e.flowing=!0:t.listenerCount("data")>0&&t.resume()}function M(t){i("readable nexttick read 0"),t.read(0)}function L(t,e){i("resume",e.reading),e.reading||t.read(0),e.resumeScheduled=!1,t.emit("resume"),D(t),e.flowing&&!e.reading&&t.read(0)}function D(t){var e=t._readableState;for(i("flow",e.flowing);e.flowing&&null!==t.read(););}function U(t,e){return 0===e.length?null:(e.objectMode?r=e.buffer.shift():!t||t>=e.length?(r=e.decoder?e.buffer.join(""):1===e.buffer.length?e.buffer.first():e.buffer.concat(e.length),e.buffer.clear()):r=e.buffer.consume(t,e.decoder),r);var r}function $(t){var e=t._readableState;i("endReadable",e.endEmitted),e.endEmitted||(e.ended=!0,o.nextTick(F,e,t))}function F(t,e){if(i("endReadableNT",t.endEmitted,t.length),!t.endEmitted&&0===t.length&&(t.endEmitted=!0,e.readable=!1,e.emit("end"),t.autoDestroy)){var r=e._writableState;(!r||r.autoDestroy&&r.finished)&&e.destroy()}}function q(t,e){for(var r=0,n=t.length;r=e.highWaterMark:e.length>0)||e.ended))return i("read: emitReadable",e.length,e.ended),0===e.length&&e.ended?$(this):R(this),null;if(0===(t=P(t,e))&&e.ended)return 0===e.length&&$(this),null;var n,o=e.needReadable;return i("need readable",o),(0===e.length||e.length-t0?U(t,e):null)?(e.needReadable=e.length<=e.highWaterMark,t=0):(e.length-=t,e.awaitDrain=0),0===e.length&&(e.ended||(e.needReadable=!0),r!==t&&e.ended&&$(this)),null!==n&&this.emit("data",n),n},O.prototype._read=function(t){x(this,new w("_read()"))},O.prototype.pipe=function(t,e){var r=this,n=this._readableState;switch(n.pipesCount){case 0:n.pipes=t;break;case 1:n.pipes=[n.pipes,t];break;default:n.pipes.push(t)}n.pipesCount+=1,i("pipe count=%d opts=%j",n.pipesCount,e);var s=e&&!1===e.end||t===o.stdout||t===o.stderr?y:u;function u(){i("onend"),t.end()}n.endEmitted?o.nextTick(s):r.once("end",s),t.on("unpipe",function e(o,a){i("onunpipe"),o===r&&a&&!1===a.hasUnpiped&&(a.hasUnpiped=!0,i("cleanup"),t.removeListener("close",h),t.removeListener("finish",d),t.removeListener("drain",l),t.removeListener("error",p),t.removeListener("unpipe",e),r.removeListener("end",u),r.removeListener("end",y),r.removeListener("data",f),c=!0,!n.awaitDrain||t._writableState&&!t._writableState.needDrain||l())});var l=function(t){return function(){var e=t._readableState;i("pipeOnDrain",e.awaitDrain),e.awaitDrain&&e.awaitDrain--,0===e.awaitDrain&&a(t,"data")&&(e.flowing=!0,D(t))}}(r);t.on("drain",l);var c=!1;function f(e){i("ondata");var o=t.write(e);i("dest.write",o),!1===o&&((1===n.pipesCount&&n.pipes===t||n.pipesCount>1&&-1!==q(n.pipes,t))&&!c&&(i("false write response, pause",n.awaitDrain),n.awaitDrain++),r.pause())}function p(e){i("onerror",e),y(),t.removeListener("error",p),0===a(t,"error")&&x(t,e)}function h(){t.removeListener("finish",d),y()}function d(){i("onfinish"),t.removeListener("close",h),y()}function y(){i("unpipe"),r.unpipe(t)}return r.on("data",f),function(t,e,r){if("function"==typeof t.prependListener)return t.prependListener(e,r);t._events&&t._events[e]?Array.isArray(t._events[e])?t._events[e].unshift(r):t._events[e]=[r,t._events[e]]:t.on(e,r)}(t,"error",p),t.once("close",h),t.once("finish",d),t.emit("pipe",r),n.flowing||(i("pipe resume"),r.resume()),t},O.prototype.unpipe=function(t){var e=this._readableState,r={hasUnpiped:!1};if(0===e.pipesCount)return this;if(1===e.pipesCount)return t&&t!==e.pipes||(t||(t=e.pipes),e.pipes=null,e.pipesCount=0,e.flowing=!1,t&&t.emit("unpipe",this,r)),this;if(!t){var n=e.pipes,o=e.pipesCount;e.pipes=null,e.pipesCount=0,e.flowing=!1;for(var i=0;i0,!1!==n.flowing&&this.resume()):"readable"===t&&(n.endEmitted||n.readableListening||(n.readableListening=n.needReadable=!0,n.flowing=!1,n.emittedReadable=!1,i("on readable",n.length,n.reading),n.length?R(this):n.reading||o.nextTick(M,this))),r},O.prototype.addListener=O.prototype.on,O.prototype.removeListener=function(t,e){var r=s.prototype.removeListener.call(this,t,e);return"readable"===t&&o.nextTick(C,this),r},O.prototype.removeAllListeners=function(t){var e=s.prototype.removeAllListeners.apply(this,arguments);return"readable"!==t&&void 0!==t||o.nextTick(C,this),e},O.prototype.resume=function(){var t=this._readableState;return t.flowing||(i("resume"),t.flowing=!t.readableListening,function(t,e){e.resumeScheduled||(e.resumeScheduled=!0,o.nextTick(L,t,e))}(this,t)),t.paused=!1,this},O.prototype.pause=function(){return i("call pause flowing=%j",this._readableState.flowing),!1!==this._readableState.flowing&&(i("pause"),this._readableState.flowing=!1,this.emit("pause")),this._readableState.paused=!0,this},O.prototype.wrap=function(t){var e=this,r=this._readableState,n=!1;for(var o in t.on("end",function(){if(i("wrapped end"),r.decoder&&!r.ended){var t=r.decoder.end();t&&t.length&&e.push(t)}e.push(null)}),t.on("data",function(o){i("wrapped data"),r.decoder&&(o=r.decoder.write(o)),r.objectMode&&null==o||(r.objectMode||o&&o.length)&&(e.push(o)||(n=!0,t.pause()))}),t)void 0===this[o]&&"function"==typeof t[o]&&(this[o]=function(e){return function(){return t[e].apply(t,arguments)}}(o));for(var a=0;a-1))throw new E(t);return this._writableState.defaultEncoding=t,this},Object.defineProperty(O.prototype,"writableBuffer",{enumerable:!1,get:function(){return this._writableState&&this._writableState.getBuffer()}}),Object.defineProperty(O.prototype,"writableHighWaterMark",{enumerable:!1,get:function(){return this._writableState.highWaterMark}}),O.prototype._write=function(t,e,r){r(new y("_write()"))},O.prototype._writev=null,O.prototype.end=function(t,e,r){var n=this._writableState;return"function"==typeof t?(r=t,t=null,e=null):"function"==typeof e&&(r=e,e=null),null!=t&&this.write(t,e),n.corked&&(n.corked=1,this.uncork()),n.ending||function(t,e,r){e.ending=!0,N(t,e),r&&(e.finished?o.nextTick(r):t.once("finish",r)),e.ended=!0,t.writable=!1}(this,n,r),this},Object.defineProperty(O.prototype,"writableLength",{enumerable:!1,get:function(){return this._writableState.length}}),Object.defineProperty(O.prototype,"destroyed",{enumerable:!1,get:function(){return void 0!==this._writableState&&this._writableState.destroyed},set:function(t){this._writableState&&(this._writableState.destroyed=t)}}),O.prototype.destroy=f.destroy,O.prototype._undestroy=f.undestroy,O.prototype._destroy=function(t,e){e(t)}},17356(t,e,r){"use strict";var n,o=r(65606);function i(t,e,r){return(e=function(t){var e=function(t){if("object"!=typeof t||null===t)return t;var e=t[Symbol.toPrimitive];if(void 0!==e){var r=e.call(t,"string");if("object"!=typeof r)return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(t)}(t);return"symbol"==typeof e?e:String(e)}(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}var a=r(19959),s=Symbol("lastResolve"),u=Symbol("lastReject"),l=Symbol("error"),c=Symbol("ended"),f=Symbol("lastPromise"),p=Symbol("handlePromise"),h=Symbol("stream");function d(t,e){return{value:t,done:e}}function y(t){var e=t[s];if(null!==e){var r=t[h].read();null!==r&&(t[f]=null,t[s]=null,t[u]=null,e(d(r,!1)))}}function g(t){o.nextTick(y,t)}var m=Object.getPrototypeOf(function(){}),b=Object.setPrototypeOf((i(n={get stream(){return this[h]},next:function(){var t=this,e=this[l];if(null!==e)return Promise.reject(e);if(this[c])return Promise.resolve(d(void 0,!0));if(this[h].destroyed)return new Promise(function(e,r){o.nextTick(function(){t[l]?r(t[l]):e(d(void 0,!0))})});var r,n=this[f];if(n)r=new Promise(function(t,e){return function(r,n){t.then(function(){e[c]?r(d(void 0,!0)):e[p](r,n)},n)}}(n,this));else{var i=this[h].read();if(null!==i)return Promise.resolve(d(i,!1));r=new Promise(this[p])}return this[f]=r,r}},Symbol.asyncIterator,function(){return this}),i(n,"return",function(){var t=this;return new Promise(function(e,r){t[h].destroy(null,function(t){t?r(t):e(d(void 0,!0))})})}),n),m);t.exports=function(t){var e,r=Object.create(b,(i(e={},h,{value:t,writable:!0}),i(e,s,{value:null,writable:!0}),i(e,u,{value:null,writable:!0}),i(e,l,{value:null,writable:!0}),i(e,c,{value:t._readableState.endEmitted,writable:!0}),i(e,p,{value:function(t,e){var n=r[h].read();n?(r[f]=null,r[s]=null,r[u]=null,t(d(n,!1))):(r[s]=t,r[u]=e)},writable:!0}),e));return r[f]=null,a(t,function(t){if(t&&"ERR_STREAM_PREMATURE_CLOSE"!==t.code){var e=r[u];return null!==e&&(r[f]=null,r[s]=null,r[u]=null,e(t)),void(r[l]=t)}var n=r[s];null!==n&&(r[f]=null,r[s]=null,r[u]=null,n(d(void 0,!0))),r[c]=!0}),t.on("readable",g.bind(null,r)),r}},10272(t,e,r){"use strict";function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(t);e&&(n=n.filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable})),r.push.apply(r,n)}return r}function o(t){for(var e=1;e0?this.tail.next=e:this.head=e,this.tail=e,++this.length}},{key:"unshift",value:function(t){var e={data:t,next:this.head};0===this.length&&(this.tail=e),this.head=e,++this.length}},{key:"shift",value:function(){if(0!==this.length){var t=this.head.data;return 1===this.length?this.head=this.tail=null:this.head=this.head.next,--this.length,t}}},{key:"clear",value:function(){this.head=this.tail=null,this.length=0}},{key:"join",value:function(t){if(0===this.length)return"";for(var e=this.head,r=""+e.data;e=e.next;)r+=t+e.data;return r}},{key:"concat",value:function(t){if(0===this.length)return u.alloc(0);for(var e=u.allocUnsafe(t>>>0),r=this.head,n=0;r;)f(r.data,e,n),n+=r.data.length,r=r.next;return e}},{key:"consume",value:function(t,e){var r;return to.length?o.length:t;if(i===o.length?n+=o:n+=o.slice(0,t),0===(t-=i)){i===o.length?(++r,e.next?this.head=e.next:this.head=this.tail=null):(this.head=e,e.data=o.slice(i));break}++r}return this.length-=r,n}},{key:"_getBuffer",value:function(t){var e=u.allocUnsafe(t),r=this.head,n=1;for(r.data.copy(e),t-=r.data.length;r=r.next;){var o=r.data,i=t>o.length?o.length:t;if(o.copy(e,e.length-t,0,i),0===(t-=i)){i===o.length?(++n,r.next?this.head=r.next:this.head=this.tail=null):(this.head=r,r.data=o.slice(i));break}++n}return this.length-=n,e}},{key:c,value:function(t,e){return l(this,o(o({},e),{},{depth:0,customInspect:!1}))}}])&&a(e.prototype,r),Object.defineProperty(e,"prototype",{writable:!1}),t}()},16057(t,e,r){"use strict";var n=r(65606);function o(t,e){a(t,e),i(t)}function i(t){t._writableState&&!t._writableState.emitClose||t._readableState&&!t._readableState.emitClose||t.emit("close")}function a(t,e){t.emit("error",e)}t.exports={destroy:function(t,e){var r=this,s=this._readableState&&this._readableState.destroyed,u=this._writableState&&this._writableState.destroyed;return s||u?(e?e(t):t&&(this._writableState?this._writableState.errorEmitted||(this._writableState.errorEmitted=!0,n.nextTick(a,this,t)):n.nextTick(a,this,t)),this):(this._readableState&&(this._readableState.destroyed=!0),this._writableState&&(this._writableState.destroyed=!0),this._destroy(t||null,function(t){!e&&t?r._writableState?r._writableState.errorEmitted?n.nextTick(i,r):(r._writableState.errorEmitted=!0,n.nextTick(o,r,t)):n.nextTick(o,r,t):e?(n.nextTick(i,r),e(t)):n.nextTick(i,r)}),this)},undestroy:function(){this._readableState&&(this._readableState.destroyed=!1,this._readableState.reading=!1,this._readableState.ended=!1,this._readableState.endEmitted=!1),this._writableState&&(this._writableState.destroyed=!1,this._writableState.ended=!1,this._writableState.ending=!1,this._writableState.finalCalled=!1,this._writableState.prefinished=!1,this._writableState.finished=!1,this._writableState.errorEmitted=!1)},errorOrDestroy:function(t,e){var r=t._readableState,n=t._writableState;r&&r.autoDestroy||n&&n.autoDestroy?t.destroy(e):t.emit("error",e)}}},19959(t,e,r){"use strict";var n=r(73157).F.ERR_STREAM_PREMATURE_CLOSE;function o(){}t.exports=function t(e,r,i){if("function"==typeof r)return t(e,null,r);r||(r={}),i=function(t){var e=!1;return function(){if(!e){e=!0;for(var r=arguments.length,n=new Array(r),o=0;o0,function(t){c||(c=t),t&&p.forEach(u),i||(p.forEach(u),f(c))})});return e.reduce(l)}},11922(t,e,r){"use strict";var n=r(73157).F.ERR_INVALID_OPT_VALUE;t.exports={getHighWaterMark:function(t,e,r,o){var i=function(t,e,r){return null!=t.highWaterMark?t.highWaterMark:e?t[r]:null}(e,o,r);if(null!=i){if(!isFinite(i)||Math.floor(i)!==i||i<0)throw new n(o?r:"highWaterMark",i);return Math.floor(i)}return t.objectMode?16:16384}}},81914(t,e,r){t.exports=r(37007).EventEmitter},63242(t,e,r){(e=t.exports=r(52341)).Stream=e,e.Readable=e,e.Writable=r(9573),e.Duplex=r(63527),e.Transform=r(95689),e.PassThrough=r(82571),e.finished=r(19959),e.pipeline=r(37413)},61160(t,e,r){"use strict";var n=r(92063),o=r(73992),i=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,a=/[\n\r\t]/g,s=/^[A-Za-z][A-Za-z0-9+-.]*:\/\//,u=/:\d+$/,l=/^([a-z][a-z0-9.+-]*:)?(\/\/)?([\\/]+)?([\S\s]*)/i,c=/^[a-zA-Z]:/;function f(t){return(t||"").toString().replace(i,"")}var p=[["#","hash"],["?","query"],function(t,e){return y(e.protocol)?t.replace(/\\/g,"/"):t},["/","pathname"],["@","auth",1],[NaN,"host",void 0,1,1],[/:(\d*)$/,"port",void 0,1],[NaN,"hostname",void 0,1,1]],h={hash:1,query:1};function d(t){var e,r=("undefined"!=typeof window?window:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{}).location||{},n={},o=typeof(t=t||r);if("blob:"===t.protocol)n=new m(unescape(t.pathname),{});else if("string"===o)for(e in n=new m(t,{}),h)delete n[e];else if("object"===o){for(e in t)e in h||(n[e]=t[e]);void 0===n.slashes&&(n.slashes=s.test(t.href))}return n}function y(t){return"file:"===t||"ftp:"===t||"http:"===t||"https:"===t||"ws:"===t||"wss:"===t}function g(t,e){t=(t=f(t)).replace(a,""),e=e||{};var r,n=l.exec(t),o=n[1]?n[1].toLowerCase():"",i=!!n[2],s=!!n[3],u=0;return i?s?(r=n[2]+n[3]+n[4],u=n[2].length+n[3].length):(r=n[2]+n[4],u=n[2].length):s?(r=n[3]+n[4],u=n[3].length):r=n[4],"file:"===o?u>=2&&(r=r.slice(2)):y(o)?r=n[4]:o?i&&(r=r.slice(2)):u>=2&&y(e.protocol)&&(r=n[4]),{protocol:o,slashes:i||y(o),slashesCount:u,rest:r}}function m(t,e,r){if(t=(t=f(t)).replace(a,""),!(this instanceof m))return new m(t,e,r);var i,s,u,l,h,b,v=p.slice(),w=typeof e,E=this,x=0;for("object"!==w&&"string"!==w&&(r=e,e=null),r&&"function"!=typeof r&&(r=o.parse),i=!(s=g(t||"",e=d(e))).protocol&&!s.slashes,E.slashes=s.slashes||i&&e.slashes,E.protocol=s.protocol||e.protocol||"",t=s.rest,("file:"===s.protocol&&(2!==s.slashesCount||c.test(t))||!s.slashes&&(s.protocol||s.slashesCount<2||!y(E.protocol)))&&(v[3]=[/(.*)/,"pathname"]);x",'"',"`"," ","\r","\n","\t"]),l=["'"].concat(u),c=["%","/","?",";","#"].concat(l),f=["/","?","#"],p=/^[+a-z0-9A-Z_-]{0,63}$/,h=/^([+a-z0-9A-Z_-]{0,63})(.*)$/,d={javascript:!0,"javascript:":!0},y={javascript:!0,"javascript:":!0},g={http:!0,https:!0,ftp:!0,gopher:!0,file:!0,"http:":!0,"https:":!0,"ftp:":!0,"gopher:":!0,"file:":!0},m=r(55373);function b(t,e,r){if(t&&"object"==typeof t&&t instanceof o)return t;var n=new o;return n.parse(t,e,r),n}o.prototype.parse=function(t,e,r){if("string"!=typeof t)throw new TypeError("Parameter 'url' must be a string, not "+typeof t);var o=t.indexOf("?"),a=-1!==o&&o127?k+="x":k+=N[I];if(!k.match(p)){var M=P.slice(0,_),L=P.slice(_+1),D=N.match(h);D&&(M.push(D[1]),L.unshift(D[2])),L.length&&(b="/"+L.join(".")+b),this.hostname=M.join(".");break}}}this.hostname.length>255?this.hostname="":this.hostname=this.hostname.toLowerCase(),j||(this.hostname=n.toASCII(this.hostname));var U=this.port?":"+this.port:"",$=this.hostname||"";this.host=$+U,this.href+=this.host,j&&(this.hostname=this.hostname.substr(1,this.hostname.length-2),"/"!==b[0]&&(b="/"+b))}if(!d[E])for(_=0,R=l.length;_0)&&r.host.split("@"))&&(r.auth=j.shift(),r.hostname=j.shift(),r.host=r.hostname)),r.search=t.search,r.query=t.query,null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.href=r.format(),r;if(!x.length)return r.pathname=null,r.search?r.path="/"+r.search:r.path=null,r.href=r.format(),r;for(var A=x.slice(-1)[0],O=(r.host||t.host||x.length>1)&&("."===A||".."===A)||""===A,_=0,T=x.length;T>=0;T--)"."===(A=x[T])?x.splice(T,1):".."===A?(x.splice(T,1),_++):_&&(x.splice(T,1),_--);if(!w&&!E)for(;_--;_)x.unshift("..");!w||""===x[0]||x[0]&&"/"===x[0].charAt(0)||x.unshift(""),O&&"/"!==x.join("/").substr(-1)&&x.push("");var j,P=""===x[0]||x[0]&&"/"===x[0].charAt(0);return S&&(r.hostname=P?"":x.length?x.shift():"",r.host=r.hostname,(j=!!(r.host&&r.host.indexOf("@")>0)&&r.host.split("@"))&&(r.auth=j.shift(),r.hostname=j.shift(),r.host=r.hostname)),(w=w||r.host&&x.length)&&!P&&x.unshift(""),x.length>0?r.pathname=x.join("/"):(r.pathname=null,r.path=null),null===r.pathname&&null===r.search||(r.path=(r.pathname?r.pathname:"")+(r.search?r.search:"")),r.auth=t.auth||r.auth,r.slashes=r.slashes||t.slashes,r.href=r.format(),r},o.prototype.parseHost=function(){var t=this.host,e=a.exec(t);e&&(":"!==(e=e[0])&&(this.port=e.substr(1)),t=t.substr(0,t.length-e.length)),t&&(this.hostname=t)},e.parse=b,e.resolve=function(t,e){return b(t,!1,!0).resolve(e)},e.resolveObject=function(t,e){return t?b(t,!1,!0).resolveObject(e):e},e.format=function(t){return"string"==typeof t&&(t=b(t)),t instanceof o?t.format():o.prototype.format.call(t)},e.Url=o},81135(t){t.exports=function(t){return t&&"object"==typeof t&&"function"==typeof t.copy&&"function"==typeof t.fill&&"function"==typeof t.readUInt8}},49032(t,e,r){"use strict";var n=r(47244),o=r(48184),i=r(25767),a=r(35680);function s(t){return t.call.bind(t)}var u="undefined"!=typeof BigInt,l="undefined"!=typeof Symbol,c=s(Object.prototype.toString),f=s(Number.prototype.valueOf),p=s(String.prototype.valueOf),h=s(Boolean.prototype.valueOf);if(u)var d=s(BigInt.prototype.valueOf);if(l)var y=s(Symbol.prototype.valueOf);function g(t,e){if("object"!=typeof t)return!1;try{return e(t),!0}catch(t){return!1}}function m(t){return"[object Map]"===c(t)}function b(t){return"[object Set]"===c(t)}function v(t){return"[object WeakMap]"===c(t)}function w(t){return"[object WeakSet]"===c(t)}function E(t){return"[object ArrayBuffer]"===c(t)}function x(t){return"undefined"!=typeof ArrayBuffer&&(E.working?E(t):t instanceof ArrayBuffer)}function S(t){return"[object DataView]"===c(t)}function A(t){return"undefined"!=typeof DataView&&(S.working?S(t):t instanceof DataView)}e.isArgumentsObject=n,e.isGeneratorFunction=o,e.isTypedArray=a,e.isPromise=function(t){return"undefined"!=typeof Promise&&t instanceof Promise||null!==t&&"object"==typeof t&&"function"==typeof t.then&&"function"==typeof t.catch},e.isArrayBufferView=function(t){return"undefined"!=typeof ArrayBuffer&&ArrayBuffer.isView?ArrayBuffer.isView(t):a(t)||A(t)},e.isUint8Array=function(t){return"Uint8Array"===i(t)},e.isUint8ClampedArray=function(t){return"Uint8ClampedArray"===i(t)},e.isUint16Array=function(t){return"Uint16Array"===i(t)},e.isUint32Array=function(t){return"Uint32Array"===i(t)},e.isInt8Array=function(t){return"Int8Array"===i(t)},e.isInt16Array=function(t){return"Int16Array"===i(t)},e.isInt32Array=function(t){return"Int32Array"===i(t)},e.isFloat32Array=function(t){return"Float32Array"===i(t)},e.isFloat64Array=function(t){return"Float64Array"===i(t)},e.isBigInt64Array=function(t){return"BigInt64Array"===i(t)},e.isBigUint64Array=function(t){return"BigUint64Array"===i(t)},m.working="undefined"!=typeof Map&&m(new Map),e.isMap=function(t){return"undefined"!=typeof Map&&(m.working?m(t):t instanceof Map)},b.working="undefined"!=typeof Set&&b(new Set),e.isSet=function(t){return"undefined"!=typeof Set&&(b.working?b(t):t instanceof Set)},v.working="undefined"!=typeof WeakMap&&v(new WeakMap),e.isWeakMap=function(t){return"undefined"!=typeof WeakMap&&(v.working?v(t):t instanceof WeakMap)},w.working="undefined"!=typeof WeakSet&&w(new WeakSet),e.isWeakSet=function(t){return w(t)},E.working="undefined"!=typeof ArrayBuffer&&E(new ArrayBuffer),e.isArrayBuffer=x,S.working="undefined"!=typeof ArrayBuffer&&"undefined"!=typeof DataView&&S(new DataView(new ArrayBuffer(1),0,1)),e.isDataView=A;var O="undefined"!=typeof SharedArrayBuffer?SharedArrayBuffer:void 0;function _(t){return"[object SharedArrayBuffer]"===c(t)}function T(t){return void 0!==O&&(void 0===_.working&&(_.working=_(new O)),_.working?_(t):t instanceof O)}function j(t){return g(t,f)}function P(t){return g(t,p)}function R(t){return g(t,h)}function N(t){return u&&g(t,d)}function k(t){return l&&g(t,y)}e.isSharedArrayBuffer=T,e.isAsyncFunction=function(t){return"[object AsyncFunction]"===c(t)},e.isMapIterator=function(t){return"[object Map Iterator]"===c(t)},e.isSetIterator=function(t){return"[object Set Iterator]"===c(t)},e.isGeneratorObject=function(t){return"[object Generator]"===c(t)},e.isWebAssemblyCompiledModule=function(t){return"[object WebAssembly.Module]"===c(t)},e.isNumberObject=j,e.isStringObject=P,e.isBooleanObject=R,e.isBigIntObject=N,e.isSymbolObject=k,e.isBoxedPrimitive=function(t){return j(t)||P(t)||R(t)||N(t)||k(t)},e.isAnyArrayBuffer=function(t){return"undefined"!=typeof Uint8Array&&(x(t)||T(t))},["isProxy","isExternal","isModuleNamespaceObject"].forEach(function(t){Object.defineProperty(e,t,{enumerable:!1,value:function(){throw new Error(t+" is not supported in userland")}})})},40537(t,e,r){var n=r(65606),o=Object.getOwnPropertyDescriptors||function(t){for(var e=Object.keys(t),r={},n=0;n=o)return t;switch(t){case"%s":return String(n[r++]);case"%d":return Number(n[r++]);case"%j":try{return JSON.stringify(n[r++])}catch(t){return"[Circular]"}default:return t}}),s=n[r];r=3&&(n.depth=arguments[2]),arguments.length>=4&&(n.colors=arguments[3]),g(r)?n.showHidden=r:r&&e._extend(n,r),w(n.showHidden)&&(n.showHidden=!1),w(n.depth)&&(n.depth=2),w(n.colors)&&(n.colors=!1),w(n.customInspect)&&(n.customInspect=!0),n.colors&&(n.stylize=c),p(n,t,n.depth)}function c(t,e){var r=l.styles[e];return r?"["+l.colors[r][0]+"m"+t+"["+l.colors[r][1]+"m":t}function f(t,e){return t}function p(t,r,n){if(t.customInspect&&r&&O(r.inspect)&&r.inspect!==e.inspect&&(!r.constructor||r.constructor.prototype!==r)){var o=r.inspect(n,t);return v(o)||(o=p(t,o,n)),o}var i=function(t,e){if(w(e))return t.stylize("undefined","undefined");if(v(e)){var r="'"+JSON.stringify(e).replace(/^"|"$/g,"").replace(/'/g,"\\'").replace(/\\"/g,'"')+"'";return t.stylize(r,"string")}return b(e)?t.stylize(""+e,"number"):g(e)?t.stylize(""+e,"boolean"):m(e)?t.stylize("null","null"):void 0}(t,r);if(i)return i;var a=Object.keys(r),s=function(t){var e={};return t.forEach(function(t,r){e[t]=!0}),e}(a);if(t.showHidden&&(a=Object.getOwnPropertyNames(r)),A(r)&&(a.indexOf("message")>=0||a.indexOf("description")>=0))return h(r);if(0===a.length){if(O(r)){var u=r.name?": "+r.name:"";return t.stylize("[Function"+u+"]","special")}if(E(r))return t.stylize(RegExp.prototype.toString.call(r),"regexp");if(S(r))return t.stylize(Date.prototype.toString.call(r),"date");if(A(r))return h(r)}var l,c="",f=!1,x=["{","}"];return y(r)&&(f=!0,x=["[","]"]),O(r)&&(c=" [Function"+(r.name?": "+r.name:"")+"]"),E(r)&&(c=" "+RegExp.prototype.toString.call(r)),S(r)&&(c=" "+Date.prototype.toUTCString.call(r)),A(r)&&(c=" "+h(r)),0!==a.length||f&&0!=r.length?n<0?E(r)?t.stylize(RegExp.prototype.toString.call(r),"regexp"):t.stylize("[Object]","special"):(t.seen.push(r),l=f?function(t,e,r,n,o){for(var i=[],a=0,s=e.length;a60?r[0]+(""===e?"":e+"\n ")+" "+t.join(",\n  ")+" "+r[1]:r[0]+e+" "+t.join(", ")+" "+r[1]}(l,c,x)):x[0]+c+x[1]}function h(t){return"["+Error.prototype.toString.call(t)+"]"}function d(t,e,r,n,o,i){var a,s,u;if((u=Object.getOwnPropertyDescriptor(e,o)||{value:e[o]}).get?s=u.set?t.stylize("[Getter/Setter]","special"):t.stylize("[Getter]","special"):u.set&&(s=t.stylize("[Setter]","special")),P(n,o)||(a="["+o+"]"),s||(t.seen.indexOf(u.value)<0?(s=m(r)?p(t,u.value,null):p(t,u.value,r-1)).indexOf("\n")>-1&&(s=i?s.split("\n").map(function(t){return"  "+t}).join("\n").slice(2):"\n"+s.split("\n").map(function(t){return"   "+t}).join("\n")):s=t.stylize("[Circular]","special")),w(a)){if(i&&o.match(/^\d+$/))return s;(a=JSON.stringify(""+o)).match(/^"([a-zA-Z_][a-zA-Z_0-9]*)"$/)?(a=a.slice(1,-1),a=t.stylize(a,"name")):(a=a.replace(/'/g,"\\'").replace(/\\"/g,'"').replace(/(^"|"$)/g,"'"),a=t.stylize(a,"string"))}return a+": "+s}function y(t){return Array.isArray(t)}function g(t){return"boolean"==typeof t}function m(t){return null===t}function b(t){return"number"==typeof t}function v(t){return"string"==typeof t}function w(t){return void 0===t}function E(t){return x(t)&&"[object RegExp]"===_(t)}function x(t){return"object"==typeof t&&null!==t}function S(t){return x(t)&&"[object Date]"===_(t)}function A(t){return x(t)&&("[object Error]"===_(t)||t instanceof Error)}function O(t){return"function"==typeof t}function _(t){return Object.prototype.toString.call(t)}function T(t){return t<10?"0"+t.toString(10):t.toString(10)}e.debuglog=function(t){if(t=t.toUpperCase(),!a[t])if(s.test(t)){var r=n.pid;a[t]=function(){var n=e.format.apply(e,arguments);console.error("%s %d: %s",t,r,n)}}else a[t]=function(){};return a[t]},e.inspect=l,l.colors={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[30,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[31,39],yellow:[33,39]},l.styles={special:"cyan",number:"yellow",boolean:"yellow",undefined:"grey",null:"bold",string:"green",date:"magenta",regexp:"red"},e.types=r(49032),e.isArray=y,e.isBoolean=g,e.isNull=m,e.isNullOrUndefined=function(t){return null==t},e.isNumber=b,e.isString=v,e.isSymbol=function(t){return"symbol"==typeof t},e.isUndefined=w,e.isRegExp=E,e.types.isRegExp=E,e.isObject=x,e.isDate=S,e.types.isDate=S,e.isError=A,e.types.isNativeError=A,e.isFunction=O,e.isPrimitive=function(t){return null===t||"boolean"==typeof t||"number"==typeof t||"string"==typeof t||"symbol"==typeof t||void 0===t},e.isBuffer=r(81135);var j=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function P(t,e){return Object.prototype.hasOwnProperty.call(t,e)}e.log=function(){var t,r;console.log("%s - %s",(r=[T((t=new Date).getHours()),T(t.getMinutes()),T(t.getSeconds())].join(":"),[t.getDate(),j[t.getMonth()],r].join(" ")),e.format.apply(e,arguments))},e.inherits=r(56698),e._extend=function(t,e){if(!e||!x(e))return t;for(var r=Object.keys(e),n=r.length;n--;)t[r[n]]=e[r[n]];return t};var R="undefined"!=typeof Symbol?Symbol("util.promisify.custom"):void 0;function N(t,e){if(!t){var r=new Error("Promise was rejected with a falsy value");r.reason=t,t=r}return e(t)}e.promisify=function(t){if("function"!=typeof t)throw new TypeError('The "original" argument must be of type Function');if(R&&t[R]){var e;if("function"!=typeof(e=t[R]))throw new TypeError('The "util.promisify.custom" argument must be of type Function');return Object.defineProperty(e,R,{value:e,enumerable:!1,writable:!1,configurable:!0}),e}function e(){for(var e,r,n=new Promise(function(t,n){e=t,r=n}),o=[],i=0;i-1?e:"Object"===e&&function(t){var e=!1;return n(y,function(r,n){if(!e)try{r(t),e=h(n,1)}catch(t){}}),e}(t)}return s?function(t){var e=!1;return n(y,function(r,n){if(!e)try{"$"+r(t)===n&&(e=h(n,1))}catch(t){}}),e}(t):null}},57510(t){t.exports=function(){for(var t={},r=0;ro});const n="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?self:"undefined"!=typeof window?window:globalThis,o=n.fetch.bind(n);n.Headers,n.Request,n.Response},72984(t,e,r){"use strict";function n(t){return"function"==typeof t?t:Array.isArray(t)?e=>{for(const r of t){if("string"==typeof r&&e===r)return!0;if(r instanceof RegExp&&r.test(e))return!0}}:()=>!1}r.d(e,{A:()=>n})},69031(t,e,r){"use strict";r.d(e,{Eo:()=>a,Xe:()=>i,yQ:()=>s});const n=":A-Za-z_\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD",o=new RegExp("^["+n+"]["+n+"\\-.\\d\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$");function i(t,e){const r=[];let n=e.exec(t);for(;n;){const o=[];o.startIndex=e.lastIndex-n[0].length;const i=n.length;for(let t=0;ti});var n=r(69031);const o={allowBooleanAttributes:!1,unpairedTags:[]};function i(t,e){e=Object.assign({},o,e);const r=[];let n=!1,i=!1;"\ufeff"===t[0]&&(t=t.substr(1));for(let o=0;o"!==t[o]&&" "!==t[o]&&"\t"!==t[o]&&"\n"!==t[o]&&"\r"!==t[o];o++)m+=t[o];if(m=m.trim(),"/"===m[m.length-1]&&(m=m.substring(0,m.length-1),o--),!y(m)){let e;return e=0===m.trim().length?"Invalid space after '<'.":"Tag '"+m+"' is an invalid name.",h("InvalidTag",e,g(t,o))}const b=l(t,o);if(!1===b)return h("InvalidAttr","Attributes for '"+m+"' have open quote.",g(t,o));let v=b.value;if(o=b.index,"/"===v[v.length-1]){const r=o-v.length;v=v.substring(0,v.length-1);const i=f(v,e);if(!0!==i)return h(i.err.code,i.err.msg,g(t,r+i.err.line));n=!0}else if(d){if(!b.tagClosed)return h("InvalidTag","Closing tag '"+m+"' doesn't have proper closing.",g(t,o));if(v.trim().length>0)return h("InvalidTag","Closing tag '"+m+"' can't have attributes or invalid starting.",g(t,c));if(0===r.length)return h("InvalidTag","Closing tag '"+m+"' has not been opened.",g(t,c));{const e=r.pop();if(m!==e.tagName){let r=g(t,e.tagStartPos);return h("InvalidTag","Expected closing tag '"+e.tagName+"' (opened in line "+r.line+", col "+r.col+") instead of closing tag '"+m+"'.",g(t,c))}0==r.length&&(i=!0)}}else{const a=f(v,e);if(!0!==a)return h(a.err.code,a.err.msg,g(t,o-v.length+a.err.line));if(!0===i)return h("InvalidXml","Multiple possible root nodes found.",g(t,o));-1!==e.unpairedTags.indexOf(m)||r.push({tagName:m,tagStartPos:c}),n=!0}for(o++;o0)||h("InvalidXml","Invalid '"+JSON.stringify(r.map(t=>t.tagName),null,4).replace(/\r?\n/g,"")+"' found.",{line:1,col:1}):h("InvalidXml","Start tag expected.",1)}function a(t){return" "===t||"\t"===t||"\n"===t||"\r"===t}function s(t,e){const r=e;for(;e5&&"xml"===n)return h("InvalidXml","XML declaration allowed only at the start of the document.",g(t,e));if("?"==t[e]&&">"==t[e+1]){e++;break}continue}return e}function u(t,e){if(t.length>e+5&&"-"===t[e+1]&&"-"===t[e+2]){for(e+=3;e"===t[e+2]){e+=2;break}}else if(t.length>e+8&&"D"===t[e+1]&&"O"===t[e+2]&&"C"===t[e+3]&&"T"===t[e+4]&&"Y"===t[e+5]&&"P"===t[e+6]&&"E"===t[e+7]){let r=1;for(e+=8;e"===t[e]&&(r--,0===r))break}else if(t.length>e+9&&"["===t[e+1]&&"C"===t[e+2]&&"D"===t[e+3]&&"A"===t[e+4]&&"T"===t[e+5]&&"A"===t[e+6]&&"["===t[e+7])for(e+=8;e"===t[e+2]){e+=2;break}return e}function l(t,e){let r="",n="",o=!1;for(;e"===t[e]&&""===n){o=!0;break}r+=t[e]}return""===n&&{value:r,index:e,tagClosed:o}}const c=new RegExp("(\\s*)([^\\s=]+)(\\s*=)?(\\s*(['\"])(([\\s\\S])*?)\\5)?","g");function f(t,e){const r=(0,n.Xe)(t,c),o={};for(let t=0;ta});var n=r(85697),o=r(72984);const i={attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,cdataPropName:!1,format:!1,indentBy:"  ",suppressEmptyNode:!1,suppressUnpairedNode:!0,suppressBooleanAttributes:!0,tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},preserveOrder:!1,commentPropName:!1,unpairedTags:[],entities:[{regex:new RegExp("&","g"),val:"&"},{regex:new RegExp(">","g"),val:">"},{regex:new RegExp("<","g"),val:"<"},{regex:new RegExp("'","g"),val:"'"},{regex:new RegExp('"',"g"),val:"""}],processEntities:!0,stopNodes:[],oneListGroup:!1};function a(t){this.options=Object.assign({},i,t),!0===this.options.ignoreAttributes||this.options.attributesGroupName?this.isAttribute=function(){return!1}:(this.ignoreAttributesFn=(0,o.A)(this.options.ignoreAttributes),this.attrPrefixLen=this.options.attributeNamePrefix.length,this.isAttribute=l),this.processTextOrObjNode=s,this.options.format?(this.indentate=u,this.tagEndChar=">\n",this.newLine="\n"):(this.indentate=function(){return""},this.tagEndChar=">",this.newLine="")}function s(t,e,r,n){const o=this.j2x(t,r+1,n.concat(e));return void 0!==t[this.options.textNodeName]&&1===Object.keys(t).length?this.buildTextValNode(t[this.options.textNodeName],e,o.attrStr,r):this.buildObjectNode(o.val,e,o.attrStr,r)}function u(t){return this.options.indentBy.repeat(t)}function l(t){return!(!t.startsWith(this.options.attributeNamePrefix)||t===this.options.textNodeName)&&t.substr(this.attrPrefixLen)}a.prototype.build=function(t){return this.options.preserveOrder?(0,n.A)(t,this.options):(Array.isArray(t)&&this.options.arrayNodeName&&this.options.arrayNodeName.length>1&&(t={[this.options.arrayNodeName]:t}),this.j2x(t,0,[]).val)},a.prototype.j2x=function(t,e,r){let n="",o="";const i=r.join(".");for(let a in t)if(Object.prototype.hasOwnProperty.call(t,a))if(void 0===t[a])this.isAttribute(a)&&(o+="");else if(null===t[a])this.isAttribute(a)||a===this.options.cdataPropName?o+="":"?"===a[0]?o+=this.indentate(e)+"<"+a+"?"+this.tagEndChar:o+=this.indentate(e)+"<"+a+"/"+this.tagEndChar;else if(t[a]instanceof Date)o+=this.buildTextValNode(t[a],a,"",e);else if("object"!=typeof t[a]){const r=this.isAttribute(a);if(r&&!this.ignoreAttributesFn(r,i))n+=this.buildAttrPairStr(r,""+t[a]);else if(!r)if(a===this.options.textNodeName){let e=this.options.tagValueProcessor(a,""+t[a]);o+=this.replaceEntitiesValue(e)}else o+=this.buildTextValNode(t[a],a,"",e)}else if(Array.isArray(t[a])){const n=t[a].length;let i="",s="";for(let u=0;u"+t+o}},a.prototype.closeTag=function(t){let e="";return-1!==this.options.unpairedTags.indexOf(t)?this.options.suppressUnpairedNode||(e="/"):e=this.options.suppressEmptyNode?"/":`>`+this.newLine;if(!1!==this.options.commentPropName&&e===this.options.commentPropName)return this.indentate(n)+`\x3c!--${t}--\x3e`+this.newLine;if("?"===e[0])return this.indentate(n)+"<"+e+r+"?"+this.tagEndChar;{let o=this.options.tagValueProcessor(e,t);return o=this.replaceEntitiesValue(o),""===o?this.indentate(n)+"<"+e+r+this.closeTag(e)+this.tagEndChar:this.indentate(n)+"<"+e+r+">"+o+"0&&this.options.processEntities)for(let e=0;e0&&(r="\n"),o(t,e,"",r)}function o(t,e,r,n){let l="",c=!1;for(let f=0;f`,c=!1;continue}if(h===e.commentPropName){l+=n+`\x3c!--${p[h][0][e.textNodeName]}--\x3e`,c=!0;continue}if("?"===h[0]){const t=a(p[":@"],e),r="?xml"===h?"":n;let o=p[h][0][e.textNodeName];o=0!==o.length?" "+o:"",l+=r+`<${h}${o}${t}?>`,c=!0;continue}let y=n;""!==y&&(y+=e.indentBy);const g=n+`<${h}${a(p[":@"],e)}`,m=o(p[h],e,d,y);-1!==e.unpairedTags.indexOf(h)?e.suppressUnpairedNode?l+=g+">":l+=g+"/>":m&&0!==m.length||!e.suppressEmptyNode?m&&m.endsWith(">")?l+=g+`>${m}${n}`:(l+=g+">",m&&""!==n&&(m.includes("/>")||m.includes("`):l+=g+"/>",c=!0}return l}function i(t){const e=Object.keys(t);for(let r=0;r0&&e.processEntities)for(let r=0;rn})},25003(t,e,r){"use strict";r.d(e,{A:()=>o});var n=r(69031);class o{constructor(t){this.suppressValidationErr=!t,this.options=t}readDocType(t,e){const r={};if("O"!==t[e+3]||"C"!==t[e+4]||"T"!==t[e+5]||"Y"!==t[e+6]||"P"!==t[e+7]||"E"!==t[e+8])throw new Error("Invalid Tag instead of DOCTYPE");{e+=9;let n=1,o=!1,i=!1,s="";for(;e"===t[e]){if(i?"-"===t[e-1]&&"-"===t[e-2]&&(i=!1,n--):n--,0===n)break}else"["===t[e]?o=!0:s+=t[e];else{if(o&&a(t,"!ENTITY",e)){let n,o;if(e+=7,[n,o,e]=this.readEntityExp(t,e+1,this.suppressValidationErr),-1===o.indexOf("&")){const t=n.replace(/[.\-+*:]/g,"\\.");r[n]={regx:RegExp(`&${t};`,"g"),val:o}}}else if(o&&a(t,"!ELEMENT",e)){e+=8;const{index:r}=this.readElementExp(t,e+1);e=r}else if(o&&a(t,"!ATTLIST",e))e+=8;else if(o&&a(t,"!NOTATION",e)){e+=9;const{index:r}=this.readNotationExp(t,e+1,this.suppressValidationErr);e=r}else{if(!a(t,"!--",e))throw new Error("Invalid DOCTYPE");i=!0}n++,s=""}if(0!==n)throw new Error("Unclosed DOCTYPE")}return{entities:r,i:e}}readEntityExp(t,e){e=i(t,e);let r="";for(;ethis.options.maxEntitySize)throw new Error(`Entity "${r}" size (${n.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`);return[r,n,--e]}readNotationExp(t,e){e=i(t,e);let r="";for(;e{for(;ei});const n={preserveOrder:!1,attributeNamePrefix:"@_",attributesGroupName:!1,textNodeName:"#text",ignoreAttributes:!0,removeNSPrefix:!1,allowBooleanAttributes:!1,parseTagValue:!0,parseAttributeValue:!1,trimValues:!0,cdataPropName:!1,numberParseOptions:{hex:!0,leadingZeros:!0,eNotation:!0},tagValueProcessor:function(t,e){return e},attributeValueProcessor:function(t,e){return e},stopNodes:[],alwaysCreateTextNode:!1,isArray:()=>!1,commentPropName:!1,unpairedTags:[],processEntities:!0,htmlEntities:!1,ignoreDeclaration:!1,ignorePiTags:!1,transformTagName:!1,transformAttributeName:!1,updateTag:function(t,e,r){return t},captureMetaData:!1};function o(t){return"boolean"==typeof t?{enabled:t,maxEntitySize:1e4,maxExpansionDepth:10,maxTotalExpansions:1e3,maxExpandedLength:1e5,allowedTags:null,tagFilter:null}:"object"==typeof t&&null!==t?{enabled:!1!==t.enabled,maxEntitySize:t.maxEntitySize??1e4,maxExpansionDepth:t.maxExpansionDepth??10,maxTotalExpansions:t.maxTotalExpansions??1e3,maxExpandedLength:t.maxExpandedLength??1e5,allowedTags:t.allowedTags??null,tagFilter:t.tagFilter??null}:o(!0)}const i=function(t){const e=Object.assign({},n,t);return e.processEntities=o(e.processEntities),e}},79781(t,e,r){"use strict";r.d(e,{A:()=>u});var n=r(69031),o=r(13127),i=r(25003),a=r(60524),s=r(72984);class u{constructor(t){if(this.options=t,this.currentNode=null,this.tagsNodeStack=[],this.docTypeEntities={},this.lastEntities={apos:{regex:/&(apos|#39|#x27);/g,val:"'"},gt:{regex:/&(gt|#62|#x3E);/g,val:">"},lt:{regex:/&(lt|#60|#x3C);/g,val:"<"},quot:{regex:/&(quot|#34|#x22);/g,val:'"'}},this.ampEntity={regex:/&(amp|#38|#x26);/g,val:"&"},this.htmlEntities={space:{regex:/&(nbsp|#160);/g,val:" "},cent:{regex:/&(cent|#162);/g,val:"¢"},pound:{regex:/&(pound|#163);/g,val:"£"},yen:{regex:/&(yen|#165);/g,val:"Â¥"},euro:{regex:/&(euro|#8364);/g,val:"€"},copyright:{regex:/&(copy|#169);/g,val:"©"},reg:{regex:/&(reg|#174);/g,val:"®"},inr:{regex:/&(inr|#8377);/g,val:"₹"},num_dec:{regex:/&#([0-9]{1,7});/g,val:(t,e)=>S(e,10,"&#")},num_hex:{regex:/&#x([0-9a-fA-F]{1,6});/g,val:(t,e)=>S(e,16,"&#x")}},this.addExternalEntities=l,this.parseXml=d,this.parseTextData=c,this.resolveNameSpace=f,this.buildAttributesMap=h,this.isItStopNode=b,this.replaceEntitiesValue=g,this.readStopNodeData=E,this.saveTextToParentTag=m,this.addChild=y,this.ignoreAttributesFn=(0,s.A)(this.options.ignoreAttributes),this.entityExpansionCount=0,this.currentExpandedLength=0,this.options.stopNodes&&this.options.stopNodes.length>0){this.stopNodesExact=new Set,this.stopNodesWildcard=new Set;for(let t=0;t0)){a||(t=this.replaceEntitiesValue(t,e,r));const n=this.options.tagValueProcessor(e,t,r,o,i);return null==n?t:typeof n!=typeof t||n!==t?n:this.options.trimValues||t.trim()===t?x(t,this.options.parseTagValue,this.options.numberParseOptions):t}}function f(t){if(this.options.removeNSPrefix){const e=t.split(":"),r="/"===t.charAt(0)?"/":"";if("xmlns"===e[0])return"";2===e.length&&(t=r+e[1])}return t}const p=new RegExp("([^\\s=]+)\\s*(=\\s*(['\"])([\\s\\S]*?)\\3)?","gm");function h(t,e,r){if(!0!==this.options.ignoreAttributes&&"string"==typeof t){const o=(0,n.Xe)(t,p),i=o.length,a={};for(let t=0;t",i,"Closing Tag is not closed.");let o=t.substring(i+2,e).trim();if(this.options.removeNSPrefix){const t=o.indexOf(":");-1!==t&&(o=o.substr(t+1))}this.options.transformTagName&&(o=this.options.transformTagName(o)),r&&(n=this.saveTextToParentTag(n,r,a));const s=a.substring(a.lastIndexOf(".")+1);if(o&&-1!==this.options.unpairedTags.indexOf(o))throw new Error(`Unpaired tag can not be used as closing tag: `);let u=0;s&&-1!==this.options.unpairedTags.indexOf(s)?(u=a.lastIndexOf(".",a.lastIndexOf(".")-1),this.tagsNodeStack.pop()):u=a.lastIndexOf("."),a=a.substring(0,u),r=this.tagsNodeStack.pop(),n="",i=e}else if("?"===t[i+1]){let e=w(t,i,!1,"?>");if(!e)throw new Error("Pi Tag is not closed.");if(n=this.saveTextToParentTag(n,r,a),this.options.ignoreDeclaration&&"?xml"===e.tagName||this.options.ignorePiTags);else{const t=new o.A(e.tagName);t.add(this.options.textNodeName,""),e.tagName!==e.tagExp&&e.attrExpPresent&&(t[":@"]=this.buildAttributesMap(e.tagExp,a,e.tagName)),this.addChild(r,t,a,i)}i=e.closeIndex+1}else if("!--"===t.substr(i+1,3)){const e=v(t,"--\x3e",i+4,"Comment is not closed.");if(this.options.commentPropName){const o=t.substring(i+4,e-2);n=this.saveTextToParentTag(n,r,a),r.add(this.options.commentPropName,[{[this.options.textNodeName]:o}])}i=e}else if("!D"===t.substr(i+1,2)){const e=s.readDocType(t,i);this.docTypeEntities=e.entities,i=e.i}else if("!["===t.substr(i+1,2)){const e=v(t,"]]>",i,"CDATA is not closed.")-2,o=t.substring(i+9,e);n=this.saveTextToParentTag(n,r,a);let s=this.parseTextData(o,r.tagname,a,!0,!1,!0,!0);null==s&&(s=""),this.options.cdataPropName?r.add(this.options.cdataPropName,[{[this.options.textNodeName]:o}]):r.add(this.options.textNodeName,s),i=e+2}else{let s=w(t,i,this.options.removeNSPrefix),u=s.tagName;const l=s.rawTagName;let c=s.tagExp,f=s.attrExpPresent,p=s.closeIndex;if(this.options.transformTagName){const t=this.options.transformTagName(u);c===u&&(c=t),u=t}r&&n&&"!xml"!==r.tagname&&(n=this.saveTextToParentTag(n,r,a,!1));const h=r;h&&-1!==this.options.unpairedTags.indexOf(h.tagname)&&(r=this.tagsNodeStack.pop(),a=a.substring(0,a.lastIndexOf("."))),u!==e.tagname&&(a+=a?"."+u:u);const d=i;if(this.isItStopNode(this.stopNodesExact,this.stopNodesWildcard,a,u)){let e="";if(c.length>0&&c.lastIndexOf("/")===c.length-1)"/"===u[u.length-1]?(u=u.substr(0,u.length-1),a=a.substr(0,a.length-1),c=u):c=c.substr(0,c.length-1),i=s.closeIndex;else if(-1!==this.options.unpairedTags.indexOf(u))i=s.closeIndex;else{const r=this.readStopNodeData(t,l,p+1);if(!r)throw new Error(`Unexpected end of ${l}`);i=r.i,e=r.tagContent}const n=new o.A(u);u!==c&&f&&(n[":@"]=this.buildAttributesMap(c,a,u)),e&&(e=this.parseTextData(e,u,a,!0,f,!0,!0)),a=a.substr(0,a.lastIndexOf(".")),n.add(this.options.textNodeName,e),this.addChild(r,n,a,d)}else{if(c.length>0&&c.lastIndexOf("/")===c.length-1){if("/"===u[u.length-1]?(u=u.substr(0,u.length-1),a=a.substr(0,a.length-1),c=u):c=c.substr(0,c.length-1),this.options.transformTagName){const t=this.options.transformTagName(u);c===u&&(c=t),u=t}const t=new o.A(u);u!==c&&f&&(t[":@"]=this.buildAttributesMap(c,a,u)),this.addChild(r,t,a,d),a=a.substr(0,a.lastIndexOf("."))}else{const t=new o.A(u);this.tagsNodeStack.push(r),u!==c&&f&&(t[":@"]=this.buildAttributesMap(c,a,u)),this.addChild(r,t,a,d),r=t}n="",i=p}}else n+=t[i];return e.child};function y(t,e,r,n){this.options.captureMetaData||(n=void 0);const o=this.options.updateTag(e.tagname,r,e[":@"]);!1===o||("string"==typeof o?(e.tagname=o,t.addChild(e,n)):t.addChild(e,n))}const g=function(t,e,r){if(-1===t.indexOf("&"))return t;const n=this.options.processEntities;if(!n.enabled)return t;if(n.allowedTags&&!n.allowedTags.includes(e))return t;if(n.tagFilter&&!n.tagFilter(e,r))return t;for(let e in this.docTypeEntities){const r=this.docTypeEntities[e],o=t.match(r.regx);if(o){if(this.entityExpansionCount+=o.length,n.maxTotalExpansions&&this.entityExpansionCount>n.maxTotalExpansions)throw new Error(`Entity expansion limit exceeded: ${this.entityExpansionCount} > ${n.maxTotalExpansions}`);const e=t.length;if(t=t.replace(r.regx,r.val),n.maxExpandedLength&&(this.currentExpandedLength+=t.length-e,this.currentExpandedLength>n.maxExpandedLength))throw new Error(`Total expanded content size exceeded: ${this.currentExpandedLength} > ${n.maxExpandedLength}`)}}if(-1===t.indexOf("&"))return t;for(let e in this.lastEntities){const r=this.lastEntities[e];t=t.replace(r.regex,r.val)}if(-1===t.indexOf("&"))return t;if(this.options.htmlEntities)for(let e in this.htmlEntities){const r=this.htmlEntities[e];t=t.replace(r.regex,r.val)}return t.replace(this.ampEntity.regex,this.ampEntity.val)};function m(t,e,r,n){return t&&(void 0===n&&(n=0===e.child.length),void 0!==(t=this.parseTextData(t,e.tagname,r,!1,!!e[":@"]&&0!==Object.keys(e[":@"]).length,n))&&""!==t&&e.add(this.options.textNodeName,t),t=""),t}function b(t,e,r,n){return!(!e||!e.has(n))||!(!t||!t.has(r))}function v(t,e,r,n){const o=t.indexOf(e,r);if(-1===o)throw new Error(n);return o+e.length-1}function w(t,e,r,n=">"){const o=function(t,e,r=">"){let n,o="";for(let i=e;i",r,`${e} is not closed`);if(t.substring(r+2,i).trim()===e&&(o--,0===o))return{tagContent:t.substring(n,r),i};r=i}else if("?"===t[r+1])r=v(t,"?>",r+1,"StopNode is not closed.");else if("!--"===t.substr(r+1,3))r=v(t,"--\x3e",r+3,"StopNode is not closed.");else if("!["===t.substr(r+1,2))r=v(t,"]]>",r,"StopNode is not closed.")-2;else{const n=w(t,r,">");n&&((n&&n.tagName)===e&&"/"!==n.tagExp[n.tagExp.length-1]&&o++,r=n.closeIndex)}}function x(t,e,r){if(e&&"string"==typeof t){const e=t.trim();return"true"===e||"false"!==e&&(0,a.A)(t,r)}return(0,n.yQ)(t)?t:""}function S(t,e,r){const n=Number.parseInt(t,e);return n>=0&&n<=1114111?String.fromCodePoint(n):r+t+";"}},1912(t,e,r){"use strict";r.d(e,{A:()=>u});var n=r(60341),o=r(79781),i=r(35382),a=r(86301),s=r(13127);class u{constructor(t){this.externalEntities={},this.options=(0,n.D)(t)}parse(t,e){if("string"!=typeof t&&t.toString)t=t.toString();else if("string"!=typeof t)throw new Error("XML data is accepted in String or Bytes[] form.");if(e){!0===e&&(e={});const r=(0,a.t)(t,e);if(!0!==r)throw Error(`${r.err.msg}:${r.err.line}:${r.err.col}`)}const r=new o.A(this.options);r.addExternalEntities(this.externalEntities);const n=r.parseXml(t);return this.options.preserveOrder||void 0===n?n:(0,i.A)(n,this.options)}addEntity(t,e){if(-1!==e.indexOf("&"))throw new Error("Entity value can't have '&'");if(-1!==t.indexOf("&")||-1!==t.indexOf(";"))throw new Error("An entity must be set without '&' and ';'. Eg. use '#xD' for '
'");if("&"===e)throw new Error("An entity with value '&' is not permitted");this.externalEntities[t]=e}static getMetaDataSymbol(){return s.A.getMetaDataSymbol()}}},35382(t,e,r){"use strict";r.d(e,{A:()=>o});const n=r(13127).A.getMetaDataSymbol();function o(t,e){return i(t,e)}function i(t,e,r){let o;const l={};for(let c=0;c0&&(l[e.textNodeName]=o):void 0!==o&&(l[e.textNodeName]=o),l}function a(t){const e=Object.keys(t);for(let t=0;to}),n="function"!=typeof Symbol?"@@xmlMetadata":Symbol("XML Node Metadata");class o{constructor(t){this.tagname=t,this.child=[],this[":@"]={}}add(t,e){"__proto__"===t&&(t="#__proto__"),this.child.push({[t]:e})}addChild(t,e){"__proto__"===t.tagname&&(t.tagname="#__proto__"),t[":@"]&&Object.keys(t[":@"]).length>0?this.child.push({[t.tagname]:t.child,":@":t[":@"]}):this.child.push({[t.tagname]:t.child}),void 0!==e&&(this.child[this.child.length-1][n]={startIndex:e})}static getMetaDataSymbol(){return n}}},21657(t,e,r){"use strict";function n(...t){if(0===t.length)throw new Error("Failed creating sequence: No functions provided");return function(...e){let r=e;const n=this;for(;t.length>0;)r=[t.shift().apply(n,r)];return r[0]}}r.d(e,{K:()=>n})},19621(t,e,r){"use strict";r.d(e,{T:()=>s});var n=r(21657);const o="@@HOTPATCHER",i=()=>{};function a(t){return{original:t,methods:[t],final:!1}}class s{constructor(){this._configuration={registry:{},getEmptyAction:"null"},this.__type__=o}get configuration(){return this._configuration}get getEmptyAction(){return this.configuration.getEmptyAction}set getEmptyAction(t){this.configuration.getEmptyAction=t}control(t,e=!1){if(!t||t.__type__!==o)throw new Error("Failed taking control of target HotPatcher instance: Invalid type or object");return Object.keys(t.configuration.registry).forEach(r=>{this.configuration.registry.hasOwnProperty(r)?e&&(this.configuration.registry[r]=Object.assign({},t.configuration.registry[r])):this.configuration.registry[r]=Object.assign({},t.configuration.registry[r])}),t._configuration=this.configuration,this}execute(t,...e){return(this.get(t)||i)(...e)}get(t){const e=this.configuration.registry[t];if(!e)switch(this.getEmptyAction){case"null":return null;case"throw":throw new Error(`Failed handling method request: No method provided for override: ${t}`);default:throw new Error(`Failed handling request which resulted in an empty method: Invalid empty-action specified: ${this.getEmptyAction}`)}return(0,n.K)(...e.methods)}isPatched(t){return!!this.configuration.registry[t]}patch(t,e,r={}){const{chain:n=!1}=r;if(this.configuration.registry[t]&&this.configuration.registry[t].final)throw new Error(`Failed patching '${t}': Method marked as being final`);if("function"!=typeof e)throw new Error(`Failed patching '${t}': Provided method is not a function`);if(n)this.configuration.registry[t]?this.configuration.registry[t].methods.push(e):this.configuration.registry[t]=a(e);else if(this.isPatched(t)){const{original:r}=this.configuration.registry[t];this.configuration.registry[t]=Object.assign(a(e),{original:r})}else this.configuration.registry[t]=a(e);return this}patchInline(t,e,...r){return this.isPatched(t)||this.patch(t,e),this.execute(t,...r)}plugin(t,...e){return e.forEach(e=>{this.patch(t,e,{chain:!0})}),this}restore(t){if(!this.isPatched(t))throw new Error(`Failed restoring method: No method present for key: ${t}`);if("function"!=typeof this.configuration.registry[t].original)throw new Error(`Failed restoring method: Original method not found or of invalid type for key: ${t}`);return this.configuration.registry[t].methods=[this.configuration.registry[t].original],this}setFinal(t){if(!this.configuration.registry.hasOwnProperty(t))throw new Error(`Failed marking '${t}' as final: No method found for key`);return this.configuration.registry[t].final=!0,this}}},93028(t,e,r){"use strict";function n(t){if(!o(t))throw new Error("Parameter was not an error")}function o(t){return!!t&&"object"==typeof t&&"[object Error]"===(e=t,Object.prototype.toString.call(e))||t instanceof Error;var e}r.d(e,{b:()=>o,t:()=>n})},11163(t,e,r){"use strict";r.d(e,{z:()=>n});function n(){return"Layerr"}},42294(t,e,r){"use strict";r.d(e,{GU:()=>n.G});var n=r(17601)},17601(t,e,r){"use strict";r.d(e,{G:()=>a});var n=r(93028),o=r(11163),i=r(78049);class a extends Error{constructor(t,e){const r=[...arguments],{options:n,shortMessage:a}=(0,i.W)(r);let s=a;if(n.cause&&(s=`${s}: ${n.cause.message}`),super(s),this.message=s,n.name&&"string"==typeof n.name?this.name=n.name:this.name=(0,o.z)(),n.cause&&Object.defineProperty(this,"_cause",{value:n.cause}),Object.defineProperty(this,"_info",{value:{}}),n.info&&"object"==typeof n.info&&Object.assign(this._info,n.info),Error.captureStackTrace){const t=n.constructorOpt||this.constructor;Error.captureStackTrace(this,t)}}static cause(t){return(0,n.t)(t),t._cause&&(0,n.b)(t._cause)?t._cause:null}static fullStack(t){(0,n.t)(t);const e=a.cause(t);return e?`${t.stack}\ncaused by: ${a.fullStack(e)}`:t.stack??""}static info(t){(0,n.t)(t);const e={},r=a.cause(t);return r&&Object.assign(e,a.info(r)),t._info&&Object.assign(e,t._info),e}toString(){let t=this.name||this.constructor.name||this.constructor.prototype.name;return this.message&&(t=`${t}: ${this.message}`),t}}},78049(t,e,r){"use strict";r.d(e,{W:()=>o});var n=r(93028);function o(t){let e,r="";if(0===t.length)e={};else if((0,n.b)(t[0]))e={cause:t[0]},r=t.slice(1).join(" ")||"";else if(t[0]&&"object"==typeof t[0])e=Object.assign({},t[0]),r=t.slice(1).join(" ")||"";else{if("string"!=typeof t[0])throw new Error("Invalid arguments passed to Layerr");e={},r=r=t.join(" ")||""}return{options:e,shortMessage:r}}},60524(t,e,r){"use strict";r.d(e,{A:()=>a});const n=/^[-+]?0x[a-fA-F0-9]+$/,o=/^([\-\+])?(0*)([0-9]*(\.[0-9]*)?)$/,i={hex:!0,leadingZeros:!0,decimalPoint:".",eNotation:!0};function a(t,e={}){if(e=Object.assign({},i,e),!t||"string"!=typeof t)return t;let r=t.trim();if(void 0!==e.skipLike&&e.skipLike.test(r))return t;if("0"===t)return 0;if(e.hex&&n.test(r))return function(t){if(parseInt)return parseInt(t,16);if(Number.parseInt)return Number.parseInt(t,16);if(window&&window.parseInt)return window.parseInt(t,16);throw new Error("parseInt, Number.parseInt, window.parseInt are not supported")}(r);if(r.includes("e")||r.includes("E"))return function(t,e,r){if(!r.eNotation)return t;const n=e.match(s);if(n){let o=n[1]||"";const i=-1===n[3].indexOf("e")?"E":"e",a=n[2],s=o?t[a.length+1]===i:t[a.length]===i;return a.length>1&&s?t:1!==a.length||!n[3].startsWith(`.${i}`)&&n[3][0]!==i?r.leadingZeros&&!s?(e=(n[1]||"")+n[3],Number(e)):t:Number(e)}return t}(t,r,e);{const n=o.exec(r);if(n){const o=n[1]||"",i=n[2];let s=(a=n[3])&&-1!==a.indexOf(".")?("."===(a=a.replace(/0+$/,""))?a="0":"."===a[0]?a="0"+a:"."===a[a.length-1]&&(a=a.substring(0,a.length-1)),a):a;const u=o?"."===t[i.length+1]:"."===t[i.length];if(!e.leadingZeros&&(i.length>1||1===i.length&&!u))return t;{const n=Number(r),a=String(n);if(0===n)return n;if(-1!==a.search(/[eE]/))return e.eNotation?n:t;if(-1!==r.indexOf("."))return"0"===a||a===s||a===`${o}${s}`?n:t;let u=i?s:r;return i?u===a||o+u===a?n:t:u===a||u===o+a?n:t}}return t}var a}const s=/^([-+])?(0*)(\d*(\.\d*)?[eE][-\+]?\d+)$/},406(t,e,r){"use strict";function n(){return function(t){var e=[];if(0===t.length)return"";if("string"!=typeof t[0])throw new TypeError("Url must be a string. Received "+t[0]);if(t[0].match(/^[^/:]+:\/*$/)&&t.length>1){var r=t.shift();t[0]=r+t[0]}t[0].match(/^file:\/\/\//)?t[0]=t[0].replace(/^([^/:]+):\/*/,"$1:///"):t[0]=t[0].replace(/^([^/:]+):\/*/,"$1://");for(var n=0;n0&&(o=o.replace(/^[\/]+/,"")),o=n0?"?":"")+a.join("&")}("object"==typeof arguments[0]?arguments[0]:[].slice.call(arguments))}r.d(e,{A:()=>n})},19396(t,e,r){"use strict";r.d(e,{V:()=>o});var n=r(57221);function o(t,e){return`Basic ${(0,n.nk)(`${t}:${e}`)}`}},90036(t,e,r){"use strict";r.d(e,{C8:()=>i,Wb:()=>s,XX:()=>a,oD:()=>u});var n=r(83503),o=r(35658);function i(t,e,r){return{username:t,password:e,ha1:r,nc:0,algorithm:"md5",hasDigestAuth:!1}}function a(t,e){const r=t.url.replace("//",""),i=-1==r.indexOf("/")?"/":r.slice(r.indexOf("/")),a=t.method?t.method.toUpperCase():"GET",s=!!/(^|,)\s*auth\s*($|,)/.test(e.qop)&&"auth",u=`00000000${e.nc}`.slice(-8),l=(0,o.M)(e.algorithm,e.username,e.realm,e.password,e.nonce,e.cnonce,e.ha1),c=n(`${a}:${i}`),f=n(s?`${l}:${e.nonce}:${u}:${e.cnonce}:${s}:${c}`:`${l}:${e.nonce}:${c}`),p={username:e.username,realm:e.realm,nonce:e.nonce,uri:i,qop:s,response:f,nc:u,cnonce:e.cnonce,algorithm:e.algorithm,opaque:e.opaque},h=[];for(const t in p)p[t]&&("qop"===t||"nc"===t||"algorithm"===t?h.push(`${t}=${p[t]}`):h.push(`${t}="${p[t]}"`));return`Digest ${h.join(", ")}`}function s(t,e){if(!u(t))return!1;const r=/([a-z0-9_-]+)=(?:"([^"]+)"|([a-z0-9_-]+))/gi;for(;;){const n=t.headers&&t.headers.get("www-authenticate")||"",o=r.exec(n);if(!o)break;e[o[1]]=o[2]||o[3]}return e.nc+=1,e.cnonce=function(){let t="";for(let e=0;e<32;++e)t=`${t}${"abcdef0123456789"[Math.floor(16*Math.random())]}`;return t}(),!0}function u(t){return"digest"===(t.headers&&t.headers.get("www-authenticate")||"").split(/\s/)[0].toLowerCase()}},36942(t,e,r){"use strict";r.d(e,{e:()=>u});var n=r(42294),o=r(90036),i=r(19396),a=r(89793),s=r(38374);function u(t,e,r,u,l){switch(t.authType){case s.hT.Auto:e&&r&&(t.headers.Authorization=(0,i.V)(e,r));break;case s.hT.Digest:t.digest=(0,o.C8)(e,r,l);break;case s.hT.None:break;case s.hT.Password:t.headers.Authorization=(0,i.V)(e,r);break;case s.hT.Token:t.headers.Authorization=(0,a.O)(u);break;default:throw new n.GU({info:{code:s.O4.InvalidAuthType}},`Invalid auth type: ${t.authType}`)}}},89793(t,e,r){"use strict";function n(t){return`${t.token_type} ${t.access_token}`}r.d(e,{O:()=>n})},47397(t,e,r){"use strict";r.d(e,{m:()=>i});const n="function"==typeof ArrayBuffer,{toString:o}=Object.prototype;function i(t){return n&&(t instanceof ArrayBuffer||"[object ArrayBuffer]"===o.call(t))}},53850(t,e,r){"use strict";function n(t){return null!=t&&null!=t.constructor&&"function"==typeof t.constructor.isBuffer&&t.constructor.isBuffer(t)}r.d(e,{P:()=>n})},22921(t,e,r){"use strict";function n(){return"string"==typeof TARGET&&"react-native"===TARGET}function o(){return"string"==typeof TARGET&&"web"===TARGET}r.d(e,{H:()=>o,l:()=>n})},84819(t,e,r){"use strict";r.d(e,{G:()=>i});var n=r(19621);let o=null;function i(){return o||(o=new n.T),o}},84997(t,e,r){"use strict";r.d(e,{U:()=>A});var n=r(85394),o=r(36942),i=r(50335),a=r(28161),s=r(68476),u=r(76374),l=r(77101),c=r(75892),f=r(74419),p=r(17658),h=r(39615),d=r(86772),y=r(84830),g=r(80156),m=r(77087),b=r(30047),v=r(81838),w=r(10524),E=r(90176),x=r(38374);const S="https://github.com/perry-mitchell/webdav-client/blob/master/LOCK_CONTACT.md";function A(t,e={}){const{authType:r=null,remoteBasePath:A,contactHref:O=S,ha1:_,headers:T={},httpAgent:j,httpsAgent:P,password:R,token:N,username:k,withCredentials:I}=e;let C=r;C||(C=k||R?x.hT.Password:x.hT.None);const M={authType:C,remoteBasePath:A,contactHref:O,ha1:_,headers:Object.assign({},T),httpAgent:j,httpsAgent:P,password:R,parsing:{attributeNamePrefix:e.attributeNamePrefix??"@",attributeParsers:[],tagParsers:[E.jp]},remotePath:(0,n.wB)(t),remoteURL:t,token:N,username:k,withCredentials:I};return(0,o.e)(M,k,R,N,_),{copyFile:(t,e,r)=>(0,i.m)(M,t,e,r),createDirectory:(t,e)=>(0,a.c)(M,t,e),createReadStream:(t,e)=>(0,s.V)(M,t,e),createWriteStream:(t,e,r)=>(0,s.o)(M,t,e,r),customRequest:(t,e)=>(0,u.J)(M,t,e),deleteFile:(t,e)=>(0,l.W)(M,t,e),exists:(t,e)=>(0,c.t)(M,t,e),getDirectoryContents:(t,e)=>(0,f.A)(M,t,e),getFileContents:(t,e)=>(0,p.F)(M,t,e),getFileDownloadLink:t=>(0,p.b)(M,t),getFileUploadLink:t=>(0,b.w)(M,t),getHeaders:()=>Object.assign({},M.headers),getQuota:t=>(0,d.T)(M,t),lock:(t,e)=>(0,h.s)(M,t,e),moveFile:(t,e,r)=>(0,m.m)(M,t,e,r),putFileContents:(t,e,r)=>(0,b.g)(M,t,e,r),partialUpdateFileContents:(t,e,r,n,o)=>(0,v.V)(M,t,e,r,n,o),getDAVCompliance:t=>(0,w.p)(M,t),search:(t,e)=>(0,g.T)(M,t,e),setHeaders:t=>{M.headers=Object.assign({},t)},stat:(t,e)=>(0,y.z)(M,t,e),unlock:(t,e,r)=>(0,h.T)(M,t,e,r),registerAttributeParser:t=>{M.parsing.attributeParsers.push(t)},registerTagParser:t=>{M.parsing.tagParsers.push(t)}}}},82415(t,e,r){"use strict";r.d(e,{UU:()=>n.U,h4:()=>o.h4});var n=r(84997),o=(r(38374),r(90176));r(71922),r(5e3)},50335(t,e,r){"use strict";r.d(e,{m:()=>s});var n=r(85394),o=r(36236),i=r(89062),a=r(5e3);async function s(t,e,r,s={}){const u=(0,i.H)({url:(0,n.oq)(t.remoteURL,(0,o.O0)(e)),method:"COPY",headers:{Destination:(0,n.oq)(t.remoteURL,(0,o.O0)(r)),Overwrite:!1===s.overwrite?"F":"T",Depth:s.shallow?"0":"infinity"}},t,s),l=await(0,i.E)(u,t);(0,a.HT)(t,l)}},28161(t,e,r){"use strict";r.d(e,{c:()=>u});var n=r(85394),o=r(36236),i=r(89062),a=r(5e3),s=r(84830);async function u(t,e,r={}){if(!0===r.recursive)return async function(t,e,r={}){const n=(0,o.xi)((0,o.qb)(e));n.sort((t,e)=>t.length>e.length?1:e.length>t.length?-1:0);let i=!1;for(const o of n)if(i)await u(t,o,{...r,recursive:!1});else try{if("directory"!==(await(0,s.z)(t,o)).type)throw new Error(`Path includes a file: ${e}`)}catch(e){if(404!==e.status)throw e;i=!0,await u(t,o,{...r,recursive:!1})}}(t,e,r);const l=(0,i.H)({url:(0,n.oq)(t.remoteURL,(f=(0,o.O0)(e),f.endsWith("/")?f:f+"/")),method:"MKCOL"},t,r),c=await(0,i.E)(l,t);var f;(0,a.HT)(t,c)}},68476(t,e,r){"use strict";r.d(e,{V:()=>l,o:()=>c});var n=r(88310),o=r(85394),i=r(36236),a=r(89062),s=r(5e3);const u=()=>{};function l(t,e,r={}){const u=new(0,n.PassThrough);return async function(t,e,r={}){const n={};if("object"==typeof r.range&&"number"==typeof r.range.start){let t=`bytes=${r.range.start}-`;"number"==typeof r.range.end&&(t=`${t}${r.range.end}`),n.Range=t}const u=(0,a.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"GET",headers:n},t,r),l=await(0,a.E)(u,t);if((0,s.HT)(t,l),n.Range&&206!==l.status){const t=new Error(`Invalid response code for partial request: ${l.status}`);throw t.status=l.status,t}return r.callback&&setTimeout(()=>{r.callback(l)},0),l.body}(t,e,r).then(t=>{t.pipe(u)}).catch(t=>{u.emit("error",t)}),u}function c(t,e,r={},l=u){const c=new(0,n.PassThrough),f={};!1===r.overwrite&&(f["If-None-Match"]="*");const p=(0,a.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"PUT",headers:f,data:c,maxRedirects:0},t,r);return(0,a.E)(p,t).then(e=>(0,s.HT)(t,e)).then(t=>{setTimeout(()=>{l(t)},0)}).catch(t=>{c.emit("error",t)}),c}},76374(t,e,r){"use strict";r.d(e,{J:()=>s});var n=r(85394),o=r(36236),i=r(89062),a=r(5e3);async function s(t,e,r){r.url||(r.url=(0,n.oq)(t.remoteURL,(0,o.O0)(e)));const s=(0,i.H)(r,t,{}),u=await(0,i.E)(s,t);return(0,a.HT)(t,u),u}},77101(t,e,r){"use strict";r.d(e,{W:()=>s});var n=r(85394),o=r(36236),i=r(89062),a=r(5e3);async function s(t,e,r={}){const s=(0,i.H)({url:(0,n.oq)(t.remoteURL,(0,o.O0)(e)),method:"DELETE"},t,r),u=await(0,i.E)(s,t);(0,a.HT)(t,u)}},74419(t,e,r){"use strict";r.d(e,{A:()=>l});var n=r(12692),o=r(85394),i=r(36236),a=r(90176),s=r(89062),u=r(5e3);async function l(t,e,r={}){const l=(0,s.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e),"/"),method:"PROPFIND",headers:{Accept:"text/plain,application/xml",Depth:r.deep?"infinity":"1"}},t,r),c=await(0,s.E)(l,t);(0,u.HT)(t,c);const f=await c.text();if(!f)throw new Error("Failed parsing directory contents: Empty response");const p=await(0,a.h4)(f,t.parsing),h=(0,i.dU)(e);let d=function(t,e,r,s=!1,u=!1){const l=n.join(e,"/"),{multistatus:{response:c}}=t,f=c.map(t=>{const e=(0,o.S8)(t.href),{propstat:{prop:r}}=t,u="/"===l?decodeURIComponent((0,i.qb)(e)):(0,i.qb)(n.relative(decodeURIComponent(l),decodeURIComponent(e)));return(0,a.ch)(r,u,s)});return u?f:f.filter(t=>t.basename&&("file"===t.type||t.filename!==r.replace(/\/$/,"")))}(p,(0,i.dU)(t.remoteBasePath||t.remotePath),h,r.details,r.includeSelf);return r.glob&&(d=(0,u.eh)(d,r.glob)),(0,u.hq)(c,d,r.details)}},75892(t,e,r){"use strict";r.d(e,{t:()=>o});var n=r(84830);async function o(t,e,r={}){try{return await(0,n.z)(t,e,r),!0}catch(t){if(404===t.status)return!1;throw t}}},10524(t,e,r){"use strict";r.d(e,{p:()=>s});var n=r(85394),o=r(36236),i=r(89062),a=r(5e3);async function s(t,e,r={}){const s=(0,i.H)({url:(0,n.oq)(t.remoteURL,(0,o.O0)(e)),method:"OPTIONS"},t,r),u=await(0,i.E)(s,t);try{(0,a.HT)(t,u)}catch(t){throw t}return{compliance:(u.headers.get("DAV")??"").split(",").map(t=>t.trim()),server:u.headers.get("Server")??""}}},17658(t,e,r){"use strict";r.d(e,{F:()=>h,b:()=>d});var n=r(42294),o=r(85394),i=r(36236),a=r(57221),s=r(22921),u=r(89062),l=r(5e3),c=r(38374),f=r(62045).hp;const p=t=>t;async function h(t,e,r={}){const{format:a="binary"}=r;if("binary"!==a&&"text"!==a)throw new n.GU({info:{code:c.O4.InvalidOutputFormat}},`Invalid output format: ${a}`);return"text"===a?async function(t,e,r={}){const n=(0,u.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"GET",headers:{Accept:"text/plain"},transformResponse:[p]},t,r),a=await(0,u.E)(n,t);(0,l.HT)(t,a);const s=await a.text();return(0,l.hq)(a,s,r.details)}(t,e,r):async function(t,e,r={}){const n=(0,u.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"GET"},t,r),a=await(0,u.E)(n,t);let c;return(0,l.HT)(t,a),c=(0,s.H)()||(0,s.l)()?await a.arrayBuffer():f.from(await a.arrayBuffer()),(0,l.hq)(a,c,r.details)}(t,e,r)}function d(t,e){let r=(0,o.oq)(t.remoteURL,(0,i.O0)(e));const s=/^https:/i.test(r)?"https":"http";switch(t.authType){case c.hT.None:break;case c.hT.Password:{const e=t.headers.Authorization.replace(/^Basic /i,"").trim(),n=(0,a.Ey)(e);r=r.replace(/^https?:\/\//,`${s}://${n}@`);break}default:throw new n.GU({info:{code:c.O4.LinkUnsupportedAuthType}},`Unsupported auth type for file link: ${t.authType}`)}return r}},86772(t,e,r){"use strict";r.d(e,{T:()=>u});var n=r(89062),o=r(5e3),i=r(90176),a=r(85394),s=r(7815);async function u(t,e={}){const r=e.path||"/",u=(0,n.H)({url:(0,a.oq)(t.remoteURL,r),method:"PROPFIND",headers:{Accept:"text/plain,application/xml",Depth:"0"}},t,e),l=await(0,n.E)(u,t);(0,o.HT)(t,l);const c=await l.text(),f=await(0,i.h4)(c,t.parsing),p=(0,s.K)(f);return(0,o.hq)(l,p,e.details)}},39615(t,e,r){"use strict";r.d(e,{T:()=>f,s:()=>c});var n=r(26602),o=r(85394),i=r(36236),a=r(27562),s=r(89062),u=r(5e3);const l="Infinite, Second-4100000000";async function c(t,e,r={}){const{refreshToken:c,timeout:f=l}=r,p={Accept:"text/plain,application/xml",Timeout:f};c&&(p.If=c);const h=(0,s.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"LOCK",headers:p,data:(0,a.A)(t.contactHref)},t,r),d=await(0,s.E)(h,t);(0,u.HT)(t,d);const y=await d.text(),g=(0,a.o)(y),m=n.get(g,"prop.lockdiscovery.activelock.locktoken.href"),b=n.get(g,"prop.lockdiscovery.activelock.timeout");if(!m)throw(0,u.YQ)(d,"No lock token received: ");return{token:m,serverTimeout:b}}async function f(t,e,r,n={}){const a=(0,s.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"UNLOCK",headers:{"Lock-Token":r}},t,n),l=await(0,s.E)(a,t);if((0,u.HT)(t,l),204!==l.status&&200!==l.status)throw(0,u.YQ)(l)}},77087(t,e,r){"use strict";r.d(e,{m:()=>s});var n=r(85394),o=r(36236),i=r(89062),a=r(5e3);async function s(t,e,r,s={}){const u=(0,i.H)({url:(0,n.oq)(t.remoteURL,(0,o.O0)(e)),method:"MOVE",headers:{Destination:(0,n.oq)(t.remoteURL,(0,o.O0)(r)),Overwrite:!1===s.overwrite?"F":"T"}},t,s),l=await(0,i.E)(u,t);(0,a.HT)(t,l)}},81838(t,e,r){"use strict";r.d(e,{V:()=>c});var n=r(42294),o=r(85394),i=r(36236),a=r(89062),s=r(5e3),u=r(10524),l=r(38374);async function c(t,e,r,c,f,p={}){const h=await(0,u.p)(t,e,p);if(h.compliance.includes("sabredav-partialupdate"))return await async function(t,e,r,u,c,f={}){if(r>u||r<0)throw new n.GU({info:{code:l.O4.InvalidUpdateRange}},`Invalid update range ${r} for partial update`);const p={"Content-Type":"application/x-sabredav-partialupdate","Content-Length":""+(u-r+1),"X-Update-Range":`bytes=${r}-${u}`},h=(0,a.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"PATCH",headers:p,data:c},t,f),d=await(0,a.E)(h,t);(0,s.HT)(t,d)}(t,e,r,c,f,p);if(h.server.includes("Apache")&&h.compliance.includes(""))return await async function(t,e,r,u,c,f={}){if(r>u||r<0)throw new n.GU({info:{code:l.O4.InvalidUpdateRange}},`Invalid update range ${r} for partial update`);const p={"Content-Type":"application/octet-stream","Content-Length":""+(u-r+1),"Content-Range":`bytes ${r}-${u}/*`},h=(0,a.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"PUT",headers:p,data:c},t,f),d=await(0,a.E)(h,t);(0,s.HT)(t,d)}(t,e,r,c,f,p);throw new n.GU({info:{code:l.O4.NotSupported}},"Not supported")}},30047(t,e,r){"use strict";r.d(e,{g:()=>h,w:()=>d});var n=r(42294),o=r(88310),i=r(57221),a=r(85394),s=r(36236),u=r(71922),l=r(22921),c=r(89062),f=r(5e3),p=r(38374);async function h(t,e,r,n={}){const{contentLength:i=!0,overwrite:p=!0}=n,h={"Content-Type":"application/octet-stream"};!(0,l.H)()&&!(0,l.l)()&&void 0!==o&&void 0!==o?.Readable&&r instanceof o.Readable||!1===i||(h["Content-Length"]="number"==typeof i?`${i}`:`${(0,u.J)(r)}`),p||(h["If-None-Match"]="*");const d=(0,c.H)({url:(0,a.oq)(t.remoteURL,(0,s.O0)(e)),method:"PUT",headers:h,data:r},t,n),y=await(0,c.E)(d,t);try{(0,f.HT)(t,y)}catch(t){const e=t;if(412!==e.status||p)throw e;return!1}return!0}function d(t,e){let r=`${(0,a.oq)(t.remoteURL,(0,s.O0)(e))}?Content-Type=application/octet-stream`;const o=/^https:/i.test(r)?"https":"http";switch(t.authType){case p.hT.None:break;case p.hT.Password:{const e=t.headers.Authorization.replace(/^Basic /i,"").trim(),n=(0,i.Ey)(e);r=r.replace(/^https?:\/\//,`${o}://${n}@`);break}default:throw new n.GU({info:{code:p.O4.LinkUnsupportedAuthType}},`Unsupported auth type for file link: ${t.authType}`)}return r}},80156(t,e,r){"use strict";r.d(e,{T:()=>u});var n=r(90176),o=r(85394),i=r(36236),a=r(89062),s=r(5e3);async function u(t,e,r={}){const{details:u=!1}=r,l=(0,a.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"SEARCH",headers:{Accept:"text/plain,application/xml","Content-Type":t.headers["Content-Type"]||"application/xml; charset=utf-8"}},t,r),c=await(0,a.E)(l,t);(0,s.HT)(t,c);const f=await c.text(),p=await(0,n.h4)(f,t.parsing),h=(0,n.KA)(p,e,u);return(0,s.hq)(c,h,u)}},84830(t,e,r){"use strict";r.d(e,{z:()=>u});var n=r(90176),o=r(85394),i=r(36236),a=r(89062),s=r(5e3);async function u(t,e,r={}){const{details:u=!1}=r,l=(0,a.H)({url:(0,o.oq)(t.remoteURL,(0,i.O0)(e)),method:"PROPFIND",headers:{Accept:"text/plain,application/xml",Depth:"0"}},t,r),c=await(0,a.E)(l,t);(0,s.HT)(t,c);const f=await c.text(),p=await(0,n.h4)(f,t.parsing),h=(0,n.ky)(p,e,u);return(0,s.hq)(c,h,u)}},89062(t,e,r){"use strict";r.d(e,{E:()=>y,H:()=>d});var n=r(11568),o=r(11083),i=r(97192),a=r(84819),s=r(22921),u=r(90036),l=r(79275),c=r(79605),f=r(39299),p=r(38374),h=r(36942);function d(t,e,r){const n=(0,l.q)(t);return n.headers=(0,c.l)(e.headers,n.headers||{},r.headers||{}),void 0!==r.data&&(n.data=r.data),r.signal&&(n.signal=r.signal),e.httpAgent&&(n.httpAgent=e.httpAgent),e.httpsAgent&&(n.httpsAgent=e.httpsAgent),e.digest&&(n._digest=e.digest),"boolean"==typeof e.withCredentials&&(n.withCredentials=e.withCredentials),n}async function y(t,e){return e.authType===p.hT.Auto?async function(t,e){const r=await m(t);return r.ok?(e.authType=p.hT.Password,r):401==r.status&&(0,u.oD)(r)?(e.authType=p.hT.Digest,(0,h.e)(e,e.username,e.password,void 0,void 0),t._digest=e.digest,g(t)):r}(t,e):t._digest?g(t):m(t)}async function g(t){const e=t._digest;delete t._digest,e.hasDigestAuth&&(t=(0,l.h)(t,{headers:{Authorization:(0,u.XX)(t,e)}}));const r=await m(t);if(401==r.status){if(e.hasDigestAuth=(0,u.Wb)(r,e),e.hasDigestAuth){t=(0,l.h)(t,{headers:{Authorization:(0,u.XX)(t,e)}});const r=await m(t);return 401==r.status?e.hasDigestAuth=!1:e.nc++,r}}else e.nc++;return r}function m(t){const e=(0,a.G)();return e.patchInline("request",t=>e.patchInline("fetch",i.hd,t.url,function(t){let e={};const r={method:t.method};if(t.headers&&(e=(0,c.l)(e,t.headers)),void 0!==t.data){const[n,o]=(0,f.P)(t.data);r.body=n,e=(0,c.l)(e,o)}return t.signal&&(r.signal=t.signal),t.withCredentials&&(r.credentials="include"),(0,s.H)()||(0,s.l)()||(t.httpAgent||t.httpsAgent)&&(r.agent=e=>"http:"===e.protocol?t.httpAgent||new n.Agent:t.httpsAgent||new o.Agent),r.headers=e,r}(t)),t)}},5e3(t,e,r){"use strict";r.d(e,{HT:()=>a,YQ:()=>i,eh:()=>s,hq:()=>u});var n=r(44916),o=r(79605);function i(t,e=""){const r=new Error(`${e}Invalid response: ${t.status} ${t.statusText}`);return r.status=t.status,r.response=t,r}function a(t,e){const{status:r}=e;if(401===r&&t.digest)return e;if(r>=400)throw i(e);return e}function s(t,e){return t.filter(t=>(0,n.xF)(t.filename,e,{matchBase:!0}))}function u(t,e,r=!1){return r?{data:e,headers:t.headers?(0,o.N)(t.headers):{},status:t.status,statusText:t.statusText}:e}},39299(t,e,r){"use strict";r.d(e,{P:()=>s});var n=r(88310),o=r(47397),i=r(53850),a=r(22921);function s(t){if(!(0,a.H)()&&!(0,a.l)()&&t instanceof n.Readable)return[t,{}];if("string"==typeof t)return[t,{}];if((0,i.P)(t))return[t,{}];if((0,o.m)(t))return[t,{}];if(t&&"object"==typeof t)return[JSON.stringify(t),{"content-type":"application/json"}];throw new Error("Unable to convert request body: Unexpected body type: "+typeof t)}},35658(t,e,r){"use strict";r.d(e,{M:()=>o});var n=r(83503);function o(t,e,r,o,i,a,s){const u=s||n(`${e}:${r}:${o}`);return t&&"md5-sess"===t.toLowerCase()?n(`${u}:${i}:${a}`):u}},90176(t,e,r){"use strict";r.d(e,{KA:()=>h,ch:()=>f,h4:()=>c,i5:()=>d,jp:()=>u,ky:()=>p});var n,o=r(12692),i=r(1912),a=r(26602),s=r(36236);function u(t,e){if(!t.endsWith("propstat.prop.displayname"))return e}function l(t,e,r=n.Original){const o=a.get(t,e);return"array"===r&&!1===Array.isArray(o)?[o]:"object"===r&&Array.isArray(o)?o[0]:o}function c(t,e){return e=e??{attributeNamePrefix:"@",attributeParsers:[],tagParsers:[u]},new Promise(r=>{r(function(t){const{multistatus:e}=t;if(""===e)return{multistatus:{response:[]}};if(!e)throw new Error("Invalid response: No root multistatus found");const r={multistatus:Array.isArray(e)?e[0]:e};return a.set(r,"multistatus.response",l(r,"multistatus.response",n.Array)),a.set(r,"multistatus.response",a.get(r,"multistatus.response").map(t=>function(t){const e=Object.assign({},t);return e.status?a.set(e,"status",l(e,"status",n.Object)):(a.set(e,"propstat",l(e,"propstat",n.Object)),a.set(e,"propstat.prop",l(e,"propstat.prop",n.Object))),e}(t))),r}(function({attributeNamePrefix:t,attributeParsers:e,tagParsers:r}){return new i.A({allowBooleanAttributes:!0,attributeNamePrefix:t,textNodeName:"text",ignoreAttributes:!1,removeNSPrefix:!0,numberParseOptions:{hex:!0,leadingZeros:!1},attributeValueProcessor(t,r,n){for(const t of e)try{const e=t(n,r);if(e!==r)return e}catch(t){}return r},tagValueProcessor(t,e,n){for(const t of r)try{const r=t(n,e);if(r!==e)return r}catch(t){}return e}})}(e).parse(t)))})}function f(t,e,r=!1){const{getlastmodified:n=null,getcontentlength:i="0",resourcetype:a=null,getcontenttype:s=null,getetag:u=null}=t,l=a&&"object"==typeof a&&void 0!==a.collection?"directory":"file",c={filename:e,basename:o.basename(e),lastmod:n,size:parseInt(i,10),type:l,etag:"string"==typeof u?u.replace(/"/g,""):null};return"file"===l&&(c.mime=s&&"string"==typeof s?s.split(";")[0]:""),r&&(void 0!==t.displayname&&(t.displayname=String(t.displayname)),c.props=t),c}function p(t,e,r=!1){let n=null;try{t.multistatus.response[0].propstat&&(n=t.multistatus.response[0])}catch(t){}if(!n)throw new Error("Failed getting item stat: bad response");const{propstat:{prop:o,status:i}}=n,[a,u,l]=i.split(" ",3),c=parseInt(u,10);if(c>=400){const t=new Error(`Invalid response: ${c} ${l}`);throw t.status=c,t}return f(o,(0,s.qb)(e),r)}function h(t,e,r){const n={truncated:!1,results:[]};return n.truncated=t.multistatus.response.some(t=>"507"===(t.status||t.propstat?.status).split(" ",3)?.[1]&&t.href.replace(/\/$/,"").endsWith((0,s.O0)(e).replace(/\/$/,""))),t.multistatus.response.forEach(t=>{if(void 0===t.propstat)return;const e=t.href.split("/").map(decodeURIComponent).join("/");n.results.push(f(t.propstat.prop,e,r))}),n}function d(t){switch(String(t)){case"-3":return"unlimited";case"-2":case"-1":return"unknown";default:return parseInt(String(t),10)}}!function(t){t.Array="array",t.Object="object",t.Original="original"}(n||(n={}))},57221(t,e,r){"use strict";r.d(e,{Ey:()=>o,nk:()=>i});var n=r(85914);function o(t){return n.decode(t)}function i(t){return n.encode(t)}r(15723)},79605(t,e,r){"use strict";function n(t){const e={};for(const r of t.keys())e[r]=t.get(r);return e}function o(...t){if(0===t.length)return{};const e={};return t.reduce((t,r)=>(Object.keys(r).forEach(n=>{const o=n.toLowerCase();e.hasOwnProperty(o)?t[e[o]]=r[n]:(e[o]=n,t[n]=r[n])}),t),{})}r.d(e,{N:()=>n,l:()=>o})},79275(t,e,r){"use strict";function n(t){return function(t){if("object"!=typeof t||null===t||"[object Object]"!=Object.prototype.toString.call(t))return!1;if(null===Object.getPrototypeOf(t))return!0;let e=t;for(;null!==Object.getPrototypeOf(e);)e=Object.getPrototypeOf(e);return Object.getPrototypeOf(t)===e}(t)?Object.assign({},t):Object.setPrototypeOf(Object.assign({},t),Object.getPrototypeOf(t))}function o(...t){let e=null,r=[...t];for(;r.length>0;){const t=r.shift();e=e?i(e,t):n(t)}return e}function i(t,e){const r=n(t);return Object.keys(e).forEach(t=>{r.hasOwnProperty(t)?Array.isArray(e[t])?r[t]=Array.isArray(r[t])?[...r[t],...e[t]]:[...e[t]]:"object"==typeof e[t]&&e[t]?r[t]="object"==typeof r[t]&&r[t]?i(r[t],e[t]):n(e[t]):r[t]=e[t]:r[t]=e[t]}),r}r.d(e,{h:()=>o,q:()=>n})},36236(t,e,r){"use strict";r.d(e,{O0:()=>s,dU:()=>l,qb:()=>c,xi:()=>u});var n=r(42294),o=r(12692);const i="__PATH_SEPARATOR_POSIX__",a="__PATH_SEPARATOR_WINDOWS__";function s(t){try{const e=t.replace(/\//g,i).replace(/\\\\/g,a);return encodeURIComponent(e).split(a).join("\\\\").split(i).join("/")}catch(t){throw new n.GU(t,"Failed encoding path")}}function u(t){if(!t||"/"===t)return[];let e=t;const r=[];do{r.push(e),e=o.dirname(e)}while(e&&"/"!==e);return r}function l(t){return t.startsWith("/")?t:"/"+t}function c(t){let e=t;return"/"!==e[0]&&(e="/"+e),/^.+\/$/.test(e)&&(e=e.substr(0,e.length-1)),e}},7815(t,e,r){"use strict";r.d(e,{K:()=>o});var n=r(90176);function o(t){try{const[e]=t.multistatus.response,{propstat:{prop:{"quota-used-bytes":r,"quota-available-bytes":o}}}=e;return void 0!==r&&void 0!==o?{used:parseInt(String(r),10),available:(0,n.i5)(o)}:null}catch(t){}return null}},71922(t,e,r){"use strict";r.d(e,{J:()=>u});var n=r(42294),o=r(67691),i=r(47397),a=r(53850),s=r(38374);function u(t){if((0,i.m)(t))return t.byteLength;if((0,a.P)(t))return t.length;if("string"==typeof t)return(0,o.d)(t);throw new n.GU({info:{code:s.O4.DataTypeNoLength}},"Cannot calculate data length: Invalid type")}},85394(t,e,r){"use strict";r.d(e,{S8:()=>l,oq:()=>u,wB:()=>s});var n=r(61160),o=r(42294),i=r(406),a=r(36236);function s(t){let e=new n(t).pathname;return e.length<=0&&(e="/"),(0,a.qb)(e)}function u(...t){return(0,i.A)(t.reduce((t,e,r)=>((0===r||"/"!==e||"/"===e&&"/"!==t[t.length-1])&&t.push(e),t),[]))}function l(t){try{return t.replace(/^https?:\/\/[^\/]+/,"")}catch(t){throw new o.GU(t,"Failed normalising HREF")}}},27562(t,e,r){"use strict";r.d(e,{A:()=>i,o:()=>s});var n=r(1912),o=r(99111);function i(t){return new o.A({attributeNamePrefix:"@_",format:!0,ignoreAttributes:!1,suppressEmptyNode:!0}).build(a({lockinfo:{"@_xmlns:d":"DAV:",lockscope:{exclusive:{}},locktype:{write:{}},owner:{href:t}}},"d"))}function a(t,e){const r={...t};for(const t in r)r.hasOwnProperty(t)&&(r[t]&&"object"==typeof r[t]&&-1===t.indexOf(":")?(r[`${e}:${t}`]=a(r[t],e),delete r[t]):!1===/^@_/.test(t)&&(r[`${e}:${t}`]=r[t],delete r[t]));return r}function s(t){return new n.A({removeNSPrefix:!0,parseAttributeValue:!0,parseTagValue:!0}).parse(t)}},38374(t,e,r){"use strict";var n,o;r.d(e,{O4:()=>o,hT:()=>n}),r(97192),function(t){t.Auto="auto",t.Digest="digest",t.None="none",t.Password="password",t.Token="token"}(n||(n={})),function(t){t.DataTypeNoLength="data-type-no-length",t.InvalidAuthType="invalid-auth-type",t.InvalidOutputFormat="invalid-output-format",t.LinkUnsupportedAuthType="link-unsupported-auth",t.InvalidUpdateRange="invalid-update-range",t.NotSupported="not-supported"}(o||(o={}))},27341(t,e,r){"use strict";new Map([[0,65533],[128,8364],[130,8218],[131,402],[132,8222],[133,8230],[134,8224],[135,8225],[136,710],[137,8240],[138,352],[139,8249],[140,338],[142,381],[145,8216],[146,8217],[147,8220],[148,8221],[149,8226],[150,8211],[151,8212],[152,732],[153,8482],[154,353],[155,8250],[156,339],[158,382],[159,376]]),String.fromCodePoint},26549(t,e,r){"use strict";var n,o,i,a;r(75780),r(92148),r(27341),function(t){t[t.NUM=35]="NUM",t[t.SEMI=59]="SEMI",t[t.EQUALS=61]="EQUALS",t[t.ZERO=48]="ZERO",t[t.NINE=57]="NINE",t[t.LOWER_A=97]="LOWER_A",t[t.LOWER_F=102]="LOWER_F",t[t.LOWER_X=120]="LOWER_X",t[t.LOWER_Z=122]="LOWER_Z",t[t.UPPER_A=65]="UPPER_A",t[t.UPPER_F=70]="UPPER_F",t[t.UPPER_Z=90]="UPPER_Z"}(n||(n={})),function(t){t[t.VALUE_LENGTH=49152]="VALUE_LENGTH",t[t.BRANCH_LENGTH=16256]="BRANCH_LENGTH",t[t.JUMP_TABLE=127]="JUMP_TABLE"}(o||(o={})),function(t){t[t.EntityStart=0]="EntityStart",t[t.NumericStart=1]="NumericStart",t[t.NumericDecimal=2]="NumericDecimal",t[t.NumericHex=3]="NumericHex",t[t.NamedEntity=4]="NamedEntity"}(i||(i={})),function(t){t[t.Legacy=0]="Legacy",t[t.Strict=1]="Strict",t[t.Attribute=2]="Attribute"}(a||(a={}))},13197(t,e,r){"use strict";r(91573),r(40144)},40144(t,e,r){"use strict";new Map([[34,"""],[38,"&"],[39,"'"],[60,"<"],[62,">"]]),String.prototype.codePointAt,new Map([[34,"""],[38,"&"],[160," "]]),new Map([[38,"&"],[60,"<"],[62,">"],[160," "]])},75780(t,e,r){},92148(t,e,r){},91573(t,e,r){},15723(t,e,r){"use strict";var n,o;r(26549),r(13197),r(40144),function(t){t[t.XML=0]="XML",t[t.HTML=1]="HTML"}(n||(n={})),function(t){t[t.UTF8=0]="UTF8",t[t.ASCII=1]="ASCII",t[t.Extensive=2]="Extensive",t[t.Attribute=3]="Attribute",t[t.Text=4]="Text"}(o||(o={}))},84300(t,e,r){"use strict";r.d(e,{f:()=>n});const n=t=>{if("string"!=typeof t)throw new TypeError("invalid pattern");if(t.length>65536)throw new TypeError("pattern is too long")}},17908(t,e,r){"use strict";r.d(e,{d:()=>y});var n=r(73733),o=r(24754);const i=new Set(["!","?","+","*","@"]),a=t=>i.has(t),s="(?!\\.)",u=new Set(["[","."]),l=new Set(["..","."]),c=new Set("().*{}+?[]^$\\!"),f=t=>t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"),p="[^/]",h=p+"*?",d=p+"+?";class y{type;#t;#e;#r=!1;#n=[];#o;#i;#a;#s=!1;#u;#l;#c=!1;constructor(t,e,r={}){this.type=t,t&&(this.#e=!0),this.#o=e,this.#t=this.#o?this.#o.#t:this,this.#u=this.#t===this?r:this.#t.#u,this.#a=this.#t===this?[]:this.#t.#a,"!"!==t||this.#t.#s||this.#a.push(this),this.#i=this.#o?this.#o.#n.length:0}get hasMagic(){if(void 0!==this.#e)return this.#e;for(const t of this.#n)if("string"!=typeof t&&(t.type||t.hasMagic))return this.#e=!0;return this.#e}toString(){return void 0!==this.#l?this.#l:this.type?this.#l=this.type+"("+this.#n.map(t=>String(t)).join("|")+")":this.#l=this.#n.map(t=>String(t)).join("")}#f(){if(this!==this.#t)throw new Error("should only call on root");if(this.#s)return this;let t;for(this.toString(),this.#s=!0;t=this.#a.pop();){if("!"!==t.type)continue;let e=t,r=e.#o;for(;r;){for(let n=e.#i+1;!r.type&&n"string"==typeof t?t:t.toJSON()):[this.type,...this.#n.map(t=>t.toJSON())];return this.isStart()&&!this.type&&t.unshift([]),this.isEnd()&&(this===this.#t||this.#t.#s&&"!"===this.#o?.type)&&t.push({}),t}isStart(){if(this.#t===this)return!0;if(!this.#o?.isStart())return!1;if(0===this.#i)return!0;const t=this.#o;for(let e=0;e{const[n,o,i,a]="string"==typeof e?y.#h(e,this.#e,r):e.toRegExpSource(t);return this.#e=this.#e||i,this.#r=this.#r||a,n}).join("");let i="";if(this.isStart()&&"string"==typeof this.#n[0]&&(1!==this.#n.length||!l.has(this.#n[0]))){const r=u,o=e&&r.has(n.charAt(0))||n.startsWith("\\.")&&r.has(n.charAt(2))||n.startsWith("\\.\\.")&&r.has(n.charAt(4)),a=!e&&!t&&r.has(n.charAt(0));i=o?"(?!(?:^|/)\\.\\.?(?:$|/))":a?s:""}let a="";return this.isEnd()&&this.#t.#s&&"!"===this.#o?.type&&(a="(?:$|\\/)"),[i+n+a,(0,o.x)(n),this.#e=!!this.#e,this.#r]}const r="*"===this.type||"+"===this.type,n="!"===this.type?"(?:(?!(?:":"(?:";let i=this.#d(e);if(this.isStart()&&this.isEnd()&&!i&&"!"!==this.type){const t=this.toString();return this.#n=[t],this.type=null,this.#e=void 0,[t,(0,o.x)(this.toString()),!1,!1]}let a=!r||t||e?"":this.#d(!0);a===i&&(a=""),a&&(i=`(?:${i})(?:${a})*?`);let c="";return c="!"===this.type&&this.#c?(this.isStart()&&!e?s:"")+d:n+i+("!"===this.type?"))"+(!this.isStart()||e||t?"":s)+h+")":"@"===this.type?")":"?"===this.type?")?":"+"===this.type&&a?")":"*"===this.type&&a?")?":`)${this.type}`),[c,(0,o.x)(i),this.#e=!!this.#e,this.#r]}#d(t){return this.#n.map(e=>{if("string"==typeof e)throw new Error("string type in extglob ast??");const[r,n,o,i]=e.toRegExpSource(t);return this.#r=this.#r||i,r}).filter(t=>!(this.isStart()&&this.isEnd()&&!t)).join("|")}static#h(t,e,r=!1){let i=!1,a="",s=!1;for(let o=0;oa});const n={"[:alnum:]":["\\p{L}\\p{Nl}\\p{Nd}",!0],"[:alpha:]":["\\p{L}\\p{Nl}",!0],"[:ascii:]":["\\x00-\\x7f",!1],"[:blank:]":["\\p{Zs}\\t",!0],"[:cntrl:]":["\\p{Cc}",!0],"[:digit:]":["\\p{Nd}",!0],"[:graph:]":["\\p{Z}\\p{C}",!0,!0],"[:lower:]":["\\p{Ll}",!0],"[:print:]":["\\p{C}",!0],"[:punct:]":["\\p{P}",!0],"[:space:]":["\\p{Z}\\t\\r\\n\\v\\f",!0],"[:upper:]":["\\p{Lu}",!0],"[:word:]":["\\p{L}\\p{Nl}\\p{Nd}\\p{Pc}",!0],"[:xdigit:]":["A-Fa-f0-9",!1]},o=t=>t.replace(/[[\]\\-]/g,"\\$&"),i=t=>t.join(""),a=(t,e)=>{const r=e;if("["!==t.charAt(r))throw new Error("not in a brace expression");const a=[],s=[];let u=r+1,l=!1,c=!1,f=!1,p=!1,h=r,d="";t:for(;ud?a.push(o(d)+"-"+o(e)):e===d&&a.push(o(e)),d="",u++):t.startsWith("-]",u+1)?(a.push(o(e+"-")),u+=2):t.startsWith("-",u+1)?(d=e,u+=2):(a.push(o(e)),u++)}else f=!0,u++}else p=!0,u++}if(hn});const n=(t,{windowsPathsNoEscape:e=!1}={})=>e?t.replace(/[?*()[\]]/g,"[$&]"):t.replace(/[?*()[\]\\]/g,"\\$&")},44916(t,e,r){"use strict";r.d(e,{xF:()=>l});var n=r(68928),o=r(84300),i=r(17908),a=r(25093),s=r(24754),u=r(65606);const l=(t,e,r={})=>((0,o.f)(e),!(!r.nocomment&&"#"===e.charAt(0))&&new L(e,r).match(t)),c=/^\*+([^+@!?\*\[\(]*)$/,f=t=>e=>!e.startsWith(".")&&e.endsWith(t),p=t=>e=>e.endsWith(t),h=t=>(t=t.toLowerCase(),e=>!e.startsWith(".")&&e.toLowerCase().endsWith(t)),d=t=>(t=t.toLowerCase(),e=>e.toLowerCase().endsWith(t)),y=/^\*+\.\*+$/,g=t=>!t.startsWith(".")&&t.includes("."),m=t=>"."!==t&&".."!==t&&t.includes("."),b=/^\.\*+$/,v=t=>"."!==t&&".."!==t&&t.startsWith("."),w=/^\*+$/,E=t=>0!==t.length&&!t.startsWith("."),x=t=>0!==t.length&&"."!==t&&".."!==t,S=/^\?+([^+@!?\*\[\(]*)?$/,A=([t,e=""])=>{const r=j([t]);return e?(e=e.toLowerCase(),t=>r(t)&&t.toLowerCase().endsWith(e)):r},O=([t,e=""])=>{const r=P([t]);return e?(e=e.toLowerCase(),t=>r(t)&&t.toLowerCase().endsWith(e)):r},_=([t,e=""])=>{const r=P([t]);return e?t=>r(t)&&t.endsWith(e):r},T=([t,e=""])=>{const r=j([t]);return e?t=>r(t)&&t.endsWith(e):r},j=([t])=>{const e=t.length;return t=>t.length===e&&!t.startsWith(".")},P=([t])=>{const e=t.length;return t=>t.length===e&&"."!==t&&".."!==t},R="object"==typeof u&&u?"object"==typeof u.env&&u.env&&u.env.__MINIMATCH_TESTING_PLATFORM__||u.platform:"posix",N="win32"===R?"\\":"/";l.sep=N;const k=Symbol("globstar **");l.GLOBSTAR=k,l.filter=(t,e={})=>r=>l(r,t,e);const I=(t,e={})=>Object.assign({},t,e);l.defaults=t=>{if(!t||"object"!=typeof t||!Object.keys(t).length)return l;const e=l;return Object.assign((r,n,o={})=>e(r,n,I(t,o)),{Minimatch:class extends e.Minimatch{constructor(e,r={}){super(e,I(t,r))}static defaults(r){return e.defaults(I(t,r)).Minimatch}},AST:class extends e.AST{constructor(e,r,n={}){super(e,r,I(t,n))}static fromGlob(r,n={}){return e.AST.fromGlob(r,I(t,n))}},unescape:(r,n={})=>e.unescape(r,I(t,n)),escape:(r,n={})=>e.escape(r,I(t,n)),filter:(r,n={})=>e.filter(r,I(t,n)),defaults:r=>e.defaults(I(t,r)),makeRe:(r,n={})=>e.makeRe(r,I(t,n)),braceExpand:(r,n={})=>e.braceExpand(r,I(t,n)),match:(r,n,o={})=>e.match(r,n,I(t,o)),sep:e.sep,GLOBSTAR:k})};const C=(t,e={})=>((0,o.f)(t),e.nobrace||!/\{(?:(?!\{).)*\}/.test(t)?[t]:n(t));l.braceExpand=C,l.makeRe=(t,e={})=>new L(t,e).makeRe(),l.match=(t,e,r={})=>{const n=new L(e,r);return t=t.filter(t=>n.match(t)),n.options.nonull&&!t.length&&t.push(e),t};const M=/[?*]|[+@!]\(.*?\)|\[|\]/;class L{options;set;pattern;windowsPathsNoEscape;nonegate;negate;comment;empty;preserveMultipleSlashes;partial;globSet;globParts;nocase;isWindows;platform;windowsNoMagicRoot;regexp;constructor(t,e={}){(0,o.f)(t),e=e||{},this.options=e,this.pattern=t,this.platform=e.platform||R,this.isWindows="win32"===this.platform,this.windowsPathsNoEscape=!!e.windowsPathsNoEscape||!1===e.allowWindowsEscape,this.windowsPathsNoEscape&&(this.pattern=this.pattern.replace(/\\/g,"/")),this.preserveMultipleSlashes=!!e.preserveMultipleSlashes,this.regexp=null,this.negate=!1,this.nonegate=!!e.nonegate,this.comment=!1,this.empty=!1,this.partial=!!e.partial,this.nocase=!!this.options.nocase,this.windowsNoMagicRoot=void 0!==e.windowsNoMagicRoot?e.windowsNoMagicRoot:!(!this.isWindows||!this.nocase),this.globSet=[],this.globParts=[],this.set=[],this.make()}hasMagic(){if(this.options.magicalBraces&&this.set.length>1)return!0;for(const t of this.set)for(const e of t)if("string"!=typeof e)return!0;return!1}debug(...t){}make(){const t=this.pattern,e=this.options;if(!e.nocomment&&"#"===t.charAt(0))return void(this.comment=!0);if(!t)return void(this.empty=!0);this.parseNegate(),this.globSet=[...new Set(this.braceExpand())],e.debug&&(this.debug=(...t)=>console.error(...t)),this.debug(this.pattern,this.globSet);const r=this.globSet.map(t=>this.slashSplit(t));this.globParts=this.preprocess(r),this.debug(this.pattern,this.globParts);let n=this.globParts.map((t,e,r)=>{if(this.isWindows&&this.windowsNoMagicRoot){const e=!(""!==t[0]||""!==t[1]||"?"!==t[2]&&M.test(t[2])||M.test(t[3])),r=/^[a-z]:/i.test(t[0]);if(e)return[...t.slice(0,4),...t.slice(4).map(t=>this.parse(t))];if(r)return[t[0],...t.slice(1).map(t=>this.parse(t))]}return t.map(t=>this.parse(t))});if(this.debug(this.pattern,n),this.set=n.filter(t=>-1===t.indexOf(!1)),this.isWindows)for(let t=0;t=2?(t=this.firstPhasePreProcess(t),t=this.secondPhasePreProcess(t)):t=e>=1?this.levelOneOptimize(t):this.adjascentGlobstarOptimize(t),t}adjascentGlobstarOptimize(t){return t.map(t=>{let e=-1;for(;-1!==(e=t.indexOf("**",e+1));){let r=e;for(;"**"===t[r+1];)r++;r!==e&&t.splice(e,r-e)}return t})}levelOneOptimize(t){return t.map(t=>0===(t=t.reduce((t,e)=>{const r=t[t.length-1];return"**"===e&&"**"===r?t:".."===e&&r&&".."!==r&&"."!==r&&"**"!==r?(t.pop(),t):(t.push(e),t)},[])).length?[""]:t)}levelTwoFileOptimize(t){Array.isArray(t)||(t=this.slashSplit(t));let e=!1;do{if(e=!1,!this.preserveMultipleSlashes){for(let r=1;rn&&r.splice(n+1,o-n);let i=r[n+1];const a=r[n+2],s=r[n+3];if(".."!==i)continue;if(!a||"."===a||".."===a||!s||"."===s||".."===s)continue;e=!0,r.splice(n,1);const u=r.slice(0);u[n]="**",t.push(u),n--}if(!this.preserveMultipleSlashes){for(let t=1;tt.length)}partsMatch(t,e,r=!1){let n=0,o=0,i=[],a="";for(;ni?e=e.slice(a):i>a&&(t=t.slice(i)))}}const{optimizationLevel:o=1}=this.options;o>=2&&(t=this.levelTwoFileOptimize(t)),this.debug("matchOne",this,{file:t,pattern:e}),this.debug("matchOne",t.length,e.length);for(var i=0,a=0,s=t.length,u=e.length;i>> no match, partial?",t,f,e,p),f!==s))}let o;if("string"==typeof l?(o=c===l,this.debug("string match",l,c,o)):(o=l.test(c),this.debug("pattern match",l,c,o)),!o)return!1}if(i===s&&a===u)return!0;if(i===s)return r;if(a===u)return i===s-1&&""===t[i];throw new Error("wtf?")}braceExpand(){return C(this.pattern,this.options)}parse(t){(0,o.f)(t);const e=this.options;if("**"===t)return k;if(""===t)return"";let r,n=null;(r=t.match(w))?n=e.dot?x:E:(r=t.match(c))?n=(e.nocase?e.dot?d:h:e.dot?p:f)(r[1]):(r=t.match(S))?n=(e.nocase?e.dot?O:A:e.dot?_:T)(r):(r=t.match(y))?n=e.dot?m:g:(r=t.match(b))&&(n=v);const a=i.d.fromGlob(t,this.options).toMMPattern();return n&&"object"==typeof a&&Reflect.defineProperty(a,"test",{value:n}),a}makeRe(){if(this.regexp||!1===this.regexp)return this.regexp;const t=this.set;if(!t.length)return this.regexp=!1,this.regexp;const e=this.options,r=e.noglobstar?"[^/]*?":e.dot?"(?:(?!(?:\\/|^)(?:\\.{1,2})($|\\/)).)*?":"(?:(?!(?:\\/|^)\\.).)*?",n=new Set(e.nocase?["i"]:[]);let o=t.map(t=>{const e=t.map(t=>{if(t instanceof RegExp)for(const e of t.flags.split(""))n.add(e);return"string"==typeof t?t.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&"):t===k?k:t._src});return e.forEach((t,n)=>{const o=e[n+1],i=e[n-1];t===k&&i!==k&&(void 0===i?void 0!==o&&o!==k?e[n+1]="(?:\\/|"+r+"\\/)?"+o:e[n]=r:void 0===o?e[n-1]=i+"(?:\\/|"+r+")?":o!==k&&(e[n-1]=i+"(?:\\/|\\/"+r+"\\/)"+o,e[n+1]=k))}),e.filter(t=>t!==k).join("/")}).join("|");const[i,a]=t.length>1?["(?:",")"]:["",""];o="^"+i+o+a+"$",this.negate&&(o="^(?!"+o+").+$");try{this.regexp=new RegExp(o,[...n].join(""))}catch(t){this.regexp=!1}return this.regexp}slashSplit(t){return this.preserveMultipleSlashes?t.split("/"):this.isWindows&&/^\/\/[^\/]+/.test(t)?["",...t.split(/\/+/)]:t.split(/\/+/)}match(t,e=this.partial){if(this.debug("match",t,this.pattern),this.comment)return!1;if(this.empty)return""===t;if("/"===t&&e)return!0;const r=this.options;this.isWindows&&(t=t.split("\\").join("/"));const n=this.slashSplit(t);this.debug(this.pattern,"split",n);const o=this.set;this.debug(this.pattern,"set",o);let i=n[n.length-1];if(!i)for(let t=n.length-2;!i&&t>=0;t--)i=n[t];for(let t=0;tn});const n=(t,{windowsPathsNoEscape:e=!1}={})=>e?t.replace(/\[([^\/\\])\]/g,"$1"):t.replace(/((?!\\).|^)\[([^\/\\])\]/g,"$1$2").replace(/\\([^\/])/g,"$1")}},o={};function i(t){var e=o[t];if(void 0!==e)return e.exports;var r=o[t]={id:t,loaded:!1,exports:{}};return n[t].call(r.exports,r,r.exports,i),r.loaded=!0,r.exports}i.m=n,t=[],i.O=(e,r,n,o)=>{if(!r){var a=1/0;for(c=0;c=o)&&Object.keys(i.O).every(t=>i.O[t](r[u]))?r.splice(u--,1):(s=!1,o0&&t[c-1][2]>o;c--)t[c]=t[c-1];t[c]=[r,n,o]},i.n=t=>{var e=t&&t.__esModule?()=>t.default:()=>t;return i.d(e,{a:e}),e},i.d=(t,e)=>{for(var r in e)i.o(e,r)&&!i.o(t,r)&&Object.defineProperty(t,r,{enumerable:!0,get:e[r]})},i.f={},i.e=t=>Promise.all(Object.keys(i.f).reduce((e,r)=>(i.f[r](t,e),e),[])),i.u=t=>t+"-"+t+".js?v="+{1140:"490e17ed9c8948d5a9e8",2221:"428c2ff62c4b8b3c97fc",3556:"57d00a12b4953e229068",4508:"04b1afd183e5ecdd9cae",4906:"75718b28aced26adc4af",5448:"71cfe268d6f1213c4735",5528:"1445efe9cbaf4e4cbcb8",5862:"580b9c2e231a9169a12f",6015:"ebcb6885c1fc8c461988",7039:"be7eefcb933f99fc5b1f",7859:"740587c0c8c350dad157",7910:"de857920f8beb5205bbc",8124:"75a422293ae2add34a10",8815:"9a5c507c75429c9c04e4"}[t],i.o=(t,e)=>Object.prototype.hasOwnProperty.call(t,e),e={},r="nextcloud-ui-legacy:",i.l=(t,n,o,a)=>{if(e[t])e[t].push(n);else{var s,u;if(void 0!==o)for(var l=document.getElementsByTagName("script"),c=0;c{s.onerror=s.onload=null,clearTimeout(h);var o=e[t];if(delete e[t],s.parentNode&&s.parentNode.removeChild(s),o&&o.forEach(t=>t(n)),r)return r(n)},h=setTimeout(p.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=p.bind(null,s.onerror),s.onload=p.bind(null,s.onload),u&&document.head.appendChild(s)}},i.r=t=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},i.nmd=t=>(t.paths=[],t.children||(t.children=[]),t),i.j=2122,(()=>{var t;globalThis.importScripts&&(t=globalThis.location+"");var e=globalThis.document;if(!t&&e&&(e.currentScript&&"SCRIPT"===e.currentScript.tagName.toUpperCase()&&(t=e.currentScript.src),!t)){var r=e.getElementsByTagName("script");if(r.length)for(var n=r.length-1;n>-1&&(!t||!/^http(s?):/.test(t));)t=r[n--].src}if(!t)throw new Error("Automatic publicPath is not supported in this browser");t=t.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=t})(),(()=>{i.b="undefined"!=typeof document&&document.baseURI||self.location.href;var t={2122:0};i.f.j=(e,r)=>{var n=i.o(t,e)?t[e]:void 0;if(0!==n)if(n)r.push(n[2]);else{var o=new Promise((r,o)=>n=t[e]=[r,o]);r.push(n[2]=o);var a=i.p+i.u(e),s=new Error;i.l(a,r=>{if(i.o(t,e)&&(0!==(n=t[e])&&(t[e]=void 0),n)){var o=r&&("load"===r.type?"missing":r.type),a=r&&r.target&&r.target.src;s.message="Loading chunk "+e+" failed.\n("+o+": "+a+")",s.name="ChunkLoadError",s.type=o,s.request=a,n[1](s)}},"chunk-"+e,e)}},i.O.j=e=>0===t[e];var e=(e,r)=>{var n,o,[a,s,u]=r,l=0;if(a.some(e=>0!==t[e])){for(n in s)i.o(s,n)&&(i.m[n]=s[n]);if(u)var c=u(i)}for(e&&e(r);li(80609));a=i.O(a)})();
+//# sourceMappingURL=comments-comments-tab.js.map?v=ff467df9b7cde10b80ef
\ No newline at end of file
diff --git a/dist/comments-comments-tab.js.license b/dist/comments-comments-tab.js.license
index 6fa3495c882b2..37dbad7a43c9e 100644
--- a/dist/comments-comments-tab.js.license
+++ b/dist/comments-comments-tab.js.license
@@ -160,7 +160,7 @@ This file is generated from multiple sources. Included packages:
 	- version: 3.3.0
 	- license: MIT
 - fast-xml-parser
-	- version: 5.3.4
+	- version: 5.3.6
 	- license: MIT
 - for-each
 	- version: 0.3.5
diff --git a/dist/comments-comments-tab.js.map b/dist/comments-comments-tab.js.map
index a662f9c6ea670..ab98f93855dde 100644
--- a/dist/comments-comments-tab.js.map
+++ b/dist/comments-comments-tab.js.map
@@ -1 +1 @@
-{"version":3,"file":"comments-comments-tab.js?v=f461443ff9c67e6d0f05","mappings":"UAAIA,ECAAC,EACAC,E,8CCMJ,SAAeC,E,SAAAA,MACbC,OAAO,YACPC,aACAC,O,kFCAF,MAAMC,GAASC,EAAAA,EAAAA,KAAaC,EAAAA,EAAAA,MAM5B,SAASC,EAAWC,GACnBJ,EAAOG,WAAW,CAEjB,mBAAoB,iBAEpBE,aAAcD,GAAS,IAEzB,EAGAE,EAAAA,EAAAA,IAAqBH,GACrBA,GAAWI,EAAAA,EAAAA,OAEX,S,4DCnBA,SAASL,IACR,OAAOM,EAAAA,EAAAA,IAAkB,eAC1B,C,mICFA,IAAIC,EACAC,EAFJC,EAAAA,GAAIC,IAAIC,EAAAA,I,eCIRC,EAAAA,IAAoBC,EAAAA,EAAAA,MACpB,MAAMC,EAAU,8BCLLC,EAAAA,EAAAA,GAAU,WAAY,mBAAmB,SAA0DC,IAAhDC,OAAOC,KAAKC,UAAUC,sBDQhFH,OAAOI,iBAAiB,mBAAoB,WDD5CJ,OAAOC,IAAIC,SAASC,sBAAsB,CACtCE,MAAOC,MAAOC,GAAMC,OAAMC,aACtB,MAAMC,GAAQC,EAAAA,EAAAA,MACd,IAAKrB,EAAuB,CACxB,MAAQsB,QAASC,SAAgC,mEAEjDvB,EAAwBE,EAAAA,GAAIsB,OAAOD,EACvC,CACAtB,EAA4B,IAAID,EAAsB,CAClDiB,KACAG,QACAK,UAAW,CACPC,eAAgBP,EAChBQ,WAAYT,EAAKU,UAGzBC,EAAAA,EAAOC,KAAK,qDAAsD,CAAEZ,UAExEa,QAASA,KAED9B,GACAA,EAA0B+B,cAItCtB,OAAOC,IAAIC,SAASqB,uBAAuBjB,OAASE,OAAMgB,QAAOC,aAC7D,MAAQC,KAAMC,SAAmBC,EAAAA,EAAAA,GAAY,CAAEC,aAAc,QAASZ,WAAYT,EAAKU,QAAU,CAC7FM,QACAC,OAAQA,GAAU,IAEtBN,EAAAA,EAAOW,MAAM,kBAAmB,CAAEtB,OAAMmB,aACxC,MAAQf,QAASmB,SAAsB,mEAEjCC,EAAqBxC,EAAAA,GAAIsB,OAAOiB,GACtC,OAAOJ,EAASM,IAAKC,IAAO,CACxBC,2BAAuBpC,EACvBqC,WAAWC,EAAAA,EAAAA,GAAOH,EAAQI,OAAOC,kBAAkBC,SAASC,UAC5DpC,KAAAA,CAAMqC,GAAS,OAAEjC,IACbkC,KAAKR,sBAAwB,IAAIH,EAAmB,CAChDzB,GAAImC,EACJ3B,UAAW,CACPmB,UACAjB,WAAYT,EAAKU,OACjBF,eAAgBP,IAG5B,EACAY,OAAAA,GACIsB,KAAKR,uBAAuBb,UAChC,OAGRtB,OAAOC,IAAIC,SAAS0C,sBAAuBC,GAA+B,aAAlBA,EAASC,MACjE3B,EAAAA,EAAOC,KAAK,yDClDZ,IAGA2B,EAAAA,EAAAA,IAAmB,CACfC,GAAI,WACJC,aAAaC,EAAAA,EAAAA,GAAE,WAAY,YAC3BC,c,+NACAC,MAAO,GACPvD,UACA,YAAMwD,GACF,MAAQzC,QAAS0C,SAA0B,mEAC3C9D,EAAAA,GAAIC,IAAIC,EAAAA,IACRF,EAAAA,GAAI+D,MAAM,CAAE7C,OAAOC,EAAAA,EAAAA,QACnB,MAAM6C,GAAeC,EAAAA,EAAAA,GAAKjE,EAAAA,GAAK8D,GAE/BI,OAAOC,eAAeH,EAAaI,UAAW,eAAgB,CAC1DC,KAAAA,GAAU,OAAOlB,IAAM,IAE3Be,OAAOC,eAAeH,EAAaI,UAAW,aAAc,CACxDE,GAAAA,GAAQ,OAAOnB,IAAM,IAEzB3C,OAAO+D,eAAeC,OAAOnE,EAAS2D,EAC1C,G,mGEjCD,MAAMS,EAAgB,GAatB3D,eAAesB,GAAY,aAAEC,EAAY,WAAEZ,GAAciD,GAC5D,MAAMC,EAAe,CAAC,GAAItC,EAAcZ,GAAYmD,KAAK,KACnDC,EAAWH,EAAQG,SAAW,gBAAgBH,EAAQG,SAASC,8BAAgC,GAC/FC,QAAiB1F,EAAAA,EAAO2F,cAAcL,EAAc,CACtDM,OAAQ,SACR/C,KAAM,sPAMEwC,EAAQ1C,OAASyC,oCAChBC,EAAQzC,QAAU,0BAC7B4C,oCAEKH,IAEDQ,QAAqBH,EAASI,OAE9BC,EAUV,SAA2BC,EAAQC,GAAa,GAE5C,MAAQC,aAAeR,SAAUS,IAAqBH,EAEtD,OAAOG,EAAc/C,IAAKgD,IAEtB,MAAM3C,EAAQ2C,EAAKC,SAASC,KAC5B,OAAOC,EAAAA,EAAAA,IAAqB9C,EAAOA,EAAMU,GAAGqC,WAAYP,IAEhE,CAnBiBQ,OADQC,EAAAA,EAAAA,IAASb,IACS,GAEvC,OAAOc,EAAAA,EAAAA,IAAuBjB,EAAUK,GAAM,EAClD,C,uBCzCA,SAASa,EAASC,EAAGC,EAAGC,GAClBF,aAAaG,SAAQH,EAAII,EAAWJ,EAAGE,IACvCD,aAAaE,SAAQF,EAAIG,EAAWH,EAAGC,IAE3C,IAAIG,EAAIC,EAAMN,EAAGC,EAAGC,GAEpB,OAAOG,GAAK,CACVE,MAAOF,EAAE,GACTG,IAAKH,EAAE,GACPI,IAAKP,EAAIQ,MAAM,EAAGL,EAAE,IACpBM,KAAMT,EAAIQ,MAAML,EAAE,GAAKL,EAAEY,OAAQP,EAAE,IACnCQ,KAAMX,EAAIQ,MAAML,EAAE,GAAKJ,EAAEW,QAE7B,CAEA,SAASR,EAAWU,EAAKZ,GACvB,IAAIa,EAAIb,EAAIc,MAAMF,GAClB,OAAOC,EAAIA,EAAE,GAAK,IACpB,CAGA,SAAST,EAAMN,EAAGC,EAAGC,GACnB,IAAIe,EAAMC,EAAKC,EAAMC,EAAOjC,EACxBkC,EAAKnB,EAAIoB,QAAQtB,GACjBuB,EAAKrB,EAAIoB,QAAQrB,EAAGoB,EAAK,GACzBG,EAAIH,EAER,GAAIA,GAAM,GAAKE,EAAK,EAAG,CACrB,GAAGvB,IAAIC,EACL,MAAO,CAACoB,EAAIE,GAKd,IAHAN,EAAO,GACPE,EAAOjB,EAAIU,OAEJY,GAAK,IAAMrC,GACZqC,GAAKH,GACPJ,EAAKQ,KAAKD,GACVH,EAAKnB,EAAIoB,QAAQtB,EAAGwB,EAAI,IACA,GAAfP,EAAKL,OACdzB,EAAS,CAAE8B,EAAKS,MAAOH,KAEvBL,EAAMD,EAAKS,OACDP,IACRA,EAAOD,EACPE,EAAQG,GAGVA,EAAKrB,EAAIoB,QAAQrB,EAAGuB,EAAI,IAG1BA,EAAIH,EAAKE,GAAMF,GAAM,EAAIA,EAAKE,EAG5BN,EAAKL,SACPzB,EAAS,CAAEgC,EAAMC,GAErB,CAEA,OAAOjC,CACT,CA5DAwC,EAAOC,QAAU7B,EAqBjBA,EAASO,MAAQA,C,eCtBjB,M,WACE,WAGD,IAQIuB,GAL0CF,GAC7CA,EAAOC,QAI0B,iBAAV,YAAsB,YAC1CC,EAAWC,SAAWD,GAAcA,EAAWvH,OAMnD,IAAIyH,EAAwB,SAASC,GACpC/E,KAAK+E,QAAUA,CAChB,GACAD,EAAsB7D,UAAY,IAAI+D,OACNC,KAAO,wBAEvC,IAAIC,EAAQ,SAASH,GAGpB,MAAM,IAAID,EAAsBC,EACjC,EAEII,EAAQ,mEAERC,EAAyB,eAsGzBC,EAAS,CACZ,OA3DY,SAASC,GACrBA,EAAQC,OAAOD,GACX,aAAaE,KAAKF,IAGrBJ,EACC,6EAcF,IAVA,IAGInC,EACAC,EACAyC,EACAC,EANAC,EAAUL,EAAM3B,OAAS,EACzBiC,EAAS,GACTC,GAAY,EAMZlC,EAAS2B,EAAM3B,OAASgC,IAEnBE,EAAWlC,GAEnBZ,EAAIuC,EAAMQ,WAAWD,IAAa,GAClC7C,EAAIsC,EAAMQ,aAAaD,IAAa,EACpCJ,EAAIH,EAAMQ,aAAaD,GAIvBD,GACCT,EAAMY,QAJPL,EAAS3C,EAAIC,EAAIyC,IAIO,GAAK,IAC5BN,EAAMY,OAAOL,GAAU,GAAK,IAC5BP,EAAMY,OAAOL,GAAU,EAAI,IAC3BP,EAAMY,OAAgB,GAATL,GAuBf,OAnBe,GAAXC,GACH5C,EAAIuC,EAAMQ,WAAWD,IAAa,EAClC7C,EAAIsC,EAAMQ,aAAaD,GAEvBD,GACCT,EAAMY,QAFPL,EAAS3C,EAAIC,IAEW,IACvBmC,EAAMY,OAAQL,GAAU,EAAK,IAC7BP,EAAMY,OAAQL,GAAU,EAAK,IAC7B,KAEoB,GAAXC,IACVD,EAASJ,EAAMQ,WAAWD,GAC1BD,GACCT,EAAMY,OAAOL,GAAU,GACvBP,EAAMY,OAAQL,GAAU,EAAK,IAC7B,MAIKE,CACR,EAIC,OAlGY,SAASN,GAGrB,IAAI3B,GAFJ2B,EAAQC,OAAOD,GACbU,QAAQZ,EAAwB,KACfzB,OACfA,EAAS,GAAK,IAEjBA,GADA2B,EAAQA,EAAMU,QAAQ,OAAQ,KACfrC,SAGfA,EAAS,GAAK,GAEd,iBAAiB6B,KAAKF,KAEtBJ,EACC,yEAQF,IALA,IACIe,EACAP,EAFAQ,EAAa,EAGbN,EAAS,GACTC,GAAY,IACPA,EAAWlC,GACnB+B,EAASP,EAAMd,QAAQiB,EAAMS,OAAOF,IACpCI,EAAaC,EAAa,EAAiB,GAAbD,EAAkBP,EAASA,EAErDQ,IAAe,IAElBN,GAAUL,OAAOY,aAChB,IAAOF,KAAgB,EAAIC,EAAa,KAI3C,OAAON,CACR,EAiEC,QAAW,cAYV,KAFD,aACC,OAAOP,CACP,+BAaH,CAlKC,E,eCDD,IAAIvC,EAAW,EAAQ,MAEvB4B,EAAOC,QA6DP,SAAmB1B,GACjB,OAAKA,GASoB,OAArBA,EAAImD,OAAO,EAAG,KAChBnD,EAAM,SAAWA,EAAImD,OAAO,IAGvBC,EA7DT,SAAsBpD,GACpB,OAAOA,EAAIqD,MAAM,QAAQ7E,KAAK8E,GACnBD,MAAM,OAAO7E,KAAK+E,GAClBF,MAAM,OAAO7E,KAAKgF,GAClBH,MAAM,OAAO7E,KAAKiF,GAClBJ,MAAM,OAAO7E,KAAKkF,EAC/B,CAuDgBC,CAAa3D,IAAM,GAAM3D,IAAIuH,IAZlC,EAaX,EA1EA,IAAIN,EAAW,UAAUO,KAAKC,SAAS,KACnCP,EAAU,SAASM,KAAKC,SAAS,KACjCN,EAAW,UAAUK,KAAKC,SAAS,KACnCL,EAAW,UAAUI,KAAKC,SAAS,KACnCJ,EAAY,WAAWG,KAAKC,SAAS,KAEzC,SAASC,EAAQ/D,GACf,OAAOgE,SAAShE,EAAK,KAAOA,EACxBgE,SAAShE,EAAK,IACdA,EAAI6C,WAAW,EACrB,CAUA,SAASe,EAAe5D,GACtB,OAAOA,EAAIqD,MAAMC,GAAU9E,KAAK,MACrB6E,MAAME,GAAS/E,KAAK,KACpB6E,MAAMG,GAAUhF,KAAK,KACrB6E,MAAMI,GAAUjF,KAAK,KACrB6E,MAAMK,GAAWlF,KAAK,IACnC,CAMA,SAASyF,EAAgBjE,GACvB,IAAKA,EACH,MAAO,CAAC,IAEV,IAAIkE,EAAQ,GACRrD,EAAIhB,EAAS,IAAK,IAAKG,GAE3B,IAAKa,EACH,OAAOb,EAAIqD,MAAM,KAEnB,IAAI9C,EAAMM,EAAEN,IACRE,EAAOI,EAAEJ,KACTE,EAAOE,EAAEF,KACTwD,EAAI5D,EAAI8C,MAAM,KAElBc,EAAEA,EAAEzD,OAAO,IAAM,IAAMD,EAAO,IAC9B,IAAI2D,EAAYH,EAAgBtD,GAQhC,OAPIA,EAAKD,SACPyD,EAAEA,EAAEzD,OAAO,IAAM0D,EAAUC,QAC3BF,EAAE5C,KAAK+C,MAAMH,EAAGC,IAGlBF,EAAM3C,KAAK+C,MAAMJ,EAAOC,GAEjBD,CACT,CAmBA,SAASK,EAAQvE,GACf,MAAO,IAAMA,EAAM,GACrB,CACA,SAASwE,EAAS7J,GAChB,MAAO,SAAS4H,KAAK5H,EACvB,CAEA,SAAS8J,EAAInD,EAAGoD,GACd,OAAOpD,GAAKoD,CACd,CACA,SAASC,EAAIrD,EAAGoD,GACd,OAAOpD,GAAKoD,CACd,CAEA,SAAStB,EAAOpD,EAAK4E,GACnB,IAAIC,EAAa,GAEbhE,EAAIhB,EAAS,IAAK,IAAKG,GAC3B,IAAKa,EAAG,MAAO,CAACb,GAGhB,IAAIO,EAAMM,EAAEN,IACRI,EAAOE,EAAEF,KAAKD,OACd0C,EAAOvC,EAAEF,MAAM,GACf,CAAC,IAEL,GAAI,MAAM4B,KAAK1B,EAAEN,KACf,IAAK,IAAIuE,EAAI,EAAGA,EAAInE,EAAKD,OAAQoE,IAAK,CACpC,IAAIC,EAAYxE,EAAK,IAAMM,EAAEJ,KAAO,IAAME,EAAKmE,GAC/CD,EAAWtD,KAAKwD,EAClB,KACK,CACL,IAaIC,EAkBAC,EA/BAC,EAAoB,iCAAiC3C,KAAK1B,EAAEJ,MAC5D0E,EAAkB,uCAAuC5C,KAAK1B,EAAEJ,MAChE2E,EAAaF,GAAqBC,EAClCE,EAAYxE,EAAEJ,KAAKW,QAAQ,MAAQ,EACvC,IAAKgE,IAAeC,EAElB,OAAIxE,EAAEF,KAAKG,MAAM,cAERsC,EADPpD,EAAMa,EAAEN,IAAM,IAAMM,EAAEJ,KAAO+C,EAAW3C,EAAEF,MAGrC,CAACX,GAIV,GAAIoF,EACFJ,EAAInE,EAAEJ,KAAK4C,MAAM,aAGjB,GAAiB,KADjB2B,EAAIf,EAAgBpD,EAAEJ,OAChBC,QAGa,KADjBsE,EAAI5B,EAAO4B,EAAE,IAAI,GAAO3I,IAAIkI,IACtB7D,OACJ,OAAOC,EAAKtE,IAAI,SAAS8H,GACvB,OAAOtD,EAAEN,IAAMyE,EAAE,GAAKb,CACxB,GASN,GAAIiB,EAAY,CACd,IAAIE,EAAIvB,EAAQiB,EAAE,IACdN,EAAIX,EAAQiB,EAAE,IACdO,EAAQ1B,KAAK2B,IAAIR,EAAE,GAAGtE,OAAQsE,EAAE,GAAGtE,QACnC+E,EAAmB,GAAZT,EAAEtE,OACTmD,KAAK6B,IAAI3B,EAAQiB,EAAE,KACnB,EACAzC,EAAOkC,EACGC,EAAIY,IAEhBG,IAAS,EACTlD,EAAOoC,GAET,IAAIgB,EAAMX,EAAEY,KAAKpB,GAEjBS,EAAI,GAEJ,IAAK,IAAI3D,EAAIgE,EAAG/C,EAAKjB,EAAGoD,GAAIpD,GAAKmE,EAAM,CACrC,IAAIjD,EACJ,GAAI2C,EAEQ,QADV3C,EAAIF,OAAOY,aAAa5B,MAEtBkB,EAAI,SAGN,GADAA,EAAIF,OAAOhB,GACPqE,EAAK,CACP,IAAIE,EAAON,EAAQ/C,EAAE9B,OACrB,GAAImF,EAAO,EAAG,CACZ,IAAIC,EAAI,IAAIC,MAAMF,EAAO,GAAGrH,KAAK,KAE/BgE,EADElB,EAAI,EACF,IAAMwE,EAAItD,EAAEhC,MAAM,GAElBsF,EAAItD,CACZ,CACF,CAEFyC,EAAE1D,KAAKiB,EACT,CACF,KAAO,CACLyC,EAAI,GAEJ,IAAK,IAAIe,EAAI,EAAGA,EAAIhB,EAAEtE,OAAQsF,IAC5Bf,EAAE1D,KAAK+C,MAAMW,EAAG7B,EAAO4B,EAAEgB,IAAI,GAEjC,CAEA,IAASA,EAAI,EAAGA,EAAIf,EAAEvE,OAAQsF,IAC5B,IAASlB,EAAI,EAAGA,EAAInE,EAAKD,OAAQoE,IAC3BC,EAAYxE,EAAM0E,EAAEe,GAAKrF,EAAKmE,KAC7BF,GAASQ,GAAcL,IAC1BF,EAAWtD,KAAKwD,EAGxB,CAEA,OAAOF,CACT,C,WCzMApD,EAAOC,QAAU,CACf,IAAO,WACP,IAAO,sBACP,IAAO,aACP,IAAO,KACP,IAAO,UACP,IAAO,WACP,IAAO,gCACP,IAAO,aACP,IAAO,gBACP,IAAO,kBACP,IAAO,eACP,IAAO,mBACP,IAAO,UACP,IAAO,mBACP,IAAO,oBACP,IAAO,QACP,IAAO,YACP,IAAO,eACP,IAAO,YACP,IAAO,qBACP,IAAO,qBACP,IAAO,cACP,IAAO,eACP,IAAO,mBACP,IAAO,YACP,IAAO,YACP,IAAO,qBACP,IAAO,iBACP,IAAO,gCACP,IAAO,kBACP,IAAO,WACP,IAAO,OACP,IAAO,kBACP,IAAO,sBACP,IAAO,oBACP,IAAO,eACP,IAAO,yBACP,IAAO,wBACP,IAAO,qBACP,IAAO,eACP,IAAO,sBACP,IAAO,uBACP,IAAO,SACP,IAAO,oBACP,IAAO,uBACP,IAAO,mBACP,IAAO,wBACP,IAAO,oBACP,IAAO,kCACP,IAAO,gCACP,IAAO,wBACP,IAAO,kBACP,IAAO,cACP,IAAO,sBACP,IAAO,kBACP,IAAO,6BACP,IAAO,0BACP,IAAO,uBACP,IAAO,gBACP,IAAO,2BACP,IAAO,eACP,IAAO,kC,0BCrCTA,EAAQ,EApBR,SAAoB1B,GAChB,IAAKA,EACD,OAAO,EAIX,IADA,IAAIiG,GADJjG,EAAMA,EAAIP,YACIiB,OACLY,EAAItB,EAAIU,OAAQY,KAAM,CAC3B,IAAI4E,EAAOlG,EAAI6C,WAAWvB,GACtB,OAAU4E,GAAQA,GAAQ,OAC1B5E,IAEA,IAAO4E,GAAQA,GAAQ,KACvBD,IAEK,KAAQC,GAAQA,GAAQ,QAC7BD,GAAO,EAEf,CACA,OAAOA,CACX,C,4BCtBA,IAAIE,EAAO,EAAQ,OAEfC,EAAS,EAAQ,OACjBC,EAAQ,EAAQ,OAChBC,EAAgB,EAAQ,OAG5B7E,EAAOC,QAAU4E,GAAiBH,EAAKI,KAAKF,EAAOD,E,4BCPnD,IAAID,EAAO,EAAQ,OACfC,EAAS,EAAQ,OACjBI,EAAc,EAAQ,OAG1B/E,EAAOC,QAAU,WAChB,OAAO8E,EAAYL,EAAMC,EAAQK,UAClC,C,wBCNAhF,EAAOC,QAAUgF,SAAS1I,UAAUsG,K,wBCApC7C,EAAOC,QAAUgF,SAAS1I,UAAUuI,I,4BCDpC,IAAIJ,EAAO,EAAQ,OACfQ,EAAa,EAAQ,OAErBN,EAAQ,EAAQ,OAChBO,EAAe,EAAQ,OAG3BnF,EAAOC,QAAU,SAAuBmF,GACvC,GAAIA,EAAKnG,OAAS,GAAwB,mBAAZmG,EAAK,GAClC,MAAM,IAAIF,EAAW,0BAEtB,OAAOC,EAAaT,EAAME,EAAOQ,EAClC,C,wBCXApF,EAAOC,QAA6B,oBAAZoF,SAA2BA,SAAWA,QAAQxC,K,4BCDtE,IAAIyC,EAAoB,EAAQ,OAE5BC,EAAkB,EAAQ,OAE1BC,EAAgB,EAAQ,OACxBC,EAAY,EAAQ,OAExBzF,EAAOC,QAAU,SAAkByF,GAClC,IAAIC,EAAOH,EAAcR,WACrBY,EAAiBF,EAAiBzG,QAAU+F,UAAU/F,OAAS,GACnE,OAAOqG,EACNK,EACA,GAAKC,EAAiB,EAAIA,EAAiB,IAC3C,EAEF,EAEIL,EACHA,EAAgBvF,EAAOC,QAAS,QAAS,CAAEzD,MAAOiJ,IAElDzF,EAAOC,QAAQ4C,MAAQ4C,C,4BCpBxB,IAAII,EAAe,EAAQ,OAEvBL,EAAgB,EAAQ,OAGxBM,EAAWN,EAAc,CAACK,EAAa,gCAG3C7F,EAAOC,QAAU,SAA4BM,EAAMwF,GAGlD,IAAIC,EAA2EH,EAAatF,IAAQwF,GACpG,MAAyB,mBAAdC,GAA4BF,EAASvF,EAAM,gBAAkB,EAChEiF,EAAmC,CAAEQ,IAEtCA,CACR,C,4BChBA,IAAIT,EAAkB,EAAQ,OAE1BU,EAAe,EAAQ,OACvBf,EAAa,EAAQ,OAErBgB,EAAO,EAAQ,OAGnBlG,EAAOC,QAAU,SAChBkG,EACAC,EACA5J,GAEA,IAAK2J,GAAuB,iBAARA,GAAmC,mBAARA,EAC9C,MAAM,IAAIjB,EAAW,0CAEtB,GAAwB,iBAAbkB,GAA6C,iBAAbA,EAC1C,MAAM,IAAIlB,EAAW,4CAEtB,GAAIF,UAAU/F,OAAS,GAA6B,kBAAjB+F,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAIE,EAAW,2DAEtB,GAAIF,UAAU/F,OAAS,GAA6B,kBAAjB+F,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAIE,EAAW,yDAEtB,GAAIF,UAAU/F,OAAS,GAA6B,kBAAjB+F,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAIE,EAAW,6DAEtB,GAAIF,UAAU/F,OAAS,GAA6B,kBAAjB+F,UAAU,GAC5C,MAAM,IAAIE,EAAW,2CAGtB,IAAImB,EAAgBrB,UAAU/F,OAAS,EAAI+F,UAAU,GAAK,KACtDsB,EAActB,UAAU/F,OAAS,EAAI+F,UAAU,GAAK,KACpDuB,EAAkBvB,UAAU/F,OAAS,EAAI+F,UAAU,GAAK,KACxDwB,EAAQxB,UAAU/F,OAAS,GAAI+F,UAAU,GAGzCyB,IAASP,GAAQA,EAAKC,EAAKC,GAE/B,GAAIb,EACHA,EAAgBY,EAAKC,EAAU,CAC9BM,aAAkC,OAApBH,GAA4BE,EAAOA,EAAKC,cAAgBH,EACtEI,WAA8B,OAAlBN,GAA0BI,EAAOA,EAAKE,YAAcN,EAChE7J,MAAOA,EACPoK,SAA0B,OAAhBN,GAAwBG,EAAOA,EAAKG,UAAYN,QAErD,KAAIE,IAAWH,GAAkBC,GAAgBC,GAIvD,MAAM,IAAIN,EAAa,+GAFvBE,EAAIC,GAAY5J,CAGjB,CACD,C,2BCrDA,IAGIqK,EAHAC,EAAW,EAAQ,OACnBC,EAAO,EAAQ,OAGnB,IAECF,EAAyE,GAAKG,YAAc1C,MAAM/H,SACnG,CAAE,MAAO0K,GACR,IAAKA,GAAkB,iBAANA,KAAoB,SAAUA,IAAiB,qBAAXA,EAAExC,KACtD,MAAMwC,CAER,CAGA,IAAIR,IAASI,GAAoBE,GAAQA,EAAK1K,OAAOE,UAAwD,aAEzG2K,EAAU7K,OACV8K,EAAkBD,EAAQE,eAG9BpH,EAAOC,QAAUwG,GAA4B,mBAAbA,EAAKhK,IAClCqK,EAAS,CAACL,EAAKhK,MACY,mBAApB0K,GACyB,SAAmB3K,GAEnD,OAAO2K,EAAyB,MAAT3K,EAAgBA,EAAQ0K,EAAQ1K,GACxD,C,wBCzBF,IAAI+I,EAAkBlJ,OAAOC,iBAAkB,EAC/C,GAAIiJ,EACH,IACCA,EAAgB,CAAC,EAAG,IAAK,CAAE/I,MAAO,GACnC,CAAE,MAAOyK,GAER1B,GAAkB,CACnB,CAGDvF,EAAOC,QAAUsF,C,wBCVjBvF,EAAOC,QAAUoH,S,wBCAjBrH,EAAOC,QAAUK,K,wBCAjBN,EAAOC,QAAUqH,U,wBCAjBtH,EAAOC,QAAUsH,c,wBCAjBvH,EAAOC,QAAUuH,W,wBCAjBxH,EAAOC,QAAUwH,S,wBCAjBzH,EAAOC,QAAUyH,Q,wBCAjB1H,EAAOC,QAAU5D,M,4BCDjB,IAAIsL,EAAa,EAAQ,OAErBC,EAAQvL,OAAOE,UAAUyB,SACzB6J,EAAiBxL,OAAOE,UAAUsL,eA8CtC7H,EAAOC,QAAU,SAAiB6H,EAAMC,EAAUC,GAC9C,IAAKL,EAAWI,GACZ,MAAM,IAAIN,UAAU,+BAGxB,IAAIQ,EAVSpE,EAWTmB,UAAU/F,QAAU,IACpBgJ,EAAWD,GAZFnE,EAeDiE,EAda,mBAAlBF,EAAM9C,KAAKjB,GAvCH,SAAsBqE,EAAOH,EAAUE,GACtD,IAAK,IAAIpI,EAAI,EAAG2E,EAAM0D,EAAMjJ,OAAQY,EAAI2E,EAAK3E,IACrCgI,EAAe/C,KAAKoD,EAAOrI,KACX,MAAZoI,EACAF,EAASG,EAAMrI,GAAIA,EAAGqI,GAEtBH,EAASjD,KAAKmD,EAAUC,EAAMrI,GAAIA,EAAGqI,GAIrD,CA4CQC,CAAaL,EAAMC,EAAUE,GACN,iBAATH,EA1CF,SAAuBM,EAAQL,EAAUE,GACzD,IAAK,IAAIpI,EAAI,EAAG2E,EAAM4D,EAAOnJ,OAAQY,EAAI2E,EAAK3E,IAE1B,MAAZoI,EACAF,EAASK,EAAO/G,OAAOxB,GAAIA,EAAGuI,GAE9BL,EAASjD,KAAKmD,EAAUG,EAAO/G,OAAOxB,GAAIA,EAAGuI,EAGzD,CAkCQC,CAAcP,EAAMC,EAAUE,GA/BlB,SAAuBK,EAAQP,EAAUE,GACzD,IAAK,IAAI5E,KAAKiF,EACNT,EAAe/C,KAAKwD,EAAQjF,KACZ,MAAZ4E,EACAF,EAASO,EAAOjF,GAAIA,EAAGiF,GAEvBP,EAASjD,KAAKmD,EAAUK,EAAOjF,GAAIA,EAAGiF,GAItD,CAuBQC,CAAcT,EAAMC,EAAUE,EAEtC,C,wBChEA,IACIL,EAAQvL,OAAOE,UAAUyB,SACzB+F,EAAM3B,KAAK2B,IAGXyE,EAAW,SAAkBnK,EAAGC,GAGhC,IAFA,IAAImK,EAAM,GAED5I,EAAI,EAAGA,EAAIxB,EAAEY,OAAQY,GAAK,EAC/B4I,EAAI5I,GAAKxB,EAAEwB,GAEf,IAAK,IAAI0E,EAAI,EAAGA,EAAIjG,EAAEW,OAAQsF,GAAK,EAC/BkE,EAAIlE,EAAIlG,EAAEY,QAAUX,EAAEiG,GAG1B,OAAOkE,CACX,EAqBAzI,EAAOC,QAAU,SAAcyI,GAC3B,IAAIC,EAASrN,KACb,GAAsB,mBAAXqN,GApCA,sBAoCyBf,EAAM/E,MAAM8F,GAC5C,MAAM,IAAIlB,UAxCE,kDAwCwBkB,GAyBxC,IAvBA,IAEIC,EAFAxD,EAxBI,SAAeyD,GAEvB,IADA,IAAIJ,EAAM,GACD5I,EAsBmB,EAtBF0E,EAAI,EAAG1E,EAAIgJ,EAAQ5J,OAAQY,GAAK,EAAG0E,GAAK,EAC9DkE,EAAIlE,GAAKsE,EAAQhJ,GAErB,OAAO4I,CACX,CAkBeK,CAAM9D,WAqBb+D,EAAchF,EAAI,EAAG4E,EAAO1J,OAASmG,EAAKnG,QAC1C+J,EAAY,GACPnJ,EAAI,EAAGA,EAAIkJ,EAAalJ,IAC7BmJ,EAAUnJ,GAAK,IAAMA,EAKzB,GAFA+I,EAAQ3D,SAAS,SAAU,oBA3CnB,SAAUwD,GAElB,IADA,IAAIlK,EAAM,GACDsB,EAAI,EAAGA,EAAI4I,EAAIxJ,OAAQY,GAAK,EACjCtB,GAAOkK,EAAI5I,GACPA,EAAI,EAAI4I,EAAIxJ,SACZV,GAsC0D,KAnClE,OAAOA,CACX,CAkCqD0K,CAAMD,GAAkB,4CAAjE/D,CAxBK,WACT,GAAI3J,gBAAgBsN,EAAO,CACvB,IAAIpL,EAASmL,EAAO9F,MAChBvH,KACAkN,EAASpD,EAAMJ,YAEnB,OAAI3I,OAAOmB,KAAYA,EACZA,EAEJlC,IACX,CACA,OAAOqN,EAAO9F,MACV6F,EACAF,EAASpD,EAAMJ,WAGvB,GAUI2D,EAAOpM,UAAW,CAClB,IAAI2M,EAAQ,WAAkB,EAC9BA,EAAM3M,UAAYoM,EAAOpM,UACzBqM,EAAMrM,UAAY,IAAI2M,EACtBA,EAAM3M,UAAY,IACtB,CAEA,OAAOqM,CACX,C,4BCjFA,IAAIO,EAAiB,EAAQ,OAE7BnJ,EAAOC,QAAUgF,SAAS1I,UAAUmI,MAAQyE,C,uBCD5C,MAAMC,EAAsD,YAAc,EAAa,YAGvFpJ,EAAOC,QAAU,IAAMmJ,C,4BCJvB,IAAI1Q,EAEAwO,EAAU,EAAQ,OAElBmC,EAAS,EAAQ,OACjBC,EAAa,EAAQ,OACrBC,EAAc,EAAQ,OACtBC,EAAkB,EAAQ,OAC1BvD,EAAe,EAAQ,OACvBf,EAAa,EAAQ,OACrBuE,EAAY,EAAQ,OAEpBxF,EAAM,EAAQ,OACdyF,EAAQ,EAAQ,OAChB3F,EAAM,EAAQ,MACd4F,EAAM,EAAQ,OACdC,EAAM,EAAQ,OACdC,EAAQ,EAAQ,OAChBC,EAAO,EAAQ,OAEfC,EAAY9E,SAGZ+E,EAAwB,SAAUC,GACrC,IACC,OAAOF,EAAU,yBAA2BE,EAAmB,iBAAxDF,EACR,CAAE,MAAO9C,GAAI,CACd,EAEIiD,EAAQ,EAAQ,OAChB3E,EAAkB,EAAQ,OAE1B4E,EAAiB,WACpB,MAAM,IAAIjF,CACX,EACIkF,EAAiBF,EACjB,WACF,IAGC,OAAOC,CACR,CAAE,MAAOE,GACR,IAEC,OAAOH,EAAMlF,UAAW,UAAUvI,GACnC,CAAE,MAAO6N,GACR,OAAOH,CACR,CACD,CACD,CAbE,GAcAA,EAECI,EAAa,EAAQ,MAAR,GAEbC,EAAW,EAAQ,OACnBC,EAAa,EAAQ,OACrBC,EAAc,EAAQ,OAEtB/F,EAAS,EAAQ,OACjBC,EAAQ,EAAQ,OAEhB+F,EAAY,CAAC,EAEbC,EAAmC,oBAAfC,YAA+BL,EAAuBA,EAASK,YAArBnS,EAE9DoS,EAAa,CAChB9D,UAAW,KACX,mBAA8C,oBAAnB+D,eAAiCrS,EAAYqS,eACxE,UAAWzG,MACX,gBAAwC,oBAAhB0G,YAA8BtS,EAAYsS,YAClE,2BAA4BT,GAAcC,EAAWA,EAAS,GAAGS,OAAOlD,aAAerP,EACvF,mCAAoCA,EACpC,kBAAmBiS,EACnB,mBAAoBA,EACpB,2BAA4BA,EAC5B,2BAA4BA,EAC5B,YAAgC,oBAAZO,QAA0BxS,EAAYwS,QAC1D,WAA8B,oBAAXC,OAAyBzS,EAAYyS,OACxD,kBAA4C,oBAAlBC,cAAgC1S,EAAY0S,cACtE,mBAA8C,oBAAnBC,eAAiC3S,EAAY2S,eACxE,YAAaC,QACb,aAAkC,oBAAbC,SAA2B7S,EAAY6S,SAC5D,SAAUC,KACV,cAAeC,UACf,uBAAwBC,mBACxB,cAAeC,UACf,uBAAwBC,mBACxB,UAAWvC,EACX,SAAUwC,KACV,cAAevC,EACf,iBAA0C,oBAAjBwC,aAA+BpT,EAAYoT,aACpE,iBAA0C,oBAAjBC,aAA+BrT,EAAYqT,aACpE,iBAA0C,oBAAjBC,aAA+BtT,EAAYsT,aACpE,yBAA0D,oBAAzBC,qBAAuCvT,EAAYuT,qBACpF,aAAclC,EACd,sBAAuBY,EACvB,cAAoC,oBAAduB,UAA4BxT,EAAYwT,UAC9D,eAAsC,oBAAfC,WAA6BzT,EAAYyT,WAChE,eAAsC,oBAAfC,WAA6B1T,EAAY0T,WAChE,aAAcC,SACd,UAAWC,MACX,sBAAuB/B,GAAcC,EAAWA,EAASA,EAAS,GAAGS,OAAOlD,cAAgBrP,EAC5F,SAA0B,iBAAT6T,KAAoBA,KAAO7T,EAC5C,QAAwB,oBAAR8T,IAAsB9T,EAAY8T,IAClD,yBAAyC,oBAARA,KAAwBjC,GAAeC,EAAuBA,GAAS,IAAIgC,KAAMvB,OAAOlD,aAAtCrP,EACnF,SAAU0J,KACV,WAAYqK,OACZ,WAAYvF,EACZ,oCAAqCgD,EACrC,eAAgBwC,WAChB,aAAcnK,SACd,YAAgC,oBAAZoK,QAA0BjU,EAAYiU,QAC1D,UAA4B,oBAAVC,MAAwBlU,EAAYkU,MACtD,eAAgBrD,EAChB,mBAAoBC,EACpB,YAAgC,oBAAZnE,QAA0B3M,EAAY2M,QAC1D,WAAY7G,OACZ,QAAwB,oBAARqO,IAAsBnU,EAAYmU,IAClD,yBAAyC,oBAARA,KAAwBtC,GAAeC,EAAuBA,GAAS,IAAIqC,KAAM5B,OAAOlD,aAAtCrP,EACnF,sBAAoD,oBAAtBoU,kBAAoCpU,EAAYoU,kBAC9E,WAAYjM,OACZ,4BAA6B0J,GAAcC,EAAWA,EAAS,GAAGS,OAAOlD,aAAerP,EACxF,WAAY6R,EAAaU,OAASvS,EAClC,gBAAiBuN,EACjB,mBAAoBmE,EACpB,eAAgBQ,EAChB,cAAe1F,EACf,eAAsC,oBAAf2F,WAA6BnS,EAAYmS,WAChE,sBAAoD,oBAAtBkC,kBAAoCrU,EAAYqU,kBAC9E,gBAAwC,oBAAhBC,YAA8BtU,EAAYsU,YAClE,gBAAwC,oBAAhBC,YAA8BvU,EAAYuU,YAClE,aAAcxD,EACd,YAAgC,oBAAZyD,QAA0BxU,EAAYwU,QAC1D,YAAgC,oBAAZC,QAA0BzU,EAAYyU,QAC1D,YAAgC,oBAAZC,QAA0B1U,EAAY0U,QAE1D,4BAA6BxI,EAC7B,6BAA8BD,EAC9B,0BAA2BY,EAC3B,0BAA2BkF,EAC3B,aAAcxG,EACd,eAAgByF,EAChB,aAAc3F,EACd,aAAc4F,EACd,aAAcC,EACd,eAAgBC,EAChB,cAAeC,EACf,2BAA4BY,GAG7B,GAAIF,EACH,IACC,KAAKhK,KACN,CAAE,MAAOyG,GAER,IAAIoG,EAAa7C,EAASA,EAASvD,IACnC6D,EAAW,qBAAuBuC,CACnC,CAGD,IAAIC,EAAS,SAASA,EAAO/M,GAC5B,IAAI/D,EACJ,GAAa,oBAAT+D,EACH/D,EAAQwN,EAAsB,6BACxB,GAAa,wBAATzJ,EACV/D,EAAQwN,EAAsB,wBACxB,GAAa,6BAATzJ,EACV/D,EAAQwN,EAAsB,8BACxB,GAAa,qBAATzJ,EAA6B,CACvC,IAAIgN,EAAKD,EAAO,4BACZC,IACH/Q,EAAQ+Q,EAAGhR,UAEb,MAAO,GAAa,6BAATgE,EAAqC,CAC/C,IAAIiN,EAAMF,EAAO,oBACbE,GAAOhD,IACVhO,EAAQgO,EAASgD,EAAIjR,WAEvB,CAIA,OAFAuO,EAAWvK,GAAQ/D,EAEZA,CACR,EAEIiR,EAAiB,CACpBzG,UAAW,KACX,yBAA0B,CAAC,cAAe,aAC1C,mBAAoB,CAAC,QAAS,aAC9B,uBAAwB,CAAC,QAAS,YAAa,WAC/C,uBAAwB,CAAC,QAAS,YAAa,WAC/C,oBAAqB,CAAC,QAAS,YAAa,QAC5C,sBAAuB,CAAC,QAAS,YAAa,UAC9C,2BAA4B,CAAC,gBAAiB,aAC9C,mBAAoB,CAAC,yBAA0B,aAC/C,4BAA6B,CAAC,yBAA0B,YAAa,aACrE,qBAAsB,CAAC,UAAW,aAClC,sBAAuB,CAAC,WAAY,aACpC,kBAAmB,CAAC,OAAQ,aAC5B,mBAAoB,CAAC,QAAS,aAC9B,uBAAwB,CAAC,YAAa,aACtC,0BAA2B,CAAC,eAAgB,aAC5C,0BAA2B,CAAC,eAAgB,aAC5C,sBAAuB,CAAC,WAAY,aACpC,cAAe,CAAC,oBAAqB,aACrC,uBAAwB,CAAC,oBAAqB,YAAa,aAC3D,uBAAwB,CAAC,YAAa,aACtC,wBAAyB,CAAC,aAAc,aACxC,wBAAyB,CAAC,aAAc,aACxC,cAAe,CAAC,OAAQ,SACxB,kBAAmB,CAAC,OAAQ,aAC5B,iBAAkB,CAAC,MAAO,aAC1B,oBAAqB,CAAC,SAAU,aAChC,oBAAqB,CAAC,SAAU,aAChC,sBAAuB,CAAC,SAAU,YAAa,YAC/C,qBAAsB,CAAC,SAAU,YAAa,WAC9C,qBAAsB,CAAC,UAAW,aAClC,sBAAuB,CAAC,UAAW,YAAa,QAChD,gBAAiB,CAAC,UAAW,OAC7B,mBAAoB,CAAC,UAAW,UAChC,oBAAqB,CAAC,UAAW,WACjC,wBAAyB,CAAC,aAAc,aACxC,4BAA6B,CAAC,iBAAkB,aAChD,oBAAqB,CAAC,SAAU,aAChC,iBAAkB,CAAC,MAAO,aAC1B,+BAAgC,CAAC,oBAAqB,aACtD,oBAAqB,CAAC,SAAU,aAChC,oBAAqB,CAAC,SAAU,aAChC,yBAA0B,CAAC,cAAe,aAC1C,wBAAyB,CAAC,aAAc,aACxC,uBAAwB,CAAC,YAAa,aACtC,wBAAyB,CAAC,aAAc,aACxC,+BAAgC,CAAC,oBAAqB,aACtD,yBAA0B,CAAC,cAAe,aAC1C,yBAA0B,CAAC,cAAe,aAC1C,sBAAuB,CAAC,WAAY,aACpC,qBAAsB,CAAC,UAAW,aAClC,qBAAsB,CAAC,UAAW,cAG/BtC,EAAO,EAAQ,OACfgJ,EAAS,EAAQ,MACjBC,EAAUjJ,EAAKI,KAAKF,EAAON,MAAM/H,UAAUqR,QAC3CC,EAAenJ,EAAKI,KAAKH,EAAQL,MAAM/H,UAAUuR,QACjDC,EAAWrJ,EAAKI,KAAKF,EAAO/D,OAAOtE,UAAU+E,SAC7C0M,EAAYtJ,EAAKI,KAAKF,EAAO/D,OAAOtE,UAAUwC,OAC9CkP,EAAQvJ,EAAKI,KAAKF,EAAOpG,OAAOjC,UAAU2R,MAG1CC,EAAa,qGACbC,EAAe,WAiBfC,EAAmB,SAA0B9N,EAAMwF,GACtD,IACIuI,EADAC,EAAgBhO,EAOpB,GALImN,EAAOD,EAAgBc,KAE1BA,EAAgB,KADhBD,EAAQb,EAAec,IACK,GAAK,KAG9Bb,EAAO5C,EAAYyD,GAAgB,CACtC,IAAI/R,EAAQsO,EAAWyD,GAIvB,GAHI/R,IAAUmO,IACbnO,EAAQ8Q,EAAOiB,SAEK,IAAV/R,IAA0BuJ,EACpC,MAAM,IAAIb,EAAW,aAAe3E,EAAO,wDAG5C,MAAO,CACN+N,MAAOA,EACP/N,KAAMgO,EACN/R,MAAOA,EAET,CAEA,MAAM,IAAIyJ,EAAa,aAAe1F,EAAO,mBAC9C,EAEAP,EAAOC,QAAU,SAAsBM,EAAMwF,GAC5C,GAAoB,iBAATxF,GAAqC,IAAhBA,EAAKtB,OACpC,MAAM,IAAIiG,EAAW,6CAEtB,GAAIF,UAAU/F,OAAS,GAA6B,kBAAjB8G,EAClC,MAAM,IAAIb,EAAW,6CAGtB,GAAmC,OAA/B+I,EAAM,cAAe1N,GACxB,MAAM,IAAI0F,EAAa,sFAExB,IAAIxD,EAtDc,SAAsB2F,GACxC,IAAIoG,EAAQR,EAAU5F,EAAQ,EAAG,GAC7BqG,EAAOT,EAAU5F,GAAS,GAC9B,GAAc,MAAVoG,GAA0B,MAATC,EACpB,MAAM,IAAIxI,EAAa,kDACjB,GAAa,MAATwI,GAA0B,MAAVD,EAC1B,MAAM,IAAIvI,EAAa,kDAExB,IAAIzI,EAAS,GAIb,OAHAuQ,EAAS3F,EAAQ+F,EAAY,SAAU9O,EAAOqP,EAAQC,EAAOC,GAC5DpR,EAAOA,EAAOyB,QAAU0P,EAAQZ,EAASa,EAAWR,EAAc,MAAQM,GAAUrP,CACrF,GACO7B,CACR,CAyCaqR,CAAatO,GACrBuO,EAAoBrM,EAAMxD,OAAS,EAAIwD,EAAM,GAAK,GAElDuD,EAAYqI,EAAiB,IAAMS,EAAoB,IAAK/I,GAC5DgJ,EAAoB/I,EAAUzF,KAC9B/D,EAAQwJ,EAAUxJ,MAClBwS,GAAqB,EAErBV,EAAQtI,EAAUsI,MAClBA,IACHQ,EAAoBR,EAAM,GAC1BT,EAAapL,EAAOkL,EAAQ,CAAC,EAAG,GAAIW,KAGrC,IAAK,IAAIzO,EAAI,EAAGoP,GAAQ,EAAMpP,EAAI4C,EAAMxD,OAAQY,GAAK,EAAG,CACvD,IAAIqP,EAAOzM,EAAM5C,GACb2O,EAAQR,EAAUkB,EAAM,EAAG,GAC3BT,EAAOT,EAAUkB,GAAO,GAC5B,IAEa,MAAVV,GAA2B,MAAVA,GAA2B,MAAVA,GACtB,MAATC,GAAyB,MAATA,GAAyB,MAATA,IAElCD,IAAUC,EAEb,MAAM,IAAIxI,EAAa,wDASxB,GAPa,gBAATiJ,GAA2BD,IAC9BD,GAAqB,GAMlBtB,EAAO5C,EAFXiE,EAAoB,KADpBD,GAAqB,IAAMI,GACmB,KAG7C1S,EAAQsO,EAAWiE,QACb,GAAa,MAATvS,EAAe,CACzB,KAAM0S,KAAQ1S,GAAQ,CACrB,IAAKuJ,EACJ,MAAM,IAAIb,EAAW,sBAAwB3E,EAAO,+CAErD,MACD,CACA,GAAI2J,GAAUrK,EAAI,GAAM4C,EAAMxD,OAAQ,CACrC,IAAIwH,EAAOyD,EAAM1N,EAAO0S,GAWvB1S,GAVDyS,IAAUxI,IASG,QAASA,KAAU,kBAAmBA,EAAKhK,KAC/CgK,EAAKhK,IAELD,EAAM0S,EAEhB,MACCD,EAAQvB,EAAOlR,EAAO0S,GACtB1S,EAAQA,EAAM0S,GAGXD,IAAUD,IACblE,EAAWiE,GAAqBvS,EAElC,CACD,CACA,OAAOA,CACR,C,4BCvXA,IAAI0K,EAAU,EAAQ,OAGtBlH,EAAOC,QAAUiH,EAAQE,gBAAkB,I,wBCF3CpH,EAAOC,QAA8B,oBAAZoF,SAA2BA,QAAQ+B,gBAAmB,I,4BCD/E,IAAI+H,EAAkB,EAAQ,OAC1BC,EAAmB,EAAQ,OAE3BC,EAAiB,EAAQ,MAG7BrP,EAAOC,QAAUkP,EACd,SAAkBG,GAEnB,OAAOH,EAAgBG,EACxB,EACEF,EACC,SAAkBE,GACnB,IAAKA,GAAmB,iBAANA,GAA+B,mBAANA,EAC1C,MAAM,IAAI7H,UAAU,2BAGrB,OAAO2H,EAAiBE,EACzB,EACED,EACC,SAAkBC,GAEnB,OAAOD,EAAeC,EACvB,EACE,I,uBCvBLtP,EAAOC,QAAU5D,OAAOkT,wB,4BCAxB,IAAIrF,EAAQ,EAAQ,MAEpB,GAAIA,EACH,IACCA,EAAM,GAAI,SACX,CAAE,MAAOjD,GAERiD,EAAQ,IACT,CAGDlK,EAAOC,QAAUiK,C,4BCZjB,IAAI3E,EAAkB,EAAQ,OAE1BiK,EAAyB,WAC5B,QAASjK,CACV,EAEAiK,EAAuBC,wBAA0B,WAEhD,IAAKlK,EACJ,OAAO,KAER,IACC,OAA8D,IAAvDA,EAAgB,GAAI,SAAU,CAAE/I,MAAO,IAAKyC,MACpD,CAAE,MAAOgI,GAER,OAAO,CACR,CACD,EAEAjH,EAAOC,QAAUuP,C,4BCnBjB,IAAIE,EAA+B,oBAAXzE,QAA0BA,OAC9C0E,EAAgB,EAAQ,OAG5B3P,EAAOC,QAAU,WAChB,MAA0B,mBAAfyP,GACW,mBAAXzE,QACsB,iBAAtByE,EAAW,QACO,iBAAlBzE,OAAO,QAEX0E,GACR,C,wBCTA3P,EAAOC,QAAU,WAChB,GAAsB,mBAAXgL,QAAiE,mBAAjC5O,OAAOuT,sBAAwC,OAAO,EACjG,GAA+B,iBAApB3E,OAAOlD,SAAyB,OAAO,EAGlD,IAAI5B,EAAM,CAAC,EACP0J,EAAM5E,OAAO,QACb6E,EAASzT,OAAOwT,GACpB,GAAmB,iBAARA,EAAoB,OAAO,EAEtC,GAA4C,oBAAxCxT,OAAOE,UAAUyB,SAAS8G,KAAK+K,GAA8B,OAAO,EACxE,GAA+C,oBAA3CxT,OAAOE,UAAUyB,SAAS8G,KAAKgL,GAAiC,OAAO,EAY3E,IAAK,IAAIC,KADT5J,EAAI0J,GADS,GAEC1J,EAAO,OAAO,EAC5B,GAA2B,mBAAhB9J,OAAO2T,MAAmD,IAA5B3T,OAAO2T,KAAK7J,GAAKlH,OAAgB,OAAO,EAEjF,GAA0C,mBAA/B5C,OAAO4T,qBAAiF,IAA3C5T,OAAO4T,oBAAoB9J,GAAKlH,OAAgB,OAAO,EAE/G,IAAIiR,EAAO7T,OAAOuT,sBAAsBzJ,GACxC,GAAoB,IAAhB+J,EAAKjR,QAAgBiR,EAAK,KAAOL,EAAO,OAAO,EAEnD,IAAKxT,OAAOE,UAAU4T,qBAAqBrL,KAAKqB,EAAK0J,GAAQ,OAAO,EAEpE,GAA+C,mBAApCxT,OAAOkT,yBAAyC,CAE1D,IAAIa,EAAgD/T,OAAOkT,yBAAyBpJ,EAAK0J,GACzF,GAfY,KAeRO,EAAW5T,QAA8C,IAA1B4T,EAAWzJ,WAAuB,OAAO,CAC7E,CAEA,OAAO,CACR,C,4BC1CA,IAAI4D,EAAa,EAAQ,OAGzBvK,EAAOC,QAAU,WAChB,OAAOsK,OAAkBU,OAAOoF,WACjC,C,2BCLA,IAAIvL,EAAOG,SAAS1I,UAAUuI,KAC1BwL,EAAUjU,OAAOE,UAAUsL,eAC3BnD,EAAO,EAAQ,OAGnB1E,EAAOC,QAAUyE,EAAKI,KAAKA,EAAMwL,E,eCPjC,IAAIC,EAAO,EAAQ,OACfC,EAAM,EAAQ,OAEdC,EAAQzQ,EAAOC,QAEnB,IAAK,IAAIyQ,KAAOH,EACVA,EAAK1I,eAAe6I,KAAMD,EAAMC,GAAOH,EAAKG,IAalD,SAASC,EAAgBC,GAOvB,GANsB,iBAAXA,IACTA,EAASJ,EAAIK,MAAMD,IAEhBA,EAAOE,WACVF,EAAOE,SAAW,UAEI,WAApBF,EAAOE,SACT,MAAM,IAAIxQ,MAAM,aAAesQ,EAAOE,SAAW,sCAEnD,OAAOF,CACT,CArBAH,EAAMM,QAAU,SAAUH,EAAQI,GAEhC,OADAJ,EAASD,EAAeC,GACjBL,EAAKQ,QAAQjM,KAAKxJ,KAAMsV,EAAQI,EACzC,EAEAP,EAAMhU,IAAM,SAAUmU,EAAQI,GAE5B,OADAJ,EAASD,EAAeC,GACjBL,EAAK9T,IAAIqI,KAAKxJ,KAAMsV,EAAQI,EACrC,C,4BCfA,IAAIC,EAAiB,EAAQ,MAAR,GAGjBC,EAFY,EAAQ,MAERC,CAAU,6BAGtBC,EAAsB,SAAqB5U,GAC9C,QACCyU,GACGzU,GACiB,iBAAVA,GACPyO,OAAOoF,eAAe7T,IAIE,uBAArB0U,EAAU1U,EAClB,EAGI6U,EAAoB,SAAqB7U,GAC5C,QAAI4U,EAAoB5U,IAGP,OAAVA,GACc,iBAAVA,GACP,WAAYA,GACY,iBAAjBA,EAAMyC,QACbzC,EAAMyC,QAAU,GACK,mBAArBiS,EAAU1U,IACV,WAAYA,GACgB,sBAA5B0U,EAAU1U,EAAM8U,OACrB,EAEIC,EAA6B,WAChC,OAAOH,EAAoBpM,UAC5B,CAFgC,GAKhCoM,EAAoBC,kBAAoBA,EAGxCrR,EAAOC,QAAUsR,EAA4BH,EAAsBC,C,wBCzCnE,IAEIG,EACAC,EAHAC,EAAUzM,SAAS1I,UAAUyB,SAC7B2T,EAAkC,iBAAZtM,SAAoC,OAAZA,SAAoBA,QAAQxC,MAG9E,GAA4B,mBAAjB8O,GAAgE,mBAA1BtV,OAAOC,eACvD,IACCkV,EAAenV,OAAOC,eAAe,CAAC,EAAG,SAAU,CAClDG,IAAK,WACJ,MAAMgV,CACP,IAEDA,EAAmB,CAAC,EAEpBE,EAAa,WAAc,MAAM,EAAI,EAAG,KAAMH,EAC/C,CAAE,MAAOzB,GACJA,IAAM0B,IACTE,EAAe,KAEjB,MAEAA,EAAe,KAGhB,IAAIC,EAAmB,cACnBC,EAAe,SAA4BrV,GAC9C,IACC,IAAIsV,EAAQJ,EAAQ5M,KAAKtI,GACzB,OAAOoV,EAAiB9Q,KAAKgR,EAC9B,CAAE,MAAO7K,GACR,OAAO,CACR,CACD,EAEI8K,EAAoB,SAA0BvV,GACjD,IACC,OAAIqV,EAAarV,KACjBkV,EAAQ5M,KAAKtI,IACN,EACR,CAAE,MAAOyK,GACR,OAAO,CACR,CACD,EACIW,EAAQvL,OAAOE,UAAUyB,SAOzBiT,EAAmC,mBAAXhG,UAA2BA,OAAOoF,YAE1D2B,IAAW,IAAK,CAAC,IAEjBC,EAAQ,WAA8B,OAAO,CAAO,EACxD,GAAwB,iBAAbC,SAAuB,CAEjC,IAAIC,EAAMD,SAASC,IACfvK,EAAM9C,KAAKqN,KAASvK,EAAM9C,KAAKoN,SAASC,OAC3CF,EAAQ,SAA0BzV,GAGjC,IAAKwV,IAAWxV,UAA4B,IAAVA,GAA0C,iBAAVA,GACjE,IACC,IAAI+B,EAAMqJ,EAAM9C,KAAKtI,GACrB,OAlBU,+BAmBT+B,GAlBU,qCAmBPA,GAlBO,4BAmBPA,GAxBS,oBAyBTA,IACc,MAAb/B,EAAM,GACZ,CAAE,MAAOyK,GAAU,CAEpB,OAAO,CACR,EAEF,CAEAjH,EAAOC,QAAU0R,EACd,SAAoBnV,GACrB,GAAIyV,EAAMzV,GAAU,OAAO,EAC3B,IAAKA,EAAS,OAAO,EACrB,GAAqB,mBAAVA,GAAyC,iBAAVA,EAAsB,OAAO,EACvE,IACCmV,EAAanV,EAAO,KAAMgV,EAC3B,CAAE,MAAOvK,GACR,GAAIA,IAAMwK,EAAoB,OAAO,CACtC,CACA,OAAQI,EAAarV,IAAUuV,EAAkBvV,EAClD,EACE,SAAoBA,GACrB,GAAIyV,EAAMzV,GAAU,OAAO,EAC3B,IAAKA,EAAS,OAAO,EACrB,GAAqB,mBAAVA,GAAyC,iBAAVA,EAAsB,OAAO,EACvE,GAAIyU,EAAkB,OAAOc,EAAkBvV,GAC/C,GAAIqV,EAAarV,GAAU,OAAO,EAClC,IAAI4V,EAAWxK,EAAM9C,KAAKtI,GAC1B,QApDY,sBAoDR4V,GAnDS,+BAmDeA,IAA0B,iBAAmBtR,KAAKsR,KACvEL,EAAkBvV,EAC1B,C,4BClGD,IAAI2U,EAAY,EAAQ,OAEpBkB,EADgB,EAAQ,MACZC,CAAc,uBAC1BrB,EAAiB,EAAQ,MAAR,GACjBzG,EAAW,EAAQ,OAEnB5C,EAAQuJ,EAAU,6BAClBO,EAAUP,EAAU,+BAEpBoB,EAAuB,EAAQ,MAGnCvS,EAAOC,QAAU,SAA6BsN,GAC7C,GAAkB,mBAAPA,EACV,OAAO,EAER,GAAI8E,EAAUX,EAAQnE,IACrB,OAAO,EAER,IAAK0D,EAEJ,MAAe,+BADLrJ,EAAM2F,GAGjB,IAAK/C,EACJ,OAAO,EAER,IAAIgI,EAAoBD,IACxB,OAAOC,GAAqBhI,EAAS+C,KAAQiF,EAAkBjW,SAChE,C,4BC5BA,IAMIgR,EANA4D,EAAY,EAAQ,OACpBF,EAAiB,EAAQ,MAAR,GACjBvD,EAAS,EAAQ,MACjB3G,EAAO,EAAQ,OAKnB,GAAIkK,EAAgB,CAEnB,IAAIhD,EAAQkD,EAAU,yBAElBsB,EAAgB,CAAC,EAEjBC,EAAmB,WACtB,MAAMD,CACP,EAEIE,EAAiB,CACpB3U,SAAU0U,EACVE,QAASF,GAGwB,iBAAvBzH,OAAO4H,cACjBF,EAAe1H,OAAO4H,aAAeH,GAMtCnF,EAAK,SAAiB/Q,GACrB,IAAKA,GAA0B,iBAAVA,EACpB,OAAO,EAIR,IAAI4T,EAAqD,EAA8C,EAAS,aAEhH,IAD+BA,IAAc1C,EAAO0C,EAAY,SAE/D,OAAO,EAGR,IAECnC,EAAMzR,EAA6B,EACpC,CAAE,MAAOyK,GACR,OAAOA,IAAMwL,CACd,CACD,CACD,KAAO,CAEN,IAAIvB,EAAYC,EAAU,6BAK1B5D,EAAK,SAAiB/Q,GAErB,SAAKA,GAA2B,iBAAVA,GAAuC,mBAAVA,IALnC,oBAST0U,EAAU1U,EAClB,CACD,CAEAwD,EAAOC,QAAUsN,C,4BClEjB,IAAIuF,EAAkB,EAAQ,OAG9B9S,EAAOC,QAAU,SAAsBzD,GACtC,QAASsW,EAAgBtW,EAC1B,C,wBCJAwD,EAAOC,QAAUmC,KAAK6B,G,wBCAtBjE,EAAOC,QAAUmC,KAAKsH,K,wBCAtB1J,EAAOC,QAAUwM,OAAOH,OAAS,SAAejO,GAC/C,OAAOA,GAAMA,CACd,C,uBCFA2B,EAAOC,QAAUmC,KAAK2B,G,wBCAtB/D,EAAOC,QAAUmC,KAAKuH,G,wBCAtB3J,EAAOC,QAAUmC,KAAKwH,G,wBCAtB5J,EAAOC,QAAUmC,KAAKyH,K,4BCDtB,IAAIkJ,EAAS,EAAQ,OAGrB/S,EAAOC,QAAU,SAAcyO,GAC9B,OAAIqE,EAAOrE,IAAsB,IAAXA,EACdA,EAEDA,EAAS,GAAK,EAAI,CAC1B,C,wBCDA,SAASsE,EAAQ7M,GAAmV,OAAtO6M,EAArD,mBAAX/H,QAAoD,iBAApBA,OAAOlD,SAAmC,SAAiB5B,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,mBAAX8E,QAAyB9E,EAAI8M,cAAgBhI,QAAU9E,IAAQ8E,OAAO1O,UAAY,gBAAkB4J,CAAK,EAAY6M,EAAQ7M,EAAM,CAUzX,SAAS+M,EAAiBC,GAAS,IAAIC,EAAwB,mBAAR5G,IAAqB,IAAIA,SAAQ9T,EAA8nB,OAAnnBwa,EAAmB,SAA0BC,GAAS,GAAc,OAAVA,IAMlI5F,EANuK4F,GAMjG,IAAzDlO,SAASjH,SAAS8G,KAAKyI,GAAI5N,QAAQ,kBAN+H,OAAOwT,EAMjN,IAA2B5F,EAN6L,GAAqB,mBAAV4F,EAAwB,MAAM,IAAI1L,UAAU,sDAAyD,QAAsB,IAAX2L,EAAwB,CAAE,GAAIA,EAAOC,IAAIF,GAAQ,OAAOC,EAAO3W,IAAI0W,GAAQC,EAAOE,IAAIH,EAAOI,EAAU,CAAE,SAASA,IAAY,OAAOC,EAAWL,EAAOnO,UAAWyO,EAAgBnY,MAAM2X,YAAc,CAAkJ,OAAhJM,EAAQhX,UAAYF,OAAOqX,OAAOP,EAAM5W,UAAW,CAAE0W,YAAa,CAAEzW,MAAO+W,EAAS5M,YAAY,EAAOC,UAAU,EAAMF,cAAc,KAAkBiN,EAAgBJ,EAASJ,EAAQ,EAAUD,EAAiBC,EAAQ,CAEtvB,SAASK,EAAWI,EAAQxO,EAAM+N,GAAqV,OAAhQK,EAEvH,WAAuC,GAAuB,oBAAZnO,UAA4BA,QAAQwO,UAAW,OAAO,EAAO,GAAIxO,QAAQwO,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVlH,MAAsB,OAAO,EAAM,IAAiF,OAA3EpB,KAAKjP,UAAUyB,SAAS8G,KAAKO,QAAQwO,UAAUrI,KAAM,GAAI,WAAa,KAAY,CAAM,CAAE,MAAOvE,GAAK,OAAO,CAAO,CAAE,CAFpR8M,GAA4C1O,QAAQwO,UAAiC,SAAoBD,EAAQxO,EAAM+N,GAAS,IAAI9U,EAAI,CAAC,MAAOA,EAAEyB,KAAK+C,MAAMxE,EAAG+G,GAAO,IAAsD4O,EAAW,IAA/C/O,SAASP,KAAK7B,MAAM+Q,EAAQvV,IAA6F,OAAnD8U,GAAOQ,EAAgBK,EAAUb,EAAM5W,WAAmByX,CAAU,EAAYR,EAAW3Q,MAAM,KAAMmC,UAAY,CAMja,SAAS2O,EAAgBM,EAAGvR,GAA+G,OAA1GiR,EAAkBtX,OAAO6X,gBAAkB,SAAyBD,EAAGvR,GAAsB,OAAjBuR,EAAEjN,UAAYtE,EAAUuR,CAAG,EAAUN,EAAgBM,EAAGvR,EAAI,CAEzK,SAAS+Q,EAAgBQ,GAAwJ,OAAnJR,EAAkBpX,OAAO6X,eAAiB7X,OAAO+K,eAAiB,SAAyB6M,GAAK,OAAOA,EAAEjN,WAAa3K,OAAO+K,eAAe6M,EAAI,EAAUR,EAAgBQ,EAAI,CAE5M,IAGIE,EAA4C,SAAUC,GAGxD,SAASD,EAA6BvD,GACpC,IAAIyD,EAMJ,OAjCJ,SAAyBL,EAAUM,GAAe,KAAMN,aAAoBM,GAAgB,MAAM,IAAI7M,UAAU,oCAAwC,CA6BpJ8M,CAAgBjZ,KAAM6Y,IAEtBE,EA7BJ,SAAoCG,EAAM1P,GAAQ,OAAIA,GAA2B,WAAlBkO,EAAQlO,IAAsC,mBAATA,EAEpG,SAAgC0P,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIjN,eAAe,6DAAgE,OAAOiN,CAAM,CAFnBC,CAAuBD,GAAtC1P,CAA6C,CA6BpK4P,CAA2BpZ,KAAMmY,EAAgBU,GAA8BrP,KAAKxJ,KAAMsV,KAC5FrQ,KAAO,+BACN8T,CACT,CAEA,OA9BF,SAAmBM,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAInN,UAAU,sDAAyDkN,EAASpY,UAAYF,OAAOqX,OAAOkB,GAAcA,EAAWrY,UAAW,CAAE0W,YAAa,CAAEzW,MAAOmY,EAAU/N,UAAU,EAAMF,cAAc,KAAekO,GAAYjB,EAAgBgB,EAAUC,EAAa,CAkB9XC,CAAUV,EAA8BC,GAYjCD,CACT,CAdgD,CAc9CjB,EAAiB5S,QA6LnB,SAASwU,EAASxM,EAAQyM,GAoCxB,IAnCA,IAAIC,EAAWhQ,UAAU/F,OAAS,QAAsBvG,IAAjBsM,UAAU,GAAmBA,UAAU,GAAK,WAAa,EAC5FiQ,EAAWF,EAAKnT,MA/MD,KAgNf3C,EAASgW,EAAShW,OAElBiW,EAAQ,SAAeC,GACzB,IAAIC,EAAiBH,EAASE,GAE9B,IAAK7M,EACH,MAAO,CACL+M,OAAG,GAIP,GA5NiB,MA4NbD,EAAmC,CACrC,GAAI9Q,MAAMgR,QAAQhN,GAChB,MAAO,CACL+M,EAAG/M,EAAO1N,IAAI,SAAU4B,EAAO+Y,GAC7B,IAAIC,EAAoBP,EAASlW,MAAMoW,EAAM,GAE7C,OAAIK,EAAkBvW,OAAS,EACtB6V,EAAStY,EAAOgZ,EAAkBzY,KAlOlC,KAkOwDiY,GAExDA,EAAS1M,EAAQiN,EAAON,EAAUE,EAE7C,IAGF,IAAIM,EAAaR,EAASlW,MAAM,EAAGoW,GAAKpY,KAzO3B,KA0Ob,MAAM,IAAIuD,MAAM,uBAAuBsN,OAAO6H,EAAY,qBAE9D,CACEnN,EAAS0M,EAAS1M,EAAQ8M,EAAgBH,EAAUE,EAExD,EAESA,EAAM,EAAGA,EAAMlW,EAAQkW,IAAO,CACrC,IAAIO,EAAOR,EAAMC,GAEjB,GAAsB,WAAlBnC,EAAQ0C,GAAoB,OAAOA,EAAKL,CAC9C,CAEA,OAAO/M,CACT,CAEA,SAASqN,EAAcV,EAAUM,GAC/B,OAAON,EAAShW,SAAWsW,EAAQ,CACrC,CA1OAvV,EAAOC,QAAU,CACfqT,IAkGF,SAA2BhL,EAAQlC,EAAU5J,GAC3C,GAAuB,UAAnBwW,EAAQ1K,IAAkC,OAAXA,EACjC,OAAOA,EAGT,QAAuB,IAAZlC,EACT,OAAOkC,EAGT,GAAuB,iBAAZlC,EAET,OADAkC,EAAOlC,GAAY5J,EACZ8L,EAAOlC,GAGhB,IACE,OAAO0O,EAASxM,EAAQlC,EAAU,SAA4BwP,EAAeC,EAAiBZ,EAAUM,GACtG,GAAIK,IAAkBvQ,QAAQ+B,eAAe,CAAC,GAC5C,MAAM,IAAI+M,EAA6B,yCAGzC,IAAKyB,EAAcC,GAAkB,CACnC,IAAIC,EAAmBrJ,OAAOsJ,UAAUtJ,OAAOwI,EAASM,EAAQ,KAC5DS,EA5IS,MA4IiBf,EAASM,EAAQ,GAG7CK,EAAcC,GADZC,GAAoBE,EACW,GAEA,CAAC,CAEtC,CAMA,OAJIL,EAAcV,EAAUM,KAC1BK,EAAcC,GAAmBrZ,GAG5BoZ,EAAcC,EACvB,EACF,CAAE,MAAOI,GACP,GAAIA,aAAe9B,EAEjB,MAAM8B,EAEN,OAAO3N,CAEX,CACF,EA9IE7L,IAqBF,SAA2B6L,EAAQlC,GACjC,GAAuB,UAAnB4M,EAAQ1K,IAAkC,OAAXA,EACjC,OAAOA,EAGT,QAAuB,IAAZlC,EACT,OAAOkC,EAGT,GAAuB,iBAAZlC,EACT,OAAOkC,EAAOlC,GAGhB,IACE,OAAO0O,EAASxM,EAAQlC,EAAU,SAA4BwP,EAAeC,GAC3E,OAAOD,EAAcC,EACvB,EACF,CAAE,MAAOI,GACP,OAAO3N,CACT,CACF,EAxCE+K,IAqDF,SAA2B/K,EAAQlC,GACjC,IAAIvJ,EAAUmI,UAAU/F,OAAS,QAAsBvG,IAAjBsM,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEnF,GAAuB,UAAnBgO,EAAQ1K,IAAkC,OAAXA,EACjC,OAAO,EAGT,QAAuB,IAAZlC,EACT,OAAO,EAGT,GAAuB,iBAAZA,EACT,OAAOA,KAAYkC,EAGrB,IACE,IAAI+K,GAAM,EAYV,OAXAyB,EAASxM,EAAQlC,EAAU,SAA4BwP,EAAeC,EAAiBZ,EAAUM,GAC/F,IAAII,EAAcV,EAAUM,GAO1B,OAAOK,GAAiBA,EAAcC,GALpCxC,EADExW,EAAQqZ,IACJN,EAAc/N,eAAegO,GAE7BA,KAAmBD,CAK/B,GACOvC,CACT,CAAE,MAAO4C,GACP,OAAO,CACT,CACF,EApFEvI,OAAQ,SAAgBpF,EAAQlC,EAAUvJ,GACxC,OAAOvB,KAAK+X,IAAI/K,EAAQlC,EAAUvJ,GAAW,CAC3CqZ,KAAK,GAET,EACAC,KAoJF,SAA4B7N,EAAQlC,EAAUgQ,GAC5C,IAAIvZ,EAAUmI,UAAU/F,OAAS,QAAsBvG,IAAjBsM,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEnF,GAAuB,UAAnBgO,EAAQ1K,IAAkC,OAAXA,EACjC,OAAO,EAGT,QAAuB,IAAZlC,EACT,OAAO,EAGT,IACE,IAAI+P,GAAO,EACPE,GAAa,EAOjB,OANAvB,EAASxM,EAAQlC,EAAU,SAA6BwP,EAAeC,EAAiBZ,EAAUM,GAGhG,OAFAY,EAAOA,GAAQP,IAAkBQ,KAAkBR,GAAiBA,EAAcC,KAAqBO,EACvGC,EAAaV,EAAcV,EAAUM,IAAqC,WAA3BvC,EAAQ4C,IAA+BC,KAAmBD,EAClGA,GAAiBA,EAAcC,EACxC,GAEIhZ,EAAQyZ,UACHH,GAAQE,EAERF,CAEX,CAAE,MAAOF,GACP,OAAO,CACT,CACF,EA/KE9B,6BAA8BA,E,eC5DhC,IAAIoC,EAAwB,mBAAR/J,KAAsBA,IAAIjQ,UAC1Cia,EAAoBna,OAAOkT,0BAA4BgH,EAASla,OAAOkT,yBAAyB/C,IAAIjQ,UAAW,QAAU,KACzHka,EAAUF,GAAUC,GAAsD,mBAA1BA,EAAkB/Z,IAAqB+Z,EAAkB/Z,IAAM,KAC/Gia,EAAaH,GAAU/J,IAAIjQ,UAAUoa,QACrCC,EAAwB,mBAAR/J,KAAsBA,IAAItQ,UAC1Csa,EAAoBxa,OAAOkT,0BAA4BqH,EAASva,OAAOkT,yBAAyB1C,IAAItQ,UAAW,QAAU,KACzHua,EAAUF,GAAUC,GAAsD,mBAA1BA,EAAkBpa,IAAqBoa,EAAkBpa,IAAM,KAC/Gsa,EAAaH,GAAU/J,IAAItQ,UAAUoa,QAErCK,EADgC,mBAAZ9J,SAA0BA,QAAQ3Q,UAC5B2Q,QAAQ3Q,UAAU8W,IAAM,KAElD4D,EADgC,mBAAZ7J,SAA0BA,QAAQ7Q,UAC5B6Q,QAAQ7Q,UAAU8W,IAAM,KAElD6D,EADgC,mBAAZ/J,SAA0BA,QAAQ5Q,UAC1B4Q,QAAQ5Q,UAAU4a,MAAQ,KACtDC,EAAiB9L,QAAQ/O,UAAUqW,QACnCyE,EAAiBhb,OAAOE,UAAUyB,SAClCsZ,EAAmBrS,SAAS1I,UAAUyB,SACtCuZ,EAAS1W,OAAOtE,UAAU8C,MAC1BmY,EAAS3W,OAAOtE,UAAUwC,MAC1BgP,EAAWlN,OAAOtE,UAAU+E,QAC5BmW,EAAe5W,OAAOtE,UAAUmb,YAChCC,EAAe9W,OAAOtE,UAAUqb,YAChCC,EAAQrZ,OAAOjC,UAAUuE,KACzB6M,EAAUrJ,MAAM/H,UAAUqR,OAC1BkK,EAAQxT,MAAM/H,UAAUQ,KACxBgb,EAAYzT,MAAM/H,UAAUwC,MAC5BiZ,EAAS5V,KAAKsH,MACduO,EAAkC,mBAAX9M,OAAwBA,OAAO5O,UAAUqW,QAAU,KAC1EsF,EAAO7b,OAAOuT,sBACduI,EAAgC,mBAAXlN,QAAoD,iBAApBA,OAAOlD,SAAwBkD,OAAO1O,UAAUyB,SAAW,KAChHoa,EAAsC,mBAAXnN,QAAoD,iBAApBA,OAAOlD,SAElEsI,EAAgC,mBAAXpF,QAAyBA,OAAOoF,cAAuBpF,OAAOoF,YAAf,GAClEpF,OAAOoF,YACP,KACFgI,EAAehc,OAAOE,UAAU4T,qBAEhCmI,GAA0B,mBAAZjT,QAAyBA,QAAQ+B,eAAiB/K,OAAO+K,kBACvE,GAAGJ,YAAc1C,MAAM/H,UACjB,SAAU+S,GACR,OAAOA,EAAEtI,SACb,EACE,MAGV,SAASuR,EAAoBC,EAAKja,GAC9B,GACIia,IAAQC,KACLD,KAAQ,KACRA,GAAQA,GACPA,GAAOA,GAAO,KAAQA,EAAM,KAC7BX,EAAM/S,KAAK,IAAKvG,GAEnB,OAAOA,EAEX,IAAIma,EAAW,mCACf,GAAmB,iBAARF,EAAkB,CACzB,IAAIG,EAAMH,EAAM,GAAKR,GAAQQ,GAAOR,EAAOQ,GAC3C,GAAIG,IAAQH,EAAK,CACb,IAAII,EAAS/X,OAAO8X,GAChBE,EAAMrB,EAAO1S,KAAKvG,EAAKqa,EAAO3Z,OAAS,GAC3C,OAAO8O,EAASjJ,KAAK8T,EAAQF,EAAU,OAAS,IAAM3K,EAASjJ,KAAKiJ,EAASjJ,KAAK+T,EAAK,cAAe,OAAQ,KAAM,GACxH,CACJ,CACA,OAAO9K,EAASjJ,KAAKvG,EAAKma,EAAU,MACxC,CAEA,IAAII,EAAc,EAAQ,OACtBC,EAAgBD,EAAYE,OAC5BC,EAAgBC,EAASH,GAAiBA,EAAgB,KAE1DI,EAAS,CACTnS,UAAW,KACX,OAAU,IACVoS,OAAQ,KAERC,EAAW,CACXrS,UAAW,KACX,OAAU,WACVoS,OAAQ,YAwMZ,SAASE,EAAWC,EAAGC,EAAcC,GACjC,IAAIC,EAAQD,EAAKE,YAAcH,EAC3BI,EAAYT,EAAOO,GACvB,OAAOE,EAAYL,EAAIK,CAC3B,CAEA,SAASjL,EAAM4K,GACX,OAAOxL,EAASjJ,KAAKjE,OAAO0Y,GAAI,KAAM,SAC1C,CAEA,SAASM,EAAiB1T,GACtB,OAAQkK,KAAgC,iBAARlK,IAAqBkK,KAAelK,QAAmC,IAArBA,EAAIkK,IAC1F,CACA,SAASiF,EAAQnP,GAAO,MAAsB,mBAAfyB,EAAMzB,IAA6B0T,EAAiB1T,EAAM,CAEzF,SAAS2T,EAAS3T,GAAO,MAAsB,oBAAfyB,EAAMzB,IAA8B0T,EAAiB1T,EAAM,CAO3F,SAAS+S,EAAS/S,GACd,GAAIiS,EACA,OAAOjS,GAAsB,iBAARA,GAAoBA,aAAe8E,OAE5D,GAAmB,iBAAR9E,EACP,OAAO,EAEX,IAAKA,GAAsB,iBAARA,IAAqBgS,EACpC,OAAO,EAEX,IAEI,OADAA,EAAYrT,KAAKqB,IACV,CACX,CAAE,MAAOc,GAAI,CACb,OAAO,CACX,CA1OAjH,EAAOC,QAAU,SAAS8Z,EAAS5T,EAAKtJ,EAASmd,EAAOC,GACpD,IAAIR,EAAO5c,GAAW,CAAC,EAEvB,GAAIwW,EAAIoG,EAAM,gBAAkBpG,EAAI8F,EAAQM,EAAKE,YAC7C,MAAM,IAAIlS,UAAU,oDAExB,GACI4L,EAAIoG,EAAM,qBAAuD,iBAAzBA,EAAKS,gBACvCT,EAAKS,gBAAkB,GAAKT,EAAKS,kBAAoBzB,IAC5B,OAAzBgB,EAAKS,iBAGX,MAAM,IAAIzS,UAAU,0FAExB,IAAI0S,GAAgB9G,EAAIoG,EAAM,kBAAmBA,EAAKU,cACtD,GAA6B,kBAAlBA,GAAiD,WAAlBA,EACtC,MAAM,IAAI1S,UAAU,iFAGxB,GACI4L,EAAIoG,EAAM,WACS,OAAhBA,EAAKW,QACW,OAAhBX,EAAKW,UACH7X,SAASkX,EAAKW,OAAQ,MAAQX,EAAKW,QAAUX,EAAKW,OAAS,GAEhE,MAAM,IAAI3S,UAAU,4DAExB,GAAI4L,EAAIoG,EAAM,qBAAwD,kBAA1BA,EAAKY,iBAC7C,MAAM,IAAI5S,UAAU,qEAExB,IAAI4S,EAAmBZ,EAAKY,iBAE5B,QAAmB,IAARlU,EACP,MAAO,YAEX,GAAY,OAARA,EACA,MAAO,OAEX,GAAmB,kBAARA,EACP,OAAOA,EAAM,OAAS,QAG1B,GAAmB,iBAARA,EACP,OAAOmU,EAAcnU,EAAKsT,GAE9B,GAAmB,iBAARtT,EAAkB,CACzB,GAAY,IAARA,EACA,OAAOsS,IAAWtS,EAAM,EAAI,IAAM,KAEtC,IAAI5H,EAAMsC,OAAOsF,GACjB,OAAOkU,EAAmB9B,EAAoBpS,EAAK5H,GAAOA,CAC9D,CACA,GAAmB,iBAAR4H,EAAkB,CACzB,IAAIoU,EAAY1Z,OAAOsF,GAAO,IAC9B,OAAOkU,EAAmB9B,EAAoBpS,EAAKoU,GAAaA,CACpE,CAEA,IAAIC,OAAiC,IAAff,EAAKO,MAAwB,EAAIP,EAAKO,MAE5D,QADqB,IAAVA,IAAyBA,EAAQ,GACxCA,GAASQ,GAAYA,EAAW,GAAoB,iBAARrU,EAC5C,OAAOmP,EAAQnP,GAAO,UAAY,WAGtC,IA2RetC,EA3RXuW,EAmVR,SAAmBX,EAAMO,GACrB,IAAIS,EACJ,GAAoB,OAAhBhB,EAAKW,OACLK,EAAa,SACV,MAA2B,iBAAhBhB,EAAKW,QAAuBX,EAAKW,OAAS,GAGxD,OAAO,KAFPK,EAAa3C,EAAMhT,KAAKR,MAAMmV,EAAKW,OAAS,GAAI,IAGpD,CACA,MAAO,CACHM,KAAMD,EACNE,KAAM7C,EAAMhT,KAAKR,MAAM0V,EAAQ,GAAIS,GAE3C,CAhWiBG,CAAUnB,EAAMO,GAE7B,QAAoB,IAATC,EACPA,EAAO,QACJ,GAAIta,EAAQsa,EAAM9T,IAAQ,EAC7B,MAAO,aAGX,SAAS0U,EAAQre,EAAOse,EAAMC,GAK1B,GAJID,IACAb,EAAOlC,EAAUjT,KAAKmV,IACjBna,KAAKgb,GAEVC,EAAU,CACV,IAAIC,EAAU,CACVhB,MAAOP,EAAKO,OAKhB,OAHI3G,EAAIoG,EAAM,gBACVuB,EAAQrB,WAAaF,EAAKE,YAEvBI,EAASvd,EAAOwe,EAAShB,EAAQ,EAAGC,EAC/C,CACA,OAAOF,EAASvd,EAAOid,EAAMO,EAAQ,EAAGC,EAC5C,CAEA,GAAmB,mBAAR9T,IAAuB2T,EAAS3T,GAAM,CAC7C,IAAI5F,EAuKZ,SAAgB0a,GACZ,GAAIA,EAAE1a,KAAQ,OAAO0a,EAAE1a,KACvB,IAAInB,EAAImY,EAAOzS,KAAKwS,EAAiBxS,KAAKmW,GAAI,wBAC9C,OAAI7b,EAAYA,EAAE,GACX,IACX,CA5KmB8b,CAAO/U,GACd6J,EAAOmL,GAAWhV,EAAK0U,GAC3B,MAAO,aAAeta,EAAO,KAAOA,EAAO,gBAAkB,KAAOyP,EAAK/Q,OAAS,EAAI,MAAQ6Y,EAAMhT,KAAKkL,EAAM,MAAQ,KAAO,GAClI,CACA,GAAIkJ,EAAS/S,GAAM,CACf,IAAIiV,GAAYhD,EAAoBrK,EAASjJ,KAAKjE,OAAOsF,GAAM,yBAA0B,MAAQgS,EAAYrT,KAAKqB,GAClH,MAAsB,iBAARA,GAAqBiS,EAA2CgD,GAAvBC,EAAUD,GACrE,CACA,IAyPevX,EAzPDsC,IA0PS,iBAANtC,IACU,oBAAhByX,aAA+BzX,aAAayX,aAG1B,iBAAfzX,EAAE0X,UAAmD,mBAAnB1X,EAAE2X,cA9P9B,CAGhB,IAFA,IAAIjC,GAAI,IAAM5B,EAAa7S,KAAKjE,OAAOsF,EAAIoV,WACvCE,GAAQtV,EAAIuV,YAAc,GACrB7b,GAAI,EAAGA,GAAI4b,GAAMxc,OAAQY,KAC9B0Z,IAAK,IAAMkC,GAAM5b,IAAGU,KAAO,IAAM+Y,EAAW3K,EAAM8M,GAAM5b,IAAGrD,OAAQ,SAAUid,GAKjF,OAHAF,IAAK,IACDpT,EAAIwV,YAAcxV,EAAIwV,WAAW1c,SAAUsa,IAAK,OACpDA,GAAK,KAAO5B,EAAa7S,KAAKjE,OAAOsF,EAAIoV,WAAa,GAE1D,CACA,GAAIjG,EAAQnP,GAAM,CACd,GAAmB,IAAfA,EAAIlH,OAAgB,MAAO,KAC/B,IAAI2c,GAAKT,GAAWhV,EAAK0U,GACzB,OAAIT,IA0RZ,SAA0BwB,GACtB,IAAK,IAAI/b,EAAI,EAAGA,EAAI+b,EAAG3c,OAAQY,IAC3B,GAAIF,EAAQic,EAAG/b,GAAI,OAAS,EACxB,OAAO,EAGf,OAAO,CACX,CAjSuBgc,CAAiBD,IACrB,IAAME,GAAaF,GAAIxB,GAAU,IAErC,KAAOtC,EAAMhT,KAAK8W,GAAI,MAAQ,IACzC,CACA,GAiGJ,SAAiBzV,GAAO,MAAsB,mBAAfyB,EAAMzB,IAA6B0T,EAAiB1T,EAAM,CAjGjF4V,CAAQ5V,GAAM,CACd,IAAI1D,GAAQ0Y,GAAWhV,EAAK0U,GAC5B,MAAM,UAAWva,MAAM/D,aAAc,UAAW4J,IAAQkS,EAAavT,KAAKqB,EAAK,SAG1D,IAAjB1D,GAAMxD,OAAuB,IAAM4B,OAAOsF,GAAO,IAC9C,MAAQtF,OAAOsF,GAAO,KAAO2R,EAAMhT,KAAKrC,GAAO,MAAQ,KAHnD,MAAQ5B,OAAOsF,GAAO,KAAO2R,EAAMhT,KAAK6I,EAAQ7I,KAAK,YAAc+V,EAAQ1U,EAAI6V,OAAQvZ,IAAQ,MAAQ,IAItH,CACA,GAAmB,iBAAR0D,GAAoBgU,EAAe,CAC1C,GAAIlB,GAA+C,mBAAvB9S,EAAI8S,IAAiCH,EAC7D,OAAOA,EAAY3S,EAAK,CAAE6T,MAAOQ,EAAWR,IACzC,GAAsB,WAAlBG,GAAqD,mBAAhBhU,EAAI0U,QAChD,OAAO1U,EAAI0U,SAEnB,CACA,GA4IJ,SAAehX,GACX,IAAK4S,IAAY5S,GAAkB,iBAANA,EACzB,OAAO,EAEX,IACI4S,EAAQ3R,KAAKjB,GACb,IACIiT,EAAQhS,KAAKjB,EACjB,CAAE,MAAO0V,GACL,OAAO,CACX,CACA,OAAO1V,aAAa2I,GACxB,CAAE,MAAOvF,GAAI,CACb,OAAO,CACX,CA1JQgV,CAAM9V,GAAM,CACZ,IAAI+V,GAAW,GAMf,OALIxF,GACAA,EAAW5R,KAAKqB,EAAK,SAAU3J,EAAOkU,GAClCwL,GAASpc,KAAK+a,EAAQnK,EAAKvK,GAAK,GAAQ,OAAS0U,EAAQre,EAAO2J,GACpE,GAEGgW,GAAa,MAAO1F,EAAQ3R,KAAKqB,GAAM+V,GAAU9B,EAC5D,CACA,GA8KJ,SAAevW,GACX,IAAKiT,IAAYjT,GAAkB,iBAANA,EACzB,OAAO,EAEX,IACIiT,EAAQhS,KAAKjB,GACb,IACI4S,EAAQ3R,KAAKjB,EACjB,CAAE,MAAOzE,GACL,OAAO,CACX,CACA,OAAOyE,aAAagJ,GACxB,CAAE,MAAO5F,GAAI,CACb,OAAO,CACX,CA5LQmV,CAAMjW,GAAM,CACZ,IAAIkW,GAAW,GAMf,OALItF,GACAA,EAAWjS,KAAKqB,EAAK,SAAU3J,GAC3B6f,GAASvc,KAAK+a,EAAQre,EAAO2J,GACjC,GAEGgW,GAAa,MAAOrF,EAAQhS,KAAKqB,GAAMkW,GAAUjC,EAC5D,CACA,GA0IJ,SAAmBvW,GACf,IAAKmT,IAAenT,GAAkB,iBAANA,EAC5B,OAAO,EAEX,IACImT,EAAWlS,KAAKjB,EAAGmT,GACnB,IACIC,EAAWnS,KAAKjB,EAAGoT,EACvB,CAAE,MAAOsC,GACL,OAAO,CACX,CACA,OAAO1V,aAAaqJ,OACxB,CAAE,MAAOjG,GAAI,CACb,OAAO,CACX,CAxJQqV,CAAUnW,GACV,OAAOoW,EAAiB,WAE5B,GAkLJ,SAAmB1Y,GACf,IAAKoT,IAAepT,GAAkB,iBAANA,EAC5B,OAAO,EAEX,IACIoT,EAAWnS,KAAKjB,EAAGoT,GACnB,IACID,EAAWlS,KAAKjB,EAAGmT,EACvB,CAAE,MAAOuC,GACL,OAAO,CACX,CACA,OAAO1V,aAAauJ,OACxB,CAAE,MAAOnG,GAAI,CACb,OAAO,CACX,CAhMQuV,CAAUrW,GACV,OAAOoW,EAAiB,WAE5B,GAoJJ,SAAmB1Y,GACf,IAAKqT,IAAiBrT,GAAkB,iBAANA,EAC9B,OAAO,EAEX,IAEI,OADAqT,EAAapS,KAAKjB,IACX,CACX,CAAE,MAAOoD,GAAI,CACb,OAAO,CACX,CA7JQwV,CAAUtW,GACV,OAAOoW,EAAiB,WAE5B,GAyDJ,SAAkBpW,GAAO,MAAsB,oBAAfyB,EAAMzB,IAA8B0T,EAAiB1T,EAAM,CAzDnFuW,CAASvW,GACT,OAAOkV,EAAUR,EAAQpO,OAAOtG,KAEpC,GA2EJ,SAAkBA,GACd,IAAKA,GAAsB,iBAARA,IAAqB8R,EACpC,OAAO,EAEX,IAEI,OADAA,EAAcnT,KAAKqB,IACZ,CACX,CAAE,MAAOc,GAAI,CACb,OAAO,CACX,CApFQ0V,CAASxW,GACT,OAAOkV,EAAUR,EAAQ5C,EAAcnT,KAAKqB,KAEhD,GAoDJ,SAAmBA,GAAO,MAAsB,qBAAfyB,EAAMzB,IAA+B0T,EAAiB1T,EAAM,CApDrFyW,CAAUzW,GACV,OAAOkV,EAAUjE,EAAetS,KAAKqB,IAEzC,GA+CJ,SAAkBA,GAAO,MAAsB,oBAAfyB,EAAMzB,IAA8B0T,EAAiB1T,EAAM,CA/CnF0W,CAAS1W,GACT,OAAOkV,EAAUR,EAAQha,OAAOsF,KAIpC,GAAsB,oBAAXxN,QAA0BwN,IAAQxN,OACzC,MAAO,sBAEX,GAC2B,oBAAfmkB,YAA8B3W,IAAQ2W,YACxB,oBAAX,YAA0B3W,IAAQ,WAE7C,MAAO,0BAEX,IA8BJ,SAAgBA,GAAO,MAAsB,kBAAfyB,EAAMzB,IAA4B0T,EAAiB1T,EAAM,CA9B9E4W,CAAO5W,KAAS2T,EAAS3T,GAAM,CAChC,IAAI6W,GAAK7B,GAAWhV,EAAK0U,GACrBoC,GAAgB3E,EAAMA,EAAInS,KAAS9J,OAAOE,UAAY4J,aAAe9J,QAAU8J,EAAI8M,cAAgB5W,OACnG6gB,GAAW/W,aAAe9J,OAAS,GAAK,iBACxC8gB,IAAaF,IAAiB5M,GAAehU,OAAO8J,KAASA,GAAOkK,KAAelK,EAAMqR,EAAO1S,KAAK8C,EAAMzB,GAAM,GAAI,GAAK+W,GAAW,SAAW,GAEhJE,IADiBH,IAA4C,mBAApB9W,EAAI8M,YAA6B,GAAK9M,EAAI8M,YAAY1S,KAAO4F,EAAI8M,YAAY1S,KAAO,IAAM,KAC3G4c,IAAaD,GAAW,IAAMpF,EAAMhT,KAAK6I,EAAQ7I,KAAK,GAAIqY,IAAa,GAAID,IAAY,IAAK,MAAQ,KAAO,IACvI,OAAkB,IAAdF,GAAG/d,OAAuBme,GAAM,KAChChD,EACOgD,GAAM,IAAMtB,GAAakB,GAAI5C,GAAU,IAE3CgD,GAAM,KAAOtF,EAAMhT,KAAKkY,GAAI,MAAQ,IAC/C,CACA,OAAOnc,OAAOsF,EAClB,EAoDA,IAAIuH,EAASrR,OAAOE,UAAUsL,gBAAkB,SAAU6I,GAAO,OAAOA,KAAOpV,IAAM,EACrF,SAAS+X,EAAIlN,EAAKuK,GACd,OAAOhD,EAAO5I,KAAKqB,EAAKuK,EAC5B,CAEA,SAAS9I,EAAMzB,GACX,OAAOkR,EAAevS,KAAKqB,EAC/B,CASA,SAASxG,EAAQic,EAAI/X,GACjB,GAAI+X,EAAGjc,QAAW,OAAOic,EAAGjc,QAAQkE,GACpC,IAAK,IAAIhE,EAAI,EAAGwd,EAAIzB,EAAG3c,OAAQY,EAAIwd,EAAGxd,IAClC,GAAI+b,EAAG/b,KAAOgE,EAAK,OAAOhE,EAE9B,OAAQ,CACZ,CAqFA,SAASya,EAAc/b,EAAKkb,GACxB,GAAIlb,EAAIU,OAASwa,EAAKS,gBAAiB,CACnC,IAAIoD,EAAY/e,EAAIU,OAASwa,EAAKS,gBAC9BqD,EAAU,OAASD,EAAY,mBAAqBA,EAAY,EAAI,IAAM,IAC9E,OAAOhD,EAAc9C,EAAO1S,KAAKvG,EAAK,EAAGkb,EAAKS,iBAAkBT,GAAQ8D,CAC5E,CACA,IAAIC,EAAUnE,EAASI,EAAKE,YAAc,UAI1C,OAHA6D,EAAQC,UAAY,EAGbnE,EADCvL,EAASjJ,KAAKiJ,EAASjJ,KAAKvG,EAAKif,EAAS,QAAS,eAAgBE,GACtD,SAAUjE,EACnC,CAEA,SAASiE,EAAQ3c,GACb,IAAIwC,EAAIxC,EAAEK,WAAW,GACjByC,EAAI,CACJ,EAAG,IACH,EAAG,IACH,GAAI,IACJ,GAAI,IACJ,GAAI,KACNN,GACF,OAAIM,EAAY,KAAOA,EAChB,OAASN,EAAI,GAAO,IAAM,IAAMkU,EAAa3S,KAAKvB,EAAEvF,SAAS,IACxE,CAEA,SAASqd,EAAU9c,GACf,MAAO,UAAYA,EAAM,GAC7B,CAEA,SAASge,EAAiB9gB,GACtB,OAAOA,EAAO,QAClB,CAEA,SAAS0gB,GAAa1gB,EAAMkiB,EAAMC,EAASxD,GAEvC,OAAO3e,EAAO,KAAOkiB,EAAO,OADRvD,EAAS0B,GAAa8B,EAASxD,GAAUtC,EAAMhT,KAAK8Y,EAAS,OAC7B,GACxD,CA0BA,SAAS9B,GAAaF,EAAIxB,GACtB,GAAkB,IAAdwB,EAAG3c,OAAgB,MAAO,GAC9B,IAAI4e,EAAa,KAAOzD,EAAOO,KAAOP,EAAOM,KAC7C,OAAOmD,EAAa/F,EAAMhT,KAAK8W,EAAI,IAAMiC,GAAc,KAAOzD,EAAOO,IACzE,CAEA,SAASQ,GAAWhV,EAAK0U,GACrB,IAAIiD,EAAQxI,EAAQnP,GAChByV,EAAK,GACT,GAAIkC,EAAO,CACPlC,EAAG3c,OAASkH,EAAIlH,OAChB,IAAK,IAAIY,EAAI,EAAGA,EAAIsG,EAAIlH,OAAQY,IAC5B+b,EAAG/b,GAAKwT,EAAIlN,EAAKtG,GAAKgb,EAAQ1U,EAAItG,GAAIsG,GAAO,EAErD,CACA,IACI4X,EADA7N,EAAuB,mBAATgI,EAAsBA,EAAK/R,GAAO,GAEpD,GAAIiS,EAAmB,CACnB2F,EAAS,CAAC,EACV,IAAK,IAAI1a,EAAI,EAAGA,EAAI6M,EAAKjR,OAAQoE,IAC7B0a,EAAO,IAAM7N,EAAK7M,IAAM6M,EAAK7M,EAErC,CAEA,IAAK,IAAIqN,KAAOvK,EACPkN,EAAIlN,EAAKuK,KACVoN,GAASjd,OAAO4L,OAAOiE,MAAUA,GAAOA,EAAMvK,EAAIlH,QAClDmZ,GAAqB2F,EAAO,IAAMrN,aAAgBzF,SAG3C4M,EAAM/S,KAAK,SAAU4L,GAC5BkL,EAAG9b,KAAK+a,EAAQnK,EAAKvK,GAAO,KAAO0U,EAAQ1U,EAAIuK,GAAMvK,IAErDyV,EAAG9b,KAAK4Q,EAAM,KAAOmK,EAAQ1U,EAAIuK,GAAMvK,MAG/C,GAAoB,mBAAT+R,EACP,IAAK,IAAI3T,EAAI,EAAGA,EAAI2L,EAAKjR,OAAQsF,IACzB8T,EAAavT,KAAKqB,EAAK+J,EAAK3L,KAC5BqX,EAAG9b,KAAK,IAAM+a,EAAQ3K,EAAK3L,IAAM,MAAQsW,EAAQ1U,EAAI+J,EAAK3L,IAAK4B,IAI3E,OAAOyV,CACX,C,2CCzgBIoC,EAAO,EAAQ,OACfnB,EAAW,SAAUhZ,GACvB,MAAoB,iBAANA,CAChB,EAOA,SAASoa,EAAexb,EAAOyb,GAE7B,IADA,IAAIC,EAAM,GACDte,EAAI,EAAGA,EAAI4C,EAAMxD,OAAQY,IAAK,CACrC,IAAI6C,EAAID,EAAM5C,GAGT6C,GAAW,MAANA,IAGA,OAANA,EACEyb,EAAIlf,QAAkC,OAAxBkf,EAAIA,EAAIlf,OAAS,GACjCkf,EAAIpe,MACKme,GACTC,EAAIre,KAAK,MAGXqe,EAAIre,KAAK4C,GAEb,CAEA,OAAOyb,CACT,CAIA,IAAIC,EACA,gEACAC,EAAQ,CAAC,EAGb,SAASC,EAAeC,GACtB,OAAOH,EAAYlQ,KAAKqQ,GAAUxf,MAAM,EAC1C,CAKAsf,EAAMG,QAAU,WAId,IAHA,IAAIC,EAAe,GACfC,GAAmB,EAEd7e,EAAImF,UAAU/F,OAAS,EAAGY,IAAM,IAAM6e,EAAkB7e,IAAK,CACpE,IAAIkV,EAAQlV,GAAK,EAAKmF,UAAUnF,GAAK8e,EAAQC,MAG7C,IAAK/B,EAAS9H,GACZ,MAAM,IAAItN,UAAU,6CACVsN,IAIZ0J,EAAe1J,EAAO,IAAM0J,EAC5BC,EAAsC,MAAnB3J,EAAK1T,OAAO,GACjC,CASA,OAASqd,EAAmB,IAAM,KAHlCD,EAAeR,EAAeQ,EAAa7c,MAAM,MAClB8c,GAAkB3hB,KAAK,OAEG,GAC3D,EAIAshB,EAAMQ,UAAY,SAAS9J,GACzB,IAAI+J,EAAaT,EAAMS,WAAW/J,GAC9BgK,EAAoC,MAApBhK,EAAKrT,QAAQ,GAYjC,OATAqT,EAAOkJ,EAAelJ,EAAKnT,MAAM,MAAOkd,GAAY/hB,KAAK,OAE3C+hB,IACZ/J,EAAO,KAELA,GAAQgK,IACVhK,GAAQ,MAGF+J,EAAa,IAAM,IAAM/J,CACnC,EAGAsJ,EAAMS,WAAa,SAAS/J,GAC1B,MAA0B,MAAnBA,EAAK1T,OAAO,EACrB,EAGAgd,EAAMthB,KAAO,WAEX,IADA,IAAIgY,EAAO,GACFlV,EAAI,EAAGA,EAAImF,UAAU/F,OAAQY,IAAK,CACzC,IAAImf,EAAUha,UAAUnF,GACxB,IAAKgd,EAASmC,GACZ,MAAM,IAAIvX,UAAU,0CAElBuX,IAIAjK,GAHGA,EAGK,IAAMiK,EAFNA,EAKd,CACA,OAAOX,EAAMQ,UAAU9J,EACzB,EAKAsJ,EAAMY,SAAW,SAASnE,EAAMoE,GAI9B,SAASC,EAAK1W,GAEZ,IADA,IAAI7J,EAAQ,EACLA,EAAQ6J,EAAIxJ,QACE,KAAfwJ,EAAI7J,GADiBA,KAK3B,IADA,IAAIC,EAAM4J,EAAIxJ,OAAS,EAChBJ,GAAO,GACK,KAAb4J,EAAI5J,GADOA,KAIjB,OAAID,EAAQC,EAAY,GACjB4J,EAAI1J,MAAMH,EAAOC,EAAM,EAChC,CAhBAic,EAAOuD,EAAMG,QAAQ1D,GAAMpZ,OAAO,GAClCwd,EAAKb,EAAMG,QAAQU,GAAIxd,OAAO,GAsB9B,IALA,IAAI0d,EAAYD,EAAKrE,EAAKlZ,MAAM,MAC5Byd,EAAUF,EAAKD,EAAGtd,MAAM,MAExB3C,EAASmD,KAAKuH,IAAIyV,EAAUngB,OAAQogB,EAAQpgB,QAC5CqgB,EAAkBrgB,EACbY,EAAI,EAAGA,EAAIZ,EAAQY,IAC1B,GAAIuf,EAAUvf,KAAOwf,EAAQxf,GAAI,CAC/Byf,EAAkBzf,EAClB,KACF,CAGF,IAAI0f,EAAc,GAClB,IAAS1f,EAAIyf,EAAiBzf,EAAIuf,EAAUngB,OAAQY,IAClD0f,EAAYzf,KAAK,MAKnB,OAFAyf,EAAcA,EAAY3R,OAAOyR,EAAQtgB,MAAMugB,KAE5BviB,KAAK,IAC1B,EAGAshB,EAAMmB,UAAY,SAASzK,GACzB,OAAOA,CACT,EAGAsJ,EAAMoB,QAAU,SAAS1K,GACvB,IAAIvX,EAAS8gB,EAAevJ,GACxB2K,EAAOliB,EAAO,GACdmiB,EAAMniB,EAAO,GAEjB,OAAKkiB,GAASC,GAKVA,IAEFA,EAAMA,EAAIje,OAAO,EAAGie,EAAI1gB,OAAS,IAG5BygB,EAAOC,GARL,GASX,EAGAtB,EAAMuB,SAAW,SAAS7K,EAAM8K,GAC9B,IAAI5E,EAAIqD,EAAevJ,GAAM,GAK7B,OAHI8K,GAAO5E,EAAEvZ,QAAQ,EAAIme,EAAI5gB,UAAY4gB,IACvC5E,EAAIA,EAAEvZ,OAAO,EAAGuZ,EAAEhc,OAAS4gB,EAAI5gB,SAE1Bgc,CACT,EAGAoD,EAAMyB,QAAU,SAAS/K,GACvB,OAAOuJ,EAAevJ,GAAM,EAC9B,EAGAsJ,EAAM0B,OAAS,SAASC,GACtB,IAAKhC,EAAKiC,SAASD,GACjB,MAAM,IAAIvY,UACN,wDAA0DuY,GAIhE,IAAIN,EAAOM,EAAWN,MAAQ,GAE9B,IAAK7C,EAAS6C,GACZ,MAAM,IAAIjY,UACN,+DACOuY,EAAWN,MAMxB,OAFUM,EAAWL,IAAMK,EAAWL,IAAMtB,EAAM6B,IAAM,KAC7CF,EAAWtF,MAAQ,GAEhC,EAGA2D,EAAMxN,MAAQ,SAASsP,GACrB,IAAKtD,EAASsD,GACZ,MAAM,IAAI1Y,UACN,uDAAyD0Y,GAG/D,IAAIC,EAAW9B,EAAe6B,GAC9B,IAAKC,GAAgC,IAApBA,EAASnhB,OACxB,MAAM,IAAIwI,UAAU,iBAAmB0Y,EAAa,KAMtD,OAJAC,EAAS,GAAKA,EAAS,IAAM,GAC7BA,EAAS,GAAKA,EAAS,IAAM,GAC7BA,EAAS,GAAKA,EAAS,IAAM,GAEtB,CACLV,KAAMU,EAAS,GACfT,IAAKS,EAAS,GAAKA,EAAS,GAAGrhB,MAAM,EAAGqhB,EAAS,GAAGnhB,OAAS,GAC7Dyb,KAAM0F,EAAS,GACfP,IAAKO,EAAS,GACd7f,KAAM6f,EAAS,GAAGrhB,MAAM,EAAGqhB,EAAS,GAAGnhB,OAASmhB,EAAS,GAAGnhB,QAEhE,EAGAof,EAAM6B,IAAM,IACZ7B,EAAMgC,UAAY,IAEhBrgB,EAAOC,QAAUoe,C,wBC9QnBre,EAAOC,QAAU,CAChB,eACA,eACA,eACA,YACA,aACA,aACA,aACA,oBACA,cACA,cACA,gBACA,iB,cCfD,M,WACE,WAG+CA,GAC9CA,EAAQqgB,SACoCtgB,GAC5CA,EAAOsgB,SAHT,IAIIpgB,EAA8B,iBAAV,YAAsB,WAE7CA,EAAWC,SAAWD,GACtBA,EAAWvH,SAAWuH,GACtBA,EAAWsU,KAUZ,IAAI+L,EAGJC,EAAS,WAGT9F,EAAO,GAUP+F,EAAgB,QAChBC,EAAgB,eAChBC,EAAkB,4BAGlBC,EAAS,CACR,SAAY,kDACZ,YAAa,iDACb,gBAAiB,iBAKlBlX,EAAQtH,KAAKsH,MACbmX,EAAqBhgB,OAAOY,aAa5B,SAASjB,EAAM/E,GACd,MAAM,IAAI6L,WAAWsZ,EAAOnlB,GAC7B,CAUA,SAASb,EAAIsN,EAAOqF,GAGnB,IAFA,IAAItO,EAASiJ,EAAMjJ,OACfzB,EAAS,GACNyB,KACNzB,EAAOyB,GAAUsO,EAAGrF,EAAMjJ,IAE3B,OAAOzB,CACR,CAYA,SAASsjB,EAAU1Y,EAAQmF,GAC1B,IAAI9K,EAAQ2F,EAAOxG,MAAM,KACrBpE,EAAS,GAWb,OAVIiF,EAAMxD,OAAS,IAGlBzB,EAASiF,EAAM,GAAK,IACpB2F,EAAS3F,EAAM,IAMTjF,EADO5C,GAFdwN,EAASA,EAAO9G,QAAQqf,EAAiB,MACrB/e,MAAM,KACA2L,GAAIxQ,KAAK,IAEpC,CAeA,SAASgkB,EAAW3Y,GAMnB,IALA,IAGI5L,EACAwkB,EAJA9f,EAAS,GACT+f,EAAU,EACVhiB,EAASmJ,EAAOnJ,OAGbgiB,EAAUhiB,IAChBzC,EAAQ4L,EAAOhH,WAAW6f,OACb,OAAUzkB,GAAS,OAAUykB,EAAUhiB,EAG3B,QAAX,OADb+hB,EAAQ5Y,EAAOhH,WAAW6f,OAEzB/f,EAAOpB,OAAe,KAARtD,IAAkB,KAAe,KAARwkB,GAAiB,QAIxD9f,EAAOpB,KAAKtD,GACZykB,KAGD/f,EAAOpB,KAAKtD,GAGd,OAAO0E,CACR,CAUA,SAASggB,EAAWhZ,GACnB,OAAOtN,EAAIsN,EAAO,SAAS1L,GAC1B,IAAI0E,EAAS,GAOb,OANI1E,EAAQ,QAEX0E,GAAU2f,GADVrkB,GAAS,SAC8B,GAAK,KAAQ,OACpDA,EAAQ,MAAiB,KAARA,GAElB0E,EAAU2f,EAAmBrkB,EAE9B,GAAGO,KAAK,GACT,CAWA,SAASokB,EAAaC,GACrB,OAAIA,EAAY,GAAK,GACbA,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEb1G,CACR,CAaA,SAAS2G,EAAaC,EAAOC,GAG5B,OAAOD,EAAQ,GAAK,IAAMA,EAAQ,MAAgB,GAARC,IAAc,EACzD,CAOA,SAASC,EAAMC,EAAOC,EAAWC,GAChC,IAAIte,EAAI,EAGR,IAFAoe,EAAQE,EAAYjY,EAAM+X,EA1LpB,KA0LoCA,GAAS,EACnDA,GAAS/X,EAAM+X,EAAQC,GACOD,EAAQG,IAA2Bve,GAAKqX,EACrE+G,EAAQ/X,EAAM+X,EA3KA/G,IA6Kf,OAAOhR,EAAMrG,EAAI,GAAsBoe,GAASA,EAhM1C,IAiMP,CASA,SAASI,EAAOjhB,GAEf,IAEIkhB,EAIAC,EACAxd,EACAgR,EACAyM,EACAC,EACA5e,EACAie,EACAzlB,EAEAqmB,EAfAhhB,EAAS,GACTihB,EAAcvhB,EAAM3B,OAEpBY,EAAI,EACJ0D,EA7MM,IA8MN6e,EA/MS,GAoOb,KALAL,EAAQnhB,EAAMyhB,YA7NH,MA8NC,IACXN,EAAQ,GAGJxd,EAAI,EAAGA,EAAIwd,IAASxd,EAEpB3D,EAAMQ,WAAWmD,IAAM,KAC1B/D,EAAM,aAEPU,EAAOpB,KAAKc,EAAMQ,WAAWmD,IAM9B,IAAKgR,EAAQwM,EAAQ,EAAIA,EAAQ,EAAI,EAAGxM,EAAQ4M,GAAwC,CAOvF,IAAKH,EAAOniB,EAAGoiB,EAAI,EAAG5e,EAAIqX,EAErBnF,GAAS4M,GACZ3hB,EAAM,mBAGP8gB,EAAQH,EAAavgB,EAAMQ,WAAWmU,QAEzBmF,GAAQ4G,EAAQ5X,GAAO8W,EAAS3gB,GAAKoiB,KACjDzhB,EAAM,YAGPX,GAAKyhB,EAAQW,IAGTX,GAFJzlB,EAAIwH,GAAK+e,EAvQL,EAuQoB/e,GAAK+e,EAtQzB,MAsQ8C/e,EAAI+e,IAbH/e,GAAKqX,EAoBpDuH,EAAIvY,EAAM8W,GADd0B,EAAaxH,EAAO7e,KAEnB2E,EAAM,YAGPyhB,GAAKC,EAKNE,EAAOZ,EAAM3hB,EAAImiB,EADjBF,EAAM5gB,EAAOjC,OAAS,EACc,GAAR+iB,GAIxBtY,EAAM7J,EAAIiiB,GAAOtB,EAASjd,GAC7B/C,EAAM,YAGP+C,GAAKmG,EAAM7J,EAAIiiB,GACfjiB,GAAKiiB,EAGL5gB,EAAO4M,OAAOjO,IAAK,EAAG0D,EAEvB,CAEA,OAAO2d,EAAWhgB,EACnB,CASA,SAASohB,EAAO1hB,GACf,IAAI2C,EACAke,EACAc,EACAC,EACAJ,EACA7d,EACAnF,EACAqjB,EACApf,EACAxH,EACA6mB,EAGAP,EAEAQ,EACAT,EACAU,EANA1hB,EAAS,GAoBb,IARAihB,GAHAvhB,EAAQmgB,EAAWngB,IAGC3B,OAGpBsE,EAvUU,IAwUVke,EAAQ,EACRW,EA1Ua,GA6UR7d,EAAI,EAAGA,EAAI4d,IAAe5d,GAC9Bme,EAAe9hB,EAAM2D,IACF,KAClBrD,EAAOpB,KAAK+gB,EAAmB6B,IAejC,IAXAH,EAAiBC,EAActhB,EAAOjC,OAMlCujB,GACHthB,EAAOpB,KAzVG,KA6VJyiB,EAAiBJ,GAAa,CAIpC,IAAK/iB,EAAIohB,EAAQjc,EAAI,EAAGA,EAAI4d,IAAe5d,GAC1Cme,EAAe9hB,EAAM2D,KACDhB,GAAKmf,EAAetjB,IACvCA,EAAIsjB,GAcN,IAPItjB,EAAImE,EAAImG,GAAO8W,EAASiB,IAD5BkB,EAAwBJ,EAAiB,KAExC/hB,EAAM,YAGPihB,IAAUriB,EAAImE,GAAKof,EACnBpf,EAAInE,EAECmF,EAAI,EAAGA,EAAI4d,IAAe5d,EAO9B,IANAme,EAAe9hB,EAAM2D,IAEFhB,KAAOke,EAAQjB,GACjChgB,EAAM,YAGHkiB,GAAgBnf,EAAG,CAEtB,IAAKkf,EAAIhB,EAAOpe,EAAIqX,IAEf+H,GADJ5mB,EAAIwH,GAAK+e,EAlYP,EAkYsB/e,GAAK+e,EAjY3B,MAiYgD/e,EAAI+e,IADT/e,GAAKqX,EAKlDkI,EAAUH,EAAI5mB,EACdqmB,EAAaxH,EAAO7e,EACpBqF,EAAOpB,KACN+gB,EAAmBQ,EAAaxlB,EAAI+mB,EAAUV,EAAY,KAE3DO,EAAI/Y,EAAMkZ,EAAUV,GAGrBhhB,EAAOpB,KAAK+gB,EAAmBQ,EAAaoB,EAAG,KAC/CL,EAAOZ,EAAMC,EAAOkB,EAAuBJ,GAAkBC,GAC7Df,EAAQ,IACNc,CACH,GAGCd,IACAle,CAEH,CACA,OAAOrC,EAAOnE,KAAK,GACpB,CA2CAwjB,EAAW,CAMV,QAAW,QAQX,KAAQ,CACP,OAAUQ,EACV,OAAUG,GAEX,OAAUW,EACV,OAAUS,EACV,QA/BD,SAAiB1hB,GAChB,OAAOkgB,EAAUlgB,EAAO,SAASwH,GAChC,OAAOsY,EAAc5f,KAAKsH,GACvB,OAASka,EAAOla,GAChBA,CACJ,EACD,EA0BC,UAnDD,SAAmBxH,GAClB,OAAOkgB,EAAUlgB,EAAO,SAASwH,GAChC,OAAOqY,EAAc3f,KAAKsH,GACvByZ,EAAOzZ,EAAOrJ,MAAM,GAAG6Y,eACvBxP,CACJ,EACD,QA0DE,KAFD,aACC,OAAOmY,CACP,+BAgBH,CAnhBC,E,wBCCD,IAAIjf,EAAUT,OAAOtE,UAAU+E,QAC3BuhB,EAAkB,OAElBC,EAES,UAGb9iB,EAAOC,QAAU,CACb,QAAW6iB,EACXC,WAAY,CACRC,QAAS,SAAUxmB,GACf,OAAO8E,EAAQwD,KAAKtI,EAAOqmB,EAAiB,IAChD,EACAI,QAAS,SAAUzmB,GACf,OAAOqE,OAAOrE,EAClB,GAEJwmB,QAdS,UAeTC,QAASH,E,4BCnBb,IAAII,EAAY,EAAQ,OACpBrS,EAAQ,EAAQ,OAChBsS,EAAU,EAAQ,OAEtBnjB,EAAOC,QAAU,CACbkjB,QAASA,EACTtS,MAAOA,EACPqS,UAAWA,E,4BCPf,IAAIE,EAAQ,EAAQ,OAEhB/P,EAAMhX,OAAOE,UAAUsL,eACvByN,EAAUhR,MAAMgR,QAEhB+N,EAAW,CACXC,WAAW,EACXC,kBAAkB,EAClBC,iBAAiB,EACjBC,aAAa,EACbC,WAAY,GACZC,QAAS,QACTC,iBAAiB,EACjBC,OAAO,EACPC,iBAAiB,EACjBC,QAASX,EAAMvB,OACfxB,UAAW,IACXrG,MAAO,EACPgK,WAAY,UACZC,mBAAmB,EACnBC,0BAA0B,EAC1BC,eAAgB,IAChBC,aAAa,EACbC,cAAc,EACdC,aAAa,EACbC,oBAAoB,EACpBC,sBAAsB,GAGtBN,EAA2B,SAAU3lB,GACrC,OAAOA,EAAI+C,QAAQ,YAAa,SAAUmjB,EAAIC,GAC1C,OAAO7jB,OAAOY,aAAac,SAASmiB,EAAW,IACnD,EACJ,EAEIC,EAAkB,SAAUC,EAAK/nB,EAASgoB,GAC1C,GAAID,GAAsB,iBAARA,GAAoB/nB,EAAQgnB,OAASe,EAAIjlB,QAAQ,MAAQ,EACvE,OAAOilB,EAAIhjB,MAAM,KAGrB,GAAI/E,EAAQ2nB,sBAAwBK,GAAsBhoB,EAAQ6mB,WAC9D,MAAM,IAAIpc,WAAW,8BAAgCzK,EAAQ6mB,WAAa,YAAqC,IAAvB7mB,EAAQ6mB,WAAmB,GAAK,KAAO,yBAGnI,OAAOkB,CACX,EAgOIE,EAAY,SAA8BC,EAAUH,EAAK/nB,EAASmoB,GAClE,GAAKD,EAAL,CAIA,IAAI/U,EA7DmB,SAA8B+U,EAAUloB,GAC/D,IAAI6T,EAAM7T,EAAQymB,UAAYyB,EAASzjB,QAAQ,cAAe,QAAUyjB,EAExE,GAAIloB,EAAQmd,OAAS,EAAG,CACpB,IAAKnd,EAAQwnB,cAAgBhR,EAAIvO,KAAKzI,OAAOE,UAAWmU,KAC/C7T,EAAQ2mB,gBACT,OAIR,MAAO,CAAC9S,EACZ,CAEA,IACIuU,EAAQ,gBAERjG,EAHW,eAGQ9Q,KAAKwC,GACxBwU,EAASlG,EAAUtO,EAAI3R,MAAM,EAAGigB,EAAQzJ,OAAS7E,EAEjDV,EAAO,GAEX,GAAIkV,EAAQ,CACR,IAAKroB,EAAQwnB,cAAgBhR,EAAIvO,KAAKzI,OAAOE,UAAW2oB,KAC/CroB,EAAQ2mB,gBACT,OAIRxT,EAAKA,EAAK/Q,QAAUimB,CACxB,CAGA,IADA,IAAIrlB,EAAI,EAC+B,QAA/Bmf,EAAUiG,EAAM/W,KAAKwC,KAAkB7Q,EAAIhD,EAAQmd,OAAO,CAC9Dna,GAAK,EAEL,IAAIslB,EAAiBnG,EAAQ,GAAGjgB,MAAM,GAAI,GAC1C,IAAKlC,EAAQwnB,cAAgBhR,EAAIvO,KAAKzI,OAAOE,UAAW4oB,KAC/CtoB,EAAQ2mB,gBACT,OAIRxT,EAAKA,EAAK/Q,QAAU+f,EAAQ,EAChC,CAEA,GAAIA,EAAS,CACT,IAA4B,IAAxBniB,EAAQynB,YACR,MAAM,IAAIhd,WAAW,wCAA0CzK,EAAQmd,MAAQ,4BAGnFhK,EAAKA,EAAK/Q,QAAU,IAAMyR,EAAI3R,MAAMigB,EAAQzJ,OAAS,GACzD,CAEA,OAAOvF,CACX,CAOeoV,CAAqBL,EAAUloB,GAE1C,GAAKmT,EAIL,OA7Hc,SAAUqV,EAAOT,EAAK/nB,EAASmoB,GAC7C,IAAIH,EAAqB,EACzB,GAAIQ,EAAMpmB,OAAS,GAAiC,OAA5BomB,EAAMA,EAAMpmB,OAAS,GAAa,CACtD,IAAIqmB,EAAYD,EAAMtmB,MAAM,GAAI,GAAGhC,KAAK,IACxC8nB,EAAqBvgB,MAAMgR,QAAQsP,IAAQA,EAAIU,GAAaV,EAAIU,GAAWrmB,OAAS,CACxF,CAIA,IAFA,IAAIsmB,EAAOP,EAAeJ,EAAMD,EAAgBC,EAAK/nB,EAASgoB,GAErDhlB,EAAIwlB,EAAMpmB,OAAS,EAAGY,GAAK,IAAKA,EAAG,CACxC,IAAIsG,EACAuZ,EAAO2F,EAAMxlB,GAEjB,GAAa,OAAT6f,GAAiB7iB,EAAQunB,YAGrBje,EAFAid,EAAMoC,WAAWD,GAEXA,EAEA1oB,EAAQ0mB,mBAA8B,KAATgC,GAAgB1oB,EAAQ0nB,oBAA+B,OAATgB,GAC3E,GACAnC,EAAMqC,QACJ,GACAF,EACA1oB,EAAQ6mB,WACR7mB,EAAQwnB,kBAGjB,CACHle,EAAMtJ,EAAQwnB,aAAe,CAAErd,UAAW,MAAS,CAAC,EACpD,IAAI0e,EAA+B,MAAnBhG,EAAKre,OAAO,IAA+C,MAAjCqe,EAAKre,OAAOqe,EAAKzgB,OAAS,GAAaygB,EAAK3gB,MAAM,GAAI,GAAK2gB,EACjGiG,EAAc9oB,EAAQinB,gBAAkB4B,EAAUpkB,QAAQ,OAAQ,KAAOokB,EACzEnQ,EAAQhT,SAASojB,EAAa,IAC9BC,GAAqBtZ,MAAMiJ,IACxBmK,IAASiG,GACT9kB,OAAO0U,KAAWoQ,GAClBpQ,GAAS,GACT1Y,EAAQunB,YACf,GAAKvnB,EAAQunB,aAA+B,KAAhBuB,EAErB,GAAIC,GAAqBrQ,EAAQ1Y,EAAQ6mB,YAC5Cvd,EAAM,IACFoP,GAASgQ,MACV,IAAIK,GAAqB/oB,EAAQ2nB,qBACpC,MAAM,IAAIld,WAAW,8BAAgCzK,EAAQ6mB,WAAa,YAAqC,IAAvB7mB,EAAQ6mB,WAAmB,GAAK,KAAO,yBACxHkC,GACPzf,EAAIoP,GAASgQ,EACbnC,EAAMyC,aAAa1f,EAAKoP,IACD,cAAhBoQ,IACPxf,EAAIwf,GAAeJ,EACvB,MAXIpf,EAAM,CAAE,EAAGof,EAYnB,CAEAA,EAAOpf,CACX,CAEA,OAAOof,CACX,CAqEWO,CAAY9V,EAAM4U,EAAK/nB,EAASmoB,EARvC,CASJ,EA+DAhlB,EAAOC,QAAU,SAAU1B,EAAKkb,GAC5B,IAAI5c,EA9DoB,SAA+B4c,GACvD,IAAKA,EACD,OAAO4J,EAGX,QAAqC,IAA1B5J,EAAK8J,kBAAqE,kBAA1B9J,EAAK8J,iBAC5D,MAAM,IAAI9b,UAAU,0EAGxB,QAAoC,IAAzBgS,EAAKqK,iBAAmE,kBAAzBrK,EAAKqK,gBAC3D,MAAM,IAAIrc,UAAU,yEAGxB,GAAqB,OAAjBgS,EAAKsK,cAA4C,IAAjBtK,EAAKsK,SAAmD,mBAAjBtK,EAAKsK,QAC5E,MAAM,IAAItc,UAAU,iCAGxB,QAA4B,IAAjBgS,EAAKkK,SAA4C,UAAjBlK,EAAKkK,SAAwC,eAAjBlK,EAAKkK,QACxE,MAAM,IAAIlc,UAAU,qEAGxB,QAAyC,IAA9BgS,EAAK+K,sBAA6E,kBAA9B/K,EAAK+K,qBAChE,MAAM,IAAI/c,UAAU,mDAGxB,IAAIkc,OAAkC,IAAjBlK,EAAKkK,QAA0BN,EAASM,QAAUlK,EAAKkK,QAExEK,OAAwC,IAApBvK,EAAKuK,WAA6BX,EAASW,WAAavK,EAAKuK,WAErF,GAAmB,YAAfA,GAA2C,UAAfA,GAAyC,SAAfA,EACtD,MAAM,IAAIvc,UAAU,gEAKxB,MAAO,CACH6b,eAHsC,IAAnB7J,EAAK6J,WAAqD,IAAzB7J,EAAKqK,iBAAkCT,EAASC,YAAc7J,EAAK6J,UAIvHC,iBAAmD,kBAA1B9J,EAAK8J,mBAAmC9J,EAAK8J,iBAAmBF,EAASE,iBAClGC,gBAAiD,kBAAzB/J,EAAK+J,gBAAgC/J,EAAK+J,gBAAkBH,EAASG,gBAC7FC,YAAyC,kBAArBhK,EAAKgK,YAA4BhK,EAAKgK,YAAcJ,EAASI,YACjFC,WAAuC,iBAApBjK,EAAKiK,WAA0BjK,EAAKiK,WAAaL,EAASK,WAC7EC,QAASA,EACTC,gBAAiD,kBAAzBnK,EAAKmK,gBAAgCnK,EAAKmK,gBAAkBP,EAASO,gBAC7FC,MAA6B,kBAAfpK,EAAKoK,MAAsBpK,EAAKoK,MAAQR,EAASQ,MAC/DC,gBAAiD,kBAAzBrK,EAAKqK,gBAAgCrK,EAAKqK,gBAAkBT,EAASS,gBAC7FC,QAAiC,mBAAjBtK,EAAKsK,QAAyBtK,EAAKsK,QAAUV,EAASU,QACtE1D,UAAqC,iBAAnB5G,EAAK4G,WAA0B+C,EAAMtJ,SAASL,EAAK4G,WAAa5G,EAAK4G,UAAYgD,EAAShD,UAE5GrG,MAA8B,iBAAfP,EAAKO,QAAqC,IAAfP,EAAKO,OAAoBP,EAAKO,MAAQqJ,EAASrJ,MACzFgK,WAAYA,EACZC,mBAA8C,IAA3BxK,EAAKwK,kBACxBC,yBAAmE,kBAAlCzK,EAAKyK,yBAAyCzK,EAAKyK,yBAA2Bb,EAASa,yBACxHC,eAA+C,iBAAxB1K,EAAK0K,eAA8B1K,EAAK0K,eAAiBd,EAASc,eACzFC,aAAkC,IAArB3K,EAAK2K,YAClBC,aAA2C,kBAAtB5K,EAAK4K,aAA6B5K,EAAK4K,aAAehB,EAASgB,aACpFC,YAAyC,kBAArB7K,EAAK6K,cAA8B7K,EAAK6K,YAAcjB,EAASiB,YACnFC,mBAAuD,kBAA5B9K,EAAK8K,mBAAmC9K,EAAK8K,mBAAqBlB,EAASkB,mBACtGC,qBAA2D,kBAA9B/K,EAAK+K,sBAAqC/K,EAAK+K,qBAEpF,CAGkBuB,CAAsBtM,GAEpC,GAAY,KAARlb,SAAcA,EACd,OAAO1B,EAAQwnB,aAAe,CAAErd,UAAW,MAAS,CAAC,EASzD,IANA,IAAIgf,EAAyB,iBAARznB,EAtSP,SAAgCA,EAAK1B,GACnD,IAAIsJ,EAAM,CAAEa,UAAW,MAEnBif,EAAWppB,EAAQonB,kBAAoB1lB,EAAI+C,QAAQ,MAAO,IAAM/C,EACpE0nB,EAAWA,EAAS3kB,QAAQ,QAAS,KAAKA,QAAQ,QAAS,KAE3D,IAAInH,EAAQ0C,EAAQsnB,iBAAmB1L,SAAW,EAAiB5b,EAAQsnB,eACvE1hB,EAAQwjB,EAASrkB,MACjB/E,EAAQwjB,UACRxjB,EAAQ2nB,qBAAuBrqB,EAAQ,EAAIA,GAG/C,GAAI0C,EAAQ2nB,sBAAwB/hB,EAAMxD,OAAS9E,EAC/C,MAAM,IAAImN,WAAW,kCAAoCnN,EAAQ,cAA0B,IAAVA,EAAc,GAAK,KAAO,aAG/G,IACI0F,EADAqmB,GAAa,EAGbvC,EAAU9mB,EAAQ8mB,QACtB,GAAI9mB,EAAQ+mB,gBACR,IAAK/jB,EAAI,EAAGA,EAAI4C,EAAMxD,SAAUY,EACM,IAA9B4C,EAAM5C,GAAGF,QAAQ,WAxBX,mBAyBF8C,EAAM5C,GACN8jB,EAAU,QA7BZ,wBA8BSlhB,EAAM5C,KACb8jB,EAAU,cAEduC,EAAYrmB,EACZA,EAAI4C,EAAMxD,QAKtB,IAAKY,EAAI,EAAGA,EAAI4C,EAAMxD,SAAUY,EAC5B,GAAIA,IAAMqmB,EAAV,CAGA,IAKIxV,EACAkU,EANA1V,EAAOzM,EAAM5C,GAEbsmB,EAAmBjX,EAAKvP,QAAQ,MAChCymB,GAA4B,IAAtBD,EAA0BjX,EAAKvP,QAAQ,KAAOwmB,EAAmB,EAgC3E,IA5Ba,IAATC,GACA1V,EAAM7T,EAAQknB,QAAQ7U,EAAMmU,EAASU,QAASJ,EAAS,OACvDiB,EAAM/nB,EAAQ0nB,mBAAqB,KAAO,IAI9B,QAFZ7T,EAAM7T,EAAQknB,QAAQ7U,EAAKnQ,MAAM,EAAGqnB,GAAM/C,EAASU,QAASJ,EAAS,UAGjEiB,EAAMxB,EAAMiD,SACR1B,EACIzV,EAAKnQ,MAAMqnB,EAAM,GACjBvpB,EACAyY,EAAQnP,EAAIuK,IAAQvK,EAAIuK,GAAKzR,OAAS,GAE1C,SAAUqnB,GACN,OAAOzpB,EAAQknB,QAAQuC,EAAYjD,EAASU,QAASJ,EAAS,QAClE,IAKRiB,GAAO/nB,EAAQqnB,0BAAwC,eAAZP,IAC3CiB,EAAMV,EAAyBrjB,OAAO+jB,KAGtC1V,EAAKvP,QAAQ,QAAU,IACvBilB,EAAMtP,EAAQsP,GAAO,CAACA,GAAOA,GAG7B/nB,EAAQgnB,OAASvO,EAAQsP,IAAQA,EAAI3lB,OAASpC,EAAQ6mB,WAAY,CAClE,GAAI7mB,EAAQ2nB,qBACR,MAAM,IAAIld,WAAW,8BAAgCzK,EAAQ6mB,WAAa,YAAqC,IAAvB7mB,EAAQ6mB,WAAmB,GAAK,KAAO,yBAEnIkB,EAAMxB,EAAMqC,QAAQ,GAAIb,EAAK/nB,EAAQ6mB,WAAY7mB,EAAQwnB,aAC7D,CAEA,GAAY,OAAR3T,EAAc,CACd,IAAI6V,EAAWlT,EAAIvO,KAAKqB,EAAKuK,GACzB6V,GAAmC,YAAvB1pB,EAAQmnB,WACpB7d,EAAIuK,GAAO0S,EAAMqC,QACbtf,EAAIuK,GACJkU,EACA/nB,EAAQ6mB,WACR7mB,EAAQwnB,cAEJkC,GAAmC,SAAvB1pB,EAAQmnB,aAC5B7d,EAAIuK,GAAOkU,EAEnB,CAvDA,CA0DJ,OAAOze,CACX,CAsM4CqgB,CAAYjoB,EAAK1B,GAAW0B,EAChE4H,EAAMtJ,EAAQwnB,aAAe,CAAErd,UAAW,MAAS,CAAC,EAIpDgJ,EAAO3T,OAAO2T,KAAKgW,GACdnmB,EAAI,EAAGA,EAAImQ,EAAK/Q,SAAUY,EAAG,CAClC,IAAI6Q,EAAMV,EAAKnQ,GACX4mB,EAAS3B,EAAUpU,EAAKsV,EAAQtV,GAAM7T,EAAwB,iBAAR0B,GAC1D4H,EAAMid,EAAMsD,MAAMvgB,EAAKsgB,EAAQ5pB,EACnC,CAEA,OAA4B,IAAxBA,EAAQ4mB,YACDtd,EAGJid,EAAMuD,QAAQxgB,EACzB,C,4BChXA,IAAIygB,EAAiB,EAAQ,KACzBxD,EAAQ,EAAQ,OAChBD,EAAU,EAAQ,OAClB9P,EAAMhX,OAAOE,UAAUsL,eAEvBgf,EAAwB,CACxBC,SAAU,SAAkBC,GACxB,OAAOA,EAAS,IACpB,EACAlD,MAAO,QACPmD,QAAS,SAAiBD,EAAQrW,GAC9B,OAAOqW,EAAS,IAAMrW,EAAM,GAChC,EACAuW,OAAQ,SAAgBF,GACpB,OAAOA,CACX,GAGAzR,EAAUhR,MAAMgR,QAChBxV,EAAOwE,MAAM/H,UAAUuD,KACvBonB,EAAc,SAAUze,EAAK0e,GAC7BrnB,EAAK+C,MAAM4F,EAAK6M,EAAQ6R,GAAgBA,EAAe,CAACA,GAC5D,EAEIC,EAAQ5b,KAAKjP,UAAUU,YAEvBoqB,EAAgBlE,EAAiB,QACjCE,EAAW,CACXiE,gBAAgB,EAChBhE,WAAW,EACXC,kBAAkB,EAClBgE,YAAa,UACb5D,QAAS,QACTC,iBAAiB,EACjB4D,gBAAgB,EAChBnH,UAAW,IACXiC,QAAQ,EACRmF,iBAAiB,EACjBC,QAAStE,EAAMd,OACfqF,kBAAkB,EAClBC,YAAQ,EACR7H,OAAQsH,EACRQ,UAAW1E,EAAQJ,WAAWsE,GAE9BL,SAAS,EACTc,cAAe,SAAuBC,GAClC,OAAOX,EAAMtiB,KAAKijB,EACtB,EACAC,WAAW,EACXzD,oBAAoB,GAWpB0D,EAAW,CAAC,EAEZ/E,EAAY,SAASA,EACrB5a,EACAye,EACAmB,EACAV,EACAjE,EACAgB,EACAyD,EACAP,EACAC,EACAE,EACAO,EACA7E,EACAwE,EACA/H,EACA8H,EACAF,EACAhE,EACAyE,GAOA,IALA,IA9BuD/S,EA8BnDlP,EAAMmC,EAEN+f,EAAQD,EACRE,EAAO,EACPC,GAAW,OAC0B,KAAjCF,EAAQA,EAAM5rB,IAAIwrB,MAAkCM,GAAU,CAElE,IAAInC,EAAMiC,EAAM5rB,IAAI6L,GAEpB,GADAggB,GAAQ,OACW,IAARlC,EAAqB,CAC5B,GAAIA,IAAQkC,EACR,MAAM,IAAIhhB,WAAW,uBAErBihB,GAAW,CAEnB,MACmC,IAAxBF,EAAM5rB,IAAIwrB,KACjBK,EAAO,EAEf,CAeA,GAbsB,mBAAXV,EACPzhB,EAAMyhB,EAAOb,EAAQ5gB,GACdA,aAAeqF,KACtBrF,EAAM2hB,EAAc3hB,GACW,UAAxB+hB,GAAmC5S,EAAQnP,KAClDA,EAAMid,EAAMiD,SAASlgB,EAAK,SAAU3J,GAChC,OAAIA,aAAiBgP,KACVsc,EAActrB,GAElBA,CACX,IAGQ,OAAR2J,EAAc,CACd,GAAIoe,EACA,OAAOmD,IAAYC,EAAmBD,EAAQX,EAAQ1D,EAASqE,QAAS/D,EAAS,MAAO5D,GAAUgH,EAGtG5gB,EAAM,EACV,CAEA,GAvEoB,iBADmCkP,EAwE7BlP,IAtEN,iBAANkP,GACM,kBAANA,GACM,iBAANA,GACM,iBAANA,GAmEoB+N,EAAMoF,SAASriB,GAC7C,OAAIuhB,EAEO,CAACG,EADOF,EAAmBZ,EAASW,EAAQX,EAAQ1D,EAASqE,QAAS/D,EAAS,MAAO5D,IAC/D,IAAM8H,EAAUH,EAAQvhB,EAAKkd,EAASqE,QAAS/D,EAAS,QAAS5D,KAE5F,CAAC8H,EAAUd,GAAU,IAAMc,EAAUhnB,OAAOsF,KAGvD,IAMIsiB,EANAC,EAAS,GAEb,QAAmB,IAARviB,EACP,OAAOuiB,EAIX,GAA4B,UAAxBR,GAAmC5S,EAAQnP,GAEvCwhB,GAAoBD,IACpBvhB,EAAMid,EAAMiD,SAASlgB,EAAKuhB,IAE9Be,EAAU,CAAC,CAAEjsB,MAAO2J,EAAIlH,OAAS,EAAIkH,EAAIpJ,KAAK,MAAQ,UAAO,SAC1D,GAAIuY,EAAQsS,GACfa,EAAUb,MACP,CACH,IAAI5X,EAAO3T,OAAO2T,KAAK7J,GACvBsiB,EAAUN,EAAOnY,EAAKmY,KAAKA,GAAQnY,CACvC,CAEA,IAAI2Y,EAAgBlB,EAAkB5mB,OAAOkmB,GAAQzlB,QAAQ,MAAO,OAAST,OAAOkmB,GAEhF6B,EAAiBpB,GAAkBlS,EAAQnP,IAAuB,IAAfA,EAAIlH,OAAe0pB,EAAgB,KAAOA,EAEjG,GAAIpF,GAAoBjO,EAAQnP,IAAuB,IAAfA,EAAIlH,OACxC,OAAO2pB,EAAiB,KAG5B,IAAK,IAAIrkB,EAAI,EAAGA,EAAIkkB,EAAQxpB,SAAUsF,EAAG,CACrC,IAAImM,EAAM+X,EAAQlkB,GACd/H,EAAuB,iBAARkU,GAAoBA,QAA4B,IAAdA,EAAIlU,MACnDkU,EAAIlU,MACJ2J,EAAIuK,GAEV,IAAIsX,GAAuB,OAAVxrB,EAAjB,CAIA,IAAIqsB,EAAavF,GAAamE,EAAkB5mB,OAAO6P,GAAKpP,QAAQ,MAAO,OAAST,OAAO6P,GACvFoY,EAAYxT,EAAQnP,GACa,mBAAxB+hB,EAAqCA,EAAoBU,EAAgBC,GAAcD,EAC9FA,GAAkBtF,EAAY,IAAMuF,EAAa,IAAMA,EAAa,KAE1ET,EAAY9U,IAAIhL,EAAQggB,GACxB,IAAIS,EAAmBnC,IACvBmC,EAAiBzV,IAAI2U,EAAUG,GAC/BlB,EAAYwB,EAAQxF,EAChB1mB,EACAssB,EACAZ,EACAV,EACAjE,EACAgB,EACAyD,EACAP,EACwB,UAAxBS,GAAmCP,GAAoBrS,EAAQnP,GAAO,KAAOuhB,EAC7EE,EACAO,EACA7E,EACAwE,EACA/H,EACA8H,EACAF,EACAhE,EACAoF,GA5BJ,CA8BJ,CAEA,OAAOL,CACX,EA4EA1oB,EAAOC,QAAU,SAAUqI,EAAQmR,GAC/B,IAGIgP,EAHAtiB,EAAMmC,EACNzL,EA5EwB,SAAmC4c,GAC/D,IAAKA,EACD,OAAO4J,EAGX,QAAqC,IAA1B5J,EAAK8J,kBAAqE,kBAA1B9J,EAAK8J,iBAC5D,MAAM,IAAI9b,UAAU,0EAGxB,QAAoC,IAAzBgS,EAAKgO,iBAAmE,kBAAzBhO,EAAKgO,gBAC3D,MAAM,IAAIhgB,UAAU,yEAGxB,GAAqB,OAAjBgS,EAAKiO,cAA4C,IAAjBjO,EAAKiO,SAAmD,mBAAjBjO,EAAKiO,QAC5E,MAAM,IAAIjgB,UAAU,iCAGxB,IAAIkc,EAAUlK,EAAKkK,SAAWN,EAASM,QACvC,QAA4B,IAAjBlK,EAAKkK,SAA4C,UAAjBlK,EAAKkK,SAAwC,eAAjBlK,EAAKkK,QACxE,MAAM,IAAIlc,UAAU,qEAGxB,IAAIsY,EAASoD,EAAiB,QAC9B,QAA2B,IAAhB1J,EAAKsG,OAAwB,CACpC,IAAK1M,EAAIvO,KAAKqe,EAAQJ,WAAYtJ,EAAKsG,QACnC,MAAM,IAAItY,UAAU,mCAExBsY,EAAStG,EAAKsG,MAClB,CACA,IAOIwH,EAPAM,EAAY1E,EAAQJ,WAAWhD,GAE/B6H,EAASvE,EAASuE,OActB,IAb2B,mBAAhBnO,EAAKmO,QAAyBtS,EAAQmE,EAAKmO,WAClDA,EAASnO,EAAKmO,QAKdL,EADA9N,EAAK8N,eAAeV,EACNpN,EAAK8N,YACZ,YAAa9N,EACNA,EAAKuN,QAAU,UAAY,SAE3B3D,EAASkE,YAGvB,mBAAoB9N,GAAuC,kBAAxBA,EAAK+N,eACxC,MAAM,IAAI/f,UAAU,iDAGxB,IAAI6b,OAAsC,IAAnB7J,EAAK6J,WAAqD,IAAzB7J,EAAKgO,iBAAkCpE,EAASC,YAAc7J,EAAK6J,UAE3H,MAAO,CACHgE,eAA+C,kBAAxB7N,EAAK6N,eAA+B7N,EAAK6N,eAAiBjE,EAASiE,eAC1FhE,UAAWA,EACXC,iBAAmD,kBAA1B9J,EAAK8J,mBAAmC9J,EAAK8J,iBAAmBF,EAASE,iBAClGgE,YAAaA,EACb5D,QAASA,EACTC,gBAAiD,kBAAzBnK,EAAKmK,gBAAgCnK,EAAKmK,gBAAkBP,EAASO,gBAC7F4D,iBAAkB/N,EAAK+N,eACvBnH,eAAqC,IAAnB5G,EAAK4G,UAA4BgD,EAAShD,UAAY5G,EAAK4G,UAC7EiC,OAA+B,kBAAhB7I,EAAK6I,OAAuB7I,EAAK6I,OAASe,EAASf,OAClEmF,gBAAiD,kBAAzBhO,EAAKgO,gBAAgChO,EAAKgO,gBAAkBpE,EAASoE,gBAC7FC,QAAiC,mBAAjBjO,EAAKiO,QAAyBjO,EAAKiO,QAAUrE,EAASqE,QACtEC,iBAAmD,kBAA1BlO,EAAKkO,iBAAiClO,EAAKkO,iBAAmBtE,EAASsE,iBAChGC,OAAQA,EACR7H,OAAQA,EACR8H,UAAWA,EACXC,cAA6C,mBAAvBrO,EAAKqO,cAA+BrO,EAAKqO,cAAgBzE,EAASyE,cACxFE,UAAqC,kBAAnBvO,EAAKuO,UAA0BvO,EAAKuO,UAAY3E,EAAS2E,UAC3EG,KAA2B,mBAAd1O,EAAK0O,KAAsB1O,EAAK0O,KAAO,KACpD5D,mBAAuD,kBAA5B9K,EAAK8K,mBAAmC9K,EAAK8K,mBAAqBlB,EAASkB,mBAE9G,CAIkByE,CAA0BvP,GAKV,mBAAnB5c,EAAQ+qB,OAEfzhB,GADAyhB,EAAS/qB,EAAQ+qB,QACJ,GAAIzhB,GACVmP,EAAQzY,EAAQ+qB,UAEvBa,EADS5rB,EAAQ+qB,QAIrB,IAAI5X,EAAO,GAEX,GAAmB,iBAAR7J,GAA4B,OAARA,EAC3B,MAAO,GAGX,IAAI+hB,EAAsBrB,EAAsBhqB,EAAQ0qB,aACpDC,EAAyC,UAAxBU,GAAmCrrB,EAAQ2qB,eAE3DiB,IACDA,EAAUpsB,OAAO2T,KAAK7J,IAGtBtJ,EAAQsrB,MACRM,EAAQN,KAAKtrB,EAAQsrB,MAIzB,IADA,IAAIC,EAAcxB,IACT/mB,EAAI,EAAGA,EAAI4oB,EAAQxpB,SAAUY,EAAG,CACrC,IAAI6Q,EAAM+X,EAAQ5oB,GACdrD,EAAQ2J,EAAIuK,GAEZ7T,EAAQmrB,WAAuB,OAAVxrB,GAGzB0qB,EAAYlX,EAAMkT,EACd1mB,EACAkU,EACAwX,EACAV,EACA3qB,EAAQ0mB,iBACR1mB,EAAQ0nB,mBACR1nB,EAAQmrB,UACRnrB,EAAQ4qB,gBACR5qB,EAAQylB,OAASzlB,EAAQ6qB,QAAU,KACnC7qB,EAAQ+qB,OACR/qB,EAAQsrB,KACRtrB,EAAQymB,UACRzmB,EAAQirB,cACRjrB,EAAQkjB,OACRljB,EAAQgrB,UACRhrB,EAAQ8qB,iBACR9qB,EAAQ8mB,QACRyE,GAER,CAEA,IAAIa,EAASjZ,EAAKjT,KAAKF,EAAQwjB,WAC3B0G,GAAoC,IAA3BlqB,EAAQyqB,eAA0B,IAAM,GAYrD,OAVIzqB,EAAQ+mB,kBACgB,eAApB/mB,EAAQ8mB,QAERoD,GAAU,uBAGVA,GAAU,mBAIXkC,EAAOhqB,OAAS,EAAI8nB,EAASkC,EAAS,EACjD,C,4BCjWA,IAAI9F,EAAU,EAAQ,OAClByD,EAAiB,EAAQ,KAEzBvT,EAAMhX,OAAOE,UAAUsL,eACvByN,EAAUhR,MAAMgR,QAIhB4T,EAAkBtC,IAElBf,EAAe,SAAsB1f,EAAKgjB,GAE1C,OADAD,EAAgB5V,IAAInN,EAAKgjB,GAClBhjB,CACX,EAEIqf,EAAa,SAAoBrf,GACjC,OAAO+iB,EAAgB7V,IAAIlN,EAC/B,EAEIijB,EAAc,SAAqBjjB,GACnC,OAAO+iB,EAAgBzsB,IAAI0J,EAC/B,EAEIkjB,EAAc,SAAqBljB,EAAKgjB,GACxCD,EAAgB5V,IAAInN,EAAKgjB,EAC7B,EAEIG,EAAY,WAEZ,IADA,IAAIphB,EAAQ,GACHrI,EAAI,EAAGA,EAAI,MAAOA,EACvBqI,EAAMA,EAAMjJ,QAAU,MAAQY,EAAI,GAAK,IAAM,IAAMA,EAAE7B,SAAS,KAAK0Z,cAGvE,OAAOxP,CACX,CAPe,GA4BXqhB,EAAgB,SAAuBC,EAAQ3sB,GAE/C,IADA,IAAIsJ,EAAMtJ,GAAWA,EAAQwnB,aAAe,CAAErd,UAAW,MAAS,CAAC,EAC1DnH,EAAI,EAAGA,EAAI2pB,EAAOvqB,SAAUY,OACR,IAAd2pB,EAAO3pB,KACdsG,EAAItG,GAAK2pB,EAAO3pB,IAIxB,OAAOsG,CACX,EAuHIhM,EAAQ,KA6IZ6F,EAAOC,QAAU,CACbspB,cAAeA,EACfE,OApKS,SAA4B9gB,EAAQ6gB,GAC7C,OAAOntB,OAAO2T,KAAKwZ,GAAQE,OAAO,SAAUC,EAAKjZ,GAE7C,OADAiZ,EAAIjZ,GAAO8Y,EAAO9Y,GACXiZ,CACX,EAAGhhB,EACP,EAgKI8c,QA9BU,SAAiBpnB,EAAGC,EAAGolB,EAAYW,GAE7C,GAAImB,EAAWnnB,GAAI,CACf,IAAIurB,EAAWR,EAAY/qB,GAAK,EAGhC,OAFAA,EAAEurB,GAAYtrB,EACd+qB,EAAYhrB,EAAGurB,GACRvrB,CACX,CAEA,IAAIb,EAAS,GAAGoQ,OAAOvP,EAAGC,GAC1B,OAAId,EAAOyB,OAASykB,EACTmC,EAAa0D,EAAc/rB,EAAQ,CAAE6mB,aAAcA,IAAiB7mB,EAAOyB,OAAS,GAExFzB,CACX,EAiBImpB,QAnEU,SAAiBnqB,GAI3B,IAHA,IAAIqtB,EAAQ,CAAC,CAAE1jB,IAAK,CAAE8N,EAAGzX,GAASsB,KAAM,MACpCgsB,EAAO,GAEFjqB,EAAI,EAAGA,EAAIgqB,EAAM5qB,SAAUY,EAKhC,IAJA,IAAIjC,EAAOisB,EAAMhqB,GACbsG,EAAMvI,EAAKuI,IAAIvI,EAAKE,MAEpBkS,EAAO3T,OAAO2T,KAAK7J,GACd5B,EAAI,EAAGA,EAAIyL,EAAK/Q,SAAUsF,EAAG,CAClC,IAAImM,EAAMV,EAAKzL,GACXqgB,EAAMze,EAAIuK,GACK,iBAARkU,GAA4B,OAARA,IAAuC,IAAvBkF,EAAKnqB,QAAQilB,KACxDiF,EAAMA,EAAM5qB,QAAU,CAAEkH,IAAKA,EAAKrI,KAAM4S,GACxCoZ,EAAKA,EAAK7qB,QAAU2lB,EAE5B,CAKJ,OAtPe,SAAsBiF,GACrC,KAAOA,EAAM5qB,OAAS,GAAG,CACrB,IAAIrB,EAAOisB,EAAM9pB,MACboG,EAAMvI,EAAKuI,IAAIvI,EAAKE,MAExB,GAAIwX,EAAQnP,GAAM,CAGd,IAFA,IAAI4jB,EAAY,GAEPxlB,EAAI,EAAGA,EAAI4B,EAAIlH,SAAUsF,OACR,IAAX4B,EAAI5B,KACXwlB,EAAUA,EAAU9qB,QAAUkH,EAAI5B,IAI1C3G,EAAKuI,IAAIvI,EAAKE,MAAQisB,CAC1B,CACJ,CACJ,CAmOIC,CAAaH,GAENrtB,CACX,EA8CIqlB,OAhKS,SAAUtjB,EAAK0rB,EAAgBtG,GACxC,IAAIuG,EAAiB3rB,EAAI+C,QAAQ,MAAO,KACxC,GAAgB,eAAZqiB,EAEA,OAAOuG,EAAe5oB,QAAQ,iBAAkB6oB,UAGpD,IACI,OAAOze,mBAAmBwe,EAC9B,CAAE,MAAOjjB,GACL,OAAOijB,CACX,CACJ,EAqJI5H,OA/IS,SAAgB/jB,EAAK6rB,EAAgBzG,EAAS0G,EAAMtK,GAG7D,GAAmB,IAAfxhB,EAAIU,OACJ,OAAOV,EAGX,IAAI6J,EAAS7J,EAOb,GANmB,iBAARA,EACP6J,EAAS6C,OAAO1O,UAAUyB,SAAS8G,KAAKvG,GAClB,iBAARA,IACd6J,EAASvH,OAAOtC,IAGJ,eAAZolB,EACA,OAAO2G,OAAOliB,GAAQ9G,QAAQ,kBAAmB,SAAUmjB,GACvD,MAAO,SAAWliB,SAASkiB,EAAG1lB,MAAM,GAAI,IAAM,KAClD,GAIJ,IADA,IAAI+iB,EAAM,GACDvd,EAAI,EAAGA,EAAI6D,EAAOnJ,OAAQsF,GAAKpK,EAAO,CAI3C,IAHA,IAAI6kB,EAAU5W,EAAOnJ,QAAU9E,EAAQiO,EAAOrJ,MAAMwF,EAAGA,EAAIpK,GAASiO,EAChEK,EAAM,GAED5I,EAAI,EAAGA,EAAImf,EAAQ/f,SAAUY,EAAG,CACrC,IAAIkB,EAAIie,EAAQ5d,WAAWvB,GAEjB,KAANkB,GACS,KAANA,GACM,KAANA,GACM,MAANA,GACCA,GAAK,IAAQA,GAAK,IAClBA,GAAK,IAAQA,GAAK,IAClBA,GAAK,IAAQA,GAAK,KAClBgf,IAAWoD,EAAQH,UAAkB,KAANjiB,GAAoB,KAANA,GAEjD0H,EAAIA,EAAIxJ,QAAU+f,EAAQ3d,OAAOxB,GAIjCkB,EAAI,IACJ0H,EAAIA,EAAIxJ,QAAUqqB,EAASvoB,GAI3BA,EAAI,KACJ0H,EAAIA,EAAIxJ,QAAUqqB,EAAS,IAAQvoB,GAAK,GAClCuoB,EAAS,IAAY,GAAJvoB,GAIvBA,EAAI,OAAUA,GAAK,MACnB0H,EAAIA,EAAIxJ,QAAUqqB,EAAS,IAAQvoB,GAAK,IAClCuoB,EAAS,IAASvoB,GAAK,EAAK,IAC5BuoB,EAAS,IAAY,GAAJvoB,IAI3BlB,GAAK,EACLkB,EAAI,QAAiB,KAAJA,IAAc,GAA+B,KAAxBie,EAAQ5d,WAAWvB,IAEzD4I,EAAIA,EAAIxJ,QAAUqqB,EAAS,IAAQvoB,GAAK,IAClCuoB,EAAS,IAASvoB,GAAK,GAAM,IAC7BuoB,EAAS,IAASvoB,GAAK,EAAK,IAC5BuoB,EAAS,IAAY,GAAJvoB,GAC3B,CAEA+gB,GAAOrZ,EAAI1L,KAAK,GACpB,CAEA,OAAO+kB,CACX,EAwEI0G,SA1CW,SAAkBriB,GAC7B,SAAKA,GAAsB,iBAARA,KAITA,EAAI8M,aAAe9M,EAAI8M,YAAYuV,UAAYriB,EAAI8M,YAAYuV,SAASriB,IACtF,EAqCIqf,WAAYA,EACZ1L,SAhDW,SAAkB3T,GAC7B,MAA+C,oBAAxC9J,OAAOE,UAAUyB,SAAS8G,KAAKqB,EAC1C,EA+CI0f,aAAcA,EACdQ,SAtBW,SAAkBzB,EAAKrX,GAClC,GAAI+H,EAAQsP,GAAM,CAEd,IADA,IAAI2F,EAAS,GACJ1qB,EAAI,EAAGA,EAAI+kB,EAAI3lB,OAAQY,GAAK,EACjC0qB,EAAOA,EAAOtrB,QAAUsO,EAAGqX,EAAI/kB,IAEnC,OAAO0qB,CACX,CACA,OAAOhd,EAAGqX,EACd,EAcI8B,MA9QQ,SAASA,EAAM/d,EAAQ6gB,EAAQ3sB,GAEvC,IAAK2sB,EACD,OAAO7gB,EAGX,GAAsB,iBAAX6gB,GAAyC,mBAAXA,EAAuB,CAC5D,GAAIlU,EAAQ3M,GAAS,CACjB,IAAI6hB,EAAY7hB,EAAO1J,OACvB,GAAIpC,GAAyC,iBAAvBA,EAAQ6mB,YAA2B8G,EAAY3tB,EAAQ6mB,WACzE,OAAOmC,EAAa0D,EAAc5gB,EAAOiF,OAAO4b,GAAS3sB,GAAU2tB,GAEvE7hB,EAAO6hB,GAAahB,CACxB,KAAO,KAAI7gB,GAA4B,iBAAXA,EAaxB,MAAO,CAACA,EAAQ6gB,GAZhB,GAAIhE,EAAW7c,GAAS,CAEpB,IAAIihB,EAAWR,EAAYzgB,GAAU,EACrCA,EAAOihB,GAAYJ,EACnBH,EAAY1gB,EAAQihB,EACxB,MACK/sB,IAAYA,EAAQwnB,cAAgBxnB,EAAQ2mB,mBACzCnQ,EAAIvO,KAAKzI,OAAOE,UAAWitB,MAE/B7gB,EAAO6gB,IAAU,EAIzB,CAEA,OAAO7gB,CACX,CAEA,IAAKA,GAA4B,iBAAXA,EAAqB,CACvC,GAAI6c,EAAWgE,GAAS,CAMpB,IAJA,IAAIiB,EAAapuB,OAAO2T,KAAKwZ,GACzBhsB,EAASX,GAAWA,EAAQwnB,aAC1B,CAAErd,UAAW,KAAM,EAAG2B,GACtB,CAAE,EAAGA,GACFvJ,EAAI,EAAGA,EAAIqrB,EAAWxrB,OAAQG,IAEnC5B,EADa+E,SAASkoB,EAAWrrB,GAAI,IACrB,GAAKoqB,EAAOiB,EAAWrrB,IAE3C,OAAOymB,EAAaroB,EAAQ4rB,EAAYI,GAAU,EACtD,CACA,IAAIkB,EAAW,CAAC/hB,GAAQiF,OAAO4b,GAC/B,OAAI3sB,GAAyC,iBAAvBA,EAAQ6mB,YAA2BgH,EAASzrB,OAASpC,EAAQ6mB,WACxEmC,EAAa0D,EAAcmB,EAAU7tB,GAAU6tB,EAASzrB,OAAS,GAErEyrB,CACX,CAEA,IAAIC,EAAchiB,EAKlB,OAJI2M,EAAQ3M,KAAY2M,EAAQkU,KAC5BmB,EAAcpB,EAAc5gB,EAAQ9L,IAGpCyY,EAAQ3M,IAAW2M,EAAQkU,IAC3BA,EAAO7S,QAAQ,SAAU/Y,EAAMiC,GAC3B,GAAIwT,EAAIvO,KAAK6D,EAAQ9I,GAAI,CACrB,IAAI+qB,EAAajiB,EAAO9I,GACpB+qB,GAAoC,iBAAfA,GAA2BhtB,GAAwB,iBAATA,EAC/D+K,EAAO9I,GAAK6mB,EAAMkE,EAAYhtB,EAAMf,GAEpC8L,EAAOA,EAAO1J,QAAUrB,CAEhC,MACI+K,EAAO9I,GAAKjC,CAEpB,GACO+K,GAGJtM,OAAO2T,KAAKwZ,GAAQE,OAAO,SAAUC,EAAKjZ,GAC7C,IAAIlU,EAAQgtB,EAAO9Y,GAWnB,GATI2C,EAAIvO,KAAK6kB,EAAKjZ,GACdiZ,EAAIjZ,GAAOgW,EAAMiD,EAAIjZ,GAAMlU,EAAOK,GAElC8sB,EAAIjZ,GAAOlU,EAGXgpB,EAAWgE,KAAYhE,EAAWmE,IAClC9D,EAAa8D,EAAKP,EAAYI,IAE9BhE,EAAWmE,GAAM,CACjB,IAAIkB,EAAStoB,SAASmO,EAAK,IACvB7P,OAAOgqB,KAAYna,GAAOma,GAAU,GAAKA,EAASzB,EAAYO,IAC9DN,EAAYM,EAAKkB,EAEzB,CAEA,OAAOlB,CACX,EAAGgB,EACP,E,0BChKA,IAAItX,EAAMhX,OAAOE,UAAUsL,eAU3B,SAASga,EAAOjhB,GACd,IACE,OAAO8K,mBAAmB9K,EAAMU,QAAQ,MAAO,KACjD,CAAE,MAAO2F,GACP,OAAO,IACT,CACF,CASA,SAASqb,EAAO1hB,GACd,IACE,OAAOgL,mBAAmBhL,EAC5B,CAAE,MAAOqG,GACP,OAAO,IACT,CACF,CAmFAhH,EAAQijB,UA1CR,SAAwB/c,EAAK4gB,GAC3BA,EAASA,GAAU,GAEnB,IACIvqB,EACAkU,EAFAoa,EAAQ,GASZ,IAAKpa,IAFD,iBAAoBqW,IAAQA,EAAS,KAE7B5gB,EACV,GAAIkN,EAAIvO,KAAKqB,EAAKuK,GAAM,CAkBtB,IAjBAlU,EAAQ2J,EAAIuK,KAMGlU,UAAqC8P,MAAM9P,KACxDA,EAAQ,IAGVkU,EAAM4R,EAAO5R,GACblU,EAAQ8lB,EAAO9lB,GAMH,OAARkU,GAA0B,OAAVlU,EAAgB,SACpCsuB,EAAMhrB,KAAK4Q,EAAK,IAAKlU,EACvB,CAGF,OAAOsuB,EAAM7rB,OAAS8nB,EAAS+D,EAAM/tB,KAAK,KAAO,EACnD,EAMAkD,EAAQ4Q,MA3ER,SAAqBka,GAKnB,IAJA,IAEI7b,EAFA8b,EAAS,uBACTxtB,EAAS,CAAC,EAGP0R,EAAO8b,EAAO9c,KAAK6c,IAAQ,CAChC,IAAIra,EAAMmR,EAAO3S,EAAK,IAClB1S,EAAQqlB,EAAO3S,EAAK,IAUZ,OAARwB,GAA0B,OAAVlU,GAAkBkU,KAAOlT,IAC7CA,EAAOkT,GAAOlU,EAChB,CAEA,OAAOgB,CACT,C,wBCrDAwC,EAAOC,QAAU,SAAkBgrB,EAAMna,GAIvC,GAHAA,EAAWA,EAASlP,MAAM,KAAK,KAC/BqpB,GAAQA,GAEG,OAAO,EAElB,OAAQna,GACN,IAAK,OACL,IAAK,KACL,OAAgB,KAATma,EAEP,IAAK,QACL,IAAK,MACL,OAAgB,MAATA,EAEP,IAAK,MACL,OAAgB,KAATA,EAEP,IAAK,SACL,OAAgB,KAATA,EAEP,IAAK,OACL,OAAO,EAGT,OAAgB,IAATA,CACT,C,4BCnCA,IAAI9Z,EAAY,EAAQ,OACpB+Z,EAAU,EAAQ,OAElBjd,EAAQkD,EAAU,yBAClBjM,EAAa,EAAQ,OAGzBlF,EAAOC,QAAU,SAAqBkrB,GACrC,IAAKD,EAAQC,GACZ,MAAM,IAAIjmB,EAAW,4BAEtB,OAAO,SAAcqU,GACpB,OAA2B,OAApBtL,EAAMkd,EAAO5R,EACrB,CACD,C,4BCdA,IAAI1T,EAAe,EAAQ,OACvBlJ,EAAS,EAAQ,OACjByuB,EAAiB,EAAQ,MAAR,GACjBrkB,EAAO,EAAQ,OAEf7B,EAAa,EAAQ,OACrB8S,EAASnS,EAAa,gBAG1B7F,EAAOC,QAAU,SAA2BsN,EAAItO,GAC/C,GAAkB,mBAAPsO,EACV,MAAM,IAAIrI,EAAW,0BAEtB,GAAsB,iBAAXjG,GAAuBA,EAAS,GAAKA,EAAS,YAAc+Y,EAAO/Y,KAAYA,EACzF,MAAM,IAAIiG,EAAW,8CAGtB,IAAIsB,EAAQxB,UAAU/F,OAAS,KAAO+F,UAAU,GAE5CqmB,GAA+B,EAC/BC,GAA2B,EAC/B,GAAI,WAAY/d,GAAMxG,EAAM,CAC3B,IAAIN,EAAOM,EAAKwG,EAAI,UAChB9G,IAASA,EAAKC,eACjB2kB,GAA+B,GAE5B5kB,IAASA,EAAKG,WACjB0kB,GAA2B,EAE7B,CASA,OAPID,GAAgCC,IAA6B9kB,KAC5D4kB,EACHzuB,EAA4C,EAAM,SAAUsC,GAAQ,GAAM,GAE1EtC,EAA4C,EAAM,SAAUsC,IAGvDsO,CACR,C,4BCvCA,IAAIsN,EAAU,EAAQ,OAElB3V,EAAa,EAAQ,OAUrBqmB,EAAc,SAAUzjB,EAAM4I,EAAK8a,GAMtC,IAJA,IAEIC,EAFA9Q,EAAO7S,EAIkB,OAArB2jB,EAAO9Q,EAAK+Q,MAAe/Q,EAAO8Q,EACzC,GAAIA,EAAK/a,MAAQA,EAOhB,OANAiK,EAAK+Q,KAAOD,EAAKC,KACZF,IAEJC,EAAKC,KAAqD5jB,EAAS,KACnEA,EAAK4jB,KAAOD,GAENA,CAGV,EAwCAzrB,EAAOC,QAAU,WAKgD,IAAI0rB,EAGhEC,EAAU,CACbC,OAAQ,SAAUnb,GACjB,IAAKkb,EAAQvY,IAAI3C,GAChB,MAAM,IAAIxL,EAAW,iCAAmC2V,EAAQnK,GAElE,EACA,OAAU,SAAUA,GACnB,IAAIgP,EAAOiM,GAAMA,EAAGD,KAChBI,EAvBU,SAAUC,EAASrb,GACnC,GAAIqb,EACH,OAAOR,EAAYQ,EAASrb,GAAK,EAEnC,CAmBqBsb,CAAWL,EAAIjb,GAIjC,OAHIob,GAAepM,GAAQA,IAASoM,IACnCH,OAAK,KAEGG,CACV,EACArvB,IAAK,SAAUiU,GACd,OA5DW,SAAUqb,EAASrb,GAChC,GAAKqb,EAAL,CAGA,IAAI5yB,EAAOoyB,EAAYQ,EAASrb,GAChC,OAAOvX,GAAQA,EAAKqD,KAFpB,CAGD,CAsDUyvB,CAAQN,EAAIjb,EACpB,EACA2C,IAAK,SAAU3C,GACd,OAzCW,SAAUqb,EAASrb,GAChC,QAAKqb,KAGIR,EAAYQ,EAASrb,EAC/B,CAoCUwb,CAAQP,EAAIjb,EACpB,EACA4C,IAAK,SAAU5C,EAAKlU,GACdmvB,IAEJA,EAAK,CACJD,UAAM,IA7DG,SAAUK,EAASrb,EAAKlU,GACrC,IAAIrD,EAAOoyB,EAAYQ,EAASrb,GAC5BvX,EACHA,EAAKqD,MAAQA,EAGbuvB,EAAQL,KAA+E,CACtFhb,IAAKA,EACLgb,KAAMK,EAAQL,KACdlvB,MAAOA,EAGV,CAqDG2vB,CAA8C,EAAMzb,EAAKlU,EAC1D,GAGD,OAAOovB,CACR,C,4BC9GA,IAAI/lB,EAAe,EAAQ,OACvBsL,EAAY,EAAQ,OACpB0J,EAAU,EAAQ,OAElB3V,EAAa,EAAQ,OACrBknB,EAAOvmB,EAAa,SAAS,GAG7BwmB,EAAUlb,EAAU,qBAAqB,GAEzCmb,EAAUnb,EAAU,qBAAqB,GAEzCob,EAAUpb,EAAU,qBAAqB,GAEzCqb,EAAarb,EAAU,wBAAwB,GAE/Csb,EAAWtb,EAAU,sBAAsB,GAG/CnR,EAAOC,UAAYmsB,GAAmD,WAKhC,IAAIM,EAGrCd,EAAU,CACbC,OAAQ,SAAUnb,GACjB,IAAKkb,EAAQvY,IAAI3C,GAChB,MAAM,IAAIxL,EAAW,iCAAmC2V,EAAQnK,GAElE,EACA,OAAU,SAAUA,GACnB,GAAIgc,EAAI,CACP,IAAIlvB,EAASgvB,EAAWE,EAAIhc,GAI5B,OAHqB,IAAjB+b,EAASC,KACZA,OAAK,GAEClvB,CACR,CACA,OAAO,CACR,EACAf,IAAK,SAAUiU,GACd,GAAIgc,EACH,OAAOL,EAAQK,EAAIhc,EAErB,EACA2C,IAAK,SAAU3C,GACd,QAAIgc,GACIH,EAAQG,EAAIhc,EAGrB,EACA4C,IAAK,SAAU5C,EAAKlU,GACdkwB,IAEJA,EAAK,IAAIN,GAEVE,EAAQI,EAAIhc,EAAKlU,EAClB,GAID,OAAOovB,CACR,C,4BCjEA,IAAI/lB,EAAe,EAAQ,OACvBsL,EAAY,EAAQ,OACpB0J,EAAU,EAAQ,OAClB8R,EAAoB,EAAQ,OAE5BznB,EAAa,EAAQ,OACrB0nB,EAAW/mB,EAAa,aAAa,GAGrCgnB,EAAc1b,EAAU,yBAAyB,GAEjD2b,EAAc3b,EAAU,yBAAyB,GAEjD4b,EAAc5b,EAAU,yBAAyB,GAEjD6b,EAAiB7b,EAAU,4BAA4B,GAG3DnR,EAAOC,QAAU2sB,EAC6B,WAKM,IAAIK,EACfP,EAGnCd,EAAU,CACbC,OAAQ,SAAUnb,GACjB,IAAKkb,EAAQvY,IAAI3C,GAChB,MAAM,IAAIxL,EAAW,iCAAmC2V,EAAQnK,GAElE,EACA,OAAU,SAAUA,GACnB,GAAIkc,GAAYlc,IAAuB,iBAARA,GAAmC,mBAARA,IACzD,GAAIuc,EACH,OAAOD,EAAeC,EAAKvc,QAEtB,GAAIic,GACND,EACH,OAAOA,EAAW,OAAEhc,GAGtB,OAAO,CACR,EACAjU,IAAK,SAAUiU,GACd,OAAIkc,GAAYlc,IAAuB,iBAARA,GAAmC,mBAARA,IACrDuc,EACIJ,EAAYI,EAAKvc,GAGnBgc,GAAMA,EAAGjwB,IAAIiU,EACrB,EACA2C,IAAK,SAAU3C,GACd,OAAIkc,GAAYlc,IAAuB,iBAARA,GAAmC,mBAARA,IACrDuc,EACIF,EAAYE,EAAKvc,KAGjBgc,GAAMA,EAAGrZ,IAAI3C,EACvB,EACA4C,IAAK,SAAU5C,EAAKlU,GACfowB,GAAYlc,IAAuB,iBAARA,GAAmC,mBAARA,IACpDuc,IACJA,EAAM,IAAIL,GAEXE,EAAYG,EAAKvc,EAAKlU,IACZmwB,IACLD,IACJA,EAAKC,KAGgC,EAAKrZ,IAAI5C,EAAKlU,GAEtD,GAID,OAAOovB,CACR,EACEe,C,0BCjFH,IAAIznB,EAAa,EAAQ,OACrB2V,EAAU,EAAQ,OAClBqS,EAAqB,EAAQ,OAC7BP,EAAoB,EAAQ,OAG5BQ,EAFwB,EAAQ,QAEOR,GAAqBO,EAGhEltB,EAAOC,QAAU,WAGmB,IAAImtB,EAGnCxB,EAAU,CACbC,OAAQ,SAAUnb,GACjB,IAAKkb,EAAQvY,IAAI3C,GAChB,MAAM,IAAIxL,EAAW,iCAAmC2V,EAAQnK,GAElE,EACA,OAAU,SAAUA,GACnB,QAAS0c,GAAgBA,EAAqB,OAAE1c,EACjD,EACAjU,IAAK,SAAUiU,GACd,OAAO0c,GAAgBA,EAAa3wB,IAAIiU,EACzC,EACA2C,IAAK,SAAU3C,GACd,QAAS0c,GAAgBA,EAAa/Z,IAAI3C,EAC3C,EACA4C,IAAK,SAAU5C,EAAKlU,GACd4wB,IACJA,EAAeD,KAGhBC,EAAa9Z,IAAI5C,EAAKlU,EACvB,GAGD,OAAOovB,CACR,C,eC1CA,IAAIyB,EAAgB,EAAQ,OACxBnwB,EAAW,EAAQ,MACnBzD,EAAS,EAAQ,OACjB6zB,EAAc,EAAQ,OACtB9c,EAAM,EAAQ,OAEdD,EAAOtQ,EAEXsQ,EAAKQ,QAAU,SAAU0I,EAAMzI,GAE7ByI,EADmB,iBAATA,EACHjJ,EAAIK,MAAM4I,GAEVhgB,EAAOggB,GAKf,IAAI8T,GAAoE,IAAlD,WAAOC,SAAS1c,SAAS2c,OAAO,aAAsB,QAAU,GAElF3c,EAAW2I,EAAK3I,UAAYyc,EAC5BG,EAAOjU,EAAKkU,UAAYlU,EAAKiU,KAC7BzC,EAAOxR,EAAKwR,KACZlW,EAAO0E,EAAK1E,MAAQ,IAGpB2Y,IAA+B,IAAvBA,EAAK/tB,QAAQ,OACxB+tB,EAAO,IAAMA,EAAO,KAGrBjU,EAAKjJ,KAAOkd,EAAQ5c,EAAW,KAAO4c,EAAQ,KAAOzC,EAAO,IAAMA,EAAO,IAAMlW,EAC/E0E,EAAKrc,QAAUqc,EAAKrc,QAAU,OAAOsa,cACrC+B,EAAKmU,QAAUnU,EAAKmU,SAAW,CAAC,EAIhC,IAAIC,EAAM,IAAIR,EAAc5T,GAG5B,OAFIzI,GACH6c,EAAIC,GAAG,WAAY9c,GACb6c,CACR,EAEAtd,EAAK9T,IAAM,SAAcgd,EAAMzI,GAC9B,IAAI6c,EAAMtd,EAAKQ,QAAQ0I,EAAMzI,GAE7B,OADA6c,EAAIhvB,MACGgvB,CACR,EAEAtd,EAAK8c,cAAgBA,EACrB9c,EAAKwd,gBAAkB7wB,EAAS6wB,gBAEhCxd,EAAKyd,MAAQ,WAAa,EAC1Bzd,EAAKyd,MAAMC,kBAAoB,EAE/B1d,EAAK2d,YAAc,IAAI3d,EAAKyd,MAE5Bzd,EAAK4d,aAAeb,EAEpB/c,EAAK6d,QAAU,CACd,WACA,UACA,OACA,SACA,MACA,OACA,OACA,WACA,QACA,aACA,QACA,OACA,SACA,UACA,QACA,OACA,WACA,YACA,QACA,MACA,SACA,SACA,YACA,QACA,SACA,c,YC1ED,IAAIC,EACJ,SAASC,IAER,QAAY51B,IAAR21B,EAAmB,OAAOA,EAE9B,GAAI,WAAOE,eAAgB,CAC1BF,EAAM,IAAI,WAAOE,eAIjB,IACCF,EAAIG,KAAK,MAAO,WAAOC,eAAiB,IAAM,sBAC/C,CAAE,MAAMxnB,GACPonB,EAAM,IACP,CACD,MAECA,EAAM,KAEP,OAAOA,CACR,CAEA,SAASK,EAAkBjzB,GAC1B,IAAI4yB,EAAMC,IACV,IAAKD,EAAK,OAAO,EACjB,IAEC,OADAA,EAAIM,aAAelzB,EACZ4yB,EAAIM,eAAiBlzB,CAC7B,CAAE,MAAOwL,GAAI,CACb,OAAO,CACR,CAeA,SAAS2nB,EAAYpyB,GACpB,MAAwB,mBAAVA,CACf,CAxDAyD,EAAQ4uB,MAAQD,EAAW,WAAOC,QAAUD,EAAW,WAAOE,gBAE9D7uB,EAAQ8uB,eAAiBH,EAAW,WAAOI,gBAE3C/uB,EAAQgvB,gBAAkBL,EAAW,WAAOM,iBAuC5CjvB,EAAQkvB,YAAclvB,EAAQ4uB,OAASH,EAAiB,eAIxDzuB,EAAQmvB,UAAYnvB,EAAQ4uB,OAASH,EAAiB,aACtDzuB,EAAQovB,uBAAyBpvB,EAAQ4uB,OAASH,EAAiB,2BAInEzuB,EAAQqvB,iBAAmBrvB,EAAQ4uB,SAAUP,KAAWM,EAAWN,IAASgB,kBAM5EjB,EAAM,I,4CC1DFkB,EAAa,EAAQ,MACrBC,EAAW,EAAQ,OACnBtyB,EAAW,EAAQ,MACnBuyB,EAAS,EAAQ,OAEjB1B,EAAkB7wB,EAAS6wB,gBAC3B2B,EAAUxyB,EAASyyB,YAgBnBtC,EAAgBrtB,EAAOC,QAAU,SAAUwZ,GAC9C,IAYImW,EAZApb,EAAOlZ,KACXm0B,EAAOI,SAAS/qB,KAAK0P,GAErBA,EAAKsb,MAAQrW,EACbjF,EAAKub,MAAQ,GACbvb,EAAKwb,SAAW,CAAC,EACbvW,EAAKwW,MACRzb,EAAK0b,UAAU,gBAAiB,SAAWC,EAAOrV,KAAKrB,EAAKwW,MAAMjyB,SAAS,WAC5E3B,OAAO2T,KAAKyJ,EAAKmU,SAASjX,QAAQ,SAAUpW,GAC3CiU,EAAK0b,UAAU3vB,EAAMkZ,EAAKmU,QAAQrtB,GACnC,GAGA,IAAI6vB,GAAW,EACf,GAAkB,kBAAd3W,EAAK4W,MAA6B,mBAAoB5W,IAAS8V,EAAWN,gBAE7EmB,GAAW,EACXR,GAAe,OACT,GAAkB,qBAAdnW,EAAK4W,KAGfT,GAAe,OACT,GAAkB,6BAAdnW,EAAK4W,KAEfT,GAAgBL,EAAWD,qBACrB,IAAK7V,EAAK4W,MAAsB,YAAd5W,EAAK4W,MAAoC,gBAAd5W,EAAK4W,KAIxD,MAAM,IAAI/vB,MAAM,+BAFhBsvB,GAAe,CAGhB,CACApb,EAAK8b,MA9CN,SAAqBV,EAAcQ,GAClC,OAAIb,EAAWV,OAASuB,EAChB,QACGb,EAAWF,sBACd,0BACGE,EAAWH,SACd,YACGG,EAAWJ,aAAeS,EAC7B,cAEA,MAET,CAkCcW,CAAWX,EAAcQ,GACtC5b,EAAKgc,YAAc,KACnBhc,EAAKic,eAAiB,KACtBjc,EAAKkc,aAAe,KAEpBlc,EAAKsZ,GAAG,SAAU,WACjBtZ,EAAKmc,WACN,EACD,EAEAnB,EAASnC,EAAeoC,EAAOI,UAE/BxC,EAAc9wB,UAAU2zB,UAAY,SAAU3vB,EAAM/D,GACnD,IACIo0B,EAAYrwB,EAAKqX,eAIqB,IAAtCiZ,EAAclxB,QAAQixB,KALft1B,KAQN00B,SAASY,GAAa,CAC1BrwB,KAAMA,EACN/D,MAAOA,GAET,EAEA6wB,EAAc9wB,UAAUu0B,UAAY,SAAUvwB,GAC7C,IAAIwwB,EAASz1B,KAAK00B,SAASzvB,EAAKqX,eAChC,OAAImZ,EACIA,EAAOv0B,MACR,IACR,EAEA6wB,EAAc9wB,UAAUy0B,aAAe,SAAUzwB,UACrCjF,KACC00B,SAASzvB,EAAKqX,cAC3B,EAEAyV,EAAc9wB,UAAUo0B,UAAY,WACnC,IAAInc,EAAOlZ,KAEX,IAAIkZ,EAAKyc,WAAT,CAEA,IAAIxX,EAAOjF,EAAKsb,MAEZ,YAAarW,GAAyB,IAAjBA,EAAKyX,SAC7B1c,EAAK2c,WAAW1X,EAAKyX,SAGtB,IAAIE,EAAa5c,EAAKwb,SAClBhxB,EAAO,KACS,QAAhBya,EAAKrc,QAAoC,SAAhBqc,EAAKrc,SAC3B4B,EAAO,IAAIqyB,KAAK7c,EAAKub,MAAO,CACxBt0B,MAAO21B,EAAW,iBAAmB,CAAC,GAAG50B,OAAS,MAK7D,IAAI80B,EAAc,GAalB,GAZAj1B,OAAO2T,KAAKohB,GAAYza,QAAQ,SAAU4a,GACzC,IAAIhxB,EAAO6wB,EAAWG,GAAShxB,KAC3B/D,EAAQ40B,EAAWG,GAAS/0B,MAC5B8H,MAAMgR,QAAQ9Y,GACjBA,EAAMma,QAAQ,SAAUtB,GACvBic,EAAYxxB,KAAK,CAACS,EAAM8U,GACzB,GAEAic,EAAYxxB,KAAK,CAACS,EAAM/D,GAE1B,GAEmB,UAAfgY,EAAK8b,MAAmB,CAC3B,IAAIkB,EAAS,KACb,GAAIjC,EAAWN,gBAAiB,CAC/B,IAAIwC,EAAa,IAAIvC,gBACrBsC,EAASC,EAAWD,OACpBhd,EAAKkd,sBAAwBD,EAEzB,mBAAoBhY,GAAgC,IAAxBA,EAAKkY,iBACpCnd,EAAKgc,YAAc,WAAOW,WAAW,WACpC3c,EAAKod,KAAK,kBACNpd,EAAKkd,uBACRld,EAAKkd,sBAAsBG,OAC7B,EAAGpY,EAAKkY,gBAEV,CAEA,WAAO9C,MAAMra,EAAKsb,MAAMtf,IAAK,CAC5BpT,OAAQoX,EAAKsb,MAAM1yB,OACnBwwB,QAAS0D,EACTtyB,KAAMA,QAAQtG,EACd23B,KAAM,OACNyB,YAAarY,EAAKsY,gBAAkB,UAAY,cAChDP,OAAQA,IACNQ,KAAK,SAAU90B,GACjBsX,EAAKyd,eAAiB/0B,EACtBsX,EAAK0d,cAAa,GAClB1d,EAAK2d,UACN,EAAG,SAAUC,GACZ5d,EAAK0d,cAAa,GACb1d,EAAKyc,YACTzc,EAAKod,KAAK,QAASQ,EACrB,EACD,KAAO,CACN,IAAI/D,EAAM7Z,EAAK6d,KAAO,IAAI,WAAO9D,eACjC,IACCF,EAAIG,KAAKha,EAAKsb,MAAM1yB,OAAQoX,EAAKsb,MAAMtf,KAAK,EAC7C,CAAE,MAAOyF,GAIR,YAHA0I,EAAQ2T,SAAS,WAChB9d,EAAKod,KAAK,QAAS3b,EACpB,EAED,CAGI,iBAAkBoY,IACrBA,EAAIM,aAAena,EAAK8b,OAErB,oBAAqBjC,IACxBA,EAAI0D,kBAAoBtY,EAAKsY,iBAEX,SAAfvd,EAAK8b,OAAoB,qBAAsBjC,GAClDA,EAAIiB,iBAAiB,sCAElB,mBAAoB7V,IACvB4U,EAAI6C,QAAUzX,EAAKkY,eACnBtD,EAAIkE,UAAY,WACf/d,EAAKod,KAAK,iBACX,GAGDN,EAAY3a,QAAQ,SAAUoa,GAC7B1C,EAAImE,iBAAiBzB,EAAO,GAAIA,EAAO,GACxC,GAEAvc,EAAKie,UAAY,KACjBpE,EAAIqE,mBAAqB,WACxB,OAAQrE,EAAIsE,YACX,KAAKjD,EAAQkD,QACb,KAAKlD,EAAQmD,KACZre,EAAKse,iBAGR,EAGmB,4BAAfte,EAAK8b,QACRjC,EAAI0E,WAAa,WAChBve,EAAKse,gBACN,GAGDzE,EAAI2E,QAAU,WACTxe,EAAKyc,aAETzc,EAAK0d,cAAa,GAClB1d,EAAKod,KAAK,QAAS,IAAItxB,MAAM,cAC9B,EAEA,IACC+tB,EAAI4E,KAAKj0B,EACV,CAAE,MAAOiX,GAIR,YAHA0I,EAAQ2T,SAAS,WAChB9d,EAAKod,KAAK,QAAS3b,EACpB,EAED,CACD,CA7HC,CA8HF,EAgBAoX,EAAc9wB,UAAUu2B,eAAiB,WACxC,IAAIte,EAAOlZ,KAEXkZ,EAAK0d,cAAa,GAZnB,SAAsB7D,GACrB,IACC,IAAI6E,EAAS7E,EAAI6E,OACjB,OAAmB,OAAXA,GAA8B,IAAXA,CAC5B,CAAE,MAAOjsB,GACR,OAAO,CACR,CACD,CAOMksB,CAAY3e,EAAK6d,QAAS7d,EAAKyc,aAG/Bzc,EAAKie,WACTje,EAAK2d,WAEN3d,EAAKie,UAAUK,eAAete,EAAK0d,aAAaxtB,KAAK8P,IACtD,EAEA6Y,EAAc9wB,UAAU41B,SAAW,WAClC,IAAI3d,EAAOlZ,KAEPkZ,EAAKyc,aAGTzc,EAAKie,UAAY,IAAI1E,EAAgBvZ,EAAK6d,KAAM7d,EAAKyd,eAAgBzd,EAAK8b,MAAO9b,EAAK0d,aAAaxtB,KAAK8P,IACxGA,EAAKie,UAAU3E,GAAG,QAAS,SAAS7X,GACnCzB,EAAKod,KAAK,QAAS3b,EACpB,GAEAzB,EAAKod,KAAK,WAAYpd,EAAKie,WAC5B,EAEApF,EAAc9wB,UAAU62B,OAAS,SAAUC,EAAOC,EAAUtiB,GAChD1V,KAENy0B,MAAMjwB,KAAKuzB,GAChBriB,GACD,EAEAqc,EAAc9wB,UAAU21B,aAAe,SAAUqB,GAChD,IAAI/e,EAAOlZ,KAEX,WAAOk4B,aAAahf,EAAKkc,cACzBlc,EAAKkc,aAAe,KAEhB6C,GACH,WAAOC,aAAahf,EAAKgc,aACzBhc,EAAKgc,YAAc,MACThc,EAAKic,iBACfjc,EAAKkc,aAAe,WAAOS,WAAW,WACrC3c,EAAKod,KAAK,UACX,EAAGpd,EAAKic,gBAEV,EAEApD,EAAc9wB,UAAUs1B,MAAQxE,EAAc9wB,UAAUk3B,QAAU,SAAUxd,GAC3E,IAAIzB,EAAOlZ,KACXkZ,EAAKyc,YAAa,EAClBzc,EAAK0d,cAAa,GACd1d,EAAKie,YACRje,EAAKie,UAAUxB,YAAa,GACzBzc,EAAK6d,KACR7d,EAAK6d,KAAKR,QACFrd,EAAKkd,uBACbld,EAAKkd,sBAAsBG,QAExB5b,GACHzB,EAAKod,KAAK,QAAS3b,EACrB,EAEAoX,EAAc9wB,UAAUsC,IAAM,SAAUxE,EAAMi5B,EAAUtiB,GAEnC,mBAAT3W,IACV2W,EAAK3W,EACLA,OAAO3B,GAGR+2B,EAAOI,SAAStzB,UAAUsC,IAAIiG,KANnBxJ,KAM8BjB,EAAMi5B,EAAUtiB,EAC1D,EAEAqc,EAAc9wB,UAAU40B,WAAa,SAAUD,EAASlgB,GACvD,IAAIwD,EAAOlZ,KAEP0V,GACHwD,EAAKkf,KAAK,UAAW1iB,GAEtBwD,EAAKic,eAAiBS,EACtB1c,EAAK0d,cAAa,EACnB,EAEA7E,EAAc9wB,UAAUo3B,aAAe,WAAa,EACpDtG,EAAc9wB,UAAUq3B,WAAa,WAAa,EAClDvG,EAAc9wB,UAAUs3B,mBAAqB,WAAa,EAG1D,IAAIhD,EAAgB,CACnB,iBACA,kBACA,iCACA,gCACA,aACA,iBACA,SACA,UACA,OACA,MACA,SACA,OACA,aACA,SACA,UACA,KACA,UACA,oBACA,UACA,M,2CC9VGtB,EAAa,EAAQ,MACrBC,EAAW,EAAQ,OACnBC,EAAS,EAAQ,OAEjBC,EAAUzvB,EAAQ0vB,YAAc,CACnCmE,OAAQ,EACRC,OAAQ,EACRC,iBAAkB,EAClBpB,QAAS,EACTC,KAAM,GAGH9E,EAAkB9tB,EAAQ8tB,gBAAkB,SAAUM,EAAKnxB,EAAUmzB,EAAM4D,GAC9E,IAAIzf,EAAOlZ,KAiBX,GAhBAm0B,EAAOyE,SAASpvB,KAAK0P,GAErBA,EAAK8b,MAAQD,EACb7b,EAAKoZ,QAAU,CAAC,EAChBpZ,EAAK2f,WAAa,GAClB3f,EAAK4f,SAAW,CAAC,EACjB5f,EAAK6f,YAAc,GAGnB7f,EAAKsZ,GAAG,MAAO,WAEdnP,EAAQ2T,SAAS,WAChB9d,EAAKod,KAAK,QACX,EACD,GAEa,UAATvB,EAAkB,CAYrB,GAXA7b,EAAKyd,eAAiB/0B,EAEtBsX,EAAKhE,IAAMtT,EAASsT,IACpBgE,EAAK8f,WAAap3B,EAASg2B,OAC3B1e,EAAK+f,cAAgBr3B,EAASs3B,WAE9Bt3B,EAAS0wB,QAAQjX,QAAQ,SAAUoa,EAAQrgB,GAC1C8D,EAAKoZ,QAAQld,EAAIkH,eAAiBmZ,EAClCvc,EAAK2f,WAAWr0B,KAAK4Q,EAAKqgB,EAC3B,GAEIxB,EAAWR,eAAgB,CAC9B,IAAInoB,EAAW,IAAIooB,eAAe,CACjCyF,MAAO,SAAUpB,GAEhB,OADAY,GAAY,GACL,IAAItnB,QAAQ,SAAU6R,EAASkW,GACjClgB,EAAKyc,WACRyD,IACSlgB,EAAK1U,KAAKqwB,EAAOrV,KAAKuY,IAC/B7U,IAEAhK,EAAKmgB,aAAenW,CAEtB,EACD,EACAoW,MAAO,WACNX,GAAY,GACPzf,EAAKyc,YACTzc,EAAK1U,KAAK,KACZ,EACA+xB,MAAO,SAAU5b,GAChBge,GAAY,GACPzf,EAAKyc,YACTzc,EAAKod,KAAK,QAAS3b,EACrB,IAGD,IAMC,YALA/Y,EAAS8B,KAAK61B,OAAOjuB,GAAUkuB,MAAM,SAAU7e,GAC9Cge,GAAY,GACPzf,EAAKyc,YACTzc,EAAKod,KAAK,QAAS3b,EACrB,EAED,CAAE,MAAOhP,GAAI,CACd,CAEA,IAAI8tB,EAAS73B,EAAS8B,KAAKg2B,aAC3B,SAASC,IACRF,EAAOE,OAAOjD,KAAK,SAAUx0B,GACxBgX,EAAKyc,aAETgD,EAAYz2B,EAAO+1B,MACf/1B,EAAO+1B,KACV/e,EAAK1U,KAAK,OAGX0U,EAAK1U,KAAKqwB,EAAOrV,KAAKtd,EAAOhB,QAC7By4B,KACD,GAAGH,MAAM,SAAU7e,GAClBge,GAAY,GACPzf,EAAKyc,YACTzc,EAAKod,KAAK,QAAS3b,EACrB,EACD,CACAgf,EACD,MA2BC,GA1BAzgB,EAAK6d,KAAOhE,EACZ7Z,EAAK0gB,KAAO,EAEZ1gB,EAAKhE,IAAM6d,EAAI8G,YACf3gB,EAAK8f,WAAajG,EAAI6E,OACtB1e,EAAK+f,cAAgBlG,EAAImG,WACXnG,EAAI+G,wBAAwBxzB,MAAM,SACxC+U,QAAQ,SAAUoa,GACzB,IAAIsE,EAAUtE,EAAO1xB,MAAM,oBAC3B,GAAIg2B,EAAS,CACZ,IAAI3kB,EAAM2kB,EAAQ,GAAGzd,cACT,eAARlH,QACuBhY,IAAtB8b,EAAKoZ,QAAQld,KAChB8D,EAAKoZ,QAAQld,GAAO,IAErB8D,EAAKoZ,QAAQld,GAAK5Q,KAAKu1B,EAAQ,UACC38B,IAAtB8b,EAAKoZ,QAAQld,GACvB8D,EAAKoZ,QAAQld,IAAQ,KAAO2kB,EAAQ,GAEpC7gB,EAAKoZ,QAAQld,GAAO2kB,EAAQ,GAE7B7gB,EAAK2f,WAAWr0B,KAAKu1B,EAAQ,GAAIA,EAAQ,GAC1C,CACD,GAEA7gB,EAAK8gB,SAAW,kBACX/F,EAAWD,iBAAkB,CACjC,IAAIiG,EAAW/gB,EAAK2f,WAAW,aAC/B,GAAIoB,EAAU,CACb,IAAIC,EAAeD,EAASl2B,MAAM,2BAC9Bm2B,IACHhhB,EAAK8gB,SAAWE,EAAa,GAAG5d,cAElC,CACKpD,EAAK8gB,WACT9gB,EAAK8gB,SAAW,QAClB,CAEF,EAEA9F,EAASzB,EAAiB0B,EAAOyE,UAEjCnG,EAAgBxxB,UAAUk5B,MAAQ,WACjC,IAEIjX,EAFOljB,KAEQq5B,aACfnW,IAHOljB,KAILq5B,aAAe,KACpBnW,IAEF,EAEAuP,EAAgBxxB,UAAUu2B,eAAiB,SAAUmB,GACpD,IAAIzf,EAAOlZ,KAEP+yB,EAAM7Z,EAAK6d,KAEXn1B,EAAW,KACf,OAAQsX,EAAK8b,OACZ,IAAK,OAEJ,IADApzB,EAAWmxB,EAAIqH,cACFz2B,OAASuV,EAAK0gB,KAAM,CAChC,IAAIS,EAAUz4B,EAASwE,OAAO8S,EAAK0gB,MACnC,GAAsB,mBAAlB1gB,EAAK8gB,SAA+B,CAEvC,IADA,IAAIt0B,EAASmvB,EAAOyF,MAAMD,EAAQ12B,QACzBY,EAAI,EAAGA,EAAI81B,EAAQ12B,OAAQY,IACnCmB,EAAOnB,GAA6B,IAAxB81B,EAAQv0B,WAAWvB,GAEhC2U,EAAK1U,KAAKkB,EACX,MACCwT,EAAK1U,KAAK61B,EAASnhB,EAAK8gB,UAEzB9gB,EAAK0gB,KAAOh4B,EAAS+B,MACtB,CACA,MACD,IAAK,cACJ,GAAIovB,EAAIsE,aAAejD,EAAQmD,OAASxE,EAAInxB,SAC3C,MACDA,EAAWmxB,EAAInxB,SACfsX,EAAK1U,KAAKqwB,EAAOrV,KAAK,IAAIjQ,WAAW3N,KACrC,MACD,IAAK,0BAEJ,GADAA,EAAWmxB,EAAInxB,SACXmxB,EAAIsE,aAAejD,EAAQkD,UAAY11B,EAC1C,MACDsX,EAAK1U,KAAKqwB,EAAOrV,KAAK,IAAIjQ,WAAW3N,KACrC,MACD,IAAK,YAEJ,GADAA,EAAWmxB,EAAInxB,SACXmxB,EAAIsE,aAAejD,EAAQkD,QAC9B,MACD,IAAImC,EAAS,IAAI,WAAOc,eACxBd,EAAOhC,WAAa,WACfgC,EAAOv3B,OAAOs4B,WAAathB,EAAK0gB,OACnC1gB,EAAK1U,KAAKqwB,EAAOrV,KAAK,IAAIjQ,WAAWkqB,EAAOv3B,OAAOuB,MAAMyV,EAAK0gB,SAC9D1gB,EAAK0gB,KAAOH,EAAOv3B,OAAOs4B,WAE5B,EACAf,EAAOgB,OAAS,WACf9B,GAAY,GACZzf,EAAK1U,KAAK,KACX,EAEAi1B,EAAOiB,kBAAkB94B,GAKvBsX,EAAK6d,KAAKM,aAAejD,EAAQmD,MAAuB,cAAfre,EAAK8b,QACjD2D,GAAY,GACZzf,EAAK1U,KAAK,MAEZ,C,wBC9MA,IAAIm2B,EAAQ,CAAC,EAEb,SAASC,EAAgBzxB,EAAMpE,EAAS81B,GACjCA,IACHA,EAAO71B,OAWT,IAAI81B,EAEJ,SAAUC,GAnBZ,IAAwB1hB,EAAUC,EAsB9B,SAASwhB,EAAUE,EAAMC,EAAMC,GAC7B,OAAOH,EAAMvxB,KAAKxJ,KAdtB,SAAoBg7B,EAAMC,EAAMC,GAC9B,MAAuB,iBAAZn2B,EACFA,EAEAA,EAAQi2B,EAAMC,EAAMC,EAE/B,CAQ4BC,CAAWH,EAAMC,EAAMC,KAAUl7B,IAC3D,CAEA,OA1B8BsZ,EAoBJyhB,GApBN1hB,EAoBLyhB,GApBsC75B,UAAYF,OAAOqX,OAAOkB,EAAWrY,WAAYoY,EAASpY,UAAU0W,YAAc0B,EAAUA,EAAS3N,UAAY4N,EA0B/JwhB,CACT,CARA,CAQED,GAEFC,EAAU75B,UAAUgE,KAAO41B,EAAK51B,KAChC61B,EAAU75B,UAAUkI,KAAOA,EAC3BwxB,EAAMxxB,GAAQ2xB,CAChB,CAGA,SAASM,EAAMC,EAAUC,GACvB,GAAItyB,MAAMgR,QAAQqhB,GAAW,CAC3B,IAAInyB,EAAMmyB,EAAS13B,OAKnB,OAJA03B,EAAWA,EAAS/7B,IAAI,SAAUiF,GAChC,OAAOgB,OAAOhB,EAChB,GAEI2E,EAAM,EACD,UAAUoJ,OAAOgpB,EAAO,KAAKhpB,OAAO+oB,EAAS53B,MAAM,EAAGyF,EAAM,GAAGzH,KAAK,MAAO,SAAW45B,EAASnyB,EAAM,GAC3F,IAARA,EACF,UAAUoJ,OAAOgpB,EAAO,KAAKhpB,OAAO+oB,EAAS,GAAI,QAAQ/oB,OAAO+oB,EAAS,IAEzE,MAAM/oB,OAAOgpB,EAAO,KAAKhpB,OAAO+oB,EAAS,GAEpD,CACE,MAAO,MAAM/oB,OAAOgpB,EAAO,KAAKhpB,OAAO/M,OAAO81B,GAElD,CA6BAT,EAAgB,wBAAyB,SAAU31B,EAAM/D,GACvD,MAAO,cAAgBA,EAAQ,4BAA8B+D,EAAO,GACtE,EAAGkH,WACHyuB,EAAgB,uBAAwB,SAAU31B,EAAMo2B,EAAUE,GAEhE,IAAIC,EA/BmBrJ,EAwCnBsJ,EA1BYx4B,EAAaK,EA4B7B,GATwB,iBAAb+3B,IAjCYlJ,EAiCkC,OAAVkJ,EAhCpCj1B,OAAyB,EAAU+rB,KAAmBA,IAiC/DqJ,EAAa,cACbH,EAAWA,EAASr1B,QAAQ,QAAS,KAErCw1B,EAAa,UAhCjB,SAAkBv4B,EAAKkvB,EAAQuJ,GAK7B,YAJiBt+B,IAAbs+B,GAA0BA,EAAWz4B,EAAIU,UAC3C+3B,EAAWz4B,EAAIU,QAGVV,EAAI04B,UAAUD,EAAWvJ,EAAeuJ,KAAcvJ,CAC/D,CA+BMyJ,CAAS32B,EAAM,aAEjBw2B,EAAM,OAAOnpB,OAAOrN,EAAM,KAAKqN,OAAOkpB,EAAY,KAAKlpB,OAAO8oB,EAAMC,EAAU,aACzE,CACL,IAAIl7B,GA/Be,iBAAVmD,IACTA,EAAQ,GAGNA,EAAQ6uB,GALIlvB,EAgCMgC,GA3BUtB,SAGS,IAAhCV,EAAIoB,QAwBe,IAxBCf,GAwBmB,WAAb,YACjCm4B,EAAM,QAASnpB,OAAOrN,EAAM,MAAOqN,OAAOnS,EAAM,KAAKmS,OAAOkpB,EAAY,KAAKlpB,OAAO8oB,EAAMC,EAAU,QACtG,CAGA,OADAI,EAAO,mBAAmBnpB,cAAcipB,EAE1C,EAAGpvB,WACHyuB,EAAgB,4BAA6B,2BAC7CA,EAAgB,6BAA8B,SAAU31B,GACtD,MAAO,OAASA,EAAO,4BACzB,GACA21B,EAAgB,6BAA8B,mBAC9CA,EAAgB,uBAAwB,SAAU31B,GAChD,MAAO,eAAiBA,EAAO,+BACjC,GACA21B,EAAgB,wBAAyB,kCACzCA,EAAgB,yBAA0B,6BAC1CA,EAAgB,6BAA8B,mBAC9CA,EAAgB,yBAA0B,sCAAuCzuB,WACjFyuB,EAAgB,uBAAwB,SAAUiB,GAChD,MAAO,qBAAuBA,CAChC,EAAG1vB,WACHyuB,EAAgB,qCAAsC,oCACtDl2B,EAAOC,QAAQ,EAAQg2B,C,2CCjGnBmB,EAAa/6B,OAAO2T,MAAQ,SAAU7J,GACxC,IAAI6J,EAAO,GACX,IAAK,IAAIU,KAAOvK,EAAK6J,EAAKlQ,KAAK4Q,GAC/B,OAAOV,CACT,EAGAhQ,EAAOC,QAAUo3B,EACjB,IAAInD,EAAW,EAAQ,OACnBrE,EAAW,EAAQ,MACvB,EAAQ,MAAR,CAAoBwH,EAAQnD,GAI1B,IADA,IAAIlkB,EAAOonB,EAAWvH,EAAStzB,WACtB8Y,EAAI,EAAGA,EAAIrF,EAAK/Q,OAAQoW,IAAK,CACpC,IAAIjY,EAAS4S,EAAKqF,GACbgiB,EAAO96B,UAAUa,KAASi6B,EAAO96B,UAAUa,GAAUyyB,EAAStzB,UAAUa,GAC/E,CAEF,SAASi6B,EAAOx6B,GACd,KAAMvB,gBAAgB+7B,GAAS,OAAO,IAAIA,EAAOx6B,GACjDq3B,EAASpvB,KAAKxJ,KAAMuB,GACpBgzB,EAAS/qB,KAAKxJ,KAAMuB,GACpBvB,KAAKg8B,eAAgB,EACjBz6B,KACuB,IAArBA,EAAQ06B,WAAoBj8B,KAAKi8B,UAAW,IACvB,IAArB16B,EAAQ+J,WAAoBtL,KAAKsL,UAAW,IAClB,IAA1B/J,EAAQy6B,gBACVh8B,KAAKg8B,eAAgB,EACrBh8B,KAAKo4B,KAAK,MAAO8D,IAGvB,CA8BA,SAASA,IAEHl8B,KAAKm8B,eAAeC,OAIxB/Y,EAAQ2T,SAASqF,EAASr8B,KAC5B,CACA,SAASq8B,EAAQnjB,GACfA,EAAK3V,KACP,CAvCAxC,OAAOC,eAAe+6B,EAAO96B,UAAW,wBAAyB,CAI/DoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKm8B,eAAeG,aAC7B,IAEFv7B,OAAOC,eAAe+6B,EAAO96B,UAAW,iBAAkB,CAIxDoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKm8B,gBAAkBn8B,KAAKm8B,eAAeI,WACpD,IAEFx7B,OAAOC,eAAe+6B,EAAO96B,UAAW,iBAAkB,CAIxDoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKm8B,eAAex4B,MAC7B,IAeF5C,OAAOC,eAAe+6B,EAAO96B,UAAW,YAAa,CAInDoK,YAAY,EACZlK,IAAK,WACH,YAA4B/D,IAAxB4C,KAAKw8B,qBAAwDp/B,IAAxB4C,KAAKm8B,gBAGvCn8B,KAAKw8B,eAAeC,WAAaz8B,KAAKm8B,eAAeM,SAC9D,EACAzkB,IAAK,SAAa9W,QAGY9D,IAAxB4C,KAAKw8B,qBAAwDp/B,IAAxB4C,KAAKm8B,iBAM9Cn8B,KAAKw8B,eAAeC,UAAYv7B,EAChClB,KAAKm8B,eAAeM,UAAYv7B,EAClC,G,4BCjGFwD,EAAOC,QAAU+3B,EACjB,IAAIC,EAAY,EAAQ,OAExB,SAASD,EAAYn7B,GACnB,KAAMvB,gBAAgB08B,GAAc,OAAO,IAAIA,EAAYn7B,GAC3Do7B,EAAUnzB,KAAKxJ,KAAMuB,EACvB,CAJA,EAAQ,MAAR,CAAoBm7B,EAAaC,GAKjCD,EAAYz7B,UAAU27B,WAAa,SAAU7E,EAAOC,EAAUtiB,GAC5DA,EAAG,KAAMqiB,EACX,C,gCCVIgE,E,WAHJr3B,EAAOC,QAAUi0B,EAMjBA,EAASiE,cAAgBA,EAGhB,sBAAT,IAqBI19B,EApBA29B,EAAkB,SAAyBC,EAAS58B,GACtD,OAAO48B,EAAQC,UAAU78B,GAAMwD,MACjC,EAIIs5B,EAAS,EAAQ,OAGjBpI,EAAS,eACTqI,GAAmC,oBAAX,WAAyB,WAA2B,oBAAX7/B,OAAyBA,OAAyB,oBAAT6b,KAAuBA,KAAO,CAAC,GAAG3J,YAAc,WAAa,EASvK4tB,EAAY,EAAQ,OAGtBh+B,EADEg+B,GAAaA,EAAUC,SACjBD,EAAUC,SAAS,UAEnB,WAAkB,EAI5B,IAWIC,EACAC,EACA9d,EAbA+d,EAAa,EAAQ,OACrBC,EAAc,EAAQ,OAExBC,EADa,EAAQ,OACOA,iBAC1BC,EAAiB,WACnBC,EAAuBD,EAAeC,qBACtCC,EAA4BF,EAAeE,0BAC3CC,EAA6BH,EAAeG,2BAC5CC,EAAqCJ,EAAeI,mCAMtD,EAAQ,MAAR,CAAoBlF,EAAUqE,GAC9B,IAAIc,EAAiBP,EAAYO,eAC7BC,EAAe,CAAC,QAAS,QAAS,UAAW,QAAS,UAY1D,SAASnB,EAAct7B,EAAS4yB,EAAQ8J,GACtClC,EAASA,GAAU,EAAQ,OAC3Bx6B,EAAUA,GAAW,CAAC,EAOE,kBAAb08B,IAAwBA,EAAW9J,aAAkB4H,GAIhE/7B,KAAKk+B,aAAe38B,EAAQ28B,WACxBD,IAAUj+B,KAAKk+B,WAAal+B,KAAKk+B,cAAgB38B,EAAQ48B,oBAI7Dn+B,KAAKs8B,cAAgBmB,EAAiBz9B,KAAMuB,EAAS,wBAAyB08B,GAK9Ej+B,KAAK0F,OAAS,IAAI63B,EAClBv9B,KAAK2D,OAAS,EACd3D,KAAKo+B,MAAQ,KACbp+B,KAAKq+B,WAAa,EAClBr+B,KAAKs+B,QAAU,KACft+B,KAAKo8B,OAAQ,EACbp8B,KAAKu+B,YAAa,EAClBv+B,KAAKw+B,SAAU,EAMfx+B,KAAKy+B,MAAO,EAIZz+B,KAAK0+B,cAAe,EACpB1+B,KAAK2+B,iBAAkB,EACvB3+B,KAAK4+B,mBAAoB,EACzB5+B,KAAK6+B,iBAAkB,EACvB7+B,KAAK8+B,QAAS,EAGd9+B,KAAK++B,WAAkC,IAAtBx9B,EAAQw9B,UAGzB/+B,KAAKg/B,cAAgBz9B,EAAQy9B,YAG7Bh/B,KAAKy8B,WAAY,EAKjBz8B,KAAKi/B,gBAAkB19B,EAAQ09B,iBAAmB,OAGlDj/B,KAAKk/B,WAAa,EAGlBl/B,KAAKm/B,aAAc,EACnBn/B,KAAKyoB,QAAU,KACfzoB,KAAKg4B,SAAW,KACZz2B,EAAQy2B,WACLqF,IAAeA,EAAgB,YACpCr9B,KAAKyoB,QAAU,IAAI4U,EAAc97B,EAAQy2B,UACzCh4B,KAAKg4B,SAAWz2B,EAAQy2B,SAE5B,CACA,SAASY,EAASr3B,GAEhB,GADAw6B,EAASA,GAAU,EAAQ,SACrB/7B,gBAAgB44B,GAAW,OAAO,IAAIA,EAASr3B,GAIrD,IAAI08B,EAAWj+B,gBAAgB+7B,EAC/B/7B,KAAKw8B,eAAiB,IAAIK,EAAct7B,EAASvB,KAAMi+B,GAGvDj+B,KAAKi8B,UAAW,EACZ16B,IAC0B,mBAAjBA,EAAQo4B,OAAqB35B,KAAKm6B,MAAQ54B,EAAQo4B,MAC9B,mBAApBp4B,EAAQ42B,UAAwBn4B,KAAKo/B,SAAW79B,EAAQ42B,UAErE8E,EAAOzzB,KAAKxJ,KACd,CAwDA,SAASq/B,EAAiBlL,EAAQ4D,EAAOC,EAAUsH,EAAYC,GAC7DpgC,EAAM,mBAAoB44B,GAC1B,IAKMyH,EALFC,EAAQtL,EAAOqI,eACnB,GAAc,OAAVzE,EACF0H,EAAMjB,SAAU,EAuNpB,SAAoBrK,EAAQsL,GAE1B,GADAtgC,EAAM,eACFsgC,EAAMrD,MAAV,CACA,GAAIqD,EAAMhX,QAAS,CACjB,IAAIsP,EAAQ0H,EAAMhX,QAAQllB,MACtBw0B,GAASA,EAAMp0B,SACjB87B,EAAM/5B,OAAOlB,KAAKuzB,GAClB0H,EAAM97B,QAAU87B,EAAMvB,WAAa,EAAInG,EAAMp0B,OAEjD,CACA87B,EAAMrD,OAAQ,EACVqD,EAAMhB,KAIRiB,EAAavL,IAGbsL,EAAMf,cAAe,EAChBe,EAAMd,kBACTc,EAAMd,iBAAkB,EACxBgB,EAAcxL,IAnBK,CAsBzB,CA9OIyL,CAAWzL,EAAQsL,QAInB,GADKF,IAAgBC,EA6CzB,SAAsBC,EAAO1H,GAC3B,IAAIyH,EAjPiB30B,EAqPrB,OArPqBA,EAkPFktB,EAjPZlD,EAAO3H,SAASriB,IAAQA,aAAeqyB,GAiPA,iBAAVnF,QAAgC36B,IAAV26B,GAAwB0H,EAAMvB,aACtFsB,EAAK,IAAI7B,EAAqB,QAAS,CAAC,SAAU,SAAU,cAAe5F,IAEtEyH,CACT,CAnD8BK,CAAaJ,EAAO1H,IAC1CyH,EACFzB,EAAe5J,EAAQqL,QAClB,GAAIC,EAAMvB,YAAcnG,GAASA,EAAMp0B,OAAS,EAIrD,GAHqB,iBAAVo0B,GAAuB0H,EAAMvB,YAAcn9B,OAAO+K,eAAeisB,KAAWlD,EAAO5zB,YAC5F82B,EA3MR,SAA6BA,GAC3B,OAAOlD,EAAOrV,KAAKuY,EACrB,CAyMgB+H,CAAoB/H,IAE1BuH,EACEG,EAAMlB,WAAYR,EAAe5J,EAAQ,IAAI2J,GAA2CiC,EAAS5L,EAAQsL,EAAO1H,GAAO,QACtH,GAAI0H,EAAMrD,MACf2B,EAAe5J,EAAQ,IAAIyJ,OACtB,IAAI6B,EAAMhD,UACf,OAAO,EAEPgD,EAAMjB,SAAU,EACZiB,EAAMhX,UAAYuP,GACpBD,EAAQ0H,EAAMhX,QAAQ0Q,MAAMpB,GACxB0H,EAAMvB,YAA+B,IAAjBnG,EAAMp0B,OAAco8B,EAAS5L,EAAQsL,EAAO1H,GAAO,GAAYiI,EAAc7L,EAAQsL,IAE7GM,EAAS5L,EAAQsL,EAAO1H,GAAO,EAEnC,MACUuH,IACVG,EAAMjB,SAAU,EAChBwB,EAAc7L,EAAQsL,IAO1B,OAAQA,EAAMrD,QAAUqD,EAAM97B,OAAS87B,EAAMnD,eAAkC,IAAjBmD,EAAM97B,OACtE,CACA,SAASo8B,EAAS5L,EAAQsL,EAAO1H,EAAOuH,GAClCG,EAAMnB,SAA4B,IAAjBmB,EAAM97B,SAAiB87B,EAAMhB,MAChDgB,EAAMP,WAAa,EACnB/K,EAAOmC,KAAK,OAAQyB,KAGpB0H,EAAM97B,QAAU87B,EAAMvB,WAAa,EAAInG,EAAMp0B,OACzC27B,EAAYG,EAAM/5B,OAAOu6B,QAAQlI,GAAY0H,EAAM/5B,OAAOlB,KAAKuzB,GAC/D0H,EAAMf,cAAcgB,EAAavL,IAEvC6L,EAAc7L,EAAQsL,EACxB,CA3GA1+B,OAAOC,eAAe43B,EAAS33B,UAAW,YAAa,CAIrDoK,YAAY,EACZlK,IAAK,WACH,YAA4B/D,IAAxB4C,KAAKw8B,gBAGFx8B,KAAKw8B,eAAeC,SAC7B,EACAzkB,IAAK,SAAa9W,GAGXlB,KAAKw8B,iBAMVx8B,KAAKw8B,eAAeC,UAAYv7B,EAClC,IAEF03B,EAAS33B,UAAUk3B,QAAUqF,EAAYrF,QACzCS,EAAS33B,UAAUi/B,WAAa1C,EAAY2C,UAC5CvH,EAAS33B,UAAUm+B,SAAW,SAAUzkB,EAAKjF,GAC3CA,EAAGiF,EACL,EAMAie,EAAS33B,UAAUuD,KAAO,SAAUuzB,EAAOC,GACzC,IACIuH,EADAE,EAAQz/B,KAAKw8B,eAcjB,OAZKiD,EAAMvB,WAUTqB,GAAiB,EATI,iBAAVxH,KACTC,EAAWA,GAAYyH,EAAMR,mBACZQ,EAAMzH,WACrBD,EAAQlD,EAAOrV,KAAKuY,EAAOC,GAC3BA,EAAW,IAEbuH,GAAiB,GAKdF,EAAiBr/B,KAAM+3B,EAAOC,GAAU,EAAOuH,EACxD,EAGA3G,EAAS33B,UAAUg/B,QAAU,SAAUlI,GACrC,OAAOsH,EAAiBr/B,KAAM+3B,EAAO,MAAM,GAAM,EACnD,EA6DAa,EAAS33B,UAAUm/B,SAAW,WAC5B,OAAuC,IAAhCpgC,KAAKw8B,eAAe8B,OAC7B,EAGA1F,EAAS33B,UAAUo/B,YAAc,SAAUC,GACpCjD,IAAeA,EAAgB,YACpC,IAAI5U,EAAU,IAAI4U,EAAciD,GAChCtgC,KAAKw8B,eAAe/T,QAAUA,EAE9BzoB,KAAKw8B,eAAexE,SAAWh4B,KAAKw8B,eAAe/T,QAAQuP,SAK3D,IAFA,IAAI5wB,EAAIpH,KAAKw8B,eAAe92B,OAAO66B,KAC/BC,EAAU,GACD,OAANp5B,GACLo5B,GAAW/X,EAAQ0Q,MAAM/xB,EAAErI,MAC3BqI,EAAIA,EAAEgpB,KAKR,OAHApwB,KAAKw8B,eAAe92B,OAAO+6B,QACX,KAAZD,GAAgBxgC,KAAKw8B,eAAe92B,OAAOlB,KAAKg8B,GACpDxgC,KAAKw8B,eAAe74B,OAAS68B,EAAQ78B,OAC9B3D,IACT,EAGA,IAAI0gC,EAAU,WAqBd,SAASC,EAAc14B,EAAGw3B,GACxB,OAAIx3B,GAAK,GAAsB,IAAjBw3B,EAAM97B,QAAgB87B,EAAMrD,MAAc,EACpDqD,EAAMvB,WAAmB,EACzBj2B,GAAMA,EAEJw3B,EAAMnB,SAAWmB,EAAM97B,OAAe87B,EAAM/5B,OAAO66B,KAAKxhC,KAAK4E,OAAmB87B,EAAM97B,QAGxFsE,EAAIw3B,EAAMnD,gBAAemD,EAAMnD,cA5BrC,SAAiCr0B,GAe/B,OAdIA,GAAKy4B,EAEPz4B,EAAIy4B,GAIJz4B,IACAA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,GACXA,KAEKA,CACT,CAYqD24B,CAAwB34B,IACvEA,GAAKw3B,EAAM97B,OAAesE,EAEzBw3B,EAAMrD,MAIJqD,EAAM97B,QAHX87B,EAAMf,cAAe,EACd,GAGX,CA6HA,SAASgB,EAAavL,GACpB,IAAIsL,EAAQtL,EAAOqI,eACnBr9B,EAAM,eAAgBsgC,EAAMf,aAAce,EAAMd,iBAChDc,EAAMf,cAAe,EAChBe,EAAMd,kBACTx/B,EAAM,eAAgBsgC,EAAMnB,SAC5BmB,EAAMd,iBAAkB,EACxBtb,EAAQ2T,SAAS2I,EAAexL,GAEpC,CACA,SAASwL,EAAcxL,GACrB,IAAIsL,EAAQtL,EAAOqI,eACnBr9B,EAAM,gBAAiBsgC,EAAMhD,UAAWgD,EAAM97B,OAAQ87B,EAAMrD,OACvDqD,EAAMhD,YAAcgD,EAAM97B,SAAU87B,EAAMrD,QAC7CjI,EAAOmC,KAAK,YACZmJ,EAAMd,iBAAkB,GAS1Bc,EAAMf,cAAgBe,EAAMnB,UAAYmB,EAAMrD,OAASqD,EAAM97B,QAAU87B,EAAMnD,cAC7EuE,EAAK1M,EACP,CAQA,SAAS6L,EAAc7L,EAAQsL,GACxBA,EAAMN,cACTM,EAAMN,aAAc,EACpB9b,EAAQ2T,SAAS8J,EAAgB3M,EAAQsL,GAE7C,CACA,SAASqB,EAAe3M,EAAQsL,GAwB9B,MAAQA,EAAMjB,UAAYiB,EAAMrD,QAAUqD,EAAM97B,OAAS87B,EAAMnD,eAAiBmD,EAAMnB,SAA4B,IAAjBmB,EAAM97B,SAAe,CACpH,IAAIuF,EAAMu2B,EAAM97B,OAGhB,GAFAxE,EAAM,wBACNg1B,EAAOwF,KAAK,GACRzwB,IAAQu2B,EAAM97B,OAEhB,KACJ,CACA87B,EAAMN,aAAc,CACtB,CAgPA,SAAS4B,EAAwB7nB,GAC/B,IAAIumB,EAAQvmB,EAAKsjB,eACjBiD,EAAMb,kBAAoB1lB,EAAK8nB,cAAc,YAAc,EACvDvB,EAAMZ,kBAAoBY,EAAMX,OAGlCW,EAAMnB,SAAU,EAGPplB,EAAK8nB,cAAc,QAAU,GACtC9nB,EAAK+nB,QAET,CACA,SAASC,EAAiBhoB,GACxB/Z,EAAM,4BACN+Z,EAAKygB,KAAK,EACZ,CAuBA,SAASwH,EAAQhN,EAAQsL,GACvBtgC,EAAM,SAAUsgC,EAAMjB,SACjBiB,EAAMjB,SACTrK,EAAOwF,KAAK,GAEd8F,EAAMZ,iBAAkB,EACxB1K,EAAOmC,KAAK,UACZuK,EAAK1M,GACDsL,EAAMnB,UAAYmB,EAAMjB,SAASrK,EAAOwF,KAAK,EACnD,CAWA,SAASkH,EAAK1M,GACZ,IAAIsL,EAAQtL,EAAOqI,eAEnB,IADAr9B,EAAM,OAAQsgC,EAAMnB,SACbmB,EAAMnB,SAA6B,OAAlBnK,EAAOwF,SACjC,CAmHA,SAASyH,EAASn5B,EAAGw3B,GAEnB,OAAqB,IAAjBA,EAAM97B,OAAqB,MAE3B87B,EAAMvB,WAAYmD,EAAM5B,EAAM/5B,OAAO4B,SAAkBW,GAAKA,GAAKw3B,EAAM97B,QAEtD09B,EAAf5B,EAAMhX,QAAegX,EAAM/5B,OAAOjE,KAAK,IAAqC,IAAxBg+B,EAAM/5B,OAAO/B,OAAoB87B,EAAM/5B,OAAOwN,QAAmBusB,EAAM/5B,OAAO4M,OAAOmtB,EAAM97B,QACnJ87B,EAAM/5B,OAAO+6B,SAGbY,EAAM5B,EAAM/5B,OAAO47B,QAAQr5B,EAAGw3B,EAAMhX,SAE/B4Y,GATP,IAAIA,CAUN,CACA,SAASE,EAAYpN,GACnB,IAAIsL,EAAQtL,EAAOqI,eACnBr9B,EAAM,cAAesgC,EAAMlB,YACtBkB,EAAMlB,aACTkB,EAAMrD,OAAQ,EACd/Y,EAAQ2T,SAASwK,EAAe/B,EAAOtL,GAE3C,CACA,SAASqN,EAAc/B,EAAOtL,GAI5B,GAHAh1B,EAAM,gBAAiBsgC,EAAMlB,WAAYkB,EAAM97B,SAG1C87B,EAAMlB,YAA+B,IAAjBkB,EAAM97B,SAC7B87B,EAAMlB,YAAa,EACnBpK,EAAO8H,UAAW,EAClB9H,EAAOmC,KAAK,OACRmJ,EAAMT,aAAa,CAGrB,IAAIyC,EAAStN,EAAOgI,iBACfsF,GAAUA,EAAOzC,aAAeyC,EAAOC,WAC1CvN,EAAOgE,SAEX,CAEJ,CASA,SAAS9zB,EAAQic,EAAI/X,GACnB,IAAK,IAAIhE,EAAI,EAAGwd,EAAIzB,EAAG3c,OAAQY,EAAIwd,EAAGxd,IACpC,GAAI+b,EAAG/b,KAAOgE,EAAG,OAAOhE,EAE1B,OAAQ,CACV,CA1pBAq0B,EAAS33B,UAAU04B,KAAO,SAAU1xB,GAClC9I,EAAM,OAAQ8I,GACdA,EAAIhB,SAASgB,EAAG,IAChB,IAAIw3B,EAAQz/B,KAAKw8B,eACbmF,EAAQ15B,EAMZ,GALU,IAANA,IAASw3B,EAAMd,iBAAkB,GAK3B,IAAN12B,GAAWw3B,EAAMf,gBAA0C,IAAxBe,EAAMnD,cAAsBmD,EAAM97B,QAAU87B,EAAMnD,cAAgBmD,EAAM97B,OAAS,IAAM87B,EAAMrD,OAGlI,OAFAj9B,EAAM,qBAAsBsgC,EAAM97B,OAAQ87B,EAAMrD,OAC3B,IAAjBqD,EAAM97B,QAAgB87B,EAAMrD,MAAOmF,EAAYvhC,MAAW0/B,EAAa1/B,MACpE,KAKT,GAAU,KAHViI,EAAI04B,EAAc14B,EAAGw3B,KAGNA,EAAMrD,MAEnB,OADqB,IAAjBqD,EAAM97B,QAAc49B,EAAYvhC,MAC7B,KA0BT,IA2BIqhC,EA3BAO,EAASnC,EAAMf,aA6CnB,OA5CAv/B,EAAM,gBAAiByiC,IAGF,IAAjBnC,EAAM97B,QAAgB87B,EAAM97B,OAASsE,EAAIw3B,EAAMnD,gBAEjDn9B,EAAM,6BADNyiC,GAAS,GAMPnC,EAAMrD,OAASqD,EAAMjB,QAEvBr/B,EAAM,mBADNyiC,GAAS,GAEAA,IACTziC,EAAM,WACNsgC,EAAMjB,SAAU,EAChBiB,EAAMhB,MAAO,EAEQ,IAAjBgB,EAAM97B,SAAc87B,EAAMf,cAAe,GAE7C1+B,KAAKm6B,MAAMsF,EAAMnD,eACjBmD,EAAMhB,MAAO,EAGRgB,EAAMjB,UAASv2B,EAAI04B,EAAcgB,EAAOlC,KAInC,QADD4B,EAAPp5B,EAAI,EAASm5B,EAASn5B,EAAGw3B,GAAkB,OAE7CA,EAAMf,aAAee,EAAM97B,QAAU87B,EAAMnD,cAC3Cr0B,EAAI,IAEJw3B,EAAM97B,QAAUsE,EAChBw3B,EAAMP,WAAa,GAEA,IAAjBO,EAAM97B,SAGH87B,EAAMrD,QAAOqD,EAAMf,cAAe,GAGnCiD,IAAU15B,GAAKw3B,EAAMrD,OAAOmF,EAAYvhC,OAElC,OAARqhC,GAAcrhC,KAAKs2B,KAAK,OAAQ+K,GAC7BA,CACT,EA6GAzI,EAAS33B,UAAUk5B,MAAQ,SAAUlyB,GACnC81B,EAAe/9B,KAAM,IAAI69B,EAA2B,WACtD,EACAjF,EAAS33B,UAAU4gC,KAAO,SAAUC,EAAMC,GACxC,IAAIC,EAAMhiC,KACNy/B,EAAQz/B,KAAKw8B,eACjB,OAAQiD,EAAMpB,YACZ,KAAK,EACHoB,EAAMrB,MAAQ0D,EACd,MACF,KAAK,EACHrC,EAAMrB,MAAQ,CAACqB,EAAMrB,MAAO0D,GAC5B,MACF,QACErC,EAAMrB,MAAM55B,KAAKs9B,GAGrBrC,EAAMpB,YAAc,EACpBl/B,EAAM,wBAAyBsgC,EAAMpB,WAAY0D,GACjD,IACIE,EADUF,IAA6B,IAAjBA,EAASx+B,KAAkBu+B,IAASze,EAAQ6e,QAAUJ,IAASze,EAAQ8e,OACrEC,EAARlG,EAYpB,SAASA,IACP/8B,EAAM,SACN2iC,EAAKv+B,KACP,CAdIk8B,EAAMlB,WAAYlb,EAAQ2T,SAASiL,GAAYD,EAAI5J,KAAK,MAAO6J,GACnEH,EAAKtP,GAAG,SACR,SAAS6P,EAASpG,EAAUqG,GAC1BnjC,EAAM,YACF88B,IAAa+F,GACXM,IAAwC,IAA1BA,EAAWC,aAC3BD,EAAWC,YAAa,EAkB5BpjC,EAAM,WAEN2iC,EAAKU,eAAe,QAASC,GAC7BX,EAAKU,eAAe,SAAUE,GAC9BZ,EAAKU,eAAe,QAASG,GAC7Bb,EAAKU,eAAe,QAAS9K,GAC7BoK,EAAKU,eAAe,SAAUH,GAC9BL,EAAIQ,eAAe,MAAOtG,GAC1B8F,EAAIQ,eAAe,MAAOJ,GAC1BJ,EAAIQ,eAAe,OAAQI,GAC3BC,GAAY,GAORpD,EAAMP,YAAgB4C,EAAK3F,iBAAkB2F,EAAK3F,eAAe2G,WAAYH,IA/BnF,GAUA,IAAIA,EAgFN,SAAqBX,GACnB,OAAO,WACL,IAAIvC,EAAQuC,EAAIxF,eAChBr9B,EAAM,cAAesgC,EAAMP,YACvBO,EAAMP,YAAYO,EAAMP,aACH,IAArBO,EAAMP,YAAoBpC,EAAgBkF,EAAK,UACjDvC,EAAMnB,SAAU,EAChBuC,EAAKmB,GAET,CACF,CA1FgBe,CAAYf,GAC1BF,EAAKtP,GAAG,QAASmQ,GACjB,IAAIE,GAAY,EAsBhB,SAASD,EAAO7K,GACd54B,EAAM,UACN,IAAIkiC,EAAMS,EAAK3I,MAAMpB,GACrB54B,EAAM,aAAckiC,IACR,IAARA,KAKwB,IAArB5B,EAAMpB,YAAoBoB,EAAMrB,QAAU0D,GAAQrC,EAAMpB,WAAa,IAAqC,IAAhCh6B,EAAQo7B,EAAMrB,MAAO0D,MAAkBe,IACpH1jC,EAAM,8BAA+BsgC,EAAMP,YAC3CO,EAAMP,cAER8C,EAAIgB,QAER,CAIA,SAAStL,EAAQ8H,GACfrgC,EAAM,UAAWqgC,GACjB4C,IACAN,EAAKU,eAAe,QAAS9K,GACU,IAAnCoF,EAAgBgF,EAAM,UAAgB/D,EAAe+D,EAAMtC,EACjE,CAMA,SAASiD,IACPX,EAAKU,eAAe,SAAUE,GAC9BN,GACF,CAEA,SAASM,IACPvjC,EAAM,YACN2iC,EAAKU,eAAe,QAASC,GAC7BL,GACF,CAEA,SAASA,IACPjjC,EAAM,UACN6iC,EAAII,OAAON,EACb,CAUA,OAvDAE,EAAIxP,GAAG,OAAQoQ,GAniBjB,SAAyB7F,EAASkG,EAAOhxB,GAGvC,GAAuC,mBAA5B8qB,EAAQmG,gBAAgC,OAAOnG,EAAQmG,gBAAgBD,EAAOhxB,GAMpF8qB,EAAQoG,SAAYpG,EAAQoG,QAAQF,GAAuCj6B,MAAMgR,QAAQ+iB,EAAQoG,QAAQF,IAASlG,EAAQoG,QAAQF,GAAOhD,QAAQhuB,GAAS8qB,EAAQoG,QAAQF,GAAS,CAAChxB,EAAI8qB,EAAQoG,QAAQF,IAA5JlG,EAAQvK,GAAGyQ,EAAOhxB,EACrE,CAqjBEixB,CAAgBpB,EAAM,QAASpK,GAO/BoK,EAAK1J,KAAK,QAASqK,GAMnBX,EAAK1J,KAAK,SAAUsK,GAOpBZ,EAAKxL,KAAK,OAAQ0L,GAGbvC,EAAMnB,UACTn/B,EAAM,eACN6iC,EAAIf,UAECa,CACT,EAYAlJ,EAAS33B,UAAUmhC,OAAS,SAAUN,GACpC,IAAIrC,EAAQz/B,KAAKw8B,eACb8F,EAAa,CACfC,YAAY,GAId,GAAyB,IAArB9C,EAAMpB,WAAkB,OAAOr+B,KAGnC,GAAyB,IAArBy/B,EAAMpB,WAER,OAAIyD,GAAQA,IAASrC,EAAMrB,QACtB0D,IAAMA,EAAOrC,EAAMrB,OAGxBqB,EAAMrB,MAAQ,KACdqB,EAAMpB,WAAa,EACnBoB,EAAMnB,SAAU,EACZwD,GAAMA,EAAKxL,KAAK,SAAUt2B,KAAMsiC,IAPKtiC,KAa3C,IAAK8hC,EAAM,CAET,IAAIsB,EAAQ3D,EAAMrB,MACdl1B,EAAMu2B,EAAMpB,WAChBoB,EAAMrB,MAAQ,KACdqB,EAAMpB,WAAa,EACnBoB,EAAMnB,SAAU,EAChB,IAAK,IAAI/5B,EAAI,EAAGA,EAAI2E,EAAK3E,IAAK6+B,EAAM7+B,GAAG+xB,KAAK,SAAUt2B,KAAM,CAC1DuiC,YAAY,IAEd,OAAOviC,IACT,CAGA,IAAIia,EAAQ5V,EAAQo7B,EAAMrB,MAAO0D,GACjC,OAAe,IAAX7nB,IACJwlB,EAAMrB,MAAM5rB,OAAOyH,EAAO,GAC1BwlB,EAAMpB,YAAc,EACK,IAArBoB,EAAMpB,aAAkBoB,EAAMrB,MAAQqB,EAAMrB,MAAM,IACtD0D,EAAKxL,KAAK,SAAUt2B,KAAMsiC,IAJDtiC,IAM3B,EAIA44B,EAAS33B,UAAUuxB,GAAK,SAAU6Q,EAAIpxB,GACpC,IAAI4Q,EAAMoa,EAAOh8B,UAAUuxB,GAAGhpB,KAAKxJ,KAAMqjC,EAAIpxB,GACzCwtB,EAAQz/B,KAAKw8B,eAqBjB,MApBW,SAAP6G,GAGF5D,EAAMb,kBAAoB5+B,KAAKghC,cAAc,YAAc,GAGrC,IAAlBvB,EAAMnB,SAAmBt+B,KAAKihC,UAClB,aAAPoC,IACJ5D,EAAMlB,YAAekB,EAAMb,oBAC9Ba,EAAMb,kBAAoBa,EAAMf,cAAe,EAC/Ce,EAAMnB,SAAU,EAChBmB,EAAMd,iBAAkB,EACxBx/B,EAAM,cAAesgC,EAAM97B,OAAQ87B,EAAMjB,SACrCiB,EAAM97B,OACR+7B,EAAa1/B,MACHy/B,EAAMjB,SAChBnb,EAAQ2T,SAASkK,EAAkBlhC,QAIlC6iB,CACT,EACA+V,EAAS33B,UAAUqiC,YAAc1K,EAAS33B,UAAUuxB,GACpDoG,EAAS33B,UAAUuhC,eAAiB,SAAUa,EAAIpxB,GAChD,IAAI4Q,EAAMoa,EAAOh8B,UAAUuhC,eAAeh5B,KAAKxJ,KAAMqjC,EAAIpxB,GAUzD,MATW,aAAPoxB,GAOFhgB,EAAQ2T,SAAS+J,EAAyB/gC,MAErC6iB,CACT,EACA+V,EAAS33B,UAAUsiC,mBAAqB,SAAUF,GAChD,IAAIxgB,EAAMoa,EAAOh8B,UAAUsiC,mBAAmBh8B,MAAMvH,KAAM0J,WAU1D,MATW,aAAP25B,QAA4BjmC,IAAPimC,GAOvBhgB,EAAQ2T,SAAS+J,EAAyB/gC,MAErC6iB,CACT,EAqBA+V,EAAS33B,UAAUggC,OAAS,WAC1B,IAAIxB,EAAQz/B,KAAKw8B,eAUjB,OATKiD,EAAMnB,UACTn/B,EAAM,UAINsgC,EAAMnB,SAAWmB,EAAMb,kBAM3B,SAAgBzK,EAAQsL,GACjBA,EAAMZ,kBACTY,EAAMZ,iBAAkB,EACxBxb,EAAQ2T,SAASmK,EAAShN,EAAQsL,GAEtC,CAVIwB,CAAOjhC,KAAMy/B,IAEfA,EAAMX,QAAS,EACR9+B,IACT,EAiBA44B,EAAS33B,UAAU+hC,MAAQ,WAQzB,OAPA7jC,EAAM,wBAAyBa,KAAKw8B,eAAe8B,UACf,IAAhCt+B,KAAKw8B,eAAe8B,UACtBn/B,EAAM,SACNa,KAAKw8B,eAAe8B,SAAU,EAC9Bt+B,KAAKs2B,KAAK,UAEZt2B,KAAKw8B,eAAesC,QAAS,EACtB9+B,IACT,EAUA44B,EAAS33B,UAAUH,KAAO,SAAUqzB,GAClC,IAAIpb,EAAQ/Y,KACRy/B,EAAQz/B,KAAKw8B,eACbsC,GAAS,EAwBb,IAAK,IAAIv6B,KAvBT4vB,EAAO3B,GAAG,MAAO,WAEf,GADArzB,EAAM,eACFsgC,EAAMhX,UAAYgX,EAAMrD,MAAO,CACjC,IAAIrE,EAAQ0H,EAAMhX,QAAQllB,MACtBw0B,GAASA,EAAMp0B,QAAQoV,EAAMvU,KAAKuzB,EACxC,CACAhf,EAAMvU,KAAK,KACb,GACA2vB,EAAO3B,GAAG,OAAQ,SAAUuF,GAC1B54B,EAAM,gBACFsgC,EAAMhX,UAASsP,EAAQ0H,EAAMhX,QAAQ0Q,MAAMpB,IAG3C0H,EAAMvB,YAAc,MAACnG,IAAyD0H,EAAMvB,YAAgBnG,GAAUA,EAAMp0B,UAC9GoV,EAAMvU,KAAKuzB,KAEnB+G,GAAS,EACT3K,EAAO6O,SAEX,GAIc7O,OACI/2B,IAAZ4C,KAAKuE,IAAyC,mBAAd4vB,EAAO5vB,KACzCvE,KAAKuE,GAAK,SAAoBzC,GAC5B,OAAO,WACL,OAAOqyB,EAAOryB,GAAQyF,MAAM4sB,EAAQzqB,UACtC,CACF,CAJU,CAIRnF,IAKN,IAAK,IAAI0D,EAAI,EAAGA,EAAI+1B,EAAar6B,OAAQsE,IACvCksB,EAAO3B,GAAGwL,EAAa/1B,GAAIjI,KAAKs2B,KAAKltB,KAAKpJ,KAAMg+B,EAAa/1B,KAY/D,OAPAjI,KAAKm6B,MAAQ,SAAUlyB,GACrB9I,EAAM,gBAAiB8I,GACnB62B,IACFA,GAAS,EACT3K,EAAO8M,SAEX,EACOjhC,IACT,EACsB,mBAAX2P,SACTipB,EAAS33B,UAAU0O,OAAO6zB,eAAiB,WAIzC,YAH0CpmC,IAAtCkgC,IACFA,EAAoC,EAAQ,QAEvCA,EAAkCt9B,KAC3C,GAEFe,OAAOC,eAAe43B,EAAS33B,UAAW,wBAAyB,CAIjEoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKw8B,eAAeF,aAC7B,IAEFv7B,OAAOC,eAAe43B,EAAS33B,UAAW,iBAAkB,CAI1DoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKw8B,gBAAkBx8B,KAAKw8B,eAAe92B,MACpD,IAEF3E,OAAOC,eAAe43B,EAAS33B,UAAW,kBAAmB,CAI3DoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKw8B,eAAe8B,OAC7B,EACAtmB,IAAK,SAAaynB,GACZz/B,KAAKw8B,iBACPx8B,KAAKw8B,eAAe8B,QAAUmB,EAElC,IAIF7G,EAAS6K,UAAYrC,EACrBrgC,OAAOC,eAAe43B,EAAS33B,UAAW,iBAAkB,CAI1DoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKw8B,eAAe74B,MAC7B,IA+CoB,mBAAXgM,SACTipB,EAASpZ,KAAO,SAAUkkB,EAAUvlB,GAIlC,YAHa/gB,IAAToiB,IACFA,EAAO,EAAQ,OAEVA,EAAKoZ,EAAU8K,EAAUvlB,EAClC,E,4BC17BFzZ,EAAOC,QAAUg4B,EACjB,IAAIe,EAAiB,WACnBG,EAA6BH,EAAeG,2BAC5C8F,EAAwBjG,EAAeiG,sBACvCC,EAAqClG,EAAekG,mCACpDC,EAA8BnG,EAAemG,4BAC3C9H,EAAS,EAAQ,OAErB,SAAS+H,EAAetE,EAAIzgC,GAC1B,IAAIglC,EAAK/jC,KAAKgkC,gBACdD,EAAGE,cAAe,EAClB,IAAIvuB,EAAKquB,EAAGG,QACZ,GAAW,OAAPxuB,EACF,OAAO1V,KAAKs2B,KAAK,QAAS,IAAIqN,GAEhCI,EAAGI,WAAa,KAChBJ,EAAGG,QAAU,KACD,MAARnlC,GAEFiB,KAAKwE,KAAKzF,GACZ2W,EAAG8pB,GACH,IAAI4E,EAAKpkC,KAAKw8B,eACd4H,EAAG5F,SAAU,GACT4F,EAAG1F,cAAgB0F,EAAGzgC,OAASygC,EAAG9H,gBACpCt8B,KAAKm6B,MAAMiK,EAAG9H,cAElB,CACA,SAASK,EAAUp7B,GACjB,KAAMvB,gBAAgB28B,GAAY,OAAO,IAAIA,EAAUp7B,GACvDw6B,EAAOvyB,KAAKxJ,KAAMuB,GAClBvB,KAAKgkC,gBAAkB,CACrBF,eAAgBA,EAAe16B,KAAKpJ,MACpCqkC,eAAe,EACfJ,cAAc,EACdC,QAAS,KACTC,WAAY,KACZG,cAAe,MAIjBtkC,KAAKw8B,eAAekC,cAAe,EAKnC1+B,KAAKw8B,eAAeiC,MAAO,EACvBl9B,IAC+B,mBAAtBA,EAAQgjC,YAA0BvkC,KAAK48B,WAAar7B,EAAQgjC,WAC1C,mBAAlBhjC,EAAQijC,QAAsBxkC,KAAKykC,OAASljC,EAAQijC,QAIjExkC,KAAKwyB,GAAG,YAAakS,EACvB,CACA,SAASA,IACP,IAAI3rB,EAAQ/Y,KACe,mBAAhBA,KAAKykC,QAA0BzkC,KAAKw8B,eAAeC,UAK5DxE,EAAKj4B,KAAM,KAAM,MAJjBA,KAAKykC,OAAO,SAAUjF,EAAIzgC,GACxBk5B,EAAKlf,EAAOymB,EAAIzgC,EAClB,EAIJ,CAiDA,SAASk5B,EAAK9D,EAAQqL,EAAIzgC,GACxB,GAAIygC,EAAI,OAAOrL,EAAOmC,KAAK,QAASkJ,GAQpC,GAPY,MAARzgC,GAEFo1B,EAAO3vB,KAAKzF,GAKVo1B,EAAOgI,eAAex4B,OAAQ,MAAM,IAAIkgC,EAC5C,GAAI1P,EAAO6P,gBAAgBC,aAAc,MAAM,IAAIL,EACnD,OAAOzP,EAAO3vB,KAAK,KACrB,CArHA,EAAQ,MAAR,CAAoBm4B,EAAWZ,GAyD/BY,EAAU17B,UAAUuD,KAAO,SAAUuzB,EAAOC,GAE1C,OADAh4B,KAAKgkC,gBAAgBK,eAAgB,EAC9BtI,EAAO96B,UAAUuD,KAAKgF,KAAKxJ,KAAM+3B,EAAOC,EACjD,EAYA2E,EAAU17B,UAAU27B,WAAa,SAAU7E,EAAOC,EAAUtiB,GAC1DA,EAAG,IAAImoB,EAA2B,gBACpC,EACAlB,EAAU17B,UAAU62B,OAAS,SAAUC,EAAOC,EAAUtiB,GACtD,IAAIquB,EAAK/jC,KAAKgkC,gBAId,GAHAD,EAAGG,QAAUxuB,EACbquB,EAAGI,WAAapM,EAChBgM,EAAGO,cAAgBtM,GACd+L,EAAGE,aAAc,CACpB,IAAIG,EAAKpkC,KAAKw8B,gBACVuH,EAAGM,eAAiBD,EAAG1F,cAAgB0F,EAAGzgC,OAASygC,EAAG9H,gBAAet8B,KAAKm6B,MAAMiK,EAAG9H,cACzF,CACF,EAKAK,EAAU17B,UAAUk5B,MAAQ,SAAUlyB,GACpC,IAAI87B,EAAK/jC,KAAKgkC,gBACQ,OAAlBD,EAAGI,YAAwBJ,EAAGE,aAMhCF,EAAGM,eAAgB,GALnBN,EAAGE,cAAe,EAClBjkC,KAAK48B,WAAWmH,EAAGI,WAAYJ,EAAGO,cAAeP,EAAGD,gBAMxD,EACAnH,EAAU17B,UAAUm+B,SAAW,SAAUzkB,EAAKjF,GAC5CqmB,EAAO96B,UAAUm+B,SAAS51B,KAAKxJ,KAAM2a,EAAK,SAAUgqB,GAClDjvB,EAAGivB,EACL,EACF,C,+BC9HI5I,E,WAXJ,SAAS6I,EAAcnF,GACrB,IAAI1mB,EAAQ/Y,KACZA,KAAKowB,KAAO,KACZpwB,KAAK6kC,MAAQ,KACb7kC,KAAK8kC,OAAS,YA6iBhB,SAAwBC,EAAStF,GAC/B,IAAIoF,EAAQE,EAAQF,MAEpB,IADAE,EAAQF,MAAQ,KACTA,GAAO,CACZ,IAAInvB,EAAKmvB,EAAMnrB,SACf+lB,EAAMuF,YACNtvB,EAljBAuvB,WAmjBAJ,EAAQA,EAAMzU,IAChB,CAGAqP,EAAMyF,mBAAmB9U,KAAO2U,CAClC,CAxjBIE,CAAelsB,EAAO0mB,EACxB,CACF,CAnBA/6B,EAAOC,QAAU4vB,EA0BjBA,EAAS4Q,cAAgBA,EAGzB,IA+JIC,EA/JAC,EAAe,CACjBC,UAAW,EAAQ,QAKjBrI,EAAS,EAAQ,OAGjBpI,EAAS,eACTqI,GAAmC,oBAAX,WAAyB,WAA2B,oBAAX7/B,OAAyBA,OAAyB,oBAAT6b,KAAuBA,KAAO,CAAC,GAAG3J,YAAc,WAAa,EAOvKiuB,EAAc,EAAQ,OAExBC,EADa,EAAQ,OACOA,iBAC1BC,EAAiB,WACnBC,EAAuBD,EAAeC,qBACtCE,EAA6BH,EAAeG,2BAC5C8F,EAAwBjG,EAAeiG,sBACvC4B,EAAyB7H,EAAe6H,uBACxCC,EAAuB9H,EAAe8H,qBACtCC,EAAyB/H,EAAe+H,uBACxCC,EAA6BhI,EAAegI,2BAC5CC,EAAuBjI,EAAeiI,qBACpC5H,EAAiBP,EAAYO,eAEjC,SAAS6H,IAAO,CAChB,SAAST,EAAc5jC,EAAS4yB,EAAQ8J,GACtClC,EAASA,GAAU,EAAQ,OAC3Bx6B,EAAUA,GAAW,CAAC,EAOE,kBAAb08B,IAAwBA,EAAW9J,aAAkB4H,GAIhE/7B,KAAKk+B,aAAe38B,EAAQ28B,WACxBD,IAAUj+B,KAAKk+B,WAAal+B,KAAKk+B,cAAgB38B,EAAQskC,oBAK7D7lC,KAAKs8B,cAAgBmB,EAAiBz9B,KAAMuB,EAAS,wBAAyB08B,GAG9Ej+B,KAAK8lC,aAAc,EAGnB9lC,KAAK8iC,WAAY,EAEjB9iC,KAAK+lC,QAAS,EAEd/lC,KAAKo8B,OAAQ,EAEbp8B,KAAK0hC,UAAW,EAGhB1hC,KAAKy8B,WAAY,EAKjB,IAAIuJ,GAAqC,IAA1BzkC,EAAQ0kC,cACvBjmC,KAAKimC,eAAiBD,EAKtBhmC,KAAKi/B,gBAAkB19B,EAAQ09B,iBAAmB,OAKlDj/B,KAAK2D,OAAS,EAGd3D,KAAKkmC,SAAU,EAGflmC,KAAKmmC,OAAS,EAMdnmC,KAAKy+B,MAAO,EAKZz+B,KAAKomC,kBAAmB,EAGxBpmC,KAAKqmC,QAAU,SAAU7G,IAsQ3B,SAAiBrL,EAAQqL,GACvB,IAAIC,EAAQtL,EAAOgI,eACfsC,EAAOgB,EAAMhB,KACb/oB,EAAK+pB,EAAMyE,QACf,GAAkB,mBAAPxuB,EAAmB,MAAM,IAAIiuB,EAExC,GAZF,SAA4BlE,GAC1BA,EAAMyG,SAAU,EAChBzG,EAAMyE,QAAU,KAChBzE,EAAM97B,QAAU87B,EAAM6G,SACtB7G,EAAM6G,SAAW,CACnB,CAMEC,CAAmB9G,GACfD,GAlCN,SAAsBrL,EAAQsL,EAAOhB,EAAMe,EAAI9pB,KAC3C+pB,EAAMuF,UACJvG,GAGFpb,EAAQ2T,SAASthB,EAAI8pB,GAGrBnc,EAAQ2T,SAASwP,EAAarS,EAAQsL,GACtCtL,EAAOgI,eAAesK,cAAe,EACrC1I,EAAe5J,EAAQqL,KAIvB9pB,EAAG8pB,GACHrL,EAAOgI,eAAesK,cAAe,EACrC1I,EAAe5J,EAAQqL,GAGvBgH,EAAYrS,EAAQsL,GAExB,CAaUiH,CAAavS,EAAQsL,EAAOhB,EAAMe,EAAI9pB,OAAS,CAErD,IAAIgsB,EAAWiF,EAAWlH,IAAUtL,EAAOsI,UACtCiF,GAAajC,EAAM0G,QAAW1G,EAAM2G,mBAAoB3G,EAAMmH,iBACjEC,EAAY1S,EAAQsL,GAElBhB,EACFpb,EAAQ2T,SAAS8P,EAAY3S,EAAQsL,EAAOiC,EAAUhsB,GAEtDoxB,EAAW3S,EAAQsL,EAAOiC,EAAUhsB,EAExC,CACF,CAvRI2wB,CAAQlS,EAAQqL,EAClB,EAGAx/B,KAAKkkC,QAAU,KAGflkC,KAAKsmC,SAAW,EAChBtmC,KAAK4mC,gBAAkB,KACvB5mC,KAAK+mC,oBAAsB,KAI3B/mC,KAAKglC,UAAY,EAIjBhlC,KAAKgnC,aAAc,EAGnBhnC,KAAKymC,cAAe,EAGpBzmC,KAAK++B,WAAkC,IAAtBx9B,EAAQw9B,UAGzB/+B,KAAKg/B,cAAgBz9B,EAAQy9B,YAG7Bh/B,KAAKinC,qBAAuB,EAI5BjnC,KAAKklC,mBAAqB,IAAIN,EAAc5kC,KAC9C,CAqCA,SAASu0B,EAAShzB,GAahB,IAAI08B,EAAWj+B,gBAZf+7B,EAASA,GAAU,EAAQ,QAa3B,IAAKkC,IAAamH,EAAgB57B,KAAK+qB,EAAUv0B,MAAO,OAAO,IAAIu0B,EAAShzB,GAC5EvB,KAAKm8B,eAAiB,IAAIgJ,EAAc5jC,EAASvB,KAAMi+B,GAGvDj+B,KAAKsL,UAAW,EACZ/J,IAC2B,mBAAlBA,EAAQ43B,QAAsBn5B,KAAK83B,OAASv2B,EAAQ43B,OACjC,mBAAnB53B,EAAQ2lC,SAAuBlnC,KAAKmnC,QAAU5lC,EAAQ2lC,QAClC,mBAApB3lC,EAAQ42B,UAAwBn4B,KAAKo/B,SAAW79B,EAAQ42B,SACtC,mBAAlB52B,EAAQ6lC,QAAsBpnC,KAAKqnC,OAAS9lC,EAAQ6lC,QAEjEnK,EAAOzzB,KAAKxJ,KACd,CAgIA,SAASsnC,EAAQnT,EAAQsL,EAAOyH,EAAQh+B,EAAK6uB,EAAOC,EAAUtiB,GAC5D+pB,EAAM6G,SAAWp9B,EACjBu2B,EAAMyE,QAAUxuB,EAChB+pB,EAAMyG,SAAU,EAChBzG,EAAMhB,MAAO,EACTgB,EAAMhD,UAAWgD,EAAM4G,QAAQ,IAAIb,EAAqB,UAAmB0B,EAAQ/S,EAAOgT,QAAQpP,EAAO0H,EAAM4G,SAAclS,EAAO2D,OAAOC,EAAOC,EAAUyH,EAAM4G,SACtK5G,EAAMhB,MAAO,CACf,CAgDA,SAASqI,EAAW3S,EAAQsL,EAAOiC,EAAUhsB,GACtCgsB,GASP,SAAsBvN,EAAQsL,GACP,IAAjBA,EAAM97B,QAAgB87B,EAAMqD,YAC9BrD,EAAMqD,WAAY,EAClB3O,EAAOmC,KAAK,SAEhB,CAdiBiR,CAAapT,EAAQsL,GACpCA,EAAMuF,YACNtvB,IACA8wB,EAAYrS,EAAQsL,EACtB,CAaA,SAASoH,EAAY1S,EAAQsL,GAC3BA,EAAM2G,kBAAmB,EACzB,IAAIvB,EAAQpF,EAAMmH,gBAClB,GAAIzS,EAAOgT,SAAWtC,GAASA,EAAMzU,KAAM,CAEzC,IAAIrO,EAAI0d,EAAMwH,qBACVvhC,EAAS,IAAIsD,MAAM+Y,GACnBylB,EAAS/H,EAAMyF,mBACnBsC,EAAO3C,MAAQA,EAGf,IAFA,IAAI4C,EAAQ,EACRC,GAAa,EACV7C,GACLn/B,EAAO+hC,GAAS5C,EACXA,EAAM8C,QAAOD,GAAa,GAC/B7C,EAAQA,EAAMzU,KACdqX,GAAS,EAEX/hC,EAAOgiC,WAAaA,EACpBJ,EAAQnT,EAAQsL,GAAO,EAAMA,EAAM97B,OAAQ+B,EAAQ,GAAI8hC,EAAO1C,QAI9DrF,EAAMuF,YACNvF,EAAMsH,oBAAsB,KACxBS,EAAOpX,MACTqP,EAAMyF,mBAAqBsC,EAAOpX,KAClCoX,EAAOpX,KAAO,MAEdqP,EAAMyF,mBAAqB,IAAIN,EAAcnF,GAE/CA,EAAMwH,qBAAuB,CAC/B,KAAO,CAEL,KAAOpC,GAAO,CACZ,IAAI9M,EAAQ8M,EAAM9M,MACdC,EAAW6M,EAAM7M,SACjBtiB,EAAKmvB,EAAMnrB,SASf,GAPA4tB,EAAQnT,EAAQsL,GAAO,EADbA,EAAMvB,WAAa,EAAInG,EAAMp0B,OACJo0B,EAAOC,EAAUtiB,GACpDmvB,EAAQA,EAAMzU,KACdqP,EAAMwH,uBAKFxH,EAAMyG,QACR,KAEJ,CACc,OAAVrB,IAAgBpF,EAAMsH,oBAAsB,KAClD,CACAtH,EAAMmH,gBAAkB/B,EACxBpF,EAAM2G,kBAAmB,CAC3B,CAoCA,SAASO,EAAWlH,GAClB,OAAOA,EAAMsG,QAA2B,IAAjBtG,EAAM97B,QAA0C,OAA1B87B,EAAMmH,kBAA6BnH,EAAMiC,WAAajC,EAAMyG,OAC3G,CACA,SAAS0B,EAAUzT,EAAQsL,GACzBtL,EAAOkT,OAAO,SAAU1sB,GACtB8kB,EAAMuF,YACFrqB,GACFojB,EAAe5J,EAAQxZ,GAEzB8kB,EAAMuH,aAAc,EACpB7S,EAAOmC,KAAK,aACZkQ,EAAYrS,EAAQsL,EACtB,EACF,CAaA,SAAS+G,EAAYrS,EAAQsL,GAC3B,IAAI32B,EAAO69B,EAAWlH,GACtB,GAAI32B,IAdN,SAAmBqrB,EAAQsL,GACpBA,EAAMuH,aAAgBvH,EAAMqG,cACF,mBAAlB3R,EAAOkT,QAA0B5H,EAAMhD,WAKhDgD,EAAMuH,aAAc,EACpB7S,EAAOmC,KAAK,eALZmJ,EAAMuF,YACNvF,EAAMqG,aAAc,EACpBziB,EAAQ2T,SAAS4Q,EAAWzT,EAAQsL,IAM1C,CAIIiF,CAAUvQ,EAAQsL,GACM,IAApBA,EAAMuF,YACRvF,EAAMiC,UAAW,EACjBvN,EAAOmC,KAAK,UACRmJ,EAAMT,cAAa,CAGrB,IAAI6I,EAAS1T,EAAOqI,iBACfqL,GAAUA,EAAO7I,aAAe6I,EAAOtJ,aAC1CpK,EAAOgE,SAEX,CAGJ,OAAOrvB,CACT,CAxfA,EAAQ,MAAR,CAAoByrB,EAAU0I,GA4G9BkI,EAAclkC,UAAUs7B,UAAY,WAGlC,IAFA,IAAIuL,EAAU9nC,KAAK4mC,gBACfpgB,EAAM,GACHshB,GACLthB,EAAIhiB,KAAKsjC,GACTA,EAAUA,EAAQ1X,KAEpB,OAAO5J,CACT,EACA,WACE,IACEzlB,OAAOC,eAAemkC,EAAclkC,UAAW,SAAU,CACvDE,IAAKkkC,EAAaC,UAAU,WAC1B,OAAOtlC,KAAKu8B,WACd,EAAG,6EAAmF,YAE1F,CAAE,MAAO9nB,GAAI,CACd,CARD,GAasB,mBAAX9E,QAAyBA,OAAOo4B,aAAiE,mBAA3Cp+B,SAAS1I,UAAU0O,OAAOo4B,cACzF3C,EAAkBz7B,SAAS1I,UAAU0O,OAAOo4B,aAC5ChnC,OAAOC,eAAeuzB,EAAU5kB,OAAOo4B,YAAa,CAClD7mC,MAAO,SAAe8L,GACpB,QAAIo4B,EAAgB57B,KAAKxJ,KAAMgN,IAC3BhN,OAASu0B,GACNvnB,GAAUA,EAAOmvB,0BAA0BgJ,CACpD,KAGFC,EAAkB,SAAyBp4B,GACzC,OAAOA,aAAkBhN,IAC3B,EA+BFu0B,EAAStzB,UAAU4gC,KAAO,WACxB9D,EAAe/9B,KAAM,IAAIulC,EAC3B,EAyBAhR,EAAStzB,UAAUk4B,MAAQ,SAAUpB,EAAOC,EAAUtiB,GACpD,IAzNqB7K,EAyNjB40B,EAAQz/B,KAAKm8B,eACbkF,GAAM,EACNsG,GAASlI,EAAMvB,aA3NErzB,EA2N0BktB,EA1NxClD,EAAO3H,SAASriB,IAAQA,aAAeqyB,GAwO9C,OAbIyK,IAAU9S,EAAO3H,SAAS6K,KAC5BA,EAhOJ,SAA6BA,GAC3B,OAAOlD,EAAOrV,KAAKuY,EACrB,CA8NY+H,CAAoB/H,IAEN,mBAAbC,IACTtiB,EAAKsiB,EACLA,EAAW,MAET2P,EAAO3P,EAAW,SAAmBA,IAAUA,EAAWyH,EAAMR,iBAClD,mBAAPvpB,IAAmBA,EAAKkwB,GAC/BnG,EAAMsG,OArCZ,SAAuB5R,EAAQze,GAC7B,IAAI8pB,EAAK,IAAIkG,EAEb3H,EAAe5J,EAAQqL,GACvBnc,EAAQ2T,SAASthB,EAAI8pB,EACvB,CAgCoBwI,CAAchoC,KAAM0V,IAAaiyB,GA3BrD,SAAoBxT,EAAQsL,EAAO1H,EAAOriB,GACxC,IAAI8pB,EAMJ,OALc,OAAVzH,EACFyH,EAAK,IAAIiG,EACiB,iBAAV1N,GAAuB0H,EAAMvB,aAC7CsB,EAAK,IAAI7B,EAAqB,QAAS,CAAC,SAAU,UAAW5F,KAE3DyH,IACFzB,EAAe5J,EAAQqL,GACvBnc,EAAQ2T,SAASthB,EAAI8pB,IACd,EAGX,CAc8DyI,CAAWjoC,KAAMy/B,EAAO1H,EAAOriB,MACzF+pB,EAAMuF,YACN3D,EAiDJ,SAAuBlN,EAAQsL,EAAOkI,EAAO5P,EAAOC,EAAUtiB,GAC5D,IAAKiyB,EAAO,CACV,IAAIO,EArBR,SAAqBzI,EAAO1H,EAAOC,GAIjC,OAHKyH,EAAMvB,aAAsC,IAAxBuB,EAAMwG,eAA4C,iBAAVlO,IAC/DA,EAAQlD,EAAOrV,KAAKuY,EAAOC,IAEtBD,CACT,CAgBmBoQ,CAAY1I,EAAO1H,EAAOC,GACrCD,IAAUmQ,IACZP,GAAQ,EACR3P,EAAW,SACXD,EAAQmQ,EAEZ,CACA,IAAIh/B,EAAMu2B,EAAMvB,WAAa,EAAInG,EAAMp0B,OACvC87B,EAAM97B,QAAUuF,EAChB,IAAIm4B,EAAM5B,EAAM97B,OAAS87B,EAAMnD,cAG/B,GADK+E,IAAK5B,EAAMqD,WAAY,GACxBrD,EAAMyG,SAAWzG,EAAM0G,OAAQ,CACjC,IAAIhzB,EAAOssB,EAAMsH,oBACjBtH,EAAMsH,oBAAsB,CAC1BhP,MAAOA,EACPC,SAAUA,EACV2P,MAAOA,EACPjuB,SAAUhE,EACV0a,KAAM,MAEJjd,EACFA,EAAKid,KAAOqP,EAAMsH,oBAElBtH,EAAMmH,gBAAkBnH,EAAMsH,oBAEhCtH,EAAMwH,sBAAwB,CAChC,MACEK,EAAQnT,EAAQsL,GAAO,EAAOv2B,EAAK6uB,EAAOC,EAAUtiB,GAEtD,OAAO2rB,CACT,CAlFU+G,CAAcpoC,KAAMy/B,EAAOkI,EAAO5P,EAAOC,EAAUtiB,IAEpD2rB,CACT,EACA9M,EAAStzB,UAAUonC,KAAO,WACxBroC,KAAKm8B,eAAegK,QACtB,EACA5R,EAAStzB,UAAUqnC,OAAS,WAC1B,IAAI7I,EAAQz/B,KAAKm8B,eACbsD,EAAM0G,SACR1G,EAAM0G,SACD1G,EAAMyG,SAAYzG,EAAM0G,QAAW1G,EAAM2G,mBAAoB3G,EAAMmH,iBAAiBC,EAAY7mC,KAAMy/B,GAE/G,EACAlL,EAAStzB,UAAUsnC,mBAAqB,SAA4BvQ,GAGlE,GADwB,iBAAbA,IAAuBA,EAAWA,EAAS1b,iBAChD,CAAC,MAAO,OAAQ,QAAS,QAAS,SAAU,SAAU,OAAQ,QAAS,UAAW,WAAY,OAAOjY,SAAS2zB,EAAW,IAAI1b,gBAAkB,GAAI,MAAM,IAAIqpB,EAAqB3N,GAExL,OADAh4B,KAAKm8B,eAAe8C,gBAAkBjH,EAC/Bh4B,IACT,EACAe,OAAOC,eAAeuzB,EAAStzB,UAAW,iBAAkB,CAI1DoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKm8B,gBAAkBn8B,KAAKm8B,eAAeI,WACpD,IAQFx7B,OAAOC,eAAeuzB,EAAStzB,UAAW,wBAAyB,CAIjEoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKm8B,eAAeG,aAC7B,IAuKF/H,EAAStzB,UAAU62B,OAAS,SAAUC,EAAOC,EAAUtiB,GACrDA,EAAG,IAAImoB,EAA2B,YACpC,EACAtJ,EAAStzB,UAAUkmC,QAAU,KAC7B5S,EAAStzB,UAAUsC,IAAM,SAAUw0B,EAAOC,EAAUtiB,GAClD,IAAI+pB,EAAQz/B,KAAKm8B,eAmBjB,MAlBqB,mBAAVpE,GACTriB,EAAKqiB,EACLA,EAAQ,KACRC,EAAW,MACkB,mBAAbA,IAChBtiB,EAAKsiB,EACLA,EAAW,MAETD,SAAuC/3B,KAAKm5B,MAAMpB,EAAOC,GAGzDyH,EAAM0G,SACR1G,EAAM0G,OAAS,EACfnmC,KAAKsoC,UAIF7I,EAAMsG,QAyDb,SAAqB5R,EAAQsL,EAAO/pB,GAClC+pB,EAAMsG,QAAS,EACfS,EAAYrS,EAAQsL,GAChB/pB,IACE+pB,EAAMiC,SAAUre,EAAQ2T,SAASthB,GAASye,EAAOiE,KAAK,SAAU1iB,IAEtE+pB,EAAMrD,OAAQ,EACdjI,EAAO7oB,UAAW,CACpB,CAjEqBk9B,CAAYxoC,KAAMy/B,EAAO/pB,GACrC1V,IACT,EACAe,OAAOC,eAAeuzB,EAAStzB,UAAW,iBAAkB,CAI1DoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKm8B,eAAex4B,MAC7B,IAqEF5C,OAAOC,eAAeuzB,EAAStzB,UAAW,YAAa,CAIrDoK,YAAY,EACZlK,IAAK,WACH,YAA4B/D,IAAxB4C,KAAKm8B,gBAGFn8B,KAAKm8B,eAAeM,SAC7B,EACAzkB,IAAK,SAAa9W,GAGXlB,KAAKm8B,iBAMVn8B,KAAKm8B,eAAeM,UAAYv7B,EAClC,IAEFqzB,EAAStzB,UAAUk3B,QAAUqF,EAAYrF,QACzC5D,EAAStzB,UAAUi/B,WAAa1C,EAAY2C,UAC5C5L,EAAStzB,UAAUm+B,SAAW,SAAUzkB,EAAKjF,GAC3CA,EAAGiF,EACL,C,gCC9nBI8tB,E,WACJ,SAASC,EAAgB79B,EAAKuK,EAAKlU,GAA4L,OAAnLkU,EAC5C,SAAwBymB,GAAO,IAAIzmB,EACnC,SAAsB9P,GAAe,GAAqB,iBAAVA,GAAgC,OAAVA,EAAgB,OAAOA,EAAO,IAAIqjC,EAAOrjC,EAAMqK,OAAO4H,aAAc,QAAana,IAATurC,EAAoB,CAAE,IAAI9lB,EAAM8lB,EAAKn/B,KAAKlE,EAAOsjC,UAAoB,GAAmB,iBAAR/lB,EAAkB,OAAOA,EAAK,MAAM,IAAI1W,UAAU,+CAAiD,CAAE,OAA4B5G,OAAiBD,EAAQ,CAD/UujC,CAAahN,GAAgB,MAAsB,iBAARzmB,EAAmBA,EAAM7P,OAAO6P,EAAM,CADxE0zB,CAAe1zB,MAAiBvK,EAAO9J,OAAOC,eAAe6J,EAAKuK,EAAK,CAAElU,MAAOA,EAAOmK,YAAY,EAAMD,cAAc,EAAME,UAAU,IAAkBT,EAAIuK,GAAOlU,EAAgB2J,CAAK,CAG3O,IAAI62B,EAAW,EAAQ,OACnBqH,EAAep5B,OAAO,eACtBq5B,EAAcr5B,OAAO,cACrBs5B,EAASt5B,OAAO,SAChBu5B,EAASv5B,OAAO,SAChBw5B,EAAex5B,OAAO,eACtBy5B,EAAiBz5B,OAAO,iBACxB05B,EAAU15B,OAAO,UACrB,SAAS25B,EAAiBpoC,EAAO+2B,GAC/B,MAAO,CACL/2B,MAAOA,EACP+2B,KAAMA,EAEV,CACA,SAASsR,EAAeC,GACtB,IAAItmB,EAAUsmB,EAAKT,GACnB,GAAgB,OAAZ7lB,EAAkB,CACpB,IAAInkB,EAAOyqC,EAAKH,GAAS1P,OAIZ,OAAT56B,IACFyqC,EAAKL,GAAgB,KACrBK,EAAKT,GAAgB,KACrBS,EAAKR,GAAe,KACpB9lB,EAAQomB,EAAiBvqC,GAAM,IAEnC,CACF,CACA,SAAS0qC,EAAWD,GAGlBnmB,EAAQ2T,SAASuS,EAAgBC,EACnC,CAYA,IAAIE,EAAyB3oC,OAAO+K,eAAe,WAAa,GAC5D69B,EAAuC5oC,OAAO6X,gBAmD/C8vB,EAnD+DD,EAAwB,CACxF,UAAItU,GACF,OAAOn0B,KAAKqpC,EACd,EACAjZ,KAAM,WACJ,IAAIrX,EAAQ/Y,KAGRkF,EAAQlF,KAAKipC,GACjB,GAAc,OAAV/jC,EACF,OAAOmM,QAAQ+nB,OAAOl0B,GAExB,GAAIlF,KAAKkpC,GACP,OAAO73B,QAAQ6R,QAAQomB,OAAiBlsC,GAAW,IAErD,GAAI4C,KAAKqpC,GAAS5M,UAKhB,OAAO,IAAIprB,QAAQ,SAAU6R,EAASkW,GACpC/V,EAAQ2T,SAAS,WACXje,EAAMkwB,GACR7P,EAAOrgB,EAAMkwB,IAEb/lB,EAAQomB,OAAiBlsC,GAAW,GAExC,EACF,GAOF,IACIwsC,EADAC,EAAc7pC,KAAKmpC,GAEvB,GAAIU,EACFD,EAAU,IAAIv4B,QAlDpB,SAAqBw4B,EAAaL,GAChC,OAAO,SAAUtmB,EAASkW,GACxByQ,EAAYnT,KAAK,WACX8S,EAAKN,GACPhmB,EAAQomB,OAAiBlsC,GAAW,IAGtCosC,EAAKJ,GAAgBlmB,EAASkW,EAChC,EAAGA,EACL,CACF,CAwC4B0Q,CAAYD,EAAa7pC,WAC1C,CAGL,IAAIjB,EAAOiB,KAAKqpC,GAAS1P,OACzB,GAAa,OAAT56B,EACF,OAAOsS,QAAQ6R,QAAQomB,EAAiBvqC,GAAM,IAEhD6qC,EAAU,IAAIv4B,QAAQrR,KAAKopC,GAC7B,CAEA,OADAppC,KAAKmpC,GAAgBS,EACdA,CACT,GACwCj6B,OAAO6zB,cAAe,WAC9D,OAAOxjC,IACT,GAAI0oC,EAAgBD,EAAuB,SAAU,WACnD,IAAIsB,EAAS/pC,KAIb,OAAO,IAAIqR,QAAQ,SAAU6R,EAASkW,GACpC2Q,EAAOV,GAASlR,QAAQ,KAAM,SAAUxd,GAClCA,EACFye,EAAOze,GAGTuI,EAAQomB,OAAiBlsC,GAAW,GACtC,EACF,EACF,GAAIqrC,GAAwBiB,GA4D5BhlC,EAAOC,QA3DiC,SAA2CwvB,GACjF,IAAI6V,EACAv9B,EAAW1L,OAAOqX,OAAOuxB,GAA4DjB,EAArBsB,EAAiB,CAAC,EAAmCX,EAAS,CAChInoC,MAAOizB,EACP7oB,UAAU,IACRo9B,EAAgBsB,EAAgBjB,EAAc,CAChD7nC,MAAO,KACPoK,UAAU,IACRo9B,EAAgBsB,EAAgBhB,EAAa,CAC/C9nC,MAAO,KACPoK,UAAU,IACRo9B,EAAgBsB,EAAgBf,EAAQ,CAC1C/nC,MAAO,KACPoK,UAAU,IACRo9B,EAAgBsB,EAAgBd,EAAQ,CAC1ChoC,MAAOizB,EAAOqI,eAAe+B,WAC7BjzB,UAAU,IACRo9B,EAAgBsB,EAAgBZ,EAAgB,CAClDloC,MAAO,SAAegiB,EAASkW,GAC7B,IAAIr6B,EAAO0N,EAAS48B,GAAS1P,OACzB56B,GACF0N,EAAS08B,GAAgB,KACzB18B,EAASs8B,GAAgB,KACzBt8B,EAASu8B,GAAe,KACxB9lB,EAAQomB,EAAiBvqC,GAAM,MAE/B0N,EAASs8B,GAAgB7lB,EACzBzW,EAASu8B,GAAe5P,EAE5B,EACA9tB,UAAU,IACR0+B,IA0BJ,OAzBAv9B,EAAS08B,GAAgB,KACzBzH,EAASvN,EAAQ,SAAUxZ,GACzB,GAAIA,GAAoB,+BAAbA,EAAIxR,KAAuC,CACpD,IAAIiwB,EAAS3sB,EAASu8B,GAUtB,OAPe,OAAX5P,IACF3sB,EAAS08B,GAAgB,KACzB18B,EAASs8B,GAAgB,KACzBt8B,EAASu8B,GAAe,KACxB5P,EAAOze,SAETlO,EAASw8B,GAAUtuB,EAErB,CACA,IAAIuI,EAAUzW,EAASs8B,GACP,OAAZ7lB,IACFzW,EAAS08B,GAAgB,KACzB18B,EAASs8B,GAAgB,KACzBt8B,EAASu8B,GAAe,KACxB9lB,EAAQomB,OAAiBlsC,GAAW,KAEtCqP,EAASy8B,IAAU,CACrB,GACA/U,EAAO3B,GAAG,WAAYiX,EAAWrgC,KAAK,KAAMqD,IACrCA,CACT,C,4BChLA,SAASw9B,EAAQj9B,EAAQk9B,GAAkB,IAAIx1B,EAAO3T,OAAO2T,KAAK1H,GAAS,GAAIjM,OAAOuT,sBAAuB,CAAE,IAAI61B,EAAUppC,OAAOuT,sBAAsBtH,GAASk9B,IAAmBC,EAAUA,EAAQ7d,OAAO,SAAU/X,GAAO,OAAOxT,OAAOkT,yBAAyBjH,EAAQuH,GAAKlJ,UAAY,IAAKqJ,EAAKlQ,KAAK+C,MAAMmN,EAAMy1B,EAAU,CAAE,OAAOz1B,CAAM,CACpV,SAAS01B,EAAc/8B,GAAU,IAAK,IAAI9I,EAAI,EAAGA,EAAImF,UAAU/F,OAAQY,IAAK,CAAE,IAAI2pB,EAAS,MAAQxkB,UAAUnF,GAAKmF,UAAUnF,GAAK,CAAC,EAAGA,EAAI,EAAI0lC,EAAQlpC,OAAOmtB,IAAS,GAAI7S,QAAQ,SAAUjG,GAAOszB,EAAgBr7B,EAAQ+H,EAAK8Y,EAAO9Y,GAAO,GAAKrU,OAAOspC,0BAA4BtpC,OAAOupC,iBAAiBj9B,EAAQtM,OAAOspC,0BAA0Bnc,IAAW+b,EAAQlpC,OAAOmtB,IAAS7S,QAAQ,SAAUjG,GAAOrU,OAAOC,eAAeqM,EAAQ+H,EAAKrU,OAAOkT,yBAAyBia,EAAQ9Y,GAAO,EAAI,CAAE,OAAO/H,CAAQ,CACzf,SAASq7B,EAAgB79B,EAAKuK,EAAKlU,GAA4L,OAAnLkU,EAAM0zB,EAAe1zB,MAAiBvK,EAAO9J,OAAOC,eAAe6J,EAAKuK,EAAK,CAAElU,MAAOA,EAAOmK,YAAY,EAAMD,cAAc,EAAME,UAAU,IAAkBT,EAAIuK,GAAOlU,EAAgB2J,CAAK,CAE3O,SAAS0/B,EAAkBl9B,EAAQ1N,GAAS,IAAK,IAAI4E,EAAI,EAAGA,EAAI5E,EAAMgE,OAAQY,IAAK,CAAE,IAAIuQ,EAAanV,EAAM4E,GAAIuQ,EAAWzJ,WAAayJ,EAAWzJ,aAAc,EAAOyJ,EAAW1J,cAAe,EAAU,UAAW0J,IAAYA,EAAWxJ,UAAW,GAAMvK,OAAOC,eAAeqM,EAAQy7B,EAAeh0B,EAAWM,KAAMN,EAAa,CAAE,CAE5U,SAASg0B,EAAejN,GAAO,IAAIzmB,EACnC,SAAsB9P,GAAe,GAAqB,iBAAVA,GAAgC,OAAVA,EAAgB,OAAOA,EAAO,IAAIqjC,EAAOrjC,EAAMqK,OAAO4H,aAAc,QAAana,IAATurC,EAAoB,CAAE,IAAI9lB,EAAM8lB,EAAKn/B,KAAKlE,EAAOsjC,UAAoB,GAAmB,iBAAR/lB,EAAkB,OAAOA,EAAK,MAAM,IAAI1W,UAAU,+CAAiD,CAAE,OAA4B5G,OAAiBD,EAAQ,CAD/UujC,CAAahN,GAAgB,MAAsB,iBAARzmB,EAAmBA,EAAM7P,OAAO6P,EAAM,CAE1H,IACEyf,EADa,EAAQ,MACHA,OAElBtV,EADc,EAAQ,OACFA,QAClB7B,EAAS6B,GAAWA,EAAQ7B,QAAU,UAC1C,SAAS8sB,EAAWxI,EAAK30B,EAAQvO,GAC/B+1B,EAAO5zB,UAAUwpC,KAAKjhC,KAAKw4B,EAAK30B,EAAQvO,EAC1C,CACA4F,EAAOC,QAAuB,WAC5B,SAAS44B,KAdX,SAAyB7kB,EAAUM,GAAe,KAAMN,aAAoBM,GAAgB,MAAM,IAAI7M,UAAU,oCAAwC,CAepJ8M,CAAgBjZ,KAAMu9B,GACtBv9B,KAAKugC,KAAO,KACZvgC,KAAK0qC,KAAO,KACZ1qC,KAAK2D,OAAS,CAChB,CAjBF,IAAsBqV,EAAa2xB,EA8KjC,OA9KoB3xB,EAkBPukB,GAlBoBoN,EAkBR,CAAC,CACxBv1B,IAAK,OACLlU,MAAO,SAAc6Y,GACnB,IAAI8qB,EAAQ,CACV9lC,KAAMgb,EACNqW,KAAM,MAEJpwB,KAAK2D,OAAS,EAAG3D,KAAK0qC,KAAKta,KAAOyU,EAAW7kC,KAAKugC,KAAOsE,EAC7D7kC,KAAK0qC,KAAO7F,IACV7kC,KAAK2D,MACT,GACC,CACDyR,IAAK,UACLlU,MAAO,SAAiB6Y,GACtB,IAAI8qB,EAAQ,CACV9lC,KAAMgb,EACNqW,KAAMpwB,KAAKugC,MAEO,IAAhBvgC,KAAK2D,SAAc3D,KAAK0qC,KAAO7F,GACnC7kC,KAAKugC,KAAOsE,IACV7kC,KAAK2D,MACT,GACC,CACDyR,IAAK,QACLlU,MAAO,WACL,GAAoB,IAAhBlB,KAAK2D,OAAT,CACA,IAAI09B,EAAMrhC,KAAKugC,KAAKxhC,KAGpB,OAFoB,IAAhBiB,KAAK2D,OAAc3D,KAAKugC,KAAOvgC,KAAK0qC,KAAO,KAAU1qC,KAAKugC,KAAOvgC,KAAKugC,KAAKnQ,OAC7EpwB,KAAK2D,OACA09B,CAJsB,CAK/B,GACC,CACDjsB,IAAK,QACLlU,MAAO,WACLlB,KAAKugC,KAAOvgC,KAAK0qC,KAAO,KACxB1qC,KAAK2D,OAAS,CAChB,GACC,CACDyR,IAAK,OACLlU,MAAO,SAAc+c,GACnB,GAAoB,IAAhBje,KAAK2D,OAAc,MAAO,GAG9B,IAFA,IAAIyD,EAAIpH,KAAKugC,KACTc,EAAM,GAAKj6B,EAAErI,KACVqI,EAAIA,EAAEgpB,MAAMiR,GAAOpjB,EAAI7W,EAAErI,KAChC,OAAOsiC,CACT,GACC,CACDjsB,IAAK,SACLlU,MAAO,SAAgB+G,GACrB,GAAoB,IAAhBjI,KAAK2D,OAAc,OAAOkxB,EAAOyF,MAAM,GAI3C,IAHA,IAAI+G,EAAMxM,EAAO+V,YAAY3iC,IAAM,GAC/Bb,EAAIpH,KAAKugC,KACTh8B,EAAI,EACD6C,GACLojC,EAAWpjC,EAAErI,KAAMsiC,EAAK98B,GACxBA,GAAK6C,EAAErI,KAAK4E,OACZyD,EAAIA,EAAEgpB,KAER,OAAOiR,CACT,GAGC,CACDjsB,IAAK,UACLlU,MAAO,SAAiB+G,EAAG4iC,GACzB,IAAIxJ,EAYJ,OAXIp5B,EAAIjI,KAAKugC,KAAKxhC,KAAK4E,QAErB09B,EAAMrhC,KAAKugC,KAAKxhC,KAAK0E,MAAM,EAAGwE,GAC9BjI,KAAKugC,KAAKxhC,KAAOiB,KAAKugC,KAAKxhC,KAAK0E,MAAMwE,IAGtCo5B,EAFSp5B,IAAMjI,KAAKugC,KAAKxhC,KAAK4E,OAExB3D,KAAKsH,QAGLujC,EAAa7qC,KAAK8qC,WAAW7iC,GAAKjI,KAAK+qC,WAAW9iC,GAEnDo5B,CACT,GACC,CACDjsB,IAAK,QACLlU,MAAO,WACL,OAAOlB,KAAKugC,KAAKxhC,IACnB,GAGC,CACDqW,IAAK,aACLlU,MAAO,SAAoB+G,GACzB,IAAIb,EAAIpH,KAAKugC,KACT96B,EAAI,EACJ47B,EAAMj6B,EAAErI,KAEZ,IADAkJ,GAAKo5B,EAAI19B,OACFyD,EAAIA,EAAEgpB,MAAM,CACjB,IAAIntB,EAAMmE,EAAErI,KACRisC,EAAK/iC,EAAIhF,EAAIU,OAASV,EAAIU,OAASsE,EAGvC,GAFI+iC,IAAO/nC,EAAIU,OAAQ09B,GAAOp+B,EAASo+B,GAAOp+B,EAAIQ,MAAM,EAAGwE,GAEjD,KADVA,GAAK+iC,GACQ,CACPA,IAAO/nC,EAAIU,UACX8B,EACE2B,EAAEgpB,KAAMpwB,KAAKugC,KAAOn5B,EAAEgpB,KAAUpwB,KAAKugC,KAAOvgC,KAAK0qC,KAAO,OAE5D1qC,KAAKugC,KAAOn5B,EACZA,EAAErI,KAAOkE,EAAIQ,MAAMunC,IAErB,KACF,GACEvlC,CACJ,CAEA,OADAzF,KAAK2D,QAAU8B,EACR47B,CACT,GAGC,CACDjsB,IAAK,aACLlU,MAAO,SAAoB+G,GACzB,IAAIo5B,EAAMxM,EAAO+V,YAAY3iC,GACzBb,EAAIpH,KAAKugC,KACT96B,EAAI,EAGR,IAFA2B,EAAErI,KAAK0rC,KAAKpJ,GACZp5B,GAAKb,EAAErI,KAAK4E,OACLyD,EAAIA,EAAEgpB,MAAM,CACjB,IAAI6a,EAAM7jC,EAAErI,KACRisC,EAAK/iC,EAAIgjC,EAAItnC,OAASsnC,EAAItnC,OAASsE,EAGvC,GAFAgjC,EAAIR,KAAKpJ,EAAKA,EAAI19B,OAASsE,EAAG,EAAG+iC,GAEvB,KADV/iC,GAAK+iC,GACQ,CACPA,IAAOC,EAAItnC,UACX8B,EACE2B,EAAEgpB,KAAMpwB,KAAKugC,KAAOn5B,EAAEgpB,KAAUpwB,KAAKugC,KAAOvgC,KAAK0qC,KAAO,OAE5D1qC,KAAKugC,KAAOn5B,EACZA,EAAErI,KAAOksC,EAAIxnC,MAAMunC,IAErB,KACF,GACEvlC,CACJ,CAEA,OADAzF,KAAK2D,QAAU8B,EACR47B,CACT,GAGC,CACDjsB,IAAKsI,EACLxc,MAAO,SAAeuT,EAAGlT,GACvB,OAAOge,EAAQvf,KAAMoqC,EAAcA,EAAc,CAAC,EAAG7oC,GAAU,CAAC,EAAG,CAEjEmd,MAAO,EAEPG,eAAe,IAEnB,MA5K0E0rB,EAAkBvxB,EAAY/X,UAAW0pC,GAA2E5pC,OAAOC,eAAegY,EAAa,YAAa,CAAE1N,UAAU,IA8KrPiyB,CACT,CApK8B,E,2CCiC9B,SAAS2N,EAAoBhyB,EAAMyB,GACjCwwB,EAAYjyB,EAAMyB,GAClBywB,EAAYlyB,EACd,CACA,SAASkyB,EAAYlyB,GACfA,EAAKijB,iBAAmBjjB,EAAKijB,eAAe4C,WAC5C7lB,EAAKsjB,iBAAmBtjB,EAAKsjB,eAAeuC,WAChD7lB,EAAKod,KAAK,QACZ,CAkBA,SAAS6U,EAAYjyB,EAAMyB,GACzBzB,EAAKod,KAAK,QAAS3b,EACrB,CAYAjW,EAAOC,QAAU,CACfwzB,QAzFF,SAAiBxd,EAAKjF,GACpB,IAAIqD,EAAQ/Y,KACRqrC,EAAoBrrC,KAAKw8B,gBAAkBx8B,KAAKw8B,eAAeC,UAC/D6O,EAAoBtrC,KAAKm8B,gBAAkBn8B,KAAKm8B,eAAeM,UACnE,OAAI4O,GAAqBC,GACnB51B,EACFA,EAAGiF,GACMA,IACJ3a,KAAKm8B,eAEEn8B,KAAKm8B,eAAesK,eAC9BzmC,KAAKm8B,eAAesK,cAAe,EACnCpjB,EAAQ2T,SAASmU,EAAanrC,KAAM2a,IAHpC0I,EAAQ2T,SAASmU,EAAanrC,KAAM2a,IAMjC3a,OAMLA,KAAKw8B,iBACPx8B,KAAKw8B,eAAeC,WAAY,GAI9Bz8B,KAAKm8B,iBACPn8B,KAAKm8B,eAAeM,WAAY,GAElCz8B,KAAKo/B,SAASzkB,GAAO,KAAM,SAAUA,IAC9BjF,GAAMiF,EACJ5B,EAAMojB,eAECpjB,EAAMojB,eAAesK,aAI/BpjB,EAAQ2T,SAASoU,EAAaryB,IAH9BA,EAAMojB,eAAesK,cAAe,EACpCpjB,EAAQ2T,SAASkU,EAAqBnyB,EAAO4B,IAH7C0I,EAAQ2T,SAASkU,EAAqBnyB,EAAO4B,GAOtCjF,GACT2N,EAAQ2T,SAASoU,EAAaryB,GAC9BrD,EAAGiF,IAEH0I,EAAQ2T,SAASoU,EAAaryB,EAElC,GACO/Y,KACT,EA2CEmgC,UAjCF,WACMngC,KAAKw8B,iBACPx8B,KAAKw8B,eAAeC,WAAY,EAChCz8B,KAAKw8B,eAAegC,SAAU,EAC9Bx+B,KAAKw8B,eAAeJ,OAAQ,EAC5Bp8B,KAAKw8B,eAAe+B,YAAa,GAE/Bv+B,KAAKm8B,iBACPn8B,KAAKm8B,eAAeM,WAAY,EAChCz8B,KAAKm8B,eAAeC,OAAQ,EAC5Bp8B,KAAKm8B,eAAe4J,QAAS,EAC7B/lC,KAAKm8B,eAAe2J,aAAc,EAClC9lC,KAAKm8B,eAAe6K,aAAc,EAClChnC,KAAKm8B,eAAeuF,UAAW,EAC/B1hC,KAAKm8B,eAAesK,cAAe,EAEvC,EAkBE1I,eAdF,SAAwB5J,EAAQxZ,GAO9B,IAAIktB,EAAS1T,EAAOqI,eAChBiF,EAAStN,EAAOgI,eAChB0L,GAAUA,EAAO7I,aAAeyC,GAAUA,EAAOzC,YAAa7K,EAAOgE,QAAQxd,GAAUwZ,EAAOmC,KAAK,QAAS3b,EAClH,E,4BCrFA,IAAI4wB,EAA6B,WAAiCA,2BAYlE,SAASC,IAAQ,CAoEjB9mC,EAAOC,QAhEP,SAAS8mC,EAAItX,EAAQhW,EAAMzE,GACzB,GAAoB,mBAATyE,EAAqB,OAAOstB,EAAItX,EAAQ,KAAMhW,GACpDA,IAAMA,EAAO,CAAC,GACnBzE,EAlBF,SAAcA,GACZ,IAAIgyB,GAAS,EACb,OAAO,WACL,IAAIA,EAAJ,CACAA,GAAS,EACT,IAAK,IAAIC,EAAOjiC,UAAU/F,OAAQmG,EAAO,IAAId,MAAM2iC,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9hC,EAAK8hC,GAAQliC,UAAUkiC,GAEzBlyB,EAASnS,MAAMvH,KAAM8J,EALH,CAMpB,CACF,CAQasuB,CAAK1e,GAAY8xB,GAC5B,IAAIvP,EAAW9d,EAAK8d,WAA8B,IAAlB9d,EAAK8d,UAAsB9H,EAAO8H,SAC9D3wB,EAAW6S,EAAK7S,WAA8B,IAAlB6S,EAAK7S,UAAsB6oB,EAAO7oB,SAC9DugC,EAAiB,WACd1X,EAAO7oB,UAAUo3B,GACxB,EACIoJ,EAAgB3X,EAAOgI,gBAAkBhI,EAAOgI,eAAeuF,SAC/DgB,EAAW,WACbp3B,GAAW,EACXwgC,GAAgB,EACX7P,GAAUviB,EAASlQ,KAAK2qB,EAC/B,EACI4X,EAAgB5X,EAAOqI,gBAAkBrI,EAAOqI,eAAe+B,WAC/DrC,EAAQ,WACVD,GAAW,EACX8P,GAAgB,EACXzgC,GAAUoO,EAASlQ,KAAK2qB,EAC/B,EACIuD,EAAU,SAAiB/c,GAC7BjB,EAASlQ,KAAK2qB,EAAQxZ,EACxB,EACI8nB,EAAU,WACZ,IAAI9nB,EACJ,OAAIshB,IAAa8P,GACV5X,EAAOqI,gBAAmBrI,EAAOqI,eAAeJ,QAAOzhB,EAAM,IAAI4wB,GAC/D7xB,EAASlQ,KAAK2qB,EAAQxZ,IAE3BrP,IAAawgC,GACV3X,EAAOgI,gBAAmBhI,EAAOgI,eAAeC,QAAOzhB,EAAM,IAAI4wB,GAC/D7xB,EAASlQ,KAAK2qB,EAAQxZ,SAF/B,CAIF,EACIqxB,EAAY,WACd7X,EAAO5B,IAAIC,GAAG,SAAUkQ,EAC1B,EAcA,OAtDF,SAAmBvO,GACjB,OAAOA,EAAOS,WAAqC,mBAAjBT,EAAOoC,KAC3C,CAuCM0V,CAAU9X,IACZA,EAAO3B,GAAG,WAAYkQ,GACtBvO,EAAO3B,GAAG,QAASiQ,GACftO,EAAO5B,IAAKyZ,IAAiB7X,EAAO3B,GAAG,UAAWwZ,IAC7C1gC,IAAa6oB,EAAOgI,iBAE7BhI,EAAO3B,GAAG,MAAOqZ,GACjB1X,EAAO3B,GAAG,QAASqZ,IAErB1X,EAAO3B,GAAG,MAAO0J,GACjB/H,EAAO3B,GAAG,SAAUkQ,IACD,IAAfvkB,EAAKjZ,OAAiBivB,EAAO3B,GAAG,QAASkF,GAC7CvD,EAAO3B,GAAG,QAASiQ,GACZ,WACLtO,EAAOqO,eAAe,WAAYE,GAClCvO,EAAOqO,eAAe,QAASC,GAC/BtO,EAAOqO,eAAe,UAAWwJ,GAC7B7X,EAAO5B,KAAK4B,EAAO5B,IAAIiQ,eAAe,SAAUE,GACpDvO,EAAOqO,eAAe,MAAOqJ,GAC7B1X,EAAOqO,eAAe,QAASqJ,GAC/B1X,EAAOqO,eAAe,SAAUE,GAChCvO,EAAOqO,eAAe,MAAOtG,GAC7B/H,EAAOqO,eAAe,QAAS9K,GAC/BvD,EAAOqO,eAAe,QAASC,EACjC,CACF,C,UCpFA/9B,EAAOC,QAAU,WACf,MAAM,IAAIK,MAAM,gDAClB,C,4BCGA,IAAIymC,EASA/N,EAAiB,WACnBwO,EAAmBxO,EAAewO,iBAClC1G,EAAuB9H,EAAe8H,qBACxC,SAASgG,EAAK7wB,GAEZ,GAAIA,EAAK,MAAMA,CACjB,CA+BA,SAASnR,EAAKyI,GACZA,GACF,CACA,SAAS4vB,EAAKriB,EAAMoE,GAClB,OAAOpE,EAAKqiB,KAAKje,EACnB,CA6BAlf,EAAOC,QAvBP,WACE,IAAK,IAAIgnC,EAAOjiC,UAAU/F,OAAQwoC,EAAU,IAAInjC,MAAM2iC,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClFO,EAAQP,GAAQliC,UAAUkiC,GAE5B,IAKI1mC,EALAwU,EATN,SAAqByyB,GACnB,OAAKA,EAAQxoC,OAC8B,mBAAhCwoC,EAAQA,EAAQxoC,OAAS,GAA0B6nC,EACvDW,EAAQ1nC,MAFa+mC,CAG9B,CAKiBY,CAAYD,GAE3B,GADInjC,MAAMgR,QAAQmyB,EAAQ,MAAKA,EAAUA,EAAQ,IAC7CA,EAAQxoC,OAAS,EACnB,MAAM,IAAIuoC,EAAiB,WAG7B,IAAIG,EAAWF,EAAQ7sC,IAAI,SAAU60B,EAAQ5vB,GAC3C,IAAIi6B,EAAUj6B,EAAI4nC,EAAQxoC,OAAS,EAEnC,OAnDJ,SAAmBwwB,EAAQqK,EAAS0H,EAASxsB,GAC3CA,EAnBF,SAAcA,GACZ,IAAIgyB,GAAS,EACb,OAAO,WACDA,IACJA,GAAS,EACThyB,EAASnS,WAAM,EAAQmC,WACzB,CACF,CAYa0uB,CAAK1e,GAChB,IAAI4yB,GAAS,EACbnY,EAAO3B,GAAG,QAAS,WACjB8Z,GAAS,CACX,QACYlvC,IAARquC,IAAmBA,EAAM,EAAQ,QACrCA,EAAItX,EAAQ,CACV8H,SAAUuC,EACVlzB,SAAU46B,GACT,SAAUvrB,GACX,GAAIA,EAAK,OAAOjB,EAASiB,GACzB2xB,GAAS,EACT5yB,GACF,GACA,IAAI+iB,GAAY,EAChB,OAAO,SAAU9hB,GACf,IAAI2xB,IACA7P,EAIJ,OAHAA,GAAY,EAtBhB,SAAmBtI,GACjB,OAAOA,EAAOS,WAAqC,mBAAjBT,EAAOoC,KAC3C,CAuBQ0V,CAAU9X,GAAgBA,EAAOoC,QACP,mBAAnBpC,EAAOgE,QAA+BhE,EAAOgE,eACxDze,EAASiB,GAAO,IAAI6qB,EAAqB,QAC3C,CACF,CAyBW+G,CAAUpY,EAAQqK,EADXj6B,EAAI,EACyB,SAAUoW,GAC9CzV,IAAOA,EAAQyV,GAChBA,GAAK0xB,EAAShxB,QAAQ7R,GACtBg1B,IACJ6N,EAAShxB,QAAQ7R,GACjBkQ,EAASxU,GACX,EACF,GACA,OAAOinC,EAAQ/d,OAAOyT,EACxB,C,4BClFA,IAAI2K,EAAwB,WAAiCA,sBAiB7D9nC,EAAOC,QAAU,CACf84B,iBAdF,SAA0BgC,EAAOl+B,EAASkrC,EAAWxO,GACnD,IAAIyO,EAJN,SAA2BnrC,EAAS08B,EAAUwO,GAC5C,OAAgC,MAAzBlrC,EAAQ+6B,cAAwB/6B,EAAQ+6B,cAAgB2B,EAAW18B,EAAQkrC,GAAa,IACjG,CAEYE,CAAkBprC,EAAS08B,EAAUwO,GAC/C,GAAW,MAAPC,EAAa,CACf,IAAM37B,SAAS27B,IAAQ5lC,KAAKsH,MAAMs+B,KAASA,GAAQA,EAAM,EAEvD,MAAM,IAAIF,EADCvO,EAAWwO,EAAY,gBACIC,GAExC,OAAO5lC,KAAKsH,MAAMs+B,EACpB,CAGA,OAAOjN,EAAMvB,WAAa,GAAK,KACjC,E,eClBAx5B,EAAOC,QAAU,EAAjB,mB,gBCAAA,EAAUD,EAAOC,QAAU,EAAjB,QACFs4B,OAASt4B,EACjBA,EAAQi0B,SAAWj0B,EACnBA,EAAQ4vB,SAAW,EAAnB,MACA5vB,EAAQo3B,OAAS,EAAjB,OACAp3B,EAAQg4B,UAAY,EAApB,OACAh4B,EAAQ+3B,YAAc,EAAtB,OACA/3B,EAAQ+8B,SAAW,EAAnB,OACA/8B,EAAQioC,SAAW,EAAnB,M,4BCNA,IAAIC,EAAW,EAAQ,OACnBC,EAAK,EAAQ,OACbC,EAAsB,6EACtBC,EAAS,YACTC,EAAU,gCACVtd,EAAO,QACPud,EAAa,mDACbC,EAAqB,aAUzB,SAASC,EAASnqC,GAChB,OAAQA,GAAY,IAAIP,WAAWsD,QAAQ+mC,EAAqB,GAClE,CAcA,IAAIM,EAAQ,CACV,CAAC,IAAK,QACN,CAAC,IAAK,SACN,SAAkBC,EAASp4B,GACzB,OAAOq4B,EAAUr4B,EAAIM,UAAY83B,EAAQtnC,QAAQ,MAAO,KAAOsnC,CACjE,EACA,CAAC,IAAK,YACN,CAAC,IAAK,OAAQ,GACd,CAACE,IAAK,YAAQpwC,EAAW,EAAG,GAC5B,CAAC,UAAW,YAAQA,EAAW,GAC/B,CAACowC,IAAK,gBAAYpwC,EAAW,EAAG,IAW9BqwC,EAAS,CAAEC,KAAM,EAAGje,MAAO,GAc/B,SAASke,EAAUC,GACjB,IAYIx4B,EALA8c,GALkB,oBAAX70B,OAAoCA,OACpB,oBAAX,WAAoC,WAC3B,oBAAT6b,KAAkCA,KACjC,CAAC,GAEOgZ,UAAY,CAAC,EAGlC2b,EAAmB,CAAC,EACpB1tC,SAHJytC,EAAMA,GAAO1b,GAMb,GAAI,UAAY0b,EAAIp4B,SAClBq4B,EAAmB,IAAIC,EAAIjf,SAAS+e,EAAIG,UAAW,CAAC,QAC/C,GAAI,WAAa5tC,EAEtB,IAAKiV,KADLy4B,EAAmB,IAAIC,EAAIF,EAAK,CAAC,GACrBH,SAAeI,EAAiBz4B,QACvC,GAAI,WAAajV,EAAM,CAC5B,IAAKiV,KAAOw4B,EACNx4B,KAAOq4B,IACXI,EAAiBz4B,GAAOw4B,EAAIx4B,SAGGhY,IAA7BywC,EAAiBZ,UACnBY,EAAiBZ,QAAUA,EAAQznC,KAAKooC,EAAII,MAEhD,CAEA,OAAOH,CACT,CASA,SAASN,EAAUU,GACjB,MACa,UAAXA,GACW,SAAXA,GACW,UAAXA,GACW,WAAXA,GACW,QAAXA,GACW,SAAXA,CAEJ,CAkBA,SAASC,EAAgBZ,EAASpb,GAEhCob,GADAA,EAAUF,EAASE,IACDtnC,QAAQgnC,EAAQ,IAClC9a,EAAWA,GAAY,CAAC,EAExB,IAKIic,EALApqC,EAAQmpC,EAAWt6B,KAAK06B,GACxB93B,EAAWzR,EAAM,GAAKA,EAAM,GAAGuY,cAAgB,GAC/C8xB,IAAmBrqC,EAAM,GACzBsqC,IAAiBtqC,EAAM,GACvBuqC,EAAe,EAkCnB,OA/BIF,EACEC,GACFF,EAAOpqC,EAAM,GAAKA,EAAM,GAAKA,EAAM,GACnCuqC,EAAevqC,EAAM,GAAGJ,OAASI,EAAM,GAAGJ,SAE1CwqC,EAAOpqC,EAAM,GAAKA,EAAM,GACxBuqC,EAAevqC,EAAM,GAAGJ,QAGtB0qC,GACFF,EAAOpqC,EAAM,GAAKA,EAAM,GACxBuqC,EAAevqC,EAAM,GAAGJ,QAExBwqC,EAAOpqC,EAAM,GAIA,UAAbyR,EACE84B,GAAgB,IAClBH,EAAOA,EAAK1qC,MAAM,IAEX8pC,EAAU/3B,GACnB24B,EAAOpqC,EAAM,GACJyR,EACL44B,IACFD,EAAOA,EAAK1qC,MAAM,IAEX6qC,GAAgB,GAAKf,EAAUrb,EAAS1c,YACjD24B,EAAOpqC,EAAM,IAGR,CACLyR,SAAUA,EACVy3B,QAASmB,GAAkBb,EAAU/3B,GACrC84B,aAAcA,EACdH,KAAMA,EAEV,CAoDA,SAASL,EAAIR,EAASpb,EAAUxC,GAI9B,GAFA4d,GADAA,EAAUF,EAASE,IACDtnC,QAAQgnC,EAAQ,MAE5BhtC,gBAAgB8tC,GACpB,OAAO,IAAIA,EAAIR,EAASpb,EAAUxC,GAGpC,IAAI/L,EAAU4qB,EAAWh5B,EAAOi5B,EAAav0B,EAAO7E,EAChDq5B,EAAepB,EAAM5pC,QACrBtD,SAAc+xB,EACdhd,EAAMlV,KACNuE,EAAI,EA8CR,IAjCI,WAAapE,GAAQ,WAAaA,IACpCuvB,EAASwC,EACTA,EAAW,MAGTxC,GAAU,mBAAsBA,IAAQA,EAASod,EAAGv3B,OAQxDoO,IADA4qB,EAAYL,EAAgBZ,GAAW,GALvCpb,EAAWyb,EAAUzb,KAMC1c,WAAa+4B,EAAUtB,QAC7C/3B,EAAI+3B,QAAUsB,EAAUtB,SAAWtpB,GAAYuO,EAAS+a,QACxD/3B,EAAIM,SAAW+4B,EAAU/4B,UAAY0c,EAAS1c,UAAY,GAC1D83B,EAAUiB,EAAUJ,MAOK,UAAvBI,EAAU/4B,WACmB,IAA3B+4B,EAAUD,cAAsBnB,EAAmB3nC,KAAK8nC,MACxDiB,EAAUtB,UACTsB,EAAU/4B,UACT+4B,EAAUD,aAAe,IACxBf,EAAUr4B,EAAIM,cAEnBi5B,EAAa,GAAK,CAAC,OAAQ,aAGtBlqC,EAAIkqC,EAAa9qC,OAAQY,IAGH,mBAF3BiqC,EAAcC,EAAalqC,KAO3BgR,EAAQi5B,EAAY,GACpBp5B,EAAMo5B,EAAY,GAEdj5B,GAAUA,EACZL,EAAIE,GAAOk4B,EACF,iBAAoB/3B,IAC7B0E,EAAkB,MAAV1E,EACJ+3B,EAAQvmB,YAAYxR,GACpB+3B,EAAQjpC,QAAQkR,MAGd,iBAAoBi5B,EAAY,IAClCt5B,EAAIE,GAAOk4B,EAAQ7pC,MAAM,EAAGwW,GAC5BqzB,EAAUA,EAAQ7pC,MAAMwW,EAAQu0B,EAAY,MAE5Ct5B,EAAIE,GAAOk4B,EAAQ7pC,MAAMwW,GACzBqzB,EAAUA,EAAQ7pC,MAAM,EAAGwW,MAGrBA,EAAQ1E,EAAM3C,KAAK06B,MAC7Bp4B,EAAIE,GAAO6E,EAAM,GACjBqzB,EAAUA,EAAQ7pC,MAAM,EAAGwW,EAAMA,QAGnC/E,EAAIE,GAAOF,EAAIE,IACbuO,GAAY6qB,EAAY,IAAKtc,EAAS9c,IAAa,GAOjDo5B,EAAY,KAAIt5B,EAAIE,GAAOF,EAAIE,GAAKkH,gBApCtCgxB,EAAUkB,EAAYlB,EAASp4B,GA4C/Bwa,IAAQxa,EAAIua,MAAQC,EAAOxa,EAAIua,QAM/B9L,GACCuO,EAAS+a,SACkB,MAA3B/3B,EAAI64B,SAAShoC,OAAO,KACF,KAAjBmP,EAAI64B,UAAyC,KAAtB7b,EAAS6b,YAEpC74B,EAAI64B,SA/JR,SAAiBpqB,EAAUvE,GACzB,GAAiB,KAAbuE,EAAiB,OAAOvE,EAQ5B,IANA,IAAI3F,GAAQ2F,GAAQ,KAAK9Y,MAAM,KAAK7C,MAAM,GAAI,GAAG6O,OAAOqR,EAASrd,MAAM,MACnE/B,EAAIkV,EAAK9V,OACTwP,EAAOsG,EAAKlV,EAAI,GAChB07B,GAAU,EACVyO,EAAK,EAEFnqC,KACW,MAAZkV,EAAKlV,GACPkV,EAAKjH,OAAOjO,EAAG,GACM,OAAZkV,EAAKlV,IACdkV,EAAKjH,OAAOjO,EAAG,GACfmqC,KACSA,IACC,IAANnqC,IAAS07B,GAAU,GACvBxmB,EAAKjH,OAAOjO,EAAG,GACfmqC,KAOJ,OAHIzO,GAASxmB,EAAKwmB,QAAQ,IACb,MAAT9sB,GAAyB,OAATA,GAAesG,EAAKjV,KAAK,IAEtCiV,EAAKhY,KAAK,IACnB,CAqImByhB,CAAQhO,EAAI64B,SAAU7b,EAAS6b,WAOjB,MAA3B74B,EAAI64B,SAAShoC,OAAO,IAAcwnC,EAAUr4B,EAAIM,YAClDN,EAAI64B,SAAW,IAAM74B,EAAI64B,UAQtBlB,EAAS33B,EAAIya,KAAMza,EAAIM,YAC1BN,EAAIkd,KAAOld,EAAImd,SACfnd,EAAIya,KAAO,IAMbza,EAAIy5B,SAAWz5B,EAAI05B,SAAW,GAE1B15B,EAAIyf,SACN1a,EAAQ/E,EAAIyf,KAAKtwB,QAAQ,OAGvB6Q,EAAIy5B,SAAWz5B,EAAIyf,KAAKlxB,MAAM,EAAGwW,GACjC/E,EAAIy5B,SAAWr+B,mBAAmBF,mBAAmB8E,EAAIy5B,WAEzDz5B,EAAI05B,SAAW15B,EAAIyf,KAAKlxB,MAAMwW,EAAQ,GACtC/E,EAAI05B,SAAWt+B,mBAAmBF,mBAAmB8E,EAAI05B,YAEzD15B,EAAIy5B,SAAWr+B,mBAAmBF,mBAAmB8E,EAAIyf,OAG3Dzf,EAAIyf,KAAOzf,EAAI05B,SAAW15B,EAAIy5B,SAAU,IAAKz5B,EAAI05B,SAAW15B,EAAIy5B,UAGlEz5B,EAAI25B,OAA0B,UAAjB35B,EAAIM,UAAwB+3B,EAAUr4B,EAAIM,WAAaN,EAAIkd,KACpEld,EAAIM,SAAU,KAAMN,EAAIkd,KACxB,OAKJld,EAAI84B,KAAO94B,EAAIxS,UACjB,CA2KAorC,EAAI7sC,UAAY,CAAE+W,IA5JlB,SAAapE,EAAM1S,EAAO+Q,GACxB,IAAIiD,EAAMlV,KAEV,OAAQ4T,GACN,IAAK,QACC,iBAAoB1S,GAASA,EAAMyC,SACrCzC,GAAS+Q,GAAM66B,EAAGv3B,OAAOrU,IAG3BgU,EAAItB,GAAQ1S,EACZ,MAEF,IAAK,OACHgU,EAAItB,GAAQ1S,EAEP2rC,EAAS3rC,EAAOgU,EAAIM,UAGdtU,IACTgU,EAAIkd,KAAOld,EAAImd,SAAU,IAAKnxB,IAH9BgU,EAAIkd,KAAOld,EAAImd,SACfnd,EAAItB,GAAQ,IAKd,MAEF,IAAK,WACHsB,EAAItB,GAAQ1S,EAERgU,EAAIya,OAAMzuB,GAAS,IAAKgU,EAAIya,MAChCza,EAAIkd,KAAOlxB,EACX,MAEF,IAAK,OACHgU,EAAItB,GAAQ1S,EAERyuB,EAAKnqB,KAAKtE,IACZA,EAAQA,EAAMoF,MAAM,KACpB4O,EAAIya,KAAOzuB,EAAMuD,MACjByQ,EAAImd,SAAWnxB,EAAMO,KAAK,OAE1ByT,EAAImd,SAAWnxB,EACfgU,EAAIya,KAAO,IAGb,MAEF,IAAK,WACHza,EAAIM,SAAWtU,EAAMob,cACrBpH,EAAI+3B,SAAWh7B,EACf,MAEF,IAAK,WACL,IAAK,OACH,GAAI/Q,EAAO,CACT,IAAI4tC,EAAgB,aAATl7B,EAAsB,IAAM,IACvCsB,EAAItB,GAAQ1S,EAAM6E,OAAO,KAAO+oC,EAAOA,EAAO5tC,EAAQA,CACxD,MACEgU,EAAItB,GAAQ1S,EAEd,MAEF,IAAK,WACL,IAAK,WACHgU,EAAItB,GAAQtD,mBAAmBpP,GAC/B,MAEF,IAAK,OACH,IAAI+Y,EAAQ/Y,EAAMmD,QAAQ,MAErB4V,GACH/E,EAAIy5B,SAAWztC,EAAMuC,MAAM,EAAGwW,GAC9B/E,EAAIy5B,SAAWr+B,mBAAmBF,mBAAmB8E,EAAIy5B,WAEzDz5B,EAAI05B,SAAW1tC,EAAMuC,MAAMwW,EAAQ,GACnC/E,EAAI05B,SAAWt+B,mBAAmBF,mBAAmB8E,EAAI05B,YAEzD15B,EAAIy5B,SAAWr+B,mBAAmBF,mBAAmBlP,IAI3D,IAAK,IAAIqD,EAAI,EAAGA,EAAI8oC,EAAM1pC,OAAQY,IAAK,CACrC,IAAIwqC,EAAM1B,EAAM9oC,GAEZwqC,EAAI,KAAI75B,EAAI65B,EAAI,IAAM75B,EAAI65B,EAAI,IAAIzyB,cACxC,CAUA,OARApH,EAAIyf,KAAOzf,EAAI05B,SAAW15B,EAAIy5B,SAAU,IAAKz5B,EAAI05B,SAAW15B,EAAIy5B,SAEhEz5B,EAAI25B,OAA0B,UAAjB35B,EAAIM,UAAwB+3B,EAAUr4B,EAAIM,WAAaN,EAAIkd,KACpEld,EAAIM,SAAU,KAAMN,EAAIkd,KACxB,OAEJld,EAAI84B,KAAO94B,EAAIxS,WAERwS,CACT,EA8D4BxS,SArD5B,SAAkBklB,GACXA,GAAa,mBAAsBA,IAAWA,EAAYklB,EAAGllB,WAElE,IAAI6H,EACAva,EAAMlV,KACNoyB,EAAOld,EAAIkd,KACX5c,EAAWN,EAAIM,SAEfA,GAAqD,MAAzCA,EAASzP,OAAOyP,EAAS7R,OAAS,KAAY6R,GAAY,KAE1E,IAAItT,EACFsT,GACEN,EAAIM,UAAYN,EAAI+3B,SAAYM,EAAUr4B,EAAIM,UAAY,KAAO,IAsCrE,OApCIN,EAAIy5B,UACNzsC,GAAUgT,EAAIy5B,SACVz5B,EAAI05B,WAAU1sC,GAAU,IAAKgT,EAAI05B,UACrC1sC,GAAU,KACDgT,EAAI05B,UACb1sC,GAAU,IAAKgT,EAAI05B,SACnB1sC,GAAU,KAEO,UAAjBgT,EAAIM,UACJ+3B,EAAUr4B,EAAIM,YACb4c,GACgB,MAAjBld,EAAI64B,WAMJ7rC,GAAU,MAQkB,MAA1BkwB,EAAKA,EAAKzuB,OAAS,IAAegsB,EAAKnqB,KAAK0P,EAAImd,YAAcnd,EAAIya,QACpEyC,GAAQ,KAGVlwB,GAAUkwB,EAAOld,EAAI64B,UAErBte,EAAQ,iBAAoBva,EAAIua,MAAQ7H,EAAU1S,EAAIua,OAASva,EAAIua,SACxDvtB,GAAU,MAAQutB,EAAM1pB,OAAO,GAAK,IAAK0pB,EAAQA,GAExDva,EAAIw4B,OAAMxrC,GAAUgT,EAAIw4B,MAErBxrC,CACT,GAQA4rC,EAAII,gBAAkBA,EACtBJ,EAAI5b,SAAWyb,EACfG,EAAIV,SAAWA,EACfU,EAAIhB,GAAKA,EAETpoC,EAAOC,QAAUmpC,C,4BCnjBjB,IAAI7oB,EAAW,EAAQ,MAEvB,SAAS6oB,IACP9tC,KAAKwV,SAAW,KAChBxV,KAAKitC,QAAU,KACfjtC,KAAK20B,KAAO,KACZ30B,KAAKoyB,KAAO,KACZpyB,KAAK2vB,KAAO,KACZ3vB,KAAKqyB,SAAW,KAChBryB,KAAK0tC,KAAO,KACZ1tC,KAAKmyB,OAAS,KACdnyB,KAAKyvB,MAAQ,KACbzvB,KAAK+tC,SAAW,KAChB/tC,KAAKyZ,KAAO,KACZzZ,KAAKguC,KAAO,IACd,CAQA,IAAIgB,EAAkB,oBACpBC,EAAc,WAGdC,EAAoB,oCAWpBC,EAAS,CACP,IAAK,IAAK,IAAK,KAAM,IAAK,KAC1B78B,OAPO,CACP,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,OASvC88B,EAAa,CAAC,KAAM98B,OAAO68B,GAO3BE,EAAe,CACb,IAAK,IAAK,IAAK,IAAK,KACpB/8B,OAAO88B,GACTE,EAAkB,CAChB,IAAK,IAAK,KAGZC,EAAsB,yBACtBC,EAAoB,+BAEpBC,EAAiB,CACfC,YAAY,EACZ,eAAe,GAGjBC,EAAmB,CACjBD,YAAY,EACZ,eAAe,GAGjBE,EAAkB,CAChB36B,MAAM,EACNE,OAAO,EACP06B,KAAK,EACLC,QAAQ,EACRC,MAAM,EACN,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,GAEXC,EAAc,EAAQ,OAExB,SAASC,EAAS/6B,EAAKg7B,EAAkBC,GACvC,GAAIj7B,GAAsB,iBAARA,GAAoBA,aAAe44B,EAAO,OAAO54B,EAEnE,IAAIk7B,EAAI,IAAItC,EAEZ,OADAsC,EAAE76B,MAAML,EAAKg7B,EAAkBC,GACxBC,CACT,CAEAtC,EAAI7sC,UAAUsU,MAAQ,SAAUL,EAAKg7B,EAAkBC,GACrD,GAAmB,iBAARj7B,EACT,MAAM,IAAI/I,UAAU,gDAAkD+I,GAQxE,IAAIm7B,EAAan7B,EAAI7Q,QAAQ,KAC3BisC,GAA2B,IAAhBD,GAAqBA,EAAan7B,EAAI7Q,QAAQ,KAAO,IAAM,IACtEksC,EAASr7B,EAAI5O,MAAMgqC,GAErBC,EAAO,GAAKA,EAAO,GAAGvqC,QADP,MAC2B,KAG1C,IAAImoC,EAFJj5B,EAAMq7B,EAAO9uC,KAAK6uC,GAUlB,GAFAnC,EAAOA,EAAKtqB,QAEPssB,GAA+C,IAA1Bj7B,EAAI5O,MAAM,KAAK3C,OAAc,CAErD,IAAI6sC,EAAatB,EAAkBt8B,KAAKu7B,GACxC,GAAIqC,EAeF,OAdAxwC,KAAKyZ,KAAO00B,EACZnuC,KAAKguC,KAAOG,EACZnuC,KAAK+tC,SAAWyC,EAAW,GACvBA,EAAW,IACbxwC,KAAKmyB,OAASqe,EAAW,GAEvBxwC,KAAKyvB,MADHygB,EACWF,EAAYz6B,MAAMvV,KAAKmyB,OAAO/rB,OAAO,IAErCpG,KAAKmyB,OAAO/rB,OAAO,IAEzB8pC,IACTlwC,KAAKmyB,OAAS,GACdnyB,KAAKyvB,MAAQ,CAAC,GAETzvB,IAEX,CAEA,IAAIywC,EAAQzB,EAAgBp8B,KAAKu7B,GACjC,GAAIsC,EAAO,CAET,IAAIC,GADJD,EAAQA,EAAM,IACSn0B,cACvBtc,KAAKwV,SAAWk7B,EAChBvC,EAAOA,EAAK/nC,OAAOqqC,EAAM9sC,OAC3B,CAQA,GAAIwsC,GAAqBM,GAAStC,EAAKpqC,MAAM,sBAAuB,CAClE,IAAIkpC,EAAgC,OAAtBkB,EAAK/nC,OAAO,EAAG,IACzB6mC,GAAawD,GAASd,EAAiBc,KACzCtC,EAAOA,EAAK/nC,OAAO,GACnBpG,KAAKitC,SAAU,EAEnB,CAEA,IAAK0C,EAAiBc,KAAWxD,GAAYwD,IAAUb,EAAgBa,IAAU,CAuB/E,IADA,IAUI9b,EAAMgc,EAVNC,GAAW,EACNrsC,EAAI,EAAGA,EAAI+qC,EAAgB3rC,OAAQY,KAE7B,KADTssC,EAAM1C,EAAK9pC,QAAQirC,EAAgB/qC,QACP,IAAbqsC,GAAkBC,EAAMD,KAAYA,EAAUC,GA+BnE,KARgB,KAbdF,GAFe,IAAbC,EAEOzC,EAAKpnB,YAAY,KAMjBonB,EAAKpnB,YAAY,IAAK6pB,MAQ/Bjc,EAAOwZ,EAAK1qC,MAAM,EAAGktC,GACrBxC,EAAOA,EAAK1qC,MAAMktC,EAAS,GAC3B3wC,KAAK20B,KAAOvkB,mBAAmBukB,IAIjCic,GAAW,EACFrsC,EAAI,EAAGA,EAAI8qC,EAAa1rC,OAAQY,IAAK,CAC5C,IAAIssC,GACS,KADTA,EAAM1C,EAAK9pC,QAAQgrC,EAAa9qC,QACJ,IAAbqsC,GAAkBC,EAAMD,KAAYA,EAAUC,EACnE,EAEiB,IAAbD,IAAkBA,EAAUzC,EAAKxqC,QAErC3D,KAAKoyB,KAAO+b,EAAK1qC,MAAM,EAAGmtC,GAC1BzC,EAAOA,EAAK1qC,MAAMmtC,GAGlB5wC,KAAK8wC,YAML9wC,KAAKqyB,SAAWryB,KAAKqyB,UAAY,GAMjC,IAAI0e,EAAoC,MAArB/wC,KAAKqyB,SAAS,IAA0D,MAA5CryB,KAAKqyB,SAASryB,KAAKqyB,SAAS1uB,OAAS,GAGpF,IAAKotC,EAEH,IADA,IAAIC,EAAYhxC,KAAKqyB,SAAS/rB,MAAM,MACpByb,GAAPxd,EAAI,EAAOysC,EAAUrtC,QAAQY,EAAIwd,EAAGxd,IAAK,CAChD,IAAIqP,EAAOo9B,EAAUzsC,GACrB,GAAKqP,IACAA,EAAK7P,MAAMwrC,GAAsB,CAEpC,IADA,IAAI0B,EAAU,GACLhoC,EAAI,EAAGlB,EAAI6L,EAAKjQ,OAAQsF,EAAIlB,EAAGkB,IAClC2K,EAAK9N,WAAWmD,GAAK,IAMvBgoC,GAAW,IAEXA,GAAWr9B,EAAK3K,GAIpB,IAAKgoC,EAAQltC,MAAMwrC,GAAsB,CACvC,IAAI2B,EAAaF,EAAUvtC,MAAM,EAAGc,GAChC4sC,EAAUH,EAAUvtC,MAAMc,EAAI,GAC9B6sC,EAAMx9B,EAAK7P,MAAMyrC,GACjB4B,IACFF,EAAW1sC,KAAK4sC,EAAI,IACpBD,EAAQlR,QAAQmR,EAAI,KAElBD,EAAQxtC,SACVwqC,EAAO,IAAMgD,EAAQ1vC,KAAK,KAAO0sC,GAEnCnuC,KAAKqyB,SAAW6e,EAAWzvC,KAAK,KAChC,KACF,CACF,CACF,CAGEzB,KAAKqyB,SAAS1uB,OAjOH,IAkOb3D,KAAKqyB,SAAW,GAGhBryB,KAAKqyB,SAAWryB,KAAKqyB,SAAS/V,cAG3By0B,IAOH/wC,KAAKqyB,SAAWpN,EAASosB,QAAQrxC,KAAKqyB,WAGxC,IAAIjrB,EAAIpH,KAAK2vB,KAAO,IAAM3vB,KAAK2vB,KAAO,GAClC2hB,EAAItxC,KAAKqyB,UAAY,GACzBryB,KAAKoyB,KAAOkf,EAAIlqC,EAChBpH,KAAKguC,MAAQhuC,KAAKoyB,KAMd2e,IACF/wC,KAAKqyB,SAAWryB,KAAKqyB,SAASjsB,OAAO,EAAGpG,KAAKqyB,SAAS1uB,OAAS,GAC/C,MAAZwqC,EAAK,KACPA,EAAO,IAAMA,GAGnB,CAMA,IAAKsB,EAAeiB,GAOlB,IAASnsC,EAAI,EAAGwd,EAAIqtB,EAAWzrC,OAAQY,EAAIwd,EAAGxd,IAAK,CACjD,IAAIgtC,EAAKnC,EAAW7qC,GACpB,IAA0B,IAAtB4pC,EAAK9pC,QAAQktC,GAAjB,CACA,IAAIC,EAAMlhC,mBAAmBihC,GACzBC,IAAQD,IACVC,EAAMxiB,OAAOuiB,IAEfpD,EAAOA,EAAK7nC,MAAMirC,GAAI9vC,KAAK+vC,EALc,CAM3C,CAIF,IAAI9D,EAAOS,EAAK9pC,QAAQ,MACV,IAAVqpC,IAEF1tC,KAAK0tC,KAAOS,EAAK/nC,OAAOsnC,GACxBS,EAAOA,EAAK1qC,MAAM,EAAGiqC,IAEvB,IAAI+D,EAAKtD,EAAK9pC,QAAQ,KAmBtB,IAlBY,IAARotC,GACFzxC,KAAKmyB,OAASgc,EAAK/nC,OAAOqrC,GAC1BzxC,KAAKyvB,MAAQ0e,EAAK/nC,OAAOqrC,EAAK,GAC1BvB,IACFlwC,KAAKyvB,MAAQugB,EAAYz6B,MAAMvV,KAAKyvB,QAEtC0e,EAAOA,EAAK1qC,MAAM,EAAGguC,IACZvB,IAETlwC,KAAKmyB,OAAS,GACdnyB,KAAKyvB,MAAQ,CAAC,GAEZ0e,IAAQnuC,KAAK+tC,SAAWI,GACxByB,EAAgBc,IAAe1wC,KAAKqyB,WAAaryB,KAAK+tC,WACxD/tC,KAAK+tC,SAAW,KAId/tC,KAAK+tC,UAAY/tC,KAAKmyB,OAAQ,CAC5B/qB,EAAIpH,KAAK+tC,UAAY,GAAzB,IACI9vB,EAAIje,KAAKmyB,QAAU,GACvBnyB,KAAKyZ,KAAOrS,EAAI6W,CAClB,CAIA,OADAje,KAAKguC,KAAOhuC,KAAKykB,SACVzkB,IACT,EAeA8tC,EAAI7sC,UAAUwjB,OAAS,WACrB,IAAIkQ,EAAO30B,KAAK20B,MAAQ,GACpBA,IAEFA,GADAA,EAAOrkB,mBAAmBqkB,IACd3uB,QAAQ,OAAQ,KAC5B2uB,GAAQ,KAGV,IAAInf,EAAWxV,KAAKwV,UAAY,GAC9Bu4B,EAAW/tC,KAAK+tC,UAAY,GAC5BL,EAAO1tC,KAAK0tC,MAAQ,GACpBtb,GAAO,EACP3C,EAAQ,GAENzvB,KAAKoyB,KACPA,EAAOuC,EAAO30B,KAAKoyB,KACVpyB,KAAKqyB,WACdD,EAAOuC,IAAwC,IAAhC30B,KAAKqyB,SAAShuB,QAAQ,KAAcrE,KAAKqyB,SAAW,IAAMryB,KAAKqyB,SAAW,KACrFryB,KAAK2vB,OACPyC,GAAQ,IAAMpyB,KAAK2vB,OAInB3vB,KAAKyvB,OAA+B,iBAAfzvB,KAAKyvB,OAAsB1uB,OAAO2T,KAAK1U,KAAKyvB,OAAO9rB,SAC1E8rB,EAAQugB,EAAYpoB,UAAU5nB,KAAKyvB,MAAO,CACxCxD,YAAa,SACbD,gBAAgB,KAIpB,IAAImG,EAASnyB,KAAKmyB,QAAW1C,GAAU,IAAMA,GAAW,GAuBxD,OArBIja,GAAoC,MAAxBA,EAASpP,QAAQ,KAAcoP,GAAY,KAMvDxV,KAAKitC,WAAaz3B,GAAYo6B,EAAgBp6B,MAAuB,IAAT4c,GAC9DA,EAAO,MAAQA,GAAQ,IACnB2b,GAAmC,MAAvBA,EAAShoC,OAAO,KAAcgoC,EAAW,IAAMA,IACrD3b,IACVA,EAAO,IAGLsb,GAA2B,MAAnBA,EAAK3nC,OAAO,KAAc2nC,EAAO,IAAMA,GAC/Cvb,GAA+B,MAArBA,EAAOpsB,OAAO,KAAcosB,EAAS,IAAMA,GAOlD3c,EAAW4c,GALlB2b,EAAWA,EAAS/nC,QAAQ,QAAS,SAAUjC,GAC7C,OAAOuM,mBAAmBvM,EAC5B,KACAouB,EAASA,EAAOnsB,QAAQ,IAAK,QAEgB0nC,CAC/C,EAMAI,EAAI7sC,UAAUiiB,QAAU,SAAUS,GAChC,OAAO3jB,KAAK0xC,cAAczB,EAAStsB,GAAU,GAAO,IAAOc,QAC7D,EAOAqpB,EAAI7sC,UAAUywC,cAAgB,SAAU/tB,GACtC,GAAwB,iBAAbA,EAAuB,CAChC,IAAIguB,EAAM,IAAI7D,EACd6D,EAAIp8B,MAAMoO,GAAU,GAAO,GAC3BA,EAAWguB,CACb,CAIA,IAFA,IAAIzvC,EAAS,IAAI4rC,EACb8D,EAAQ7wC,OAAO2T,KAAK1U,MACf6xC,EAAK,EAAGA,EAAKD,EAAMjuC,OAAQkuC,IAAM,CACxC,IAAIC,EAAOF,EAAMC,GACjB3vC,EAAO4vC,GAAQ9xC,KAAK8xC,EACtB,CASA,GAHA5vC,EAAOwrC,KAAO/pB,EAAS+pB,KAGD,KAAlB/pB,EAASqqB,KAEX,OADA9rC,EAAO8rC,KAAO9rC,EAAOuiB,SACdviB,EAIT,GAAIyhB,EAASspB,UAAYtpB,EAASnO,SAAU,CAG1C,IADA,IAAIu8B,EAAQhxC,OAAO2T,KAAKiP,GACfquB,EAAK,EAAGA,EAAKD,EAAMpuC,OAAQquC,IAAM,CACxC,IAAIC,EAAOF,EAAMC,GACJ,aAATC,IAAuB/vC,EAAO+vC,GAAQtuB,EAASsuB,GACrD,CASA,OANIrC,EAAgB1tC,EAAOsT,WAAatT,EAAOmwB,WAAanwB,EAAO6rC,WACjE7rC,EAAO6rC,SAAW,IAClB7rC,EAAOuX,KAAOvX,EAAO6rC,UAGvB7rC,EAAO8rC,KAAO9rC,EAAOuiB,SACdviB,CACT,CAEA,GAAIyhB,EAASnO,UAAYmO,EAASnO,WAAatT,EAAOsT,SAAU,CAW9D,IAAKo6B,EAAgBjsB,EAASnO,UAAW,CAEvC,IADA,IAAId,EAAO3T,OAAO2T,KAAKiP,GACd5J,EAAI,EAAGA,EAAIrF,EAAK/Q,OAAQoW,IAAK,CACpC,IAAIhS,EAAI2M,EAAKqF,GACb7X,EAAO6F,GAAK4b,EAAS5b,EACvB,CAEA,OADA7F,EAAO8rC,KAAO9rC,EAAOuiB,SACdviB,CACT,CAGA,GADAA,EAAOsT,SAAWmO,EAASnO,SACtBmO,EAASyO,MAASud,EAAiBhsB,EAASnO,UAS/CtT,EAAO6rC,SAAWpqB,EAASoqB,aAT+B,CAE1D,IADA,IAAImE,GAAWvuB,EAASoqB,UAAY,IAAIznC,MAAM,KACvC4rC,EAAQvuC,UAAYggB,EAASyO,KAAO8f,EAAQ5qC,WAC9Cqc,EAASyO,OAAQzO,EAASyO,KAAO,IACjCzO,EAAS0O,WAAY1O,EAAS0O,SAAW,IAC3B,KAAf6f,EAAQ,IAAaA,EAAQjS,QAAQ,IACrCiS,EAAQvuC,OAAS,GAAKuuC,EAAQjS,QAAQ,IAC1C/9B,EAAO6rC,SAAWmE,EAAQzwC,KAAK,IACjC,CAUA,GAPAS,EAAOiwB,OAASxO,EAASwO,OACzBjwB,EAAOutB,MAAQ9L,EAAS8L,MACxBvtB,EAAOkwB,KAAOzO,EAASyO,MAAQ,GAC/BlwB,EAAOyyB,KAAOhR,EAASgR,KACvBzyB,EAAOmwB,SAAW1O,EAAS0O,UAAY1O,EAASyO,KAChDlwB,EAAOytB,KAAOhM,EAASgM,KAEnBztB,EAAO6rC,UAAY7rC,EAAOiwB,OAAQ,CACpC,IAAI/qB,EAAIlF,EAAO6rC,UAAY,GACvB9vB,EAAI/b,EAAOiwB,QAAU,GACzBjwB,EAAOuX,KAAOrS,EAAI6W,CACpB,CAGA,OAFA/b,EAAO+qC,QAAU/qC,EAAO+qC,SAAWtpB,EAASspB,QAC5C/qC,EAAO8rC,KAAO9rC,EAAOuiB,SACdviB,CACT,CAEA,IAAIiwC,EAAcjwC,EAAO6rC,UAA0C,MAA9B7rC,EAAO6rC,SAAShoC,OAAO,GAC1DqsC,EAAWzuB,EAASyO,MAAQzO,EAASoqB,UAA4C,MAAhCpqB,EAASoqB,SAAShoC,OAAO,GAC1EssC,EAAaD,GAAYD,GAAgBjwC,EAAOkwB,MAAQzO,EAASoqB,SACjEuE,EAAgBD,EAChBE,EAAUrwC,EAAO6rC,UAAY7rC,EAAO6rC,SAASznC,MAAM,MAAQ,GAE3DksC,GADAN,EAAUvuB,EAASoqB,UAAYpqB,EAASoqB,SAASznC,MAAM,MAAQ,GACnDpE,EAAOsT,WAAao6B,EAAgB1tC,EAAOsT,WA2BzD,GAlBIg9B,IACFtwC,EAAOmwB,SAAW,GAClBnwB,EAAOytB,KAAO,KACVztB,EAAOkwB,OACU,KAAfmgB,EAAQ,GAAaA,EAAQ,GAAKrwC,EAAOkwB,KAAemgB,EAAQtS,QAAQ/9B,EAAOkwB,OAErFlwB,EAAOkwB,KAAO,GACVzO,EAASnO,WACXmO,EAAS0O,SAAW,KACpB1O,EAASgM,KAAO,KACZhM,EAASyO,OACQ,KAAf8f,EAAQ,GAAaA,EAAQ,GAAKvuB,EAASyO,KAAe8f,EAAQjS,QAAQtc,EAASyO,OAEzFzO,EAASyO,KAAO,MAElBigB,EAAaA,IAA8B,KAAfH,EAAQ,IAA4B,KAAfK,EAAQ,KAGvDH,EAEFlwC,EAAOkwB,KAAOzO,EAASyO,MAA0B,KAAlBzO,EAASyO,KAAczO,EAASyO,KAAOlwB,EAAOkwB,KAC7ElwB,EAAOmwB,SAAW1O,EAAS0O,UAAkC,KAAtB1O,EAAS0O,SAAkB1O,EAAS0O,SAAWnwB,EAAOmwB,SAC7FnwB,EAAOiwB,OAASxO,EAASwO,OACzBjwB,EAAOutB,MAAQ9L,EAAS8L,MACxB8iB,EAAUL,OAEL,GAAIA,EAAQvuC,OAKZ4uC,IAAWA,EAAU,IAC1BA,EAAQ9tC,MACR8tC,EAAUA,EAAQjgC,OAAO4/B,GACzBhwC,EAAOiwB,OAASxO,EAASwO,OACzBjwB,EAAOutB,MAAQ9L,EAAS8L,WACnB,GAAuB,MAAnB9L,EAASwO,OA4BlB,OAtBIqgB,IACFtwC,EAAOkwB,KAAOmgB,EAAQjrC,QACtBpF,EAAOmwB,SAAWnwB,EAAOkwB,MAMrBqgB,KAAavwC,EAAOkwB,MAAQlwB,EAAOkwB,KAAK/tB,QAAQ,KAAO,IAAInC,EAAOkwB,KAAK9rB,MAAM,QAE/EpE,EAAOyyB,KAAO8d,EAAWnrC,QACzBpF,EAAOmwB,SAAWogB,EAAWnrC,QAC7BpF,EAAOkwB,KAAOlwB,EAAOmwB,WAGzBnwB,EAAOiwB,OAASxO,EAASwO,OACzBjwB,EAAOutB,MAAQ9L,EAAS8L,MAEA,OAApBvtB,EAAO6rC,UAAuC,OAAlB7rC,EAAOiwB,SACrCjwB,EAAOuX,MAAQvX,EAAO6rC,SAAW7rC,EAAO6rC,SAAW,KAAO7rC,EAAOiwB,OAASjwB,EAAOiwB,OAAS,KAE5FjwB,EAAO8rC,KAAO9rC,EAAOuiB,SACdviB,EAGT,IAAKqwC,EAAQ5uC,OAaX,OARAzB,EAAO6rC,SAAW,KAEd7rC,EAAOiwB,OACTjwB,EAAOuX,KAAO,IAAMvX,EAAOiwB,OAE3BjwB,EAAOuX,KAAO,KAEhBvX,EAAO8rC,KAAO9rC,EAAOuiB,SACdviB,EAgBT,IARA,IAAIiR,EAAOo/B,EAAQ9uC,OAAO,GAAG,GACzBivC,GAAoBxwC,EAAOkwB,MAAQzO,EAASyO,MAAQmgB,EAAQ5uC,OAAS,KAAgB,MAATwP,GAAyB,OAATA,IAA2B,KAATA,EAM9Gu7B,EAAK,EACAnqC,EAAIguC,EAAQ5uC,OAAQY,GAAK,EAAGA,IAEtB,OADb4O,EAAOo/B,EAAQhuC,IAEbguC,EAAQ//B,OAAOjO,EAAG,GACA,OAAT4O,GACTo/B,EAAQ//B,OAAOjO,EAAG,GAClBmqC,KACSA,IACT6D,EAAQ//B,OAAOjO,EAAG,GAClBmqC,KAKJ,IAAK2D,IAAeC,EAClB,KAAO5D,IAAMA,EACX6D,EAAQtS,QAAQ,OAIhBoS,GAA6B,KAAfE,EAAQ,IAAeA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAGxsC,OAAO,IACvEwsC,EAAQtS,QAAQ,IAGdyS,GAAsD,MAAjCH,EAAQ9wC,KAAK,KAAK2E,QAAQ,IACjDmsC,EAAQ/tC,KAAK,IAGf,IAWMiuC,EAXFjvB,EAA4B,KAAf+uB,EAAQ,IAAcA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAGxsC,OAAO,GAuCvE,OApCIysC,IACFtwC,EAAOmwB,SAAW7O,EAAa,GAAK+uB,EAAQ5uC,OAAS4uC,EAAQjrC,QAAU,GACvEpF,EAAOkwB,KAAOlwB,EAAOmwB,UAMjBogB,KAAavwC,EAAOkwB,MAAQlwB,EAAOkwB,KAAK/tB,QAAQ,KAAO,IAAInC,EAAOkwB,KAAK9rB,MAAM,QAE/EpE,EAAOyyB,KAAO8d,EAAWnrC,QACzBpF,EAAOmwB,SAAWogB,EAAWnrC,QAC7BpF,EAAOkwB,KAAOlwB,EAAOmwB,YAIzBggB,EAAaA,GAAenwC,EAAOkwB,MAAQmgB,EAAQ5uC,UAEhC6f,GACjB+uB,EAAQtS,QAAQ,IAGdsS,EAAQ5uC,OAAS,EACnBzB,EAAO6rC,SAAWwE,EAAQ9wC,KAAK,MAE/BS,EAAO6rC,SAAW,KAClB7rC,EAAOuX,KAAO,MAIQ,OAApBvX,EAAO6rC,UAAuC,OAAlB7rC,EAAOiwB,SACrCjwB,EAAOuX,MAAQvX,EAAO6rC,SAAW7rC,EAAO6rC,SAAW,KAAO7rC,EAAOiwB,OAASjwB,EAAOiwB,OAAS,KAE5FjwB,EAAOyyB,KAAOhR,EAASgR,MAAQzyB,EAAOyyB,KACtCzyB,EAAO+qC,QAAU/qC,EAAO+qC,SAAWtpB,EAASspB,QAC5C/qC,EAAO8rC,KAAO9rC,EAAOuiB,SACdviB,CACT,EAEA4rC,EAAI7sC,UAAU6vC,UAAY,WACxB,IAAI1e,EAAOpyB,KAAKoyB,KACZzC,EAAOsf,EAAYr8B,KAAKwf,GACxBzC,IAEW,OADbA,EAAOA,EAAK,MAEV3vB,KAAK2vB,KAAOA,EAAKvpB,OAAO,IAE1BgsB,EAAOA,EAAKhsB,OAAO,EAAGgsB,EAAKzuB,OAASgsB,EAAKhsB,SAEvCyuB,IAAQpyB,KAAKqyB,SAAWD,EAC9B,EAEAztB,EAAQ4Q,MAAQ06B,EAChBtrC,EAAQue,QA/SR,SAAoBgL,EAAQvK,GAC1B,OAAOssB,EAAS/hB,GAAQ,GAAO,GAAMhL,QAAQS,EAC/C,EA8SAhf,EAAQ+sC,cAxSR,SAA0BxjB,EAAQvK,GAChC,OAAKuK,EACE+hB,EAAS/hB,GAAQ,GAAO,GAAMwjB,cAAc/tB,GAD7BA,CAExB,EAsSAhf,EAAQ8f,OArXR,SAAmB5Z,GAQjB,MADmB,iBAARA,IAAoBA,EAAMolC,EAASplC,IACxCA,aAAeijC,EACdjjC,EAAI4Z,SADyBqpB,EAAI7sC,UAAUwjB,OAAOjb,KAAKqB,EAEhE,EA6WAlG,EAAQmpC,IAAMA,C,WCvwBdppC,EAAOC,QAAU,SAAkBk3B,GACjC,OAAOA,GAAsB,iBAARA,GACI,mBAAbA,EAAI4O,MACS,mBAAb5O,EAAI8W,MACc,mBAAlB9W,EAAI+W,SAClB,C,4BCAA,IAAIC,EAAoB,EAAQ,OAC5BC,EAAsB,EAAQ,OAC9Bt7B,EAAkB,EAAQ,OAC1Bu7B,EAAe,EAAQ,OAE3B,SAASC,EAAYrzB,GACnB,OAAOA,EAAEnW,KAAKJ,KAAKuW,EACrB,CAEA,IAAIszB,EAAoC,oBAAXpjC,OACzBqjC,EAAoC,oBAAXvjC,OAEzBwjC,EAAiBH,EAAYjyC,OAAOE,UAAUyB,UAE9C0wC,EAAcJ,EAAY7hC,OAAOlQ,UAAUqW,SAC3C+7B,EAAcL,EAAYztC,OAAOtE,UAAUqW,SAC3Cg8B,EAAeN,EAAYhjC,QAAQ/O,UAAUqW,SAEjD,GAAI27B,EACF,IAAIM,EAAcP,EAAYnjC,OAAO5O,UAAUqW,SAGjD,GAAI47B,EACF,IAAIM,EAAcR,EAAYrjC,OAAO1O,UAAUqW,SAGjD,SAASm8B,EAAoBvyC,EAAOwyC,GAClC,GAAqB,iBAAVxyC,EACT,OAAO,EAET,IAEE,OADAwyC,EAAiBxyC,IACV,CACT,CAAE,MAAMyK,GACN,OAAO,CACT,CACF,CA4FA,SAASgoC,EAAczyC,GACrB,MAAiC,iBAA1BiyC,EAAejyC,EACxB,CAiBA,SAAS0yC,EAAc1yC,GACrB,MAAiC,iBAA1BiyC,EAAejyC,EACxB,CAgBA,SAAS2yC,EAAkB3yC,GACzB,MAAiC,qBAA1BiyC,EAAejyC,EACxB,CAgBA,SAAS4yC,EAAkB5yC,GACzB,MAAiC,qBAA1BiyC,EAAejyC,EACxB,CAUA,SAAS6yC,EAAsB7yC,GAC7B,MAAiC,yBAA1BiyC,EAAejyC,EACxB,CAKA,SAAS8yC,EAAc9yC,GACrB,MAA2B,oBAAhBwO,cAIJqkC,EAAsBE,QACzBF,EAAsB7yC,GACtBA,aAAiBwO,YACvB,CAGA,SAASwkC,EAAmBhzC,GAC1B,MAAiC,sBAA1BiyC,EAAejyC,EACxB,CAMA,SAASizC,EAAWjzC,GAClB,MAAwB,oBAAb+O,WAIJikC,EAAmBD,QACtBC,EAAmBhzC,GACnBA,aAAiB+O,SACvB,CA/LAtL,EAAQkuC,kBAAoBA,EAC5BluC,EAAQmuC,oBAAsBA,EAC9BnuC,EAAQouC,aAAeA,EAkBvBpuC,EAAQyvC,UAdR,SAAmB9uC,GAClB,MAEqB,oBAAZ+L,SACP/L,aAAiB+L,SAGP,OAAV/L,GACiB,iBAAVA,GACe,mBAAfA,EAAMoxB,MACU,mBAAhBpxB,EAAMk0B,KAGhB,EAaA70B,EAAQ0vC,kBAVR,SAA2BnzC,GACzB,MAA2B,oBAAhBwO,aAA+BA,YAAY4kC,OAC7C5kC,YAAY4kC,OAAOpzC,GAI1B6xC,EAAa7xC,IACbizC,EAAWjzC,EAEf,EAOAyD,EAAQ4vC,aAHR,SAAsBrzC,GACpB,MAAkC,eAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQ6vC,oBAHR,SAA6BtzC,GAC3B,MAAkC,sBAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQ8vC,cAHR,SAAuBvzC,GACrB,MAAkC,gBAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQ+vC,cAHR,SAAuBxzC,GACrB,MAAkC,gBAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQgwC,YAHR,SAAqBzzC,GACnB,MAAkC,cAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQiwC,aAHR,SAAsB1zC,GACpB,MAAkC,eAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQkwC,aAHR,SAAsB3zC,GACpB,MAAkC,eAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQmwC,eAHR,SAAwB5zC,GACtB,MAAkC,iBAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQowC,eAHR,SAAwB7zC,GACtB,MAAkC,iBAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQqwC,gBAHR,SAAyB9zC,GACvB,MAAkC,kBAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQswC,iBAHR,SAA0B/zC,GACxB,MAAkC,mBAA3BsW,EAAgBtW,EACzB,EAMAyyC,EAAcM,QACG,oBAAR/iC,KACPyiC,EAAc,IAAIziC,KAYpBvM,EAAQgc,MATR,SAAezf,GACb,MAAmB,oBAARgQ,MAIJyiC,EAAcM,QACjBN,EAAczyC,GACdA,aAAiBgQ,IACvB,EAMA0iC,EAAcK,QACG,oBAAR1iC,KACPqiC,EAAc,IAAIriC,KAWpB5M,EAAQmc,MATR,SAAe5f,GACb,MAAmB,oBAARqQ,MAIJqiC,EAAcK,QACjBL,EAAc1yC,GACdA,aAAiBqQ,IACvB,EAMAsiC,EAAkBI,QACG,oBAAZriC,SACPiiC,EAAkB,IAAIjiC,SAWxBjN,EAAQqc,UATR,SAAmB9f,GACjB,MAAuB,oBAAZ0Q,UAIJiiC,EAAkBI,QACrBJ,EAAkB3yC,GAClBA,aAAiB0Q,QACvB,EAMAkiC,EAAkBG,QACG,oBAAZniC,SACPgiC,EAAkB,IAAIhiC,SAKxBnN,EAAQuc,UAHR,SAAmBhgB,GACjB,OAAO4yC,EAAkB5yC,EAC3B,EAMA6yC,EAAsBE,QACG,oBAAhBvkC,aACPqkC,EAAsB,IAAIrkC,aAW5B/K,EAAQqvC,cAAgBA,EAKxBE,EAAmBD,QACM,oBAAhBvkC,aACa,oBAAbO,UACPikC,EAAmB,IAAIjkC,SAAS,IAAIP,YAAY,GAAI,EAAG,IAWzD/K,EAAQwvC,WAAaA,EAGrB,IAAIe,EAAqD,oBAAtB1jC,kBAAoCA,uBAAoBpU,EAC3F,SAAS+3C,EAA4Bj0C,GACnC,MAAiC,+BAA1BiyC,EAAejyC,EACxB,CACA,SAASk0C,EAAoBl0C,GAC3B,YAAqC,IAA1Bg0C,SAIwC,IAAxCC,EAA4BlB,UACrCkB,EAA4BlB,QAAUkB,EAA4B,IAAID,IAGjEC,EAA4BlB,QAC/BkB,EAA4Bj0C,GAC5BA,aAAiBg0C,EACvB,CA4BA,SAASG,EAAen0C,GACtB,OAAOuyC,EAAoBvyC,EAAOkyC,EACpC,CAGA,SAASkC,EAAep0C,GACtB,OAAOuyC,EAAoBvyC,EAAOmyC,EACpC,CAGA,SAASkC,EAAgBr0C,GACvB,OAAOuyC,EAAoBvyC,EAAOoyC,EACpC,CAGA,SAASkC,EAAet0C,GACtB,OAAO+xC,GAAmBQ,EAAoBvyC,EAAOqyC,EACvD,CAGA,SAASkC,EAAev0C,GACtB,OAAOgyC,GAAmBO,EAAoBvyC,EAAOsyC,EACvD,CAjDA7uC,EAAQywC,oBAAsBA,EAK9BzwC,EAAQ+wC,gBAHR,SAAyBx0C,GACvB,MAAiC,2BAA1BiyC,EAAejyC,EACxB,EAMAyD,EAAQgxC,cAHR,SAAuBz0C,GACrB,MAAiC,0BAA1BiyC,EAAejyC,EACxB,EAMAyD,EAAQixC,cAHR,SAAuB10C,GACrB,MAAiC,0BAA1BiyC,EAAejyC,EACxB,EAMAyD,EAAQkxC,kBAHR,SAA2B30C,GACzB,MAAiC,uBAA1BiyC,EAAejyC,EACxB,EAMAyD,EAAQmxC,4BAHR,SAAqC50C,GACnC,MAAiC,gCAA1BiyC,EAAejyC,EACxB,EAMAyD,EAAQ0wC,eAAiBA,EAKzB1wC,EAAQ2wC,eAAiBA,EAKzB3wC,EAAQ4wC,gBAAkBA,EAK1B5wC,EAAQ6wC,eAAiBA,EAKzB7wC,EAAQ8wC,eAAiBA,EAWzB9wC,EAAQoxC,iBATR,SAA0B70C,GACxB,OACEm0C,EAAen0C,IACfo0C,EAAep0C,IACfq0C,EAAgBr0C,IAChBs0C,EAAet0C,IACfu0C,EAAev0C,EAEnB,EASAyD,EAAQqxC,iBANR,SAA0B90C,GACxB,MAA6B,oBAAfqO,aACZykC,EAAc9yC,IACdk0C,EAAoBl0C,GAExB,EAGA,CAAC,UAAW,aAAc,2BAA2Bma,QAAQ,SAASvZ,GACpEf,OAAOC,eAAe2D,EAAS7C,EAAQ,CACrCuJ,YAAY,EACZnK,MAAO,WACL,MAAM,IAAI8D,MAAMlD,EAAS,gCAC3B,GAEJ,E,8BCxTIuoC,EAA4BtpC,OAAOspC,2BACrC,SAAmCx/B,GAGjC,IAFA,IAAI6J,EAAO3T,OAAO2T,KAAK7J,GACnBorC,EAAc,CAAC,EACV1xC,EAAI,EAAGA,EAAImQ,EAAK/Q,OAAQY,IAC/B0xC,EAAYvhC,EAAKnQ,IAAMxD,OAAOkT,yBAAyBpJ,EAAK6J,EAAKnQ,IAEnE,OAAO0xC,CACT,EAEEC,EAAe,WACnBvxC,EAAQ8f,OAAS,SAAS9E,GACxB,IAAK4B,EAAS5B,GAAI,CAEhB,IADA,IAAI8Q,EAAU,GACLlsB,EAAI,EAAGA,EAAImF,UAAU/F,OAAQY,IACpCksB,EAAQjsB,KAAK+a,EAAQ7V,UAAUnF,KAEjC,OAAOksB,EAAQhvB,KAAK,IACtB,CAEI8C,EAAI,EAmBR,IAnBA,IACIuF,EAAOJ,UACPR,EAAMY,EAAKnG,OACXV,EAAMsC,OAAOoa,GAAG3Z,QAAQkwC,EAAc,SAAS3tC,GACjD,GAAU,OAANA,EAAY,MAAO,IACvB,GAAIhE,GAAK2E,EAAK,OAAOX,EACrB,OAAQA,GACN,IAAK,KAAM,OAAOhD,OAAOuE,EAAKvF,MAC9B,IAAK,KAAM,OAAO4M,OAAOrH,EAAKvF,MAC9B,IAAK,KACH,IACE,OAAO0M,KAAK2W,UAAU9d,EAAKvF,KAC7B,CAAE,MAAOkQ,GACP,MAAO,YACT,CACF,QACE,OAAOlM,EAEb,GACSA,EAAIuB,EAAKvF,GAAIA,EAAI2E,EAAKX,EAAIuB,IAAOvF,GACpC4xC,EAAO5tC,KAAOoc,EAASpc,GACzBtF,GAAO,IAAMsF,EAEbtF,GAAO,IAAMsc,EAAQhX,GAGzB,OAAOtF,CACT,EAMA0B,EAAQ2gC,UAAY,SAASrzB,EAAIwpB,GAC/B,QAAuB,IAAZpY,IAAqD,IAA1BA,EAAQ+yB,cAC5C,OAAOnkC,EAIT,QAAuB,IAAZoR,EACT,OAAO,WACL,OAAO1e,EAAQ2gC,UAAUrzB,EAAIwpB,GAAKl0B,MAAMvH,KAAM0J,UAChD,EAGF,IAAI2sC,GAAS,EAeb,OAdA,WACE,IAAKA,EAAQ,CACX,GAAIhzB,EAAQizB,iBACV,MAAM,IAAItxC,MAAMy2B,GACPpY,EAAQkzB,iBACjBC,QAAQC,MAAMhb,GAEd+a,QAAQtxC,MAAMu2B,GAEhB4a,GAAS,CACX,CACA,OAAOpkC,EAAG1K,MAAMvH,KAAM0J,UACxB,CAGF,EAGA,IAAIgtC,EAAS,CAAC,EACVC,EAAgB,KAEpB,GAAItzB,EAAQuzB,IAAIC,WAAY,CAC1B,IAAIC,EAAWzzB,EAAQuzB,IAAIC,WAC3BC,EAAWA,EAAS9wC,QAAQ,qBAAsB,QAC/CA,QAAQ,MAAO,MACfA,QAAQ,KAAM,OACdoW,cACHu6B,EAAgB,IAAIzzC,OAAO,IAAM4zC,EAAW,IAAK,IACnD,CA0BA,SAASv3B,EAAQ1U,EAAKsT,GAEpB,IAAI44B,EAAM,CACRp4B,KAAM,GACNq4B,QAASC,GAkBX,OAfIvtC,UAAU/F,QAAU,IAAGozC,EAAIr4B,MAAQhV,UAAU,IAC7CA,UAAU/F,QAAU,IAAGozC,EAAIG,OAASxtC,UAAU,IAC9C4X,EAAUnD,GAEZ44B,EAAII,WAAah5B,EACRA,GAETxZ,EAAQyyC,QAAQL,EAAK54B,GAGnBk5B,EAAYN,EAAII,cAAaJ,EAAII,YAAa,GAC9CE,EAAYN,EAAIr4B,SAAQq4B,EAAIr4B,MAAQ,GACpC24B,EAAYN,EAAIG,UAASH,EAAIG,QAAS,GACtCG,EAAYN,EAAIl4B,iBAAgBk4B,EAAIl4B,eAAgB,GACpDk4B,EAAIG,SAAQH,EAAIC,QAAUM,GACvBC,EAAYR,EAAKlsC,EAAKksC,EAAIr4B,MACnC,CAmCA,SAAS44B,EAAiBr0C,EAAKu0C,GAC7B,IAAIp5B,EAAQmB,EAAQk4B,OAAOD,GAE3B,OAAIp5B,EACK,KAAYmB,EAAQ23B,OAAO94B,GAAO,GAAK,IAAMnb,EAC7C,KAAYsc,EAAQ23B,OAAO94B,GAAO,GAAK,IAEvCnb,CAEX,CAGA,SAASg0C,EAAeh0C,EAAKu0C,GAC3B,OAAOv0C,CACT,CAcA,SAASs0C,EAAYR,EAAK71C,EAAOw2C,GAG/B,GAAIX,EAAIl4B,eACJ3d,GACAoyB,EAAWpyB,EAAMqe,UAEjBre,EAAMqe,UAAY5a,EAAQ4a,WAExBre,EAAMyW,aAAezW,EAAMyW,YAAY1W,YAAcC,GAAQ,CACjE,IAAImgC,EAAMngC,EAAMqe,QAAQm4B,EAAcX,GAItC,OAHKx1B,EAAS8f,KACZA,EAAMkW,EAAYR,EAAK1V,EAAKqW,IAEvBrW,CACT,CAGA,IAAIsW,EA+FN,SAAyBZ,EAAK71C,GAC5B,GAAIm2C,EAAYn2C,GACd,OAAO61C,EAAIC,QAAQ,YAAa,aAClC,GAAIz1B,EAASrgB,GAAQ,CACnB,IAAI02C,EAAS,IAAO3mC,KAAK2W,UAAU1mB,GAAO8E,QAAQ,SAAU,IAClBA,QAAQ,KAAM,OACdA,QAAQ,OAAQ,KAAO,IACjE,OAAO+wC,EAAIC,QAAQY,EAAQ,SAC7B,CACA,OAAIx2B,EAASlgB,GACJ61C,EAAIC,QAAQ,GAAK91C,EAAO,UAC7BogB,EAAUpgB,GACL61C,EAAIC,QAAQ,GAAK91C,EAAO,WAE7Bi1C,EAAOj1C,GACF61C,EAAIC,QAAQ,OAAQ,aAD7B,CAEF,CA/GkBa,CAAgBd,EAAK71C,GACrC,GAAIy2C,EACF,OAAOA,EAIT,IAAIjjC,EAAO3T,OAAO2T,KAAKxT,GACnB42C,EApCN,SAAqBlrC,GACnB,IAAI8gC,EAAO,CAAC,EAMZ,OAJA9gC,EAAMyO,QAAQ,SAASiO,EAAKzP,GAC1B6zB,EAAKpkB,IAAO,CACd,GAEOokB,CACT,CA4BoBqK,CAAYrjC,GAQ9B,GANIqiC,EAAII,aACNziC,EAAO3T,OAAO4T,oBAAoBzT,IAKhCuf,EAAQvf,KACJwT,EAAKrQ,QAAQ,YAAc,GAAKqQ,EAAKrQ,QAAQ,gBAAkB,GACrE,OAAO2zC,EAAY92C,GAIrB,GAAoB,IAAhBwT,EAAK/Q,OAAc,CACrB,GAAI2vB,EAAWpyB,GAAQ,CACrB,IAAI+D,EAAO/D,EAAM+D,KAAO,KAAO/D,EAAM+D,KAAO,GAC5C,OAAO8xC,EAAIC,QAAQ,YAAc/xC,EAAO,IAAK,UAC/C,CACA,GAAIuZ,EAAStd,GACX,OAAO61C,EAAIC,QAAQ9zC,OAAOjC,UAAUyB,SAAS8G,KAAKtI,GAAQ,UAE5D,GAAIugB,EAAOvgB,GACT,OAAO61C,EAAIC,QAAQ9mC,KAAKjP,UAAUyB,SAAS8G,KAAKtI,GAAQ,QAE1D,GAAIuf,EAAQvf,GACV,OAAO82C,EAAY92C,EAEvB,CAEA,IA2CI0E,EA3CAwZ,EAAO,GAAIxS,GAAQ,EAAOqrC,EAAS,CAAC,IAAK,KA6B7C,OA1BIj+B,EAAQ9Y,KACV0L,GAAQ,EACRqrC,EAAS,CAAC,IAAK,MAIb3kB,EAAWpyB,KAEbke,EAAO,cADCle,EAAM+D,KAAO,KAAO/D,EAAM+D,KAAO,IACf,KAIxBuZ,EAAStd,KACXke,EAAO,IAAMlc,OAAOjC,UAAUyB,SAAS8G,KAAKtI,IAI1CugB,EAAOvgB,KACTke,EAAO,IAAMlP,KAAKjP,UAAUi3C,YAAY1uC,KAAKtI,IAI3Cuf,EAAQvf,KACVke,EAAO,IAAM44B,EAAY92C,IAGP,IAAhBwT,EAAK/Q,QAAkBiJ,GAAyB,GAAhB1L,EAAMyC,OAItC+zC,EAAe,EACbl5B,EAAStd,GACJ61C,EAAIC,QAAQ9zC,OAAOjC,UAAUyB,SAAS8G,KAAKtI,GAAQ,UAEnD61C,EAAIC,QAAQ,WAAY,YAInCD,EAAIp4B,KAAKna,KAAKtD,GAIZ0E,EADEgH,EAsCN,SAAqBmqC,EAAK71C,EAAOw2C,EAAcI,EAAapjC,GAE1D,IADA,IAAI9O,EAAS,GACJrB,EAAI,EAAGwd,EAAI7gB,EAAMyC,OAAQY,EAAIwd,IAAKxd,EACrCgI,EAAerL,EAAOqE,OAAOhB,IAC/BqB,EAAOpB,KAAK2zC,EAAepB,EAAK71C,EAAOw2C,EAAcI,EACjDvyC,OAAOhB,IAAI,IAEfqB,EAAOpB,KAAK,IAShB,OANAkQ,EAAK2G,QAAQ,SAASjG,GACfA,EAAIrR,MAAM,UACb6B,EAAOpB,KAAK2zC,EAAepB,EAAK71C,EAAOw2C,EAAcI,EACjD1iC,GAAK,GAEb,GACOxP,CACT,CAtDawyC,CAAYrB,EAAK71C,EAAOw2C,EAAcI,EAAapjC,GAEnDA,EAAKpV,IAAI,SAAS8V,GACzB,OAAO+iC,EAAepB,EAAK71C,EAAOw2C,EAAcI,EAAa1iC,EAAKxI,EACpE,GAGFmqC,EAAIp4B,KAAKla,MA6GX,SAA8BmB,EAAQwZ,EAAM64B,GAQ1C,OANaryC,EAAOwoB,OAAO,SAAS/O,EAAMg5B,GAGxC,OADIA,EAAIh0C,QAAQ,MACTgb,EAAOg5B,EAAIryC,QAAQ,kBAAmB,IAAIrC,OAAS,CAC5D,EAAG,GAEU,GACJs0C,EAAO,IACG,KAAT74B,EAAc,GAAKA,EAAO,OAC3B,IACAxZ,EAAOnE,KAAK,SACZ,IACAw2C,EAAO,GAGTA,EAAO,GAAK74B,EAAO,IAAMxZ,EAAOnE,KAAK,MAAQ,IAAMw2C,EAAO,EACnE,CA7HSK,CAAqB1yC,EAAQwZ,EAAM64B,IAxBjCA,EAAO,GAAK74B,EAAO64B,EAAO,EAyBrC,CAsBA,SAASD,EAAY92C,GACnB,MAAO,IAAM8D,MAAM/D,UAAUyB,SAAS8G,KAAKtI,GAAS,GACtD,CAuBA,SAASi3C,EAAepB,EAAK71C,EAAOw2C,EAAcI,EAAa1iC,EAAKxI,GAClE,IAAI3H,EAAMhC,EAAKkI,EAsCf,IArCAA,EAAOpK,OAAOkT,yBAAyB/S,EAAOkU,IAAQ,CAAElU,MAAOA,EAAMkU,KAC5DjU,IAEL8B,EADEkI,EAAK6M,IACD++B,EAAIC,QAAQ,kBAAmB,WAE/BD,EAAIC,QAAQ,WAAY,WAG5B7rC,EAAK6M,MACP/U,EAAM8zC,EAAIC,QAAQ,WAAY,YAG7BzqC,EAAeurC,EAAa1iC,KAC/BnQ,EAAO,IAAMmQ,EAAM,KAEhBnS,IACC8zC,EAAIp4B,KAAKta,QAAQ8G,EAAKjK,OAAS,GAE/B+B,EADEkzC,EAAOuB,GACHH,EAAYR,EAAK5rC,EAAKjK,MAAO,MAE7Bq2C,EAAYR,EAAK5rC,EAAKjK,MAAOw2C,EAAe,IAE5CrzC,QAAQ,OAAS,IAErBpB,EADE2J,EACI3J,EAAIqD,MAAM,MAAMhH,IAAI,SAASi5C,GACjC,MAAO,KAAOA,CAChB,GAAG92C,KAAK,MAAMgC,MAAM,GAEd,KAAOR,EAAIqD,MAAM,MAAMhH,IAAI,SAASi5C,GACxC,MAAO,MAAQA,CACjB,GAAG92C,KAAK,OAIZwB,EAAM8zC,EAAIC,QAAQ,aAAc,YAGhCK,EAAYpyC,GAAO,CACrB,GAAI2H,GAASwI,EAAIrR,MAAM,SACrB,OAAOd,GAETgC,EAAOgM,KAAK2W,UAAU,GAAKxS,IAClBrR,MAAM,iCACbkB,EAAOA,EAAKxB,MAAM,GAAI,GACtBwB,EAAO8xC,EAAIC,QAAQ/xC,EAAM,UAEzBA,EAAOA,EAAKe,QAAQ,KAAM,OACdA,QAAQ,OAAQ,KAChBA,QAAQ,WAAY,KAChCf,EAAO8xC,EAAIC,QAAQ/xC,EAAM,UAE7B,CAEA,OAAOA,EAAO,KAAOhC,CACvB,CA4BA,SAAS+W,EAAQw+B,GACf,OAAOxvC,MAAMgR,QAAQw+B,EACvB,CAGA,SAASl3B,EAAUua,GACjB,MAAsB,kBAARA,CAChB,CAGA,SAASsa,EAAOta,GACd,OAAe,OAARA,CACT,CAQA,SAASza,EAASya,GAChB,MAAsB,iBAARA,CAChB,CAGA,SAASta,EAASsa,GAChB,MAAsB,iBAARA,CAChB,CAQA,SAASwb,EAAYxb,GACnB,YAAe,IAARA,CACT,CAGA,SAASrd,EAASi6B,GAChB,OAAO9zB,EAAS8zB,IAA8B,oBAAvB18B,EAAe08B,EACxC,CAIA,SAAS9zB,EAASkX,GAChB,MAAsB,iBAARA,GAA4B,OAARA,CACpC,CAGA,SAASpa,EAAOi3B,GACd,OAAO/zB,EAAS+zB,IAA4B,kBAAtB38B,EAAe28B,EACvC,CAIA,SAASj4B,EAAQ9U,GACf,OAAOgZ,EAAShZ,KACW,mBAAtBoQ,EAAepQ,IAA2BA,aAAa3G,MAC9D,CAIA,SAASsuB,EAAWuI,GAClB,MAAsB,mBAARA,CAChB,CAeA,SAAS9f,EAAepD,GACtB,OAAO5X,OAAOE,UAAUyB,SAAS8G,KAAKmP,EACxC,CAGA,SAAS/P,EAAIX,GACX,OAAOA,EAAI,GAAK,IAAMA,EAAEvF,SAAS,IAAMuF,EAAEvF,SAAS,GACpD,CAxbAiC,EAAQy4B,SAAW,SAASplB,GAE1B,GADAA,EAAMA,EAAIoE,eACLs6B,EAAO1+B,GACV,GAAI2+B,EAAcnxC,KAAKwS,GAAM,CAC3B,IAAI2gC,EAAMt1B,EAAQs1B,IAClBjC,EAAO1+B,GAAO,WACZ,IAAIyjB,EAAM92B,EAAQ8f,OAAOld,MAAM5C,EAAS+E,WACxC8sC,QAAQtxC,MAAM,YAAa8S,EAAK2gC,EAAKld,EACvC,CACF,MACEib,EAAO1+B,GAAO,WAAY,EAG9B,OAAO0+B,EAAO1+B,EAChB,EAmCArT,EAAQ4a,QAAUA,EAIlBA,EAAQ23B,OAAS,CACf,KAAS,CAAC,EAAG,IACb,OAAW,CAAC,EAAG,IACf,UAAc,CAAC,EAAG,IAClB,QAAY,CAAC,EAAG,IAChB,MAAU,CAAC,GAAI,IACf,KAAS,CAAC,GAAI,IACd,MAAU,CAAC,GAAI,IACf,KAAS,CAAC,GAAI,IACd,KAAS,CAAC,GAAI,IACd,MAAU,CAAC,GAAI,IACf,QAAY,CAAC,GAAI,IACjB,IAAQ,CAAC,GAAI,IACb,OAAW,CAAC,GAAI,KAIlB33B,EAAQk4B,OAAS,CACf,QAAW,OACX,OAAU,SACV,QAAW,SACX,UAAa,OACb,KAAQ,OACR,OAAU,QACV,KAAQ,UAER,OAAU,OA+QZ9yC,EAAQi0C,MAAQ,EAAhB,OAKAj0C,EAAQqV,QAAUA,EAKlBrV,EAAQ2c,UAAYA,EAKpB3c,EAAQwxC,OAASA,EAKjBxxC,EAAQk0C,kBAHR,SAA2Bhd,GACzB,OAAc,MAAPA,CACT,EAMAl3B,EAAQyc,SAAWA,EAKnBzc,EAAQ4c,SAAWA,EAKnB5c,EAAQiZ,SAHR,SAAkBie,GAChB,MAAsB,iBAARA,CAChB,EAMAl3B,EAAQ0yC,YAAcA,EAKtB1yC,EAAQ6Z,SAAWA,EACnB7Z,EAAQi0C,MAAMp6B,SAAWA,EAKzB7Z,EAAQggB,SAAWA,EAKnBhgB,EAAQ8c,OAASA,EACjB9c,EAAQi0C,MAAMn3B,OAASA,EAMvB9c,EAAQ8b,QAAUA,EAClB9b,EAAQi0C,MAAME,cAAgBr4B,EAK9B9b,EAAQ2uB,WAAaA,EAUrB3uB,EAAQo0C,YARR,SAAqBld,GACnB,OAAe,OAARA,GACe,kBAARA,GACQ,iBAARA,GACQ,iBAARA,GACQ,iBAARA,QACQ,IAARA,CAChB,EAGAl3B,EAAQuoB,SAAW,EAAnB,OAYA,IAAI8rB,EAAS,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,MAAO,MAAO,OA6C5B,SAASzsC,EAAe1B,EAAKrI,GAC3B,OAAOzB,OAAOE,UAAUsL,eAAe/C,KAAKqB,EAAKrI,EACnD,CAlCAmC,EAAQs0C,IAAM,WAVd,IACMP,EACAQ,EASJ1C,QAAQyC,IAAI,WATRC,EAAO,CAACtwC,GADR8vC,EAAI,IAAIxoC,MACMipC,YACNvwC,EAAI8vC,EAAEU,cACNxwC,EAAI8vC,EAAEW,eAAe53C,KAAK,KAC/B,CAACi3C,EAAEY,UAAWN,EAAON,EAAEa,YAAaL,GAAMz3C,KAAK,MAMlBkD,EAAQ8f,OAAOld,MAAM5C,EAAS+E,WACpE,EAgBA/E,EAAQuvB,SAAW,EAAnB,OAEAvvB,EAAQyyC,QAAU,SAASvI,EAAQ2K,GAEjC,IAAKA,IAAQ70B,EAAS60B,GAAM,OAAO3K,EAInC,IAFA,IAAIn6B,EAAO3T,OAAO2T,KAAK8kC,GACnBj1C,EAAImQ,EAAK/Q,OACNY,KACLsqC,EAAOn6B,EAAKnQ,IAAMi1C,EAAI9kC,EAAKnQ,IAE7B,OAAOsqC,CACT,EAMA,IAAI4K,EAA6C,oBAAX9pC,OAAyBA,OAAO,8BAA2BvS,EA0DjG,SAASs8C,EAAsB5iB,EAAQphB,GAKrC,IAAKohB,EAAQ,CACX,IAAI6iB,EAAY,IAAI30C,MAAM,2CAC1B20C,EAAU7iB,OAASA,EACnBA,EAAS6iB,CACX,CACA,OAAOjkC,EAAGohB,EACZ,CAnEAnyB,EAAQi1C,UAAY,SAAmBC,GACrC,GAAwB,mBAAbA,EACT,MAAM,IAAI1tC,UAAU,oDAEtB,GAAIstC,GAA4BI,EAASJ,GAA2B,CAClE,IAAIxnC,EACJ,GAAkB,mBADdA,EAAK4nC,EAASJ,IAEhB,MAAM,IAAIttC,UAAU,iEAKtB,OAHApL,OAAOC,eAAeiR,EAAIwnC,EAA0B,CAClDv4C,MAAO+Q,EAAI5G,YAAY,EAAOC,UAAU,EAAOF,cAAc,IAExD6G,CACT,CAEA,SAASA,IAQP,IAPA,IAAI6nC,EAAgBC,EAChBnQ,EAAU,IAAIv4B,QAAQ,SAAU6R,EAASkW,GAC3C0gB,EAAiB52B,EACjB62B,EAAgB3gB,CAClB,GAEItvB,EAAO,GACFvF,EAAI,EAAGA,EAAImF,UAAU/F,OAAQY,IACpCuF,EAAKtF,KAAKkF,UAAUnF,IAEtBuF,EAAKtF,KAAK,SAAUmW,EAAKzZ,GACnByZ,EACFo/B,EAAcp/B,GAEdm/B,EAAe54C,EAEnB,GAEA,IACE24C,EAAStyC,MAAMvH,KAAM8J,EACvB,CAAE,MAAO6Q,GACPo/B,EAAcp/B,EAChB,CAEA,OAAOivB,CACT,CAOA,OALA7oC,OAAO6X,eAAe3G,EAAIlR,OAAO+K,eAAe+tC,IAE5CJ,GAA0B14C,OAAOC,eAAeiR,EAAIwnC,EAA0B,CAChFv4C,MAAO+Q,EAAI5G,YAAY,EAAOC,UAAU,EAAOF,cAAc,IAExDrK,OAAOupC,iBACZr4B,EACAo4B,EAA0BwP,GAE9B,EAEAl1C,EAAQi1C,UAAUl8B,OAAS+7B,EAiD3B90C,EAAQq1C,YAlCR,SAAqBH,GACnB,GAAwB,mBAAbA,EACT,MAAM,IAAI1tC,UAAU,oDAMtB,SAAS8tC,IAEP,IADA,IAAInwC,EAAO,GACFvF,EAAI,EAAGA,EAAImF,UAAU/F,OAAQY,IACpCuF,EAAKtF,KAAKkF,UAAUnF,IAGtB,IAAI21C,EAAUpwC,EAAKrF,MACnB,GAAuB,mBAAZy1C,EACT,MAAM,IAAI/tC,UAAU,8CAEtB,IAAI+M,EAAOlZ,KACP0V,EAAK,WACP,OAAOwkC,EAAQ3yC,MAAM2R,EAAMxP,UAC7B,EAGAmwC,EAAStyC,MAAMvH,KAAM8J,GAClB4sB,KAAK,SAAS2K,GAAOhe,EAAQ2T,SAASthB,EAAGtM,KAAK,KAAM,KAAMi4B,GAAM,EAC3D,SAAS8Y,GAAO92B,EAAQ2T,SAAS0iB,EAAsBtwC,KAAK,KAAM+wC,EAAKzkC,GAAK,EACtF,CAKA,OAHA3U,OAAO6X,eAAeqhC,EAAel5C,OAAO+K,eAAe+tC,IAC3D94C,OAAOupC,iBAAiB2P,EACA5P,EAA0BwP,IAC3CI,CACT,C,4BCvsBA,IAAI5+B,EAAU,EAAQ,OAClB++B,EAAuB,EAAQ,OAC/B5uC,EAAW,EAAQ,OACnBqK,EAAY,EAAQ,OACpBpK,EAAO,EAAQ,OACfyD,EAAW,EAAQ,OAEnB0G,EAAYC,EAAU,6BACtBF,EAAiB,EAAQ,MAAR,GAEjB0kC,EAAwC,WACxCC,EAAcF,IAEdl+B,EAASrG,EAAU,0BAGnBrL,EAAWqL,EAAU,2BAA2B,IAAS,SAAiBjJ,EAAO1L,GACpF,IAAK,IAAIqD,EAAI,EAAGA,EAAIqI,EAAMjJ,OAAQY,GAAK,EACtC,GAAIqI,EAAMrI,KAAOrD,EAChB,OAAOqD,EAGT,OAAQ,CACT,EAIIg2C,EAAQ,CAAE7uC,UAAW,MAExB2P,EAAQi/B,EADL3kC,GAAkBlK,GAAQyD,EACR,SAAUsrC,GAC9B,IAAIrtC,EAAM,IAAIktC,EAAEG,GAChB,GAAI7qC,OAAOoF,eAAe5H,GAAO+B,EAAU,CAC1C,IAAIuhC,EAAQvhC,EAAS/B,GAEjB2H,EAAarJ,EAAKglC,EAAO9gC,OAAOoF,aACpC,IAAKD,GAAc27B,EAAO,CACzB,IAAIgK,EAAavrC,EAASuhC,GAE1B37B,EAAarJ,EAAKgvC,EAAY9qC,OAAOoF,YACtC,CAEAwlC,EAAM,IAAMC,GAAchvC,EAASsJ,EAAW3T,IAC/C,CACD,EAEqB,SAAUq5C,GAC9B,IAAIrtC,EAAM,IAAIktC,EAAEG,GACZvoC,EAAK9E,EAAI1J,OAAS0J,EAAI6K,IACtB/F,IACHsoC,EACkD,IAAMC,GAGvDhvC,EAASyG,GAGZ,GA0CDvN,EAAOC,QAAU,SAAyBzD,GACzC,IAAKA,GAA0B,iBAAVA,EAAsB,OAAO,EAClD,IAAKyU,EAAgB,CAEpB,IAAImM,EAAM5F,EAAOtG,EAAU1U,GAAQ,GAAI,GACvC,OAAIsJ,EAAS8vC,EAAax4B,IAAQ,EAC1BA,EAEI,WAARA,GA1BU,SAAsB5gB,GACU,IAAIw5C,GAAQ,EAa3D,OAZAr/B,EACiE,EACiB,SAAUs/B,EAAQ11C,GAClG,IAAKy1C,EACJ,IAECC,EAAOz5C,GACPw5C,EAAmDx+B,EAAOjX,EAAM,EACjE,CAAE,MAAO0G,GAAU,CAErB,GAEM+uC,CACR,CAeSE,CAAU15C,EAClB,CACA,OAAKuK,EApDe,SAA2BvK,GACK,IAAIw5C,GAAQ,EAehE,OAdAr/B,EACkE,EAEjE,SAAUs/B,EAAQH,GACjB,IAAKE,EACJ,IAEK,IAAMC,EAAOz5C,KAAWs5C,IAC3BE,EAAmDx+B,EAAOs+B,EAAY,GAExE,CAAE,MAAO7uC,GAAU,CAErB,GAEM+uC,CACR,CAoCQG,CAAe35C,GADF,IAErB,C,WCpHAwD,EAAOC,QAIP,WAGI,IAFA,IAAI0I,EAAS,CAAC,EAEL9I,EAAI,EAAGA,EAAImF,UAAU/F,OAAQY,IAAK,CACvC,IAAI2pB,EAASxkB,UAAUnF,GAEvB,IAAK,IAAI6Q,KAAO8Y,EACR3hB,EAAe/C,KAAK0kB,EAAQ9Y,KAC5B/H,EAAO+H,GAAO8Y,EAAO9Y,GAGjC,CAEA,OAAO/H,CACX,EAhBA,IAAId,EAAiBxL,OAAOE,UAAUsL,c,8ECAtC,IAAIuuC,EAAgB,EAAQ,OAExBT,EAAwC,WAG5C31C,EAAOC,QAAU,WAEhB,IADA,IAA2D6hB,EAAM,GACxDjiB,EAAI,EAAGA,EAAIu2C,EAAcn3C,OAAQY,IACN,mBAAxB81C,EAAES,EAAcv2C,MAE1BiiB,EAAIA,EAAI7iB,QAAUm3C,EAAcv2C,IAGlC,OAAOiiB,CACR,C,8CChBA,MAEMpC,EAF2C,oBAAtB22B,mBACvB7hC,gBAAgB6hC,kBAEd7hC,KACkB,oBAAX7b,OACHA,OACAmkB,WACG+R,EAAQnP,EAAKmP,MAAMnqB,KAAKgb,GACdA,EAAK42B,QACL52B,EAAK62B,QACJ72B,EAAK82B,Q,4BCVd,SAASC,EAAsBC,GAC1C,MAAgC,mBAArBA,EACAA,EAEPpyC,MAAMgR,QAAQohC,GACNC,IACJ,IAAK,MAAMC,KAAWF,EAAkB,CACpC,GAAuB,iBAAZE,GAAwBD,IAAaC,EAC5C,OAAO,EAEX,GAAIA,aAAmBp4C,QAAUo4C,EAAQ91C,KAAK61C,GAC1C,OAAO,CAEf,GAGD,KAAM,CACjB,C,gFCfA,MAAME,EAAgB,gLAGhBC,EAAY,IAAIt4C,OAAO,KADGq4C,EAAgB,KAD/BA,EAEY,mDAEtB,SAASE,EAAc3uC,EAAQ+iB,GACpC,MAAMkK,EAAU,GAChB,IAAIh2B,EAAQ8rB,EAAMjd,KAAK9F,GACvB,KAAO/I,GAAO,CACZ,MAAM23C,EAAa,GACnBA,EAAWC,WAAa9rB,EAAM1N,UAAYpe,EAAM,GAAGJ,OACnD,MAAMuF,EAAMnF,EAAMJ,OAClB,IAAK,IAAIsW,EAAQ,EAAGA,EAAQ/Q,EAAK+Q,IAC/ByhC,EAAWl3C,KAAKT,EAAMkW,IAExB8f,EAAQv1B,KAAKk3C,GACb33C,EAAQ8rB,EAAMjd,KAAK9F,EACrB,CACA,OAAOitB,CACT,CAEO,MAAM6hB,EAAS,SAAS9uC,GAE7B,QAAQ,MADM0uC,EAAU5oC,KAAK9F,GAE/B,EAEO,SAAS+uC,EAAQ9hC,GACtB,YAAoB,IAANA,CAChB,C,4DC1BA,MAAM+hC,EAAiB,CACrBC,wBAAwB,EACxBC,aAAc,IAIT,SAASC,EAASC,EAAS36C,GAChCA,EAAUR,OAAOotB,OAAO,CAAC,EAAG2tB,EAAgBv6C,GAK5C,MAAM46C,EAAO,GACb,IAAIC,GAAW,EAGXC,GAAc,EAEC,WAAfH,EAAQ,KAEVA,EAAUA,EAAQ91C,OAAO,IAG3B,IAAK,IAAI7B,EAAI,EAAGA,EAAI23C,EAAQv4C,OAAQY,IAElC,GAAmB,MAAf23C,EAAQ33C,IAA+B,MAAjB23C,EAAQ33C,EAAE,IAGlC,GAFAA,GAAG,EACHA,EAAI+3C,EAAOJ,EAAQ33C,GACfA,EAAEoW,IAAK,OAAOpW,MACd,IAAmB,MAAf23C,EAAQ33C,GA0IX,CACL,GAAKg4C,EAAaL,EAAQ33C,IACxB,SAEF,OAAOi4C,EAAe,cAAe,SAASN,EAAQ33C,GAAG,qBAAsBk4C,EAAyBP,EAAS33C,GACnH,CA/I8B,CAG5B,IAAIm4C,EAAcn4C,EAGlB,GAFAA,IAEmB,MAAf23C,EAAQ33C,GAAY,CACtBA,EAAIo4C,EAAoBT,EAAS33C,GACjC,QACF,CAAO,CACL,IAAIq4C,GAAa,EACE,MAAfV,EAAQ33C,KAEVq4C,GAAa,EACbr4C,KAGF,IAAIrH,EAAU,GACd,KAAOqH,EAAI23C,EAAQv4C,QACF,MAAfu4C,EAAQ33C,IACO,MAAf23C,EAAQ33C,IACO,OAAf23C,EAAQ33C,IACO,OAAf23C,EAAQ33C,IACO,OAAf23C,EAAQ33C,GAAaA,IAErBrH,GAAWg/C,EAAQ33C,GAWrB,GATArH,EAAUA,EAAQ2mB,OAGkB,MAAhC3mB,EAAQA,EAAQyG,OAAS,KAE3BzG,EAAUA,EAAQy+B,UAAU,EAAGz+B,EAAQyG,OAAS,GAEhDY,MAEGs4C,EAAgB3/C,GAAU,CAC7B,IAAIu+B,EAMJ,OAJEA,EAD4B,IAA1Bv+B,EAAQ2mB,OAAOlgB,OACX,2BAEA,QAAQzG,EAAQ,wBAEjBs/C,EAAe,aAAc/gB,EAAKghB,EAAyBP,EAAS33C,GAC7E,CAEA,MAAMrC,EAAS46C,EAAiBZ,EAAS33C,GACzC,IAAe,IAAXrC,EACF,OAAOs6C,EAAe,cAAe,mBAAmBt/C,EAAQ,qBAAsBu/C,EAAyBP,EAAS33C,IAE1H,IAAIw4C,EAAU76C,EAAOhB,MAGrB,GAFAqD,EAAIrC,EAAO+X,MAEyB,MAAhC8iC,EAAQA,EAAQp5C,OAAS,GAAY,CAEvC,MAAMq5C,EAAez4C,EAAIw4C,EAAQp5C,OACjCo5C,EAAUA,EAAQphB,UAAU,EAAGohB,EAAQp5C,OAAS,GAChD,MAAMs5C,EAAUC,EAAwBH,EAASx7C,GACjD,IAAgB,IAAZ07C,EAOF,OAAOT,EAAeS,EAAQtiC,IAAIxR,KAAM8zC,EAAQtiC,IAAI8gB,IAAKghB,EAAyBP,EAASc,EAAeC,EAAQtiC,IAAI49B,OANtH6D,GAAW,CAQf,MAAO,GAAIQ,EAAY,CACrB,IAAK16C,EAAOi7C,UACV,OAAOX,EAAe,aAAc,gBAAgBt/C,EAAQ,iCAAkCu/C,EAAyBP,EAAS33C,IAC3H,GAAIw4C,EAAQl5B,OAAOlgB,OAAS,EACjC,OAAO64C,EAAe,aAAc,gBAAgBt/C,EAAQ,+CAAgDu/C,EAAyBP,EAASQ,IACzI,GAAoB,IAAhBP,EAAKx4C,OACd,OAAO64C,EAAe,aAAc,gBAAgBt/C,EAAQ,yBAA0Bu/C,EAAyBP,EAASQ,IACnH,CACL,MAAMU,EAAMjB,EAAK13C,MACjB,GAAIvH,IAAYkgD,EAAIlgD,QAAS,CAC3B,IAAImgD,EAAUZ,EAAyBP,EAASkB,EAAIV,aACpD,OAAOF,EAAe,aACpB,yBAAyBY,EAAIlgD,QAAQ,qBAAqBmgD,EAAQ9E,KAAK,SAAS8E,EAAQC,IAAI,6BAA6BpgD,EAAQ,KACjIu/C,EAAyBP,EAASQ,GACtC,CAGmB,GAAfP,EAAKx4C,SACP04C,GAAc,EAElB,CACF,KAAO,CACL,MAAMY,EAAUC,EAAwBH,EAASx7C,GACjD,IAAgB,IAAZ07C,EAIF,OAAOT,EAAeS,EAAQtiC,IAAIxR,KAAM8zC,EAAQtiC,IAAI8gB,IAAKghB,EAAyBP,EAAS33C,EAAIw4C,EAAQp5C,OAASs5C,EAAQtiC,IAAI49B,OAI9H,IAAoB,IAAhB8D,EACF,OAAOG,EAAe,aAAc,sCAAuCC,EAAyBP,EAAS33C,KAC1D,IAA3ChD,EAAQy6C,aAAa33C,QAAQnH,IAGrCi/C,EAAK33C,KAAK,CAACtH,UAASw/C,gBAEtBN,GAAW,CACb,CAIA,IAAK73C,IAAKA,EAAI23C,EAAQv4C,OAAQY,IAC5B,GAAmB,MAAf23C,EAAQ33C,GAAY,CACtB,GAAuB,MAAnB23C,EAAQ33C,EAAI,GAAY,CAE1BA,IACAA,EAAIo4C,EAAoBT,EAAS33C,GACjC,QACF,CAAO,GAAqB,MAAjB23C,EAAQ33C,EAAE,GAInB,MAFA,GADAA,EAAI+3C,EAAOJ,IAAW33C,GAClBA,EAAEoW,IAAK,OAAOpW,CAItB,MAAO,GAAmB,MAAf23C,EAAQ33C,GAAY,CAC7B,MAAMg5C,EAAWC,EAAkBtB,EAAS33C,GAC5C,IAAiB,GAAbg5C,EACF,OAAOf,EAAe,cAAe,4BAA6BC,EAAyBP,EAAS33C,IACtGA,EAAIg5C,CACN,MACE,IAAoB,IAAhBlB,IAAyBE,EAAaL,EAAQ33C,IAChD,OAAOi4C,EAAe,aAAc,wBAAyBC,EAAyBP,EAAS33C,IAIlF,MAAf23C,EAAQ33C,IACVA,GAEJ,CACF,CAKA,CAGF,OAAK63C,EAEoB,GAAfD,EAAKx4C,OACJ64C,EAAe,aAAc,iBAAiBL,EAAK,GAAGj/C,QAAQ,KAAMu/C,EAAyBP,EAASC,EAAK,GAAGO,gBAC/GP,EAAKx4C,OAAS,IACb64C,EAAe,aAAc,YAChCvrC,KAAK2W,UAAUu0B,EAAK78C,IAAIiB,GAAKA,EAAErD,SAAU,KAAM,GAAG8I,QAAQ,SAAU,IACpE,WAAY,CAACuyC,KAAM,EAAG+E,IAAK,IAN1Bd,EAAe,aAAc,sBAAuB,EAU/D,CAEA,SAASD,EAAazN,GACpB,MAAgB,MAATA,GAAyB,OAATA,GAA0B,OAATA,GAA2B,OAATA,CAC5D,CAMA,SAASwN,EAAOJ,EAAS33C,GACvB,MAAMjB,EAAQiB,EACd,KAAOA,EAAI23C,EAAQv4C,OAAQY,IACzB,GAAkB,KAAd23C,EAAQ33C,IAA2B,KAAd23C,EAAQ33C,GAAW,CAE1C,MAAMk5C,EAAUvB,EAAQ91C,OAAO9C,EAAOiB,EAAIjB,GAC1C,GAAIiB,EAAI,GAAiB,QAAZk5C,EACX,OAAOjB,EAAe,aAAc,6DAA8DC,EAAyBP,EAAS33C,IAC/H,GAAkB,KAAd23C,EAAQ33C,IAA+B,KAAlB23C,EAAQ33C,EAAI,GAAW,CAErDA,IACA,KACF,CACE,QAEJ,CAEF,OAAOA,CACT,CAEA,SAASo4C,EAAoBT,EAAS33C,GACpC,GAAI23C,EAAQv4C,OAASY,EAAI,GAAwB,MAAnB23C,EAAQ33C,EAAI,IAAiC,MAAnB23C,EAAQ33C,EAAI,IAElE,IAAKA,GAAK,EAAGA,EAAI23C,EAAQv4C,OAAQY,IAC/B,GAAmB,MAAf23C,EAAQ33C,IAAiC,MAAnB23C,EAAQ33C,EAAI,IAAiC,MAAnB23C,EAAQ33C,EAAI,GAAY,CAC1EA,GAAK,EACL,KACF,OAEG,GACL23C,EAAQv4C,OAASY,EAAI,GACF,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,GACZ,CACA,IAAIm5C,EAAqB,EACzB,IAAKn5C,GAAK,EAAGA,EAAI23C,EAAQv4C,OAAQY,IAC/B,GAAmB,MAAf23C,EAAQ33C,GACVm5C,SACK,GAAmB,MAAfxB,EAAQ33C,KACjBm5C,IAC2B,IAAvBA,GACF,KAIR,MAAO,GACLxB,EAAQv4C,OAASY,EAAI,GACF,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,GAEZ,IAAKA,GAAK,EAAGA,EAAI23C,EAAQv4C,OAAQY,IAC/B,GAAmB,MAAf23C,EAAQ33C,IAAiC,MAAnB23C,EAAQ33C,EAAI,IAAiC,MAAnB23C,EAAQ33C,EAAI,GAAY,CAC1EA,GAAK,EACL,KACF,CAIJ,OAAOA,CACT,CAUA,SAASu4C,EAAiBZ,EAAS33C,GACjC,IAAIw4C,EAAU,GACVY,EAAY,GACZR,GAAY,EAChB,KAAO54C,EAAI23C,EAAQv4C,OAAQY,IAAK,CAC9B,GAbgB,MAaZ23C,EAAQ33C,IAZI,MAYkB23C,EAAQ33C,GACtB,KAAdo5C,EACFA,EAAYzB,EAAQ33C,GACXo5C,IAAczB,EAAQ33C,KAG/Bo5C,EAAY,SAET,GAAmB,MAAfzB,EAAQ33C,IACC,KAAdo5C,EAAkB,CACpBR,GAAY,EACZ,KACF,CAEFJ,GAAWb,EAAQ33C,EACrB,CACA,MAAkB,KAAdo5C,GAIG,CACLz8C,MAAO67C,EACP9iC,MAAO1V,EACP44C,UAAWA,EAEf,CAKA,MAAMS,EAAoB,IAAI16C,OAAO,0DAA2D,KAIhG,SAASg6C,EAAwBH,EAASx7C,GAKxC,MAAMw4B,GAAU,QAAcgjB,EAASa,GACjCC,EAAY,CAAC,EAEnB,IAAK,IAAIt5C,EAAI,EAAGA,EAAIw1B,EAAQp2B,OAAQY,IAAK,CACvC,GAA6B,IAAzBw1B,EAAQx1B,GAAG,GAAGZ,OAEhB,OAAO64C,EAAe,cAAe,cAAcziB,EAAQx1B,GAAG,GAAG,8BAA+Bu5C,EAAqB/jB,EAAQx1B,KACxH,QAAsBnH,IAAlB28B,EAAQx1B,GAAG,SAAsCnH,IAAlB28B,EAAQx1B,GAAG,GACnD,OAAOi4C,EAAe,cAAe,cAAcziB,EAAQx1B,GAAG,GAAG,sBAAuBu5C,EAAqB/jB,EAAQx1B,KAChH,QAAsBnH,IAAlB28B,EAAQx1B,GAAG,KAAqBhD,EAAQw6C,uBAEjD,OAAOS,EAAe,cAAe,sBAAsBziB,EAAQx1B,GAAG,GAAG,oBAAqBu5C,EAAqB/jB,EAAQx1B,KAK7H,MAAM82C,EAAWthB,EAAQx1B,GAAG,GAC5B,IAAKw5C,EAAiB1C,GACpB,OAAOmB,EAAe,cAAe,cAAcnB,EAAS,wBAAyByC,EAAqB/jB,EAAQx1B,KAEpH,GAAKs5C,EAAUtxC,eAAe8uC,GAI5B,OAAOmB,EAAe,cAAe,cAAcnB,EAAS,iBAAkByC,EAAqB/jB,EAAQx1B,KAF3Gs5C,EAAUxC,GAAY,CAI1B,CAEA,OAAO,CACT,CAiBA,SAASmC,EAAkBtB,EAAS33C,GAGlC,GAAmB,MAAf23C,IADJ33C,GAEE,OAAQ,EACV,GAAmB,MAAf23C,EAAQ33C,GAEV,OAtBJ,SAAiC23C,EAAS33C,GACxC,IAAIk0C,EAAK,KAKT,IAJmB,MAAfyD,EAAQ33C,KACVA,IACAk0C,EAAK,cAEAl0C,EAAI23C,EAAQv4C,OAAQY,IAAK,CAC9B,GAAmB,MAAf23C,EAAQ33C,GACV,OAAOA,EACT,IAAK23C,EAAQ33C,GAAGR,MAAM00C,GACpB,KACJ,CACA,OAAQ,CACV,CASWuF,CAAwB9B,IAD/B33C,GAGF,IAAIkjC,EAAQ,EACZ,KAAOljC,EAAI23C,EAAQv4C,OAAQY,IAAKkjC,IAC9B,KAAIyU,EAAQ33C,GAAGR,MAAM,OAAS0jC,EAAQ,IAAtC,CAEA,GAAmB,MAAfyU,EAAQ33C,GACV,MACF,OAAQ,CAHE,CAKZ,OAAOA,CACT,CAEA,SAASi4C,EAAerzC,EAAMpE,EAASk5C,GACrC,MAAO,CACLtjC,IAAK,CACHxR,KAAMA,EACNsyB,IAAK12B,EACLwzC,KAAM0F,EAAW1F,MAAQ0F,EACzBX,IAAKW,EAAWX,KAGtB,CAEA,SAASS,EAAiB1C,GACxB,OAAO,QAAOA,EAChB,CAIA,SAASwB,EAAgBY,GACvB,OAAO,QAAOA,EAChB,CAGA,SAAShB,EAAyBP,EAASjiC,GACzC,MAAMikC,EAAQhC,EAAQvgB,UAAU,EAAG1hB,GAAO3T,MAAM,SAChD,MAAO,CACLiyC,KAAM2F,EAAMv6C,OAGZ25C,IAAKY,EAAMA,EAAMv6C,OAAS,GAAGA,OAAS,EAE1C,CAGA,SAASm6C,EAAqB/5C,GAC5B,OAAOA,EAAM43C,WAAa53C,EAAM,GAAGJ,MACrC,C,uECnaA,MAAMm4C,EAAiB,CACrBqC,oBAAqB,KACrBC,qBAAqB,EACrBC,aAAc,QACdjD,kBAAkB,EAClBkD,eAAe,EACf75B,QAAQ,EACR85B,SAAU,KACVC,mBAAmB,EACnBC,sBAAsB,EACtBC,2BAA2B,EAC3BC,kBAAmB,SAASvpC,EAAKrS,GAC/B,OAAOA,CACT,EACA67C,wBAAyB,SAASvD,EAAUt4C,GAC1C,OAAOA,CACT,EACA87C,eAAe,EACfC,iBAAiB,EACjB9C,aAAc,GACd+C,SAAU,CACR,CAAElvB,MAAO,IAAI3sB,OAAO,IAAK,KAAMomB,IAAK,SACpC,CAAEuG,MAAO,IAAI3sB,OAAO,IAAK,KAAMomB,IAAK,QACpC,CAAEuG,MAAO,IAAI3sB,OAAO,IAAK,KAAMomB,IAAK,QACpC,CAAEuG,MAAO,IAAI3sB,OAAO,IAAM,KAAMomB,IAAK,UACrC,CAAEuG,MAAO,IAAI3sB,OAAO,IAAM,KAAMomB,IAAK,WAEvC01B,iBAAiB,EACjBC,UAAW,GAGXC,cAAc,GAGD,SAASC,EAAQ59C,GAC9BvB,KAAKuB,QAAUR,OAAOotB,OAAO,CAAC,EAAG2tB,EAAgBv6C,IACX,IAAlCvB,KAAKuB,QAAQ65C,kBAA6Bp7C,KAAKuB,QAAQ68C,oBACzDp+C,KAAKo/C,YAAc,WACjB,OAAO,CACT,GAEAp/C,KAAKq/C,oBAAqB,OAAsBr/C,KAAKuB,QAAQ65C,kBAC7Dp7C,KAAKs/C,cAAgBt/C,KAAKuB,QAAQ48C,oBAAoBx6C,OACtD3D,KAAKo/C,YAAcA,GAGrBp/C,KAAKu/C,qBAAuBA,EAExBv/C,KAAKuB,QAAQkjB,QACfzkB,KAAKw/C,UAAYA,EACjBx/C,KAAKy/C,WAAa,MAClBz/C,KAAK0/C,QAAU,OAEf1/C,KAAKw/C,UAAY,WACf,MAAO,EACT,EACAx/C,KAAKy/C,WAAa,IAClBz/C,KAAK0/C,QAAU,GAEnB,CAmHA,SAASH,EAAsBvyC,EAAQoI,EAAKuqC,EAAOC,GACjD,MAAM19C,EAASlC,KAAK6/C,IAAI7yC,EAAQ2yC,EAAQ,EAAGC,EAAOttC,OAAO8C,IACzD,YAA0ChY,IAAtC4P,EAAOhN,KAAKuB,QAAQ88C,eAA8D,IAA/Bt9C,OAAO2T,KAAK1H,GAAQrJ,OAClE3D,KAAK8/C,iBAAiB9yC,EAAOhN,KAAKuB,QAAQ88C,cAAejpC,EAAKlT,EAAO66C,QAAS4C,GAE9E3/C,KAAK+/C,gBAAgB79C,EAAOonB,IAAKlU,EAAKlT,EAAO66C,QAAS4C,EAEjE,CAuFA,SAASH,EAAUG,GACjB,OAAO3/C,KAAKuB,QAAQg9C,SAAS5yB,OAAOg0B,EACtC,CAEA,SAASP,EAAYn6C,GACnB,SAAIA,EAAK+6C,WAAWhgD,KAAKuB,QAAQ48C,sBAAwBl5C,IAASjF,KAAKuB,QAAQ88C,eACtEp5C,EAAKmB,OAAOpG,KAAKs/C,cAI5B,CAzNAH,EAAQl+C,UAAUhF,MAAQ,SAASgkD,GACjC,OAAGjgD,KAAKuB,QAAQs9C,eACP,OAAmBoB,EAAMjgD,KAAKuB,UAElCyH,MAAMgR,QAAQimC,IAASjgD,KAAKuB,QAAQ2+C,eAAiBlgD,KAAKuB,QAAQ2+C,cAAcv8C,OAAS,IAC1Fs8C,EAAO,CACL,CAACjgD,KAAKuB,QAAQ2+C,eAAiBD,IAG5BjgD,KAAK6/C,IAAII,EAAM,EAAG,IAAI32B,IAEjC,EAEA61B,EAAQl+C,UAAU4+C,IAAM,SAASI,EAAMN,EAAOC,GAC5C,IAAI7C,EAAU,GACVzzB,EAAM,GACV,MAAM62B,EAAQP,EAAOn+C,KAAK,KAC1B,IAAK,IAAI2T,KAAO6qC,EACd,GAAIl/C,OAAOE,UAAUsL,eAAe/C,KAAKy2C,EAAM7qC,GAC/C,QAAyB,IAAd6qC,EAAK7qC,GAEVpV,KAAKo/C,YAAYhqC,KACnBkU,GAAO,SAEJ,GAAkB,OAAd22B,EAAK7qC,GAEVpV,KAAKo/C,YAAYhqC,IAEVA,IAAQpV,KAAKuB,QAAQ+8C,cAD9Bh1B,GAAO,GAGa,MAAXlU,EAAI,GACbkU,GAAOtpB,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM,IAAMpV,KAAKy/C,WAEtDn2B,GAAOtpB,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM,IAAMpV,KAAKy/C,gBAGnD,GAAIQ,EAAK7qC,aAAgBlF,KAC9BoZ,GAAOtpB,KAAK8/C,iBAAiBG,EAAK7qC,GAAMA,EAAK,GAAIuqC,QAC5C,GAAyB,iBAAdM,EAAK7qC,GAAmB,CAExC,MAAMgrC,EAAOpgD,KAAKo/C,YAAYhqC,GAC9B,GAAIgrC,IAASpgD,KAAKq/C,mBAAmBe,EAAMD,GACzCpD,GAAW/8C,KAAKqgD,iBAAiBD,EAAM,GAAKH,EAAK7qC,SAC5C,IAAKgrC,EAEV,GAAIhrC,IAAQpV,KAAKuB,QAAQ88C,aAAc,CACrC,IAAIiC,EAAStgD,KAAKuB,QAAQo9C,kBAAkBvpC,EAAK,GAAK6qC,EAAK7qC,IAC3DkU,GAAOtpB,KAAKugD,qBAAqBD,EACnC,MACEh3B,GAAOtpB,KAAK8/C,iBAAiBG,EAAK7qC,GAAMA,EAAK,GAAIuqC,EAGvD,MAAO,GAAI32C,MAAMgR,QAAQimC,EAAK7qC,IAAO,CAEnC,MAAMorC,EAASP,EAAK7qC,GAAKzR,OACzB,IAAI88C,EAAa,GACbC,EAAc,GAClB,IAAK,IAAIz3C,EAAI,EAAGA,EAAIu3C,EAAQv3C,IAAK,CAC/B,MAAM3G,EAAO29C,EAAK7qC,GAAKnM,GACvB,QAAoB,IAAT3G,QAEJ,GAAa,OAATA,EACK,MAAX8S,EAAI,GAAYkU,GAAOtpB,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM,IAAMpV,KAAKy/C,WACpEn2B,GAAOtpB,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM,IAAMpV,KAAKy/C,gBAEtD,GAAoB,iBAATn9C,EAChB,GAAGtC,KAAKuB,QAAQ29C,aAAa,CAC3B,MAAMh9C,EAASlC,KAAK6/C,IAAIv9C,EAAMq9C,EAAQ,EAAGC,EAAOttC,OAAO8C,IACvDqrC,GAAcv+C,EAAOonB,IACjBtpB,KAAKuB,QAAQ68C,qBAAuB97C,EAAKiK,eAAevM,KAAKuB,QAAQ68C,uBACvEsC,GAAex+C,EAAO66C,QAE1B,MACE0D,GAAczgD,KAAKu/C,qBAAqBj9C,EAAM8S,EAAKuqC,EAAOC,QAG5D,GAAI5/C,KAAKuB,QAAQ29C,aAAc,CAC7B,IAAIyB,EAAY3gD,KAAKuB,QAAQo9C,kBAAkBvpC,EAAK9S,GACpDq+C,EAAY3gD,KAAKugD,qBAAqBI,GACtCF,GAAcE,CAChB,MACEF,GAAczgD,KAAK8/C,iBAAiBx9C,EAAM8S,EAAK,GAAIuqC,EAGzD,CACG3/C,KAAKuB,QAAQ29C,eACduB,EAAazgD,KAAK+/C,gBAAgBU,EAAYrrC,EAAKsrC,EAAaf,IAElEr2B,GAAOm3B,CACT,MAEE,GAAIzgD,KAAKuB,QAAQ68C,qBAAuBhpC,IAAQpV,KAAKuB,QAAQ68C,oBAAqB,CAChF,MAAMwC,EAAK7/C,OAAO2T,KAAKurC,EAAK7qC,IACtByrC,EAAID,EAAGj9C,OACb,IAAK,IAAIsF,EAAI,EAAGA,EAAI43C,EAAG53C,IACrB8zC,GAAW/8C,KAAKqgD,iBAAiBO,EAAG33C,GAAI,GAAKg3C,EAAK7qC,GAAKwrC,EAAG33C,IAE9D,MACEqgB,GAAOtpB,KAAKu/C,qBAAqBU,EAAK7qC,GAAMA,EAAKuqC,EAAOC,GAI9D,MAAO,CAAC7C,QAASA,EAASzzB,IAAKA,EACjC,EAEA61B,EAAQl+C,UAAUo/C,iBAAmB,SAAShF,EAAU/xB,GAGtD,OAFAA,EAAMtpB,KAAKuB,QAAQq9C,wBAAwBvD,EAAU,GAAK/xB,GAC1DA,EAAMtpB,KAAKugD,qBAAqBj3B,GAC5BtpB,KAAKuB,QAAQm9C,2BAAqC,SAARp1B,EACrC,IAAM+xB,EACD,IAAMA,EAAW,KAAO/xB,EAAM,GAC9C,EAWA61B,EAAQl+C,UAAU8+C,gBAAkB,SAASz2B,EAAKlU,EAAK2nC,EAAS4C,GAC9D,GAAW,KAARr2B,EACD,MAAc,MAAXlU,EAAI,GAAoBpV,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM2nC,EAAS,IAAM/8C,KAAKy/C,WAE1Ez/C,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM2nC,EAAU/8C,KAAK8gD,SAAS1rC,GAAOpV,KAAKy/C,WAE9E,CAEH,IAAIsB,EAAY,KAAO3rC,EAAMpV,KAAKy/C,WAC9BuB,EAAgB,GAQpB,MANc,MAAX5rC,EAAI,KACL4rC,EAAgB,IAChBD,EAAY,KAIThE,GAAuB,KAAZA,IAAyC,IAAtBzzB,EAAIjlB,QAAQ,MAEH,IAAjCrE,KAAKuB,QAAQu9C,iBAA6B1pC,IAAQpV,KAAKuB,QAAQu9C,iBAA4C,IAAzBkC,EAAcr9C,OAClG3D,KAAKw/C,UAAUG,GAAS,UAAOr2B,UAAWtpB,KAAK0/C,QAGpD1/C,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM2nC,EAAUiE,EAAgBhhD,KAAKy/C,WACnEn2B,EACAtpB,KAAKw/C,UAAUG,GAASoB,EAPjB/gD,KAAKw/C,UAAUG,GAAS,IAAOvqC,EAAM2nC,EAAUiE,EAAgB,IAAM13B,EAAMy3B,CASxF,CACF,EAEA5B,EAAQl+C,UAAU6/C,SAAW,SAAS1rC,GACpC,IAAI0rC,EAAW,GAQf,OAP+C,IAA5C9gD,KAAKuB,QAAQy6C,aAAa33C,QAAQ+Q,GAC/BpV,KAAKuB,QAAQk9C,uBAAsBqC,EAAW,KAElDA,EADO9gD,KAAKuB,QAAQi9C,kBACT,IAEA,MAAMppC,IAEZ0rC,CACT,EAcA3B,EAAQl+C,UAAU6+C,iBAAmB,SAASx2B,EAAKlU,EAAK2nC,EAAS4C,GAC/D,IAAmC,IAA/B3/C,KAAKuB,QAAQ+8C,eAA2BlpC,IAAQpV,KAAKuB,QAAQ+8C,cAC/D,OAAOt+C,KAAKw/C,UAAUG,GAAS,YAAYr2B,OAAYtpB,KAAK0/C,QACxD,IAAqC,IAAjC1/C,KAAKuB,QAAQu9C,iBAA6B1pC,IAAQpV,KAAKuB,QAAQu9C,gBACvE,OAAO9+C,KAAKw/C,UAAUG,GAAS,UAAOr2B,UAAYtpB,KAAK0/C,QACnD,GAAc,MAAXtqC,EAAI,GACX,OAAQpV,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM2nC,EAAS,IAAM/8C,KAAKy/C,WAC7D,CACH,IAAIkB,EAAY3gD,KAAKuB,QAAQo9C,kBAAkBvpC,EAAKkU,GAGpD,OAFAq3B,EAAY3gD,KAAKugD,qBAAqBI,GAEpB,KAAdA,EACK3gD,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM2nC,EAAU/8C,KAAK8gD,SAAS1rC,GAAOpV,KAAKy/C,WAExEz/C,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM2nC,EAAU,IAClD4D,EACD,KAAOvrC,EAAMpV,KAAKy/C,UAExB,CACF,EAEAN,EAAQl+C,UAAUs/C,qBAAuB,SAASI,GAChD,GAAGA,GAAaA,EAAUh9C,OAAS,GAAK3D,KAAKuB,QAAQy9C,gBACnD,IAAK,IAAIz6C,EAAE,EAAGA,EAAEvE,KAAKuB,QAAQw9C,SAASp7C,OAAQY,IAAK,CACjD,MAAM08C,EAASjhD,KAAKuB,QAAQw9C,SAASx6C,GACrCo8C,EAAYA,EAAU36C,QAAQi7C,EAAOpxB,MAAOoxB,EAAO33B,IACrD,CAEF,OAAOq3B,CACT,C,4BCvQe,SAASO,EAAMC,EAAQ5/C,GAClC,IAAI6/C,EAAc,GAIlB,OAHI7/C,EAAQkjB,QAAUljB,EAAQg9C,SAAS56C,OAAS,IAC5Cy9C,EAXI,MAaDC,EAASF,EAAQ5/C,EAAS,GAAI6/C,EACzC,CAEA,SAASC,EAASl0C,EAAK5L,EAAS4+C,EAAOiB,GACnC,IAAIE,EAAS,GACTC,GAAuB,EAE3B,IAAK,IAAIh9C,EAAI,EAAGA,EAAI4I,EAAIxJ,OAAQY,IAAK,CACjC,MAAMi9C,EAASr0C,EAAI5I,GACbrH,EAAUukD,EAASD,GACzB,QAAepkD,IAAZF,EAAuB,SAE1B,IAAIwkD,EAAW,GAIf,GAHwBA,EAAH,IAAjBvB,EAAMx8C,OAAyBzG,EACnB,GAAGijD,KAASjjD,IAExBA,IAAYqE,EAAQ88C,aAAc,CAClC,IAAIsD,EAAUH,EAAOtkD,GAChB0kD,EAAWF,EAAUngD,KACtBogD,EAAUpgD,EAAQo9C,kBAAkBzhD,EAASykD,GAC7CA,EAAUpB,EAAqBoB,EAASpgD,IAExCggD,IACAD,GAAUF,GAEdE,GAAUK,EACVJ,GAAuB,EACvB,QACJ,CAAO,GAAIrkD,IAAYqE,EAAQ+8C,cAAe,CACtCiD,IACAD,GAAUF,GAEdE,GAAU,YAAYE,EAAOtkD,GAAS,GAAGqE,EAAQ88C,mBACjDkD,GAAuB,EACvB,QACJ,CAAO,GAAIrkD,IAAYqE,EAAQu9C,gBAAiB,CAC5CwC,GAAUF,EAAc,UAAOI,EAAOtkD,GAAS,GAAGqE,EAAQ88C,sBAC1DkD,GAAuB,EACvB,QACJ,CAAO,GAAmB,MAAfrkD,EAAQ,GAAY,CAC3B,MAAM2kD,EAASC,EAAYN,EAAO,MAAOjgD,GACnCwgD,EAAsB,SAAZ7kD,EAAqB,GAAKkkD,EAC1C,IAAIY,EAAiBR,EAAOtkD,GAAS,GAAGqE,EAAQ88C,cAChD2D,EAA2C,IAA1BA,EAAer+C,OAAe,IAAMq+C,EAAiB,GACtEV,GAAUS,EAAU,IAAI7kD,IAAU8kD,IAAiBH,MACnDN,GAAuB,EACvB,QACJ,CACA,IAAIU,EAAgBb,EACE,KAAlBa,IACAA,GAAiB1gD,EAAQg9C,UAE7B,MACM2D,EAAWd,EAAc,IAAIlkD,IADpB4kD,EAAYN,EAAO,MAAOjgD,KAEnC4gD,EAAWd,EAASG,EAAOtkD,GAAUqE,EAASmgD,EAAUO,IACf,IAA3C1gD,EAAQy6C,aAAa33C,QAAQnH,GACzBqE,EAAQk9C,qBAAsB6C,GAAUY,EAAW,IAClDZ,GAAUY,EAAW,KACjBC,GAAgC,IAApBA,EAASx+C,SAAiBpC,EAAQi9C,kBAEhD2D,GAAYA,EAASvmB,SAAS,KACrC0lB,GAAUY,EAAW,IAAIC,IAAWf,MAAgBlkD,MAEpDokD,GAAUY,EAAW,IACjBC,GAA4B,KAAhBf,IAAuBe,EAASC,SAAS,OAASD,EAASC,SAAS,OAChFd,GAAUF,EAAc7/C,EAAQg9C,SAAW4D,EAAWf,EAEtDE,GAAUa,EAEdb,GAAU,KAAKpkD,MAVfokD,GAAUY,EAAW,KAYzBX,GAAuB,CAC3B,CAEA,OAAOD,CACX,CAEA,SAASG,EAAS52C,GACd,MAAM6J,EAAO3T,OAAO2T,KAAK7J,GACzB,IAAK,IAAItG,EAAI,EAAGA,EAAImQ,EAAK/Q,OAAQY,IAAK,CAClC,MAAM6Q,EAAMV,EAAKnQ,GACjB,GAAIsG,EAAI0B,eAAe6I,IACX,OAARA,EAAc,OAAOA,CAC7B,CACJ,CAEA,SAAS0sC,EAAYO,EAAS9gD,GAC1B,IAAIw7C,EAAU,GACd,GAAIsF,IAAY9gD,EAAQ65C,iBACpB,IAAK,IAAIgF,KAAQiC,EAAS,CACtB,IAAIA,EAAQ91C,eAAe6zC,GAAO,SAClC,IAAIkC,EAAU/gD,EAAQq9C,wBAAwBwB,EAAMiC,EAAQjC,IAC5DkC,EAAU/B,EAAqB+B,EAAS/gD,IACxB,IAAZ+gD,GAAoB/gD,EAAQm9C,0BAC5B3B,GAAW,IAAIqD,EAAKh6C,OAAO7E,EAAQ48C,oBAAoBx6C,UAEvDo5C,GAAW,IAAIqD,EAAKh6C,OAAO7E,EAAQ48C,oBAAoBx6C,YAAY2+C,IAE3E,CAEJ,OAAOvF,CACX,CAEA,SAAS6E,EAAWzB,EAAO5+C,GAEvB,IAAIrE,GADJijD,EAAQA,EAAM/5C,OAAO,EAAG+5C,EAAMx8C,OAASpC,EAAQ88C,aAAa16C,OAAS,IACjDyC,OAAO+5C,EAAMp5B,YAAY,KAAO,GACpD,IAAK,IAAI9M,KAAS1Y,EAAQ09C,UACtB,GAAI19C,EAAQ09C,UAAUhlC,KAAWkmC,GAAS5+C,EAAQ09C,UAAUhlC,KAAW,KAAO/c,EAAS,OAAO,EAElG,OAAO,CACX,CAEA,SAASqjD,EAAqBI,EAAWp/C,GACrC,GAAIo/C,GAAaA,EAAUh9C,OAAS,GAAKpC,EAAQy9C,gBAC7C,IAAK,IAAIz6C,EAAI,EAAGA,EAAIhD,EAAQw9C,SAASp7C,OAAQY,IAAK,CAC9C,MAAM08C,EAAS1/C,EAAQw9C,SAASx6C,GAChCo8C,EAAYA,EAAU36C,QAAQi7C,EAAOpxB,MAAOoxB,EAAO33B,IACvD,CAEJ,OAAOq3B,CACX,C,4ECnIe,MAAM4B,EACjB,WAAA5qC,CAAYqnC,GACRh/C,KAAKwiD,uBAAyBxD,CAClC,CAEA,WAAAyD,CAAYvG,EAAS33C,GAEjB,MAAMw6C,EAAW,CAAC,EAClB,GAAuB,MAAnB7C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,GAyDZ,MAAM,IAAIS,MAAM,kCAxDpB,CACIT,GAAM,EACN,IAAIm5C,EAAqB,EACrBgF,GAAU,EAAOnjD,GAAU,EAC3BojD,EAAM,GACV,KAAKp+C,EAAE23C,EAAQv4C,OAAOY,IAClB,GAAmB,MAAf23C,EAAQ33C,IAAehF,EA4BpB,GAAmB,MAAf28C,EAAQ33C,IASf,GARGhF,EACwB,MAAnB28C,EAAQ33C,EAAI,IAAiC,MAAnB23C,EAAQ33C,EAAI,KACtChF,GAAU,EACVm+C,KAGJA,IAEuB,IAAvBA,EACJ,UAEqB,MAAfxB,EAAQ33C,GACdm+C,GAAU,EAEVC,GAAOzG,EAAQ33C,OA3CiB,CAChC,GAAIm+C,GAAWE,EAAO1G,EAAS,UAAU33C,GAAG,CAExC,IAAIs+C,EAAYv5B,EADhB/kB,GAAK,GAEJs+C,EAAYv5B,EAAI/kB,GAAKvE,KAAK8iD,cAAc5G,EAAQ33C,EAAE,EAAEvE,KAAKwiD,wBACjC,IAAtBl5B,EAAIjlB,QAAQ,OACX06C,EAAU8D,GAAe,CACrBE,KAAO7/C,OAAQ,IAAI2/C,KAAc,KACjCv5B,IAAKA,GAEjB,MACK,GAAIo5B,GAAWE,EAAO1G,EAAS,WAAW33C,GAAK,CAChDA,GAAK,EACL,MAAM,MAAC0V,GAASja,KAAKgjD,eAAe9G,EAAQ33C,EAAE,GAC9CA,EAAI0V,CACR,MAAM,GAAIyoC,GAAWE,EAAO1G,EAAS,WAAW33C,GAC5CA,GAAK,OAGH,GAAIm+C,GAAWE,EAAO1G,EAAS,YAAY33C,GAAI,CACjDA,GAAK,EACL,MAAM,MAAC0V,GAASja,KAAKijD,gBAAgB/G,EAAQ33C,EAAE,EAAEvE,KAAKwiD,uBACtDj+C,EAAI0V,CACR,KAAM,KAAI2oC,EAAO1G,EAAS,MAAM33C,GAC3B,MAAM,IAAIS,MAAM,mBADgBzF,GAAU,CACR,CAEvCm+C,IACAiF,EAAM,EACV,CAkBJ,GAA0B,IAAvBjF,EACC,MAAM,IAAI14C,MAAM,mBAExB,CAGA,MAAO,CAAC+5C,WAAUx6C,IACtB,CACA,aAAAu+C,CAAc5G,EAAS33C,GAWnBA,EAAI2+C,EAAehH,EAAS33C,GAG5B,IAAIs+C,EAAa,GACjB,KAAOt+C,EAAI23C,EAAQv4C,SAAW,KAAK6B,KAAK02C,EAAQ33C,KAAsB,MAAf23C,EAAQ33C,IAA6B,MAAf23C,EAAQ33C,IACjFs+C,GAAc3G,EAAQ33C,GACtBA,IAQJ,GANA4+C,EAAmBN,GAGnBt+C,EAAI2+C,EAAehH,EAAS33C,IAGxBvE,KAAKwiD,sBAAsB,CAC3B,GAAkD,WAA9CtG,EAAQvgB,UAAUp3B,EAAGA,EAAI,GAAG6X,cAC5B,MAAM,IAAIpX,MAAM,uCACd,GAAmB,MAAfk3C,EAAQ33C,GACd,MAAM,IAAIS,MAAM,uCAExB,CAGA,IAAIo+C,EAAc,GAGlB,OAFC7+C,EAAG6+C,GAAepjD,KAAKqjD,kBAAkBnH,EAAS33C,EAAG,UAE/C,CAACs+C,EAAYO,IADpB7+C,EAEJ,CAEA,eAAA0+C,CAAgB/G,EAAS33C,GAErBA,EAAI2+C,EAAehH,EAAS33C,GAG5B,IAAI++C,EAAe,GACnB,KAAO/+C,EAAI23C,EAAQv4C,SAAW,KAAK6B,KAAK02C,EAAQ33C,KAC5C++C,GAAgBpH,EAAQ33C,GACxBA,KAEHvE,KAAKwiD,uBAAyBW,EAAmBG,GAGlD/+C,EAAI2+C,EAAehH,EAAS33C,GAG5B,MAAMg/C,EAAiBrH,EAAQvgB,UAAUp3B,EAAGA,EAAI,GAAG6X,cACnD,IAAKpc,KAAKwiD,uBAA4C,WAAnBe,GAAkD,WAAnBA,EAC9D,MAAM,IAAIv+C,MAAM,qCAAqCu+C,MAEzDh/C,GAAKg/C,EAAe5/C,OAGpBY,EAAI2+C,EAAehH,EAAS33C,GAG5B,IAAIi/C,EAAmB,KACnBC,EAAmB,KAEvB,GAAuB,WAAnBF,GACCh/C,EAAGi/C,GAAqBxjD,KAAKqjD,kBAAkBnH,EAAS33C,EAAG,oBAMzC,MAAf23C,EAHJ33C,EAAI2+C,EAAehH,EAAS33C,KAGa,MAAf23C,EAAQ33C,MAC7BA,EAAGk/C,GAAqBzjD,KAAKqjD,kBAAkBnH,EAAS33C,EAAE,0BAE5D,GAAuB,WAAnBg/C,KAENh/C,EAAGk/C,GAAqBzjD,KAAKqjD,kBAAkBnH,EAAS33C,EAAG,qBAEvDvE,KAAKwiD,wBAA0BiB,GAChC,MAAM,IAAIz+C,MAAM,2DAIxB,MAAO,CAACs+C,eAAcE,mBAAkBC,mBAAkBxpC,QAAS1V,EACvE,CAEA,iBAAA8+C,CAAkBnH,EAAS33C,EAAGpE,GAC1B,IAAIujD,EAAgB,GACpB,MAAM/F,EAAYzB,EAAQ33C,GAC1B,GAAkB,MAAdo5C,GAAmC,MAAdA,EACrB,MAAM,IAAI34C,MAAM,kCAAkC24C,MAItD,IAFAp5C,IAEOA,EAAI23C,EAAQv4C,QAAUu4C,EAAQ33C,KAAOo5C,GACxC+F,GAAiBxH,EAAQ33C,GACzBA,IAGJ,GAAI23C,EAAQ33C,KAAOo5C,EACf,MAAM,IAAI34C,MAAM,gBAAgB7E,WAGpC,MAAO,GADPoE,EACWm/C,EACf,CAEA,cAAAV,CAAe9G,EAAS33C,GAQpBA,EAAI2+C,EAAehH,EAAS33C,GAG5B,IAAIo/C,EAAc,GAClB,KAAOp/C,EAAI23C,EAAQv4C,SAAW,KAAK6B,KAAK02C,EAAQ33C,KAC5Co/C,GAAezH,EAAQ33C,GACvBA,IAIJ,IAAKvE,KAAKwiD,yBAA0B,QAAOmB,GACvC,MAAM,IAAI3+C,MAAM,0BAA0B2+C,MAK9C,IAAIC,EAAe,GAEnB,GAAkB,MAAf1H,EAHH33C,EAAI2+C,EAAehH,EAAS33C,KAGHq+C,EAAO1G,EAAS,OAAO33C,GAAIA,GAAG,OAClD,GAAkB,MAAf23C,EAAQ33C,IAAcq+C,EAAO1G,EAAS,KAAK33C,GAAIA,GAAG,OACrD,GAAmB,MAAf23C,EAAQ33C,GAAY,CAIzB,IAHAA,IAGOA,EAAI23C,EAAQv4C,QAAyB,MAAfu4C,EAAQ33C,IACjCq/C,GAAgB1H,EAAQ33C,GACxBA,IAEJ,GAAmB,MAAf23C,EAAQ33C,GACR,MAAM,IAAIS,MAAM,6BAGxB,MAAM,IAAIhF,KAAKwiD,sBACX,MAAM,IAAIx9C,MAAM,sCAAsCk3C,EAAQ33C,OAGlE,MAAO,CACHo/C,cACAC,aAAcA,EAAa//B,OAC3B5J,MAAO1V,EAEf,CAEA,cAAAs/C,CAAe3H,EAAS33C,GAEpBA,EAAI2+C,EAAehH,EAAS33C,GAG5B,IAAIo/C,EAAc,GAClB,KAAOp/C,EAAI23C,EAAQv4C,SAAW,KAAK6B,KAAK02C,EAAQ33C,KAC5Co/C,GAAezH,EAAQ33C,GACvBA,IAIJ4+C,EAAmBQ,GAGnBp/C,EAAI2+C,EAAehH,EAAS33C,GAG5B,IAAIu/C,EAAgB,GACpB,KAAOv/C,EAAI23C,EAAQv4C,SAAW,KAAK6B,KAAK02C,EAAQ33C,KAC5Cu/C,GAAiB5H,EAAQ33C,GACzBA,IAIJ,IAAK4+C,EAAmBW,GACpB,MAAM,IAAI9+C,MAAM,4BAA4B8+C,MAIhDv/C,EAAI2+C,EAAehH,EAAS33C,GAG5B,IAAIw/C,EAAgB,GACpB,GAAkD,aAA9C7H,EAAQvgB,UAAUp3B,EAAGA,EAAI,GAAG6X,cAA8B,CAQ1D,GAPA2nC,EAAgB,WAOG,MAAf7H,EAHJ33C,EAAI2+C,EAAehH,EAHnB33C,GAAK,IAOD,MAAM,IAAIS,MAAM,wBAAwBk3C,EAAQ33C,OAEpDA,IAGA,IAAIy/C,EAAmB,GACvB,KAAOz/C,EAAI23C,EAAQv4C,QAAyB,MAAfu4C,EAAQ33C,IAAY,CAC7C,IAAI0/C,EAAW,GACf,KAAO1/C,EAAI23C,EAAQv4C,QAAyB,MAAfu4C,EAAQ33C,IAA6B,MAAf23C,EAAQ33C,IACvD0/C,GAAY/H,EAAQ33C,GACpBA,IAKJ,GADA0/C,EAAWA,EAASpgC,QACfs/B,EAAmBc,GACpB,MAAM,IAAIj/C,MAAM,2BAA2Bi/C,MAG/CD,EAAiBx/C,KAAKy/C,GAGH,MAAf/H,EAAQ33C,KACRA,IACAA,EAAI2+C,EAAehH,EAAS33C,GAEpC,CAEA,GAAmB,MAAf23C,EAAQ33C,GACR,MAAM,IAAIS,MAAM,kCAEpBT,IAGAw/C,GAAiB,KAAOC,EAAiBviD,KAAK,KAAO,GACzD,KAAO,CAEH,KAAO8C,EAAI23C,EAAQv4C,SAAW,KAAK6B,KAAK02C,EAAQ33C,KAC5Cw/C,GAAiB7H,EAAQ33C,GACzBA,IAIJ,MAAM2/C,EAAa,CAAC,QAAS,KAAM,QAAS,SAAU,SAAU,WAAY,UAAW,YACvF,IAAKlkD,KAAKwiD,wBAA0B0B,EAAW9B,SAAS2B,EAAc3nC,eAClE,MAAM,IAAIpX,MAAM,4BAA4B++C,KAEpD,CAGAx/C,EAAI2+C,EAAehH,EAAS33C,GAG5B,IAAI4/C,EAAe,GAWnB,MAVkD,cAA9CjI,EAAQvgB,UAAUp3B,EAAGA,EAAI,GAAG6X,eAC5B+nC,EAAe,YACf5/C,GAAK,GACgD,aAA9C23C,EAAQvgB,UAAUp3B,EAAGA,EAAI,GAAG6X,eACnC+nC,EAAe,WACf5/C,GAAK,IAEJA,EAAG4/C,GAAgBnkD,KAAKqjD,kBAAkBnH,EAAS33C,EAAG,WAGpD,CACHo/C,cACAG,gBACAC,gBACAI,eACAlqC,MAAO1V,EAEf,EAKJ,MAAM2+C,EAAiB,CAACnkD,EAAMkb,KAC1B,KAAOA,EAAQlb,EAAK4E,QAAU,KAAK6B,KAAKzG,EAAKkb,KACzCA,IAEJ,OAAOA,GAKX,SAAS2oC,EAAO7jD,EAAMqlD,EAAI7/C,GACtB,IAAI,IAAI0E,EAAE,EAAEA,EAAEm7C,EAAIzgD,OAAOsF,IACrB,GAAGm7C,EAAIn7C,KAAKlK,EAAKwF,EAAE0E,EAAE,GAAI,OAAO,EAEpC,OAAO,CACX,CAEA,SAASk6C,EAAmBl+C,GACxB,IAAI,QAAOA,GACV,OAAOA,EAEJ,MAAM,IAAID,MAAM,uBAAuBC,IAC/C,C,6CCzXO,MAAM62C,EAAiB,CAC1B+C,eAAe,EACfV,oBAAqB,KACrBC,qBAAqB,EACrBC,aAAc,QACdjD,kBAAkB,EAClBiJ,gBAAgB,EAChBtI,wBAAwB,EAExBuI,eAAe,EACfC,qBAAqB,EACrBC,YAAY,EACZlG,eAAe,EACfmG,mBAAoB,CAClBC,KAAK,EACLC,cAAc,EACdC,WAAW,GAEbjG,kBAAmB,SAASzhD,EAASosB,GACnC,OAAOA,CACT,EACAs1B,wBAAyB,SAASvD,EAAU/xB,GAC1C,OAAOA,CACT,EACA21B,UAAW,GACX4F,sBAAsB,EACtB7qC,QAAS,KAAM,EACf8kC,iBAAiB,EACjB9C,aAAc,GACdgD,iBAAiB,EACjB8F,cAAc,EACdC,mBAAmB,EACnBC,cAAc,EACdC,kBAAkB,EAClBC,wBAAwB,EACxBC,UAAW,SAASjoD,EAASijD,EAAOhgC,GAClC,OAAOjjB,CACT,EAEAkoD,iBAAiB,GAGRC,EAAe,SAAS9jD,GACjC,OAAOR,OAAOotB,OAAO,CAAC,EAAG2tB,EAAgBv6C,EAC7C,C,wGC7Be,MAAM+jD,EACnB,WAAA3tC,CAAYpW,GAyCV,GAxCAvB,KAAKuB,QAAUA,EACfvB,KAAKulD,YAAc,KACnBvlD,KAAKwlD,cAAgB,GACrBxlD,KAAKylD,gBAAkB,CAAC,EACxBzlD,KAAK0lD,aAAe,CAClB,KAAS,CAAE71B,MAAO,qBAAsBvG,IAAM,KAC9C,GAAO,CAAEuG,MAAO,mBAAoBvG,IAAM,KAC1C,GAAO,CAAEuG,MAAO,mBAAoBvG,IAAM,KAC1C,KAAS,CAAEuG,MAAO,qBAAsBvG,IAAM,MAEhDtpB,KAAK2lD,UAAY,CAAE91B,MAAO,oBAAqBvG,IAAM,KACrDtpB,KAAK8kD,aAAe,CAClB,MAAS,CAAEj1B,MAAO,iBAAkBvG,IAAK,KAMzC,KAAS,CAAEuG,MAAO,iBAAkBvG,IAAK,KACzC,MAAU,CAAEuG,MAAO,kBAAmBvG,IAAK,KAC3C,IAAQ,CAAEuG,MAAO,gBAAiBvG,IAAK,KACvC,KAAS,CAAEuG,MAAO,kBAAmBvG,IAAK,KAC1C,UAAc,CAAEuG,MAAO,iBAAkBvG,IAAK,KAC9C,IAAQ,CAAEuG,MAAO,gBAAiBvG,IAAK,KACvC,IAAQ,CAAEuG,MAAO,iBAAkBvG,IAAK,KACxC,QAAW,CAAEuG,MAAO,mBAAoBvG,IAAM,CAAC7U,EAAGxR,IAAQ2iD,EAAc3iD,EAAK,GAAI,OACjF,QAAW,CAAE4sB,MAAO,0BAA2BvG,IAAM,CAAC7U,EAAGxR,IAAQ2iD,EAAc3iD,EAAK,GAAI,SAE1FjD,KAAK6lD,oBAAsBA,EAC3B7lD,KAAK8lD,SAAWA,EAChB9lD,KAAK+lD,cAAgBA,EACrB/lD,KAAKgmD,iBAAmBA,EACxBhmD,KAAKimD,mBAAqBA,EAC1BjmD,KAAKkmD,aAAeA,EACpBlmD,KAAKugD,qBAAuBA,EAC5BvgD,KAAKmmD,iBAAmBA,EACxBnmD,KAAKomD,oBAAsBA,EAC3BpmD,KAAKqmD,SAAWA,EAChBrmD,KAAKq/C,oBAAqB,OAAsBr/C,KAAKuB,QAAQ65C,kBAE1Dp7C,KAAKuB,QAAQ09C,WAAaj/C,KAAKuB,QAAQ09C,UAAUt7C,OAAS,EAAE,CAC7D3D,KAAKsmD,eAAiB,IAAI/0C,IAC1BvR,KAAKumD,kBAAoB,IAAIh1C,IAC7B,IAAI,IAAIhN,EAAI,EAAGA,EAAIvE,KAAKuB,QAAQ09C,UAAUt7C,OAAQY,IAAI,CACpD,MAAMiiD,EAAcxmD,KAAKuB,QAAQ09C,UAAU16C,GACjB,iBAAhBiiD,IACPA,EAAYxG,WAAW,MACxBhgD,KAAKumD,kBAAkB/M,IAAIgN,EAAY7qB,UAAU,IAEjD37B,KAAKsmD,eAAe9M,IAAIgN,GAE5B,CACF,CACF,EAIF,SAASX,EAAoBY,GAC3B,MAAMC,EAAU3lD,OAAO2T,KAAK+xC,GAC5B,IAAK,IAAIliD,EAAI,EAAGA,EAAImiD,EAAQ/iD,OAAQY,IAAK,CACvC,MAAMoiD,EAAMD,EAAQniD,GACpBvE,KAAK0lD,aAAaiB,GAAO,CACtB92B,MAAO,IAAI3sB,OAAO,IAAIyjD,EAAI,IAAI,KAC9Br9B,IAAMm9B,EAAiBE,GAE5B,CACF,CAWA,SAASZ,EAAcz8B,EAAKpsB,EAASijD,EAAOyG,EAAUC,EAAeC,EAAYC,GAC/E,QAAY3pD,IAARksB,IACEtpB,KAAKuB,QAAQijD,aAAeoC,IAC9Bt9B,EAAMA,EAAIzF,QAETyF,EAAI3lB,OAAS,GAAE,CACZojD,IAAgBz9B,EAAMtpB,KAAKugD,qBAAqBj3B,IAEpD,MAAMg3B,EAAStgD,KAAKuB,QAAQo9C,kBAAkBzhD,EAASosB,EAAK62B,EAAO0G,EAAeC,GAClF,OAAGxG,QAEMh3B,SACOg3B,UAAkBh3B,GAAOg3B,IAAWh3B,EAE3Cg3B,EACAtgD,KAAKuB,QAAQijD,YAGDl7B,EAAIzF,SACLyF,EAHX09B,EAAW19B,EAAKtpB,KAAKuB,QAAQ+iD,cAAetkD,KAAKuB,QAAQkjD,oBAMvDn7B,CAGb,CAEJ,CAEA,SAAS08B,EAAiBvI,GACxB,GAAIz9C,KAAKuB,QAAQ8iD,eAAgB,CAC/B,MAAMlI,EAAOsB,EAAQn3C,MAAM,KACrBmlB,EAA+B,MAAtBgyB,EAAQ13C,OAAO,GAAa,IAAM,GACjD,GAAgB,UAAZo2C,EAAK,GACP,MAAO,GAEW,IAAhBA,EAAKx4C,SACP85C,EAAUhyB,EAAS0wB,EAAK,GAE5B,CACA,OAAOsB,CACT,CAIA,MAAMwJ,EAAY,IAAI/jD,OAAO,+CAAgD,MAE7E,SAAS+iD,EAAmBlJ,EAASoD,GACnC,IAAsC,IAAlCngD,KAAKuB,QAAQ65C,kBAAgD,iBAAZ2B,EAAsB,CAIzE,MAAMhjB,GAAU,QAAcgjB,EAASkK,GACjC/9C,EAAM6wB,EAAQp2B,OACdwc,EAAQ,CAAC,EACf,IAAK,IAAI5b,EAAI,EAAGA,EAAI2E,EAAK3E,IAAK,CAC5B,MAAM82C,EAAWr7C,KAAKgmD,iBAAiBjsB,EAAQx1B,GAAG,IAClD,GAAIvE,KAAKq/C,mBAAmBhE,EAAU8E,GACpC,SAEF,IAAI+G,EAASntB,EAAQx1B,GAAG,GACpB4iD,EAAQnnD,KAAKuB,QAAQ48C,oBAAsB9C,EAC/C,GAAIA,EAAS13C,OAKX,GAJI3D,KAAKuB,QAAQ2jD,yBACfiC,EAAQnnD,KAAKuB,QAAQ2jD,uBAAuBiC,IAEjC,cAAVA,IAAuBA,EAAS,mBACpB/pD,IAAX8pD,EAAsB,CACpBlnD,KAAKuB,QAAQijD,aACf0C,EAASA,EAAOrjC,QAElBqjC,EAASlnD,KAAKugD,qBAAqB2G,GACnC,MAAME,EAASpnD,KAAKuB,QAAQq9C,wBAAwBvD,EAAU6L,EAAQ/G,GAGpEhgC,EAAMgnC,GAFLC,QAEcF,SACDE,UAAkBF,GAAUE,IAAWF,EAEtCE,EAGAJ,EACbE,EACAlnD,KAAKuB,QAAQgjD,oBACbvkD,KAAKuB,QAAQkjD,mBAGnB,MAAWzkD,KAAKuB,QAAQw6C,yBACtB57B,EAAMgnC,IAAS,EAGrB,CACA,IAAKpmD,OAAO2T,KAAKyL,GAAOxc,OACtB,OAEF,GAAI3D,KAAKuB,QAAQ68C,oBAAqB,CACpC,MAAMiJ,EAAiB,CAAC,EAExB,OADAA,EAAernD,KAAKuB,QAAQ68C,qBAAuBj+B,EAC5CknC,CACT,CACA,OAAOlnC,CACT,CACF,CAEA,MAAM2lC,EAAW,SAAS5J,GACxBA,EAAUA,EAAQl2C,QAAQ,SAAU,MACpC,MAAMshD,EAAS,IAAI,IAAQ,QAC3B,IAAI/B,EAAc+B,EACdC,EAAW,GACXpH,EAAQ,GACZ,MAAMqH,EAAgB,IAAI,IAAcxnD,KAAKuB,QAAQy9C,iBACrD,IAAI,IAAIz6C,EAAE,EAAGA,EAAG23C,EAAQv4C,OAAQY,IAE9B,GAAU,MADC23C,EAAQ33C,GAIjB,GAAqB,MAAjB23C,EAAQ33C,EAAE,GAAY,CACxB,MAAMkjD,EAAaC,EAAiBxL,EAAS,IAAK33C,EAAG,8BACrD,IAAIrH,EAAUg/C,EAAQvgB,UAAUp3B,EAAE,EAAEkjD,GAAY5jC,OAEhD,GAAG7jB,KAAKuB,QAAQ8iD,eAAe,CAC7B,MAAMsD,EAAazqD,EAAQmH,QAAQ,MAChB,IAAhBsjD,IACDzqD,EAAUA,EAAQkJ,OAAOuhD,EAAW,GAExC,CAEG3nD,KAAKuB,QAAQ0jD,mBACd/nD,EAAU8C,KAAKuB,QAAQ0jD,iBAAiB/nD,IAGvCqoD,IACDgC,EAAWvnD,KAAKomD,oBAAoBmB,EAAUhC,EAAapF,IAI7D,MAAMyH,EAAczH,EAAMxkB,UAAUwkB,EAAMp5B,YAAY,KAAK,GAC3D,GAAG7pB,IAA2D,IAAhD8C,KAAKuB,QAAQy6C,aAAa33C,QAAQnH,GAC9C,MAAM,IAAI8H,MAAM,kDAAkD9H,MAEpE,IAAI2qD,EAAY,EACbD,IAAmE,IAApD5nD,KAAKuB,QAAQy6C,aAAa33C,QAAQujD,IAClDC,EAAY1H,EAAMp5B,YAAY,IAAKo5B,EAAMp5B,YAAY,KAAK,GAC1D/mB,KAAKwlD,cAAc/gD,OAEnBojD,EAAY1H,EAAMp5B,YAAY,KAEhCo5B,EAAQA,EAAMxkB,UAAU,EAAGksB,GAE3BtC,EAAcvlD,KAAKwlD,cAAc/gD,MACjC8iD,EAAW,GACXhjD,EAAIkjD,CACN,MAAO,GAAqB,MAAjBvL,EAAQ33C,EAAE,GAAY,CAE/B,IAAIujD,EAAUC,EAAW7L,EAAQ33C,GAAG,EAAO,MAC3C,IAAIujD,EAAS,MAAM,IAAI9iD,MAAM,yBAG7B,GADAuiD,EAAWvnD,KAAKomD,oBAAoBmB,EAAUhC,EAAapF,GACtDngD,KAAKuB,QAAQwjD,mBAAyC,SAApB+C,EAAQ5qD,SAAuB8C,KAAKuB,QAAQyjD,kBAE9E,CAEH,MAAMgD,EAAY,IAAI,IAAQF,EAAQ5qD,SACtC8qD,EAAUxO,IAAIx5C,KAAKuB,QAAQ88C,aAAc,IAEtCyJ,EAAQ5qD,UAAY4qD,EAAQG,QAAUH,EAAQI,iBAC/CF,EAAU,MAAQhoD,KAAKimD,mBAAmB6B,EAAQG,OAAQ9H,IAE5DngD,KAAKqmD,SAASd,EAAayC,EAAW7H,EAAO57C,EAC/C,CAGAA,EAAIujD,EAAQL,WAAa,CAC3B,MAAO,GAAgC,QAA7BvL,EAAQ91C,OAAO7B,EAAI,EAAG,GAAc,CAC5C,MAAM4jD,EAAWT,EAAiBxL,EAAS,SAAO33C,EAAE,EAAG,0BACvD,GAAGvE,KAAKuB,QAAQu9C,gBAAgB,CAC9B,MAAMv/C,EAAU28C,EAAQvgB,UAAUp3B,EAAI,EAAG4jD,EAAW,GAEpDZ,EAAWvnD,KAAKomD,oBAAoBmB,EAAUhC,EAAapF,GAE3DoF,EAAY/L,IAAIx5C,KAAKuB,QAAQu9C,gBAAiB,CAAE,CAAE,CAAC9+C,KAAKuB,QAAQ88C,cAAgB9+C,IAClF,CACAgF,EAAI4jD,CACN,MAAO,GAAiC,OAA7BjM,EAAQ91C,OAAO7B,EAAI,EAAG,GAAa,CAC5C,MAAMrC,EAASslD,EAAc/E,YAAYvG,EAAS33C,GAClDvE,KAAKylD,gBAAkBvjD,EAAO68C,SAC9Bx6C,EAAIrC,EAAOqC,CACb,MAAM,GAAgC,OAA7B23C,EAAQ91C,OAAO7B,EAAI,EAAG,GAAa,CAC1C,MAAMkjD,EAAaC,EAAiBxL,EAAS,MAAO33C,EAAG,wBAA0B,EAC3E0jD,EAAS/L,EAAQvgB,UAAUp3B,EAAI,EAAEkjD,GAEvCF,EAAWvnD,KAAKomD,oBAAoBmB,EAAUhC,EAAapF,GAE3D,IAAI72B,EAAMtpB,KAAK+lD,cAAckC,EAAQ1C,EAAY9H,QAAS0C,GAAO,GAAM,GAAO,GAAM,GAC1E/iD,MAAPksB,IAAkBA,EAAM,IAGxBtpB,KAAKuB,QAAQ+8C,cACdiH,EAAY/L,IAAIx5C,KAAKuB,QAAQ+8C,cAAe,CAAE,CAAE,CAACt+C,KAAKuB,QAAQ88C,cAAgB4J,KAE9E1C,EAAY/L,IAAIx5C,KAAKuB,QAAQ88C,aAAc/0B,GAG7C/kB,EAAIkjD,EAAa,CACnB,KAAM,CACJ,IAAIvlD,EAAS6lD,EAAW7L,EAAQ33C,EAAGvE,KAAKuB,QAAQ8iD,gBAC5CnnD,EAASgF,EAAOhF,QACpB,MAAMkrD,EAAalmD,EAAOkmD,WAC1B,IAAIH,EAAS/lD,EAAO+lD,OAChBC,EAAiBhmD,EAAOgmD,eACxBT,EAAavlD,EAAOulD,WAExB,GAAIznD,KAAKuB,QAAQ0jD,iBAAkB,CAEjC,MAAMoD,EAAaroD,KAAKuB,QAAQ0jD,iBAAiB/nD,GAC9C+qD,IAAW/qD,IACZ+qD,EAASI,GAEXnrD,EAAUmrD,CACZ,CAGI9C,GAAegC,GACU,SAAxBhC,EAAY9H,UAEb8J,EAAWvnD,KAAKomD,oBAAoBmB,EAAUhC,EAAapF,GAAO,IAKtE,MAAMmI,EAAU/C,EACb+C,IAAmE,IAAxDtoD,KAAKuB,QAAQy6C,aAAa33C,QAAQikD,EAAQ7K,WACtD8H,EAAcvlD,KAAKwlD,cAAc/gD,MACjC07C,EAAQA,EAAMxkB,UAAU,EAAGwkB,EAAMp5B,YAAY,OAE5C7pB,IAAYoqD,EAAO7J,UACpB0C,GAASA,EAAQ,IAAMjjD,EAAUA,GAEnC,MAAMy+C,EAAap3C,EACnB,GAAIvE,KAAKkmD,aAAalmD,KAAKsmD,eAAgBtmD,KAAKumD,kBAAmBpG,EAAOjjD,GAAU,CAClF,IAAIqrD,EAAa,GAEjB,GAAGN,EAAOtkD,OAAS,GAAKskD,EAAOlhC,YAAY,OAASkhC,EAAOtkD,OAAS,EAC/B,MAAhCzG,EAAQA,EAAQyG,OAAS,IAC1BzG,EAAUA,EAAQkJ,OAAO,EAAGlJ,EAAQyG,OAAS,GAC7Cw8C,EAAQA,EAAM/5C,OAAO,EAAG+5C,EAAMx8C,OAAS,GACvCskD,EAAS/qD,GAET+qD,EAASA,EAAO7hD,OAAO,EAAG6hD,EAAOtkD,OAAS,GAE5CY,EAAIrC,EAAOulD,gBAGR,IAAmD,IAAhDznD,KAAKuB,QAAQy6C,aAAa33C,QAAQnH,GAExCqH,EAAIrC,EAAOulD,eAGT,CAEF,MAAMvlD,EAASlC,KAAKmmD,iBAAiBjK,EAASkM,EAAYX,EAAa,GACvE,IAAIvlD,EAAQ,MAAM,IAAI8C,MAAM,qBAAqBojD,KACjD7jD,EAAIrC,EAAOqC,EACXgkD,EAAarmD,EAAOqmD,UACtB,CAEA,MAAMP,EAAY,IAAI,IAAQ9qD,GAE3BA,IAAY+qD,GAAUC,IACvBF,EAAU,MAAQhoD,KAAKimD,mBAAmBgC,EAAQ9H,IAGjDoI,IACDA,EAAavoD,KAAK+lD,cAAcwC,EAAYrrD,EAASijD,GAAO,EAAM+H,GAAgB,GAAM,IAG1F/H,EAAQA,EAAM/5C,OAAO,EAAG+5C,EAAMp5B,YAAY,MAC1CihC,EAAUxO,IAAIx5C,KAAKuB,QAAQ88C,aAAckK,GAEzCvoD,KAAKqmD,SAASd,EAAayC,EAAW7H,EAAOxE,EAC/C,KAAK,CAEH,GAAGsM,EAAOtkD,OAAS,GAAKskD,EAAOlhC,YAAY,OAASkhC,EAAOtkD,OAAS,EAAE,CASpE,GARmC,MAAhCzG,EAAQA,EAAQyG,OAAS,IAC1BzG,EAAUA,EAAQkJ,OAAO,EAAGlJ,EAAQyG,OAAS,GAC7Cw8C,EAAQA,EAAM/5C,OAAO,EAAG+5C,EAAMx8C,OAAS,GACvCskD,EAAS/qD,GAET+qD,EAASA,EAAO7hD,OAAO,EAAG6hD,EAAOtkD,OAAS,GAGzC3D,KAAKuB,QAAQ0jD,iBAAkB,CAChC,MAAMoD,EAAaroD,KAAKuB,QAAQ0jD,iBAAiB/nD,GAC9C+qD,IAAW/qD,IACZ+qD,EAASI,GAEXnrD,EAAUmrD,CACZ,CAEA,MAAML,EAAY,IAAI,IAAQ9qD,GAC3BA,IAAY+qD,GAAUC,IACvBF,EAAU,MAAQhoD,KAAKimD,mBAAmBgC,EAAQ9H,IAEpDngD,KAAKqmD,SAASd,EAAayC,EAAW7H,EAAOxE,GAC7CwE,EAAQA,EAAM/5C,OAAO,EAAG+5C,EAAMp5B,YAAY,KAC5C,KAEI,CACF,MAAMihC,EAAY,IAAI,IAAS9qD,GAC/B8C,KAAKwlD,cAAchhD,KAAK+gD,GAErBroD,IAAY+qD,GAAUC,IACvBF,EAAU,MAAQhoD,KAAKimD,mBAAmBgC,EAAQ9H,IAEpDngD,KAAKqmD,SAASd,EAAayC,EAAW7H,EAAOxE,GAC7C4J,EAAcyC,CAChB,CACAT,EAAW,GACXhjD,EAAIkjD,CACN,CACF,MAEAF,GAAYrL,EAAQ33C,GAGxB,OAAO+iD,EAAO39B,KAChB,EAEA,SAAS08B,EAASd,EAAayC,EAAW7H,EAAOxE,GAE1C37C,KAAKuB,QAAQ6jD,kBAAiBzJ,OAAav+C,GAChD,MAAM8E,EAASlC,KAAKuB,QAAQ4jD,UAAU6C,EAAUvK,QAAS0C,EAAO6H,EAAU,QAC5D,IAAX9lD,IAEyB,iBAAXA,GACf8lD,EAAUvK,QAAUv7C,EACpBqjD,EAAYc,SAAS2B,EAAWrM,IAEhC4J,EAAYc,SAAS2B,EAAWrM,GAEpC,CAEA,MAAM4E,EAAuB,SAASj3B,GAEpC,GAAGtpB,KAAKuB,QAAQy9C,gBAAgB,CAC9B,IAAI,IAAI6D,KAAc7iD,KAAKylD,gBAAgB,CACzC,MAAMxE,EAASjhD,KAAKylD,gBAAgB5C,GACpCv5B,EAAMA,EAAItjB,QAASi7C,EAAO8B,KAAM9B,EAAO33B,IACzC,CACA,IAAI,IAAIu5B,KAAc7iD,KAAK0lD,aAAa,CACtC,MAAMzE,EAASjhD,KAAK0lD,aAAa7C,GACjCv5B,EAAMA,EAAItjB,QAASi7C,EAAOpxB,MAAOoxB,EAAO33B,IAC1C,CACA,GAAGtpB,KAAKuB,QAAQujD,aACd,IAAI,IAAIjC,KAAc7iD,KAAK8kD,aAAa,CACtC,MAAM7D,EAASjhD,KAAK8kD,aAAajC,GACjCv5B,EAAMA,EAAItjB,QAASi7C,EAAOpxB,MAAOoxB,EAAO33B,IAC1C,CAEFA,EAAMA,EAAItjB,QAAShG,KAAK2lD,UAAU91B,MAAO7vB,KAAK2lD,UAAUr8B,IAC1D,CACA,OAAOA,CACT,EACA,SAAS88B,EAAoBmB,EAAUhC,EAAapF,EAAO2G,GAezD,OAdIS,SACgBnqD,IAAf0pD,IAA0BA,EAA0C,IAA7BvB,EAAY57B,MAAMhmB,aAS3CvG,KAPjBmqD,EAAWvnD,KAAK+lD,cAAcwB,EAC5BhC,EAAY9H,QACZ0C,GACA,IACAoF,EAAY,OAAkD,IAA1CxkD,OAAO2T,KAAK6wC,EAAY,OAAO5hD,OACnDmjD,KAEyC,KAAbS,GAC5BhC,EAAY/L,IAAIx5C,KAAKuB,QAAQ88C,aAAckJ,GAC7CA,EAAW,IAENA,CACT,CASA,SAASrB,EAAaI,EAAgBC,EAAmBpG,EAAOqI,GAC9D,SAAGjC,IAAqBA,EAAkBxuC,IAAIywC,QAC3ClC,IAAkBA,EAAevuC,IAAIooC,GAE1C,CAsCA,SAASuH,EAAiBxL,EAASj5C,EAAKsB,EAAGkkD,GACzC,MAAMC,EAAexM,EAAQ73C,QAAQpB,EAAKsB,GAC1C,IAAqB,IAAlBmkD,EACD,MAAM,IAAI1jD,MAAMyjD,GAEhB,OAAOC,EAAezlD,EAAIU,OAAS,CAEvC,CAEA,SAASokD,EAAW7L,EAAQ33C,EAAG8/C,EAAgBsE,EAAc,KAC3D,MAAMzmD,EAxCR,SAAgCg6C,EAAS33C,EAAGokD,EAAc,KACxD,IAAIC,EACAX,EAAS,GACb,IAAK,IAAIhuC,EAAQ1V,EAAG0V,EAAQiiC,EAAQv4C,OAAQsW,IAAS,CACnD,IAAI4uC,EAAK3M,EAAQjiC,GACjB,GAAI2uC,EACIC,IAAOD,IAAcA,EAAe,SACrC,GAAW,MAAPC,GAAqB,MAAPA,EACrBD,EAAeC,OACZ,GAAIA,IAAOF,EAAY,GAAI,CAChC,IAAGA,EAAY,GAQb,MAAO,CACL5pD,KAAMkpD,EACNhuC,MAAOA,GATT,GAAGiiC,EAAQjiC,EAAQ,KAAO0uC,EAAY,GACpC,MAAO,CACL5pD,KAAMkpD,EACNhuC,MAAOA,EASf,KAAkB,OAAP4uC,IACTA,EAAK,KAEPZ,GAAUY,CACZ,CACF,CAYiBC,CAAuB5M,EAAS33C,EAAE,EAAGokD,GACpD,IAAIzmD,EAAQ,OACZ,IAAI+lD,EAAS/lD,EAAOnD,KACpB,MAAM0oD,EAAavlD,EAAO+X,MACpB8uC,EAAiBd,EAAO91B,OAAO,MACrC,IAAIj1B,EAAU+qD,EACVC,GAAiB,GACE,IAApBa,IACD7rD,EAAU+qD,EAAOtsB,UAAU,EAAGotB,GAC9Bd,EAASA,EAAOtsB,UAAUotB,EAAiB,GAAGC,aAGhD,MAAMZ,EAAalrD,EACnB,GAAGmnD,EAAe,CAChB,MAAMsD,EAAazqD,EAAQmH,QAAQ,MAChB,IAAhBsjD,IACDzqD,EAAUA,EAAQkJ,OAAOuhD,EAAW,GACpCO,EAAiBhrD,IAAYgF,EAAOnD,KAAKqH,OAAOuhD,EAAa,GAEjE,CAEA,MAAO,CACLzqD,QAASA,EACT+qD,OAAQA,EACRR,WAAYA,EACZS,eAAgBA,EAChBE,WAAYA,EAEhB,CAOA,SAASjC,EAAiBjK,EAASh/C,EAASqH,GAC1C,MAAMo3C,EAAap3C,EAEnB,IAAI0kD,EAAe,EAEnB,KAAO1kD,EAAI23C,EAAQv4C,OAAQY,IACzB,GAAmB,MAAf23C,EAAQ33C,GACV,GAAqB,MAAjB23C,EAAQ33C,EAAE,GAAY,CACtB,MAAMkjD,EAAaC,EAAiBxL,EAAS,IAAK33C,EAAG,GAAGrH,mBAExD,GADmBg/C,EAAQvgB,UAAUp3B,EAAE,EAAEkjD,GAAY5jC,SACjC3mB,IAClB+rD,IACqB,IAAjBA,GACF,MAAO,CACLV,WAAYrM,EAAQvgB,UAAUggB,EAAYp3C,GAC1CA,GAINA,EAAEkjD,CACJ,MAAO,GAAoB,MAAjBvL,EAAQ33C,EAAE,GAElBA,EADmBmjD,EAAiBxL,EAAS,KAAM33C,EAAE,EAAG,gCAEnD,GAAgC,QAA7B23C,EAAQ91C,OAAO7B,EAAI,EAAG,GAE9BA,EADmBmjD,EAAiBxL,EAAS,SAAO33C,EAAE,EAAG,gCAEpD,GAAgC,OAA7B23C,EAAQ91C,OAAO7B,EAAI,EAAG,GAE9BA,EADmBmjD,EAAiBxL,EAAS,MAAO33C,EAAG,2BAA6B,MAE/E,CACL,MAAMujD,EAAUC,EAAW7L,EAAS33C,EAAG,KAEnCujD,KACkBA,GAAWA,EAAQ5qD,WACnBA,GAAuD,MAA5C4qD,EAAQG,OAAOH,EAAQG,OAAOtkD,OAAO,IAClEslD,IAEF1kD,EAAEujD,EAAQL,WAEd,CAGR,CAEA,SAAST,EAAW19B,EAAK4/B,EAAa3nD,GACpC,GAAI2nD,GAA8B,iBAAR5/B,EAAkB,CAE1C,MAAMg3B,EAASh3B,EAAIzF,OACnB,MAAc,SAAXy8B,GACgB,UAAXA,IACI,OAASh3B,EAAK/nB,EAC5B,CACE,OAAI,QAAQ+nB,GACHA,EAEA,EAGb,CAEA,SAASs8B,EAAc3iD,EAAKmc,EAAMqM,GAChC,MAAM3F,EAAY3U,OAAOlK,SAAShE,EAAKmc,GAEvC,OAAI0G,GAAa,GAAKA,GAAa,QACxBvgB,OAAOqgD,cAAc9/B,GAErB2F,EAAQxoB,EAAM,GAE3B,C,uGCxnBe,MAAMkmD,EAEjB,WAAAxxC,CAAYpW,GACRvB,KAAKymD,iBAAmB,CAAC,EACzBzmD,KAAKuB,SAAU,OAAaA,EAEhC,CAMA,KAAAgU,CAAM2mC,EAAQkN,GACV,GAAsB,iBAAZlN,GAAwBA,EAAQx5C,SACtCw5C,EAAUA,EAAQx5C,gBAChB,GAAsB,iBAAZw5C,EACZ,MAAM,IAAIl3C,MAAM,mDAGpB,GAAIokD,EAAiB,EACO,IAArBA,IAA2BA,EAAmB,CAAC,GAElD,MAAMlnD,GAAS,OAASg6C,EAASkN,GACjC,IAAe,IAAXlnD,EACF,MAAM8C,MAAO,GAAG9C,EAAOyY,IAAI8gB,OAAOv5B,EAAOyY,IAAI49B,QAAQr2C,EAAOyY,IAAI2iC,MAEpE,CACF,MAAM+L,EAAmB,IAAI,IAAiBrpD,KAAKuB,SACnD8nD,EAAiBxD,oBAAoB7lD,KAAKymD,kBAC1C,MAAM6C,EAAgBD,EAAiBvD,SAAS5J,GAChD,OAAGl8C,KAAKuB,QAAQs9C,oBAAmCzhD,IAAlBksD,EAAoCA,GACzD,OAASA,EAAetpD,KAAKuB,QAC7C,CAOA,SAAAgoD,CAAUn0C,EAAKlU,GACX,IAA2B,IAAxBA,EAAMmD,QAAQ,KACb,MAAM,IAAIW,MAAM,+BACd,IAAyB,IAAtBoQ,EAAI/Q,QAAQ,OAAqC,IAAtB+Q,EAAI/Q,QAAQ,KAC5C,MAAM,IAAIW,MAAM,wEACd,GAAa,MAAV9D,EACL,MAAM,IAAI8D,MAAM,6CAEhBhF,KAAKymD,iBAAiBrxC,GAAOlU,CAErC,CAYA,wBAAOsoD,GACH,OAAO,IAAQA,mBACnB,E,6CCjEJ,MAAMC,E,SAAkB,EAAQD,oBAQjB,SAASE,EAAS7rD,EAAM0D,GACrC,OAAOooD,EAAU9rD,EAAM0D,EACzB,CASA,SAASooD,EAASx8C,EAAK5L,EAAS4+C,GAC9B,IAAIn+C,EACJ,MAAM4nD,EAAgB,CAAC,EACvB,IAAK,IAAIrlD,EAAI,EAAGA,EAAI4I,EAAIxJ,OAAQY,IAAK,CACnC,MAAMi9C,EAASr0C,EAAI5I,GACbuG,EAAW22C,EAASD,GAC1B,IAAIqI,EAAW,GAIf,GAHwBA,OAAXzsD,IAAV+iD,EAAgCr1C,EACnBq1C,EAAQ,IAAMr1C,EAE3BA,IAAavJ,EAAQ88C,kBACVjhD,IAAT4E,EAAoBA,EAAOw/C,EAAO12C,GAChC9I,GAAQ,GAAKw/C,EAAO12C,OACrB,SAAgB1N,IAAb0N,EACP,SACI,GAAG02C,EAAO12C,GAAU,CAExB,IAAIwe,EAAMqgC,EAASnI,EAAO12C,GAAWvJ,EAASsoD,GAC9C,MAAMC,EAASC,EAAUzgC,EAAK/nB,QACEnE,IAA5BokD,EAAOiI,KACTngC,EAAImgC,GAAmBjI,EAAOiI,IAG7BjI,EAAO,MACRwI,EAAkB1gC,EAAKk4B,EAAO,MAAOqI,EAAUtoD,GACZ,IAA5BR,OAAO2T,KAAK4U,GAAK3lB,aAA8CvG,IAA9BksB,EAAI/nB,EAAQ88C,eAAgC98C,EAAQsjD,qBAEzD,IAA5B9jD,OAAO2T,KAAK4U,GAAK3lB,SACrBpC,EAAQsjD,qBAAsBv7B,EAAI/nB,EAAQ88C,cAAgB,GACxD/0B,EAAM,IAHXA,EAAMA,EAAI/nB,EAAQ88C,mBAMWjhD,IAA5BwsD,EAAc9+C,IAA2B8+C,EAAcr9C,eAAezB,IACnE9B,MAAMgR,QAAQ4vC,EAAc9+C,MAC5B8+C,EAAc9+C,GAAY,CAAE8+C,EAAc9+C,KAE9C8+C,EAAc9+C,GAAUtG,KAAK8kB,IAIzB/nB,EAAQyY,QAAQlP,EAAU++C,EAAUC,GACtCF,EAAc9+C,GAAY,CAACwe,GAE3BsgC,EAAc9+C,GAAYwe,CAGhC,EAEF,CAKA,MAHmB,iBAATtnB,EACLA,EAAK2B,OAAS,IAAGimD,EAAcroD,EAAQ88C,cAAgBr8C,QAC1C5E,IAAT4E,IAAoB4nD,EAAcroD,EAAQ88C,cAAgBr8C,GAC5D4nD,CACT,CAEA,SAASnI,EAAS52C,GAChB,MAAM6J,EAAO3T,OAAO2T,KAAK7J,GACzB,IAAK,IAAItG,EAAI,EAAGA,EAAImQ,EAAK/Q,OAAQY,IAAK,CACpC,MAAM6Q,EAAMV,EAAKnQ,GACjB,GAAW,OAAR6Q,EAAc,OAAOA,CAC1B,CACF,CAEA,SAAS40C,EAAiBn/C,EAAKw3C,EAAS4H,EAAO1oD,GAC7C,GAAI8gD,EAAS,CACX,MAAM3tC,EAAO3T,OAAO2T,KAAK2tC,GACnBn5C,EAAMwL,EAAK/Q,OACjB,IAAK,IAAIY,EAAI,EAAGA,EAAI2E,EAAK3E,IAAK,CAC5B,MAAM2lD,EAAWx1C,EAAKnQ,GAClBhD,EAAQyY,QAAQkwC,EAAUD,EAAQ,IAAMC,GAAU,GAAM,GAC1Dr/C,EAAIq/C,GAAY,CAAE7H,EAAQ6H,IAE1Br/C,EAAIq/C,GAAY7H,EAAQ6H,EAE5B,CACF,CACF,CAEA,SAASH,EAAUl/C,EAAKtJ,GACtB,MAAM,aAAE88C,GAAiB98C,EACnB4oD,EAAYppD,OAAO2T,KAAK7J,GAAKlH,OAEnC,OAAkB,IAAdwmD,KAKY,IAAdA,IACCt/C,EAAIwzC,IAA8C,kBAAtBxzC,EAAIwzC,IAAqD,IAAtBxzC,EAAIwzC,GAMxE,C,4BCpHA,IAAIoL,E,iBAGFA,EADoB,mBAAX95C,OACS,gBAEAA,OAAO,qBAGZ,MAAMy6C,EACnB,WAAAzyC,CAAY8lC,GACVz9C,KAAKy9C,QAAUA,EACfz9C,KAAK2pB,MAAQ,GACb3pB,KAAK,MAAQ,CAAC,CAChB,CACA,GAAAw5C,CAAIpkC,EAAIkU,GAEK,cAARlU,IAAqBA,EAAM,cAC9BpV,KAAK2pB,MAAMnlB,KAAM,CAAC,CAAC4Q,GAAMkU,GAC3B,CACA,QAAA+8B,CAASxoD,EAAM89C,GACO,cAAjB99C,EAAK4/C,UAAyB5/C,EAAK4/C,QAAU,cAC7C5/C,EAAK,OAASkD,OAAO2T,KAAK7W,EAAK,OAAO8F,OAAS,EAChD3D,KAAK2pB,MAAMnlB,KAAM,CAAE,CAAC3G,EAAK4/C,SAAU5/C,EAAK8rB,MAAO,KAAQ9rB,EAAK,QAE5DmC,KAAK2pB,MAAMnlB,KAAM,CAAE,CAAC3G,EAAK4/C,SAAU5/C,EAAK8rB,aAGvBvsB,IAAfu+C,IAGF37C,KAAK2pB,MAAM3pB,KAAK2pB,MAAMhmB,OAAS,GAAG8lD,GAAmB,CAAE9N,cAE3D,CAEA,wBAAO6N,GACL,OAAOC,CACT,E,4BCtCK,SAASY,KAAYC,GACxB,GAAuB,IAAnBA,EAAQ3mD,OACR,MAAM,IAAIqB,MAAM,mDAEpB,OAAO,YAA8B8E,GACjC,IAAI5H,EAAS4H,EACb,MAAMiP,EAAQ/Y,KACd,KAAOsqD,EAAQ3mD,OAAS,GAEpBzB,EAAS,CADMooD,EAAQhjD,QACNC,MAAMwR,EAAO7W,IAElC,OAAOA,EAAO,EAClB,CACJ,C,4ECZA,MAAMqoD,EAAmB,eACnBC,EAAO,OACb,SAASC,EAAc3oD,GACnB,MAAO,CACH+3C,SAAU/3C,EACVwoD,QAAS,CAACxoD,GACVslC,OAAO,EAEf,CAIO,MAAMsjB,EACT,WAAA/yC,GACI3X,KAAK2qD,eAAiB,CAClBC,SAAU,CAAC,EACXC,eAAgB,QAEpB7qD,KAAK8qD,SAAWP,CACpB,CAKA,iBAAIQ,GACA,OAAO/qD,KAAK2qD,cAChB,CAKA,kBAAIE,GACA,OAAO7qD,KAAK+qD,cAAcF,cAC9B,CACA,kBAAIA,CAAeG,GACfhrD,KAAK+qD,cAAcF,eAAiBG,CACxC,CAUA,OAAAC,CAAQ59C,EAAQ69C,GAAuB,GACnC,IAAK79C,GAAUA,EAAOy9C,WAAaP,EAC/B,MAAM,IAAIvlD,MAAM,+EAapB,OAXAjE,OAAO2T,KAAKrH,EAAO09C,cAAcH,UAAUvvC,QAAQ8vC,IAC3CnrD,KAAK+qD,cAAcH,SAASr+C,eAAe4+C,GACvCD,IACAlrD,KAAK+qD,cAAcH,SAASO,GAAcpqD,OAAOotB,OAAO,CAAC,EAAG9gB,EAAO09C,cAAcH,SAASO,KAI9FnrD,KAAK+qD,cAAcH,SAASO,GAAcpqD,OAAOotB,OAAO,CAAC,EAAG9gB,EAAO09C,cAAcH,SAASO,MAGlG99C,EAAOs9C,eAAiB3qD,KAAK+qD,cACtB/qD,IACX,CAQA,OAAAorD,CAAQh2C,KAAQtL,GAEZ,OADe9J,KAAKmB,IAAIiU,IAAQo1C,MACf1gD,EACrB,CAUA,GAAA3I,CAAIiU,GACA,MAAM9S,EAAOtC,KAAK+qD,cAAcH,SAASx1C,GACzC,IAAK9S,EACD,OAAQtC,KAAK6qD,gBACT,IAAK,OACD,OAAO,KACX,IAAK,QACD,MAAM,IAAI7lD,MAAM,oEAAoEoQ,KACxF,QACI,MAAM,IAAIpQ,MAAM,8FAA8FhF,KAAK6qD,kBAG/H,OAAO,UAAYvoD,EAAKgoD,QAC5B,CAMA,SAAAe,CAAUj2C,GACN,QAASpV,KAAK+qD,cAAcH,SAASx1C,EACzC,CAQA,KAAAk2C,CAAMl2C,EAAKtT,EAAQqc,EAAO,CAAC,GACvB,MAAM,MAAE4L,GAAQ,GAAU5L,EAC1B,GAAIne,KAAK+qD,cAAcH,SAASx1C,IAAQpV,KAAK+qD,cAAcH,SAASx1C,GAAKgyB,MACrE,MAAM,IAAIpiC,MAAM,oBAAoBoQ,oCAExC,GAAsB,mBAAXtT,EACP,MAAM,IAAIkD,MAAM,oBAAoBoQ,yCAExC,GAAI2U,EAEK/pB,KAAK+qD,cAAcH,SAASx1C,GAM7BpV,KAAK+qD,cAAcH,SAASx1C,GAAKk1C,QAAQ9lD,KAAK1C,GAJ9C9B,KAAK+qD,cAAcH,SAASx1C,GAAOq1C,EAAc3oD,QASrD,GAAI9B,KAAKqrD,UAAUj2C,GAAM,CACrB,MAAM,SAAEykC,GAAa75C,KAAK+qD,cAAcH,SAASx1C,GACjDpV,KAAK+qD,cAAcH,SAASx1C,GAAOrU,OAAOotB,OAAOs8B,EAAc3oD,GAAS,CACpE+3C,YAER,MAEI75C,KAAK+qD,cAAcH,SAASx1C,GAAOq1C,EAAc3oD,GAGzD,OAAO9B,IACX,CAkBA,WAAAurD,CAAYn2C,EAAKtT,KAAWgI,GAIxB,OAHK9J,KAAKqrD,UAAUj2C,IAChBpV,KAAKsrD,MAAMl2C,EAAKtT,GAEb9B,KAAKorD,QAAQh2C,KAAQtL,EAChC,CASA,MAAA0hD,CAAOp2C,KAAQk1C,GAIX,OAHAA,EAAQjvC,QAAQvZ,IACZ9B,KAAKsrD,MAAMl2C,EAAKtT,EAAQ,CAAEioB,OAAO,MAE9B/pB,IACX,CAMA,OAAAyrD,CAAQr2C,GACJ,IAAKpV,KAAKqrD,UAAUj2C,GAChB,MAAM,IAAIpQ,MAAM,uDAAuDoQ,KAEtE,GAAyD,mBAA9CpV,KAAK+qD,cAAcH,SAASx1C,GAAKykC,SAC7C,MAAM,IAAI70C,MAAM,kFAAkFoQ,KAGtG,OADApV,KAAK+qD,cAAcH,SAASx1C,GAAKk1C,QAAU,CAACtqD,KAAK+qD,cAAcH,SAASx1C,GAAKykC,UACtE75C,IACX,CAQA,QAAA0rD,CAASt2C,GACL,IAAKpV,KAAK+qD,cAAcH,SAASr+C,eAAe6I,GAC5C,MAAM,IAAIpQ,MAAM,mBAAmBoQ,wCAGvC,OADApV,KAAK+qD,cAAcH,SAASx1C,GAAKgyB,OAAQ,EAClCpnC,IACX,E,4BCnNG,SAAS2rD,EAAYhxC,GACxB,IAAK8F,EAAQ9F,GACT,MAAM,IAAI3V,MAAM,6BAExB,CACO,SAASyb,EAAQ9F,GACpB,QAAWA,GACQ,iBAARA,GACiB,oBAGR9P,EAHD8P,EAIZ5Z,OAAOE,UAAUyB,SAAS8G,KAAKqB,KAHlC8P,aAAe3V,MAEvB,IAAwB6F,CADxB,C,qECRO,SAAS+gD,IACZ,MAHS,QAIb,C,gJCDO,MAAMC,UAAe7mD,MACxB,WAAA2S,CAAYm0C,EAAuBC,GAC/B,MAAMjiD,EAAO,IAAIJ,YACX,QAAEnI,EAAO,aAAEyqD,IAAiB,OAAeliD,GACjD,IAAI/E,EAAUinD,EAmBd,GAlBIzqD,EAAQmf,QACR3b,EAAU,GAAGA,MAAYxD,EAAQmf,MAAM3b,WAE3CknD,MAAMlnD,GACN/E,KAAK+E,QAAUA,EACXxD,EAAQ0D,MAAgC,iBAAjB1D,EAAQ0D,KAC/BjF,KAAKiF,KAAO1D,EAAQ0D,KAGpBjF,KAAKiF,MAAO,SAEZ1D,EAAQmf,OACR3f,OAAOC,eAAehB,KAAM,SAAU,CAAEkB,MAAOK,EAAQmf,QAE3D3f,OAAOC,eAAehB,KAAM,QAAS,CAAEkB,MAAO,CAAC,IAC3CK,EAAQ9C,MAAgC,iBAAjB8C,EAAQ9C,MAC/BsC,OAAOotB,OAAOnuB,KAAKksD,MAAO3qD,EAAQ9C,MAElCuG,MAAMmnD,kBAAmB,CACzB,MAAMC,EAAO7qD,EAAQ8qD,gBAAkBrsD,KAAK2X,YAC5C3S,MAAMmnD,kBAAkBnsD,KAAMosD,EAClC,CACJ,CACA,YAAO1rC,CAAM/F,GAET,OADA,OAAYA,GACPA,EAAI2xC,SAEF,OAAQ3xC,EAAI2xC,QACb3xC,EAAI2xC,OAFC,IAIf,CACA,gBAAOC,CAAU5xC,IACb,OAAYA,GACZ,MAAM+F,EAAQmrC,EAAOnrC,MAAM/F,GAC3B,OAAI+F,EACO,GAAG/F,EAAI6xC,qBAAqBX,EAAOU,UAAU7rC,KAEjD/F,EAAI6xC,OAAS,EACxB,CACA,WAAO/tD,CAAKkc,IACR,OAAYA,GACZ,MAAM/U,EAAS,CAAC,EACV8a,EAAQmrC,EAAOnrC,MAAM/F,GAO3B,OANI+F,GACA3f,OAAOotB,OAAOvoB,EAAQimD,EAAOptD,KAAKiiB,IAElC/F,EAAIuxC,OACJnrD,OAAOotB,OAAOvoB,EAAQ+U,EAAIuxC,OAEvBtmD,CACX,CACA,QAAAlD,GACI,IAAIkD,EAAS5F,KAAKiF,MACdjF,KAAK2X,YAAY1S,MACjBjF,KAAK2X,YAAY1W,UAAUgE,KAI/B,OAHIjF,KAAK+E,UACLa,EAAS,GAAGA,MAAW5F,KAAK+E,WAEzBa,CACX,E,4DClEG,SAAS6mD,EAAe3iD,GAC3B,IAAIvI,EAASyqD,EAAe,GAC5B,GAAoB,IAAhBliD,EAAKnG,OACLpC,EAAU,CAAC,OAEV,IAAI,OAAQuI,EAAK,IAClBvI,EAAU,CACNmf,MAAO5W,EAAK,IAEhBkiD,EAAeliD,EAAKrG,MAAM,GAAGhC,KAAK,MAAQ,QAEzC,GAAIqI,EAAK,IAAyB,iBAAZA,EAAK,GAC5BvI,EAAUR,OAAOotB,OAAO,CAAC,EAAGrkB,EAAK,IACjCkiD,EAAeliD,EAAKrG,MAAM,GAAGhC,KAAK,MAAQ,OAEzC,IAAuB,iBAAZqI,EAAK,GAKjB,MAAM,IAAI9E,MAAM,sCAJhBzD,EAAU,CAAC,EACXyqD,EAAeA,EAAeliD,EAAKrI,KAAK,MAAQ,EAIpD,CACA,MAAO,CACHF,UACAyqD,eAER,C,6CC3BA,MAAMU,EAAW,wBACXC,EAAW,qCAKXC,EAAW,CACblI,KAAO,EAEPC,cAAc,EACdkI,aAAc,IACdjI,WAAW,GAIA,SAASkI,EAAS7pD,EAAK1B,EAAU,CAAC,GAE7C,GADAA,EAAUR,OAAOotB,OAAO,CAAC,EAAGy+B,EAAUrrD,IAClC0B,GAAsB,iBAARA,EAAmB,OAAOA,EAE5C,IAAI8pD,EAAc9pD,EAAI4gB,OAEtB,QAAwBzmB,IAArBmE,EAAQyrD,UAA0BzrD,EAAQyrD,SAASxnD,KAAKunD,GAAa,OAAO9pD,EAC1E,GAAS,MAANA,EAAW,OAAO,EACrB,GAAI1B,EAAQmjD,KAAOgI,EAASlnD,KAAKunD,GAClC,OAkGR,SAAmBE,GAEf,GAAGhmD,SAAU,OAAOA,SAASgmD,EApGI,IAqG5B,GAAG97C,OAAOlK,SAAU,OAAOkK,OAAOlK,SAASgmD,EArGf,IAsG5B,GAAG5vD,QAAUA,OAAO4J,SAAU,OAAO5J,OAAO4J,SAASgmD,EAtGzB,IAuG5B,MAAM,IAAIjoD,MAAM,+DACzB,CAxGekoD,CAAUH,GAGf,GAAIA,EAAW3K,SAAS,MAAQ2K,EAAW3K,SAAS,KACtD,OAqDR,SAA0Bn/C,EAAI8pD,EAAWxrD,GACrC,IAAIA,EAAQqjD,UAAW,OAAO3hD,EAC9B,MAAMghD,EAAW8I,EAAWhpD,MAAMopD,GAClC,GAAGlJ,EAAS,CACR,IAAIz1C,EAAOy1C,EAAS,IAAM,GAC1B,MAAMmJ,GAAsC,IAA9BnJ,EAAS,GAAG5/C,QAAQ,KAAc,IAAM,IAChDsgD,EAAeV,EAAS,GACxBoJ,EAA0B7+C,EAC5BvL,EAAI0hD,EAAahhD,OAAO,KAAOypD,EAC7BnqD,EAAI0hD,EAAahhD,UAAYypD,EAEnC,OAAGzI,EAAahhD,OAAS,GAAK0pD,EAAgCpqD,EAC9B,IAAxB0hD,EAAahhD,SACbsgD,EAAS,GAAGjE,WAAW,IAAIoN,MAAYnJ,EAAS,GAAG,KAAOmJ,EAEzD7rD,EAAQojD,eAAiB0I,GAE9BN,GAAc9I,EAAS,IAAM,IAAMA,EAAS,GACrC9yC,OAAO47C,IACL9pD,EALEkO,OAAO47C,EAM1B,CACI,OAAO9pD,CAEf,CA5EeqqD,CAAiBrqD,EAAI8pD,EAAWxrD,GAGtC,CAED,MAAMwC,EAAQ4oD,EAAS/5C,KAAKm6C,GAE5B,GAAGhpD,EAAM,CACL,MAAMyK,EAAOzK,EAAM,IAAM,GACnB4gD,EAAe5gD,EAAM,GAC3B,IAAIwpD,GAyEGN,EAzE2BlpD,EAAM,MA0EV,IAAzBkpD,EAAO5oD,QAAQ,MAEV,OADd4oD,EAASA,EAAOjnD,QAAQ,MAAO,KACXinD,EAAS,IACP,MAAdA,EAAO,GAAaA,EAAS,IAAIA,EACL,MAA5BA,EAAOA,EAAOtpD,OAAO,KAAaspD,EAASA,EAAOtxB,UAAU,EAAEsxB,EAAOtpD,OAAO,IAC7EspD,GAEJA,EAhFC,MAAMO,EAAgCh/C,EACH,MAA/BvL,EAAI0hD,EAAahhD,OAAO,GACO,MAA7BV,EAAI0hD,EAAahhD,QAGvB,IAAIpC,EAAQojD,eACJA,EAAahhD,OAAS,GACM,IAAxBghD,EAAahhD,SAAiB6pD,GAEtC,OAAOvqD,EAEP,CACA,MAAMia,EAAM/L,OAAO47C,GACbU,EAAYloD,OAAO2X,GAEzB,GAAY,IAARA,EAAW,OAAOA,EACtB,IAAiC,IAA9BuwC,EAAUt7B,OAAO,QAChB,OAAG5wB,EAAQqjD,UAAkB1nC,EACjBja,EACV,IAAgC,IAA7B8pD,EAAW1oD,QAAQ,KACxB,MAAiB,MAAdopD,GACKA,IAAcF,GACbE,IAAc,GAAGj/C,IAAO++C,IAFJrwC,EAGjBja,EAGhB,IAAIgF,EAAI08C,EAAc4I,EAAoBR,EAC1C,OAAGpI,EAES18C,IAAMwlD,GAAej/C,EAAKvG,IAAMwlD,EAAavwC,EAAMja,EAGnDgF,IAAMwlD,GAAexlD,IAAMuG,EAAKi/C,EAAavwC,EAAMja,CAEnE,CACJ,CACI,OAAOA,CAEf,CAkCJ,IAAmBgqD,CAjCnB,CAEA,MAAME,EAAgB,yC,0BCrBP,SAASO,IAStB,OApEF,SAAoBC,GAClB,IAAIC,EAAc,GAClB,GAAwB,IAApBD,EAAShqD,OAAgB,MAAO,GAEpC,GAA2B,iBAAhBgqD,EAAS,GAClB,MAAM,IAAIxhD,UAAU,kCAAoCwhD,EAAS,IAInE,GAAIA,EAAS,GAAG5pD,MAAM,iBAAmB4pD,EAAShqD,OAAS,EAAG,CAC5D,IAAIuP,EAAQy6C,EAASrmD,QACrBqmD,EAAS,GAAKz6C,EAAQy6C,EAAS,EACjC,CAGIA,EAAS,GAAG5pD,MAAM,gBACpB4pD,EAAS,GAAKA,EAAS,GAAG3nD,QAAQ,gBAAiB,UAEnD2nD,EAAS,GAAKA,EAAS,GAAG3nD,QAAQ,gBAAiB,SAGrD,IAAK,IAAIzB,EAAI,EAAGA,EAAIopD,EAAShqD,OAAQY,IAAK,CACxC,IAAIspD,EAAYF,EAASppD,GAEzB,GAAyB,iBAAdspD,EACT,MAAM,IAAI1hD,UAAU,kCAAoC0hD,GAGxC,KAAdA,IAEAtpD,EAAI,IAENspD,EAAYA,EAAU7nD,QAAQ,SAAU,KAIxC6nD,EAFEtpD,EAAIopD,EAAShqD,OAAS,EAEZkqD,EAAU7nD,QAAQ,SAAU,IAG5B6nD,EAAU7nD,QAAQ,SAAU,KAG1C4nD,EAAYppD,KAAKqpD,GAEnB,CAEA,IAAI5qD,EAAM2qD,EAAYnsD,KAAK,KAOvB0F,GAHJlE,EAAMA,EAAI+C,QAAQ,kBAAmB,OAGrBM,MAAM,KAGtB,OAFMa,EAAMG,SAAWH,EAAMxD,OAAS,EAAI,IAAK,IAAMwD,EAAM1F,KAAK,IAGlE,CAWS8hB,CANqB,iBAAjB7Z,UAAU,GACXA,UAAU,GAEV,GAAGjG,MAAM+F,KAAKE,WAI1B,C,4ECpEO,SAASokD,EAAwBnf,EAAUC,GAE9C,MAAO,UADS,QAAS,GAAGD,KAAYC,MAE5C,C,mGCAO,SAASmf,EAAoBpf,EAAUC,EAAUof,GACpD,MAAO,CAAErf,WAAUC,WAAUof,MAAKC,GAAI,EAAGC,UAAW,MAAOC,eAAe,EAC9E,CACO,SAASC,EAAyB7sD,EAAS8sD,GAC9C,MAAMn5C,EAAM3T,EAAQ2T,IAAIlP,QAAQ,KAAM,IAChCsoD,GAA2B,GAArBp5C,EAAI7Q,QAAQ,KAAa,IAAM6Q,EAAIzR,MAAMyR,EAAI7Q,QAAQ,MAC3DvC,EAASP,EAAQO,OAASP,EAAQO,OAAOsa,cAAgB,MACzDmyC,IAAM,uBAAuB/oD,KAAK6oD,EAAOE,MAAO,OAChDC,EAAW,WAAWH,EAAOJ,KAAKxqD,OAAO,GACzCuqD,GAAM,OAAWK,EAAOH,UAAWG,EAAO1f,SAAU0f,EAAOI,MAAOJ,EAAOzf,SAAUyf,EAAOK,MAAOL,EAAOM,OAAQN,EAAOL,KACvHY,EAAM,EAAI,GAAG9sD,KAAUwsD,KACvBO,EACA,EADiBN,EACb,GAAGP,KAAOK,EAAOK,SAASF,KAAYH,EAAOM,UAAUJ,KAAOK,IAC9D,GAAGZ,KAAOK,EAAOK,SAASE,KAC9BE,EAAa,CACfngB,SAAU0f,EAAO1f,SACjB8f,MAAOJ,EAAOI,MACdC,MAAOL,EAAOK,MACdJ,MACAC,MACA3sD,SAAUitD,EACVZ,GAAIO,EACJG,OAAQN,EAAOM,OACfT,UAAWG,EAAOH,UAClBa,OAAQV,EAAOU,QAEbC,EAAa,GACnB,IAAK,MAAMjnD,KAAK+mD,EACRA,EAAW/mD,KACD,QAANA,GAAqB,OAANA,GAAoB,cAANA,EAC7BinD,EAAWxqD,KAAK,GAAGuD,KAAK+mD,EAAW/mD,MAGnCinD,EAAWxqD,KAAK,GAAGuD,MAAM+mD,EAAW/mD,QAIhD,MAAO,UAAUinD,EAAWvtD,KAAK,OACrC,CAQO,SAASwtD,EAAgBrtD,EAAUstD,GAEtC,IADiBC,EAA4BvtD,GAEzC,OAAO,EAEX,MAAM62C,EAAK,8CACX,OAAS,CACL,MAAMuW,EAAcptD,EAAS0wB,SAAW1wB,EAAS0wB,QAAQnxB,IAAI,qBAAwB,GAC/E4C,EAAQ00C,EAAG7lC,KAAKo8C,GACtB,IAAKjrD,EACD,MAEJmrD,EAAQnrD,EAAM,IAAMA,EAAM,IAAMA,EAAM,EAC1C,CAGA,OAFAmrD,EAAQjB,IAAM,EACdiB,EAAQP,OAtBZ,WACI,IAAIS,EAAM,GACV,IAAK,IAAI7qD,EAAI,EAAGA,EA1CD,KA0CmBA,EAC9B6qD,EAAM,GAAGA,IA5CG,mBA4CetoD,KAAKsH,MAAsBihD,GAAhBvoD,KAAKC,aAE/C,OAAOqoD,CACX,CAgBqBE,IACV,CACX,CACO,SAASH,EAA4BvtD,GAExC,MAAmD,YAD/BA,EAAS0wB,SAAW1wB,EAAS0wB,QAAQnxB,IAAI,qBAAwB,IACnEmF,MAAM,MAAM,GAAGgW,aACrC,C,wGClEO,SAASizC,EAAUC,EAAS7gB,EAAUC,EAAU6gB,EAAYzB,GAC/D,OAAQwB,EAAQE,UACZ,KAAK,KAASC,KACNhhB,GAAYC,IACZ4gB,EAAQl9B,QAAQs9B,eAAgB,OAAwBjhB,EAAUC,IAEtE,MACJ,KAAK,KAASihB,OACVL,EAAQnB,QAAS,QAAoB1f,EAAUC,EAAUof,GACzD,MACJ,KAAK,KAAS8B,KAEV,MACJ,KAAK,KAASC,SACVP,EAAQl9B,QAAQs9B,eAAgB,OAAwBjhB,EAAUC,GAClE,MACJ,KAAK,KAASohB,MACVR,EAAQl9B,QAAQs9B,eAAgB,OAAwBH,GACxD,MACJ,QACI,MAAM,IAAI,KAAO,CACbhxD,KAAM,CACF0K,KAAM,KAAU8mD,kBAErB,sBAAsBT,EAAQE,YAE7C,C,4BC/BO,SAASQ,EAAwB5zD,GACpC,MAAO,GAAGA,EAAM6zD,cAAc7zD,EAAM8zD,cACxC,C,6DCFA,MAAMC,EAAwC,mBAAhB3gD,aACtBhN,SAAU4tD,GAAgBvvD,OAAOE,UAElC,SAAS+yC,EAAc9yC,GAC1B,OAAQmvD,IACHnvD,aAAiBwO,aAA2C,yBAA5B4gD,EAAY9mD,KAAKtI,GAC1D,C,4BCNO,SAASgsB,EAAShsB,GACrB,OAAiB,MAATA,GACiB,MAArBA,EAAMyW,aACgC,mBAA/BzW,EAAMyW,YAAYuV,UACzBhsB,EAAMyW,YAAYuV,SAAShsB,EACnC,C,4CCLO,SAASqvD,IACZ,MAAyB,iBAAXC,QAAkC,iBAAXA,MACzC,CACO,SAASC,IACZ,MAAyB,iBAAXD,QAAkC,QAAXA,MACzC,C,oFCJA,IAAIE,EAAY,KACT,SAASC,IAIZ,OAHKD,IACDA,EAAY,IAAI,KAEbA,CACX,C,6QCaA,MAAME,EAAuB,8EACtB,SAASz0D,EAAa00D,EAAWtvD,EAAU,CAAC,GAC/C,MAAQmuD,SAAUoB,EAAc,KAAI,eAAEC,EAAc,YAAEC,EAAcJ,EAAoB,IAAE5C,EAAG,QAAE17B,EAAU,CAAC,EAAC,UAAE2+B,EAAS,WAAEC,EAAU,SAAEtiB,EAAQ,MAAEtyC,EAAK,SAAEqyC,EAAQ,gBAAElY,GAAoBl1B,EACnL,IAAImuD,EAAWoB,EACVpB,IACDA,EAAW/gB,GAAYC,EAAW,KAASmhB,SAAW,KAASD,MAEnE,MAAMN,EAAU,CACZE,WACAqB,iBACAC,cACAhD,MACA17B,QAASvxB,OAAOotB,OAAO,CAAC,EAAGmE,GAC3B2+B,YACAC,aACAtiB,WACAuiB,QAAS,CACLhT,oBAAqB58C,EAAQ48C,qBAAuB,IACpDiT,iBAAkB,GAClBC,WAAY,CAAC,OAEjBC,YAAY,QAAeT,GAC3BA,YACAv0D,QACAqyC,WACAlY,mBAGJ,OADA,OAAU+4B,EAAS7gB,EAAUC,EAAUtyC,EAAO0xD,GACvC,CACHuD,SAAU,CAACtuC,EAAUuuC,EAAajwD,KAAY,OAASiuD,EAASvsC,EAAUuuC,EAAajwD,GACvFkwD,gBAAiB,CAACh4C,EAAMlY,KAAY,IAAAkE,GAAgB+pD,EAAS/1C,EAAMlY,GACnEmwD,iBAAkB,CAACzuC,EAAU1hB,KAAY,OAAiBiuD,EAASvsC,EAAU1hB,GAC7EowD,kBAAmB,CAAC1uC,EAAU1hB,EAASmY,KAAa,OAAkB81C,EAASvsC,EAAU1hB,EAASmY,GAClG7X,cAAe,CAAC4X,EAAMm4C,KAAmB,OAAcpC,EAAS/1C,EAAMm4C,GACtEC,WAAY,CAAC5uC,EAAU1hB,KAAY,OAAWiuD,EAASvsC,EAAU1hB,GACjEuwD,OAAQ,CAACr4C,EAAMlY,KAAY,OAAOiuD,EAAS/1C,EAAMlY,GACjDwwD,qBAAsB,CAACt4C,EAAMlY,KAExB,OAAqBiuD,EAAS/1C,EAAMlY,GACzCywD,gBAAiB,CAAC/uC,EAAU1hB,KAAY,OAAgBiuD,EAASvsC,EAAU1hB,GAC3E0wD,oBAAsBhvC,IAAa,OAAoBusC,EAASvsC,GAChEivC,kBAAoBjvC,IAAa,OAAkBusC,EAASvsC,GAC5DkvC,WAAY,IAAMpxD,OAAOotB,OAAO,CAAC,EAAGqhC,EAAQl9B,SAC5C8/B,SAAW7wD,IAAY,OAASiuD,EAASjuD,GACzC8wD,KAAM,CAAC54C,EAAMlY,KAAY,OAAKiuD,EAAS/1C,EAAMlY,GAC7C+wD,SAAU,CAACrvC,EAAUsvC,EAAqBhxD,KAAY,IAAAuC,GAAS0rD,EAASvsC,EAAUsvC,EAAqBhxD,GACvGixD,gBAAiB,CAACvvC,EAAUlkB,EAAMwC,KAAY,OAAgBiuD,EAASvsC,EAAUlkB,EAAMwC,GACvFkxD,0BAA2B,CAACC,EAAUpvD,EAAOC,EAAKxE,EAAMwC,KAAY,OAA0BiuD,EAASkD,EAAUpvD,EAAOC,EAAKxE,EAAMwC,GACnIoxD,iBAAmBl5C,IAAS,OAAiB+1C,EAAS/1C,GACtD0Y,OAAQ,CAAC1Y,EAAMlY,KAAY,OAAUiuD,EAAS/1C,EAAMlY,GACpDlF,WAAai2B,IACTk9B,EAAQl9B,QAAUvxB,OAAOotB,OAAO,CAAC,EAAGmE,IAExCrwB,KAAM,CAACwX,EAAMlY,KAAY,OAAQiuD,EAAS/1C,EAAMlY,GAChDqxD,OAAQ,CAACn5C,EAAMnd,EAAOiF,KAAY,OAAOiuD,EAAS/1C,EAAMnd,EAAOiF,GAC/DsxD,wBAA0BnjC,IACtB8/B,EAAQ2B,QAAQC,iBAAiB5sD,KAAKkrB,IAE1CojC,kBAAoBpjC,IAChB8/B,EAAQ2B,QAAQE,WAAW7sD,KAAKkrB,IAG5C,C,2MC9EO/xB,eAAe4zD,EAAS/B,EAASvsC,EAAUuuC,EAAajwD,EAAU,CAAC,GACtE,MAAMqwD,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,WAAW,QAAW5tC,IAC3CnhB,OAAQ,OACRwwB,QAAS,CACLygC,aAAa,QAAQvD,EAAQqB,WAAW,QAAWW,IAOnDwB,WAAiC,IAAtBzxD,EAAQ0xD,UAAsB,IAAM,IAM/CC,MAAO3xD,EAAQ4xD,QAAU,IAAM,aAEpC3D,EAASjuD,GACNK,QAAiB,OAAQgwD,EAAgBpC,IAC/C,QAAmBA,EAAS5tD,EAChC,C,sGCtBOjE,eAAe8zD,EAAgBjC,EAAS4D,EAAS7xD,EAAU,CAAC,GAC/D,IAA0B,IAAtBA,EAAQ8xD,UACR,OAqBR11D,eAA0C6xD,EAAS4D,EAAS7xD,EAAU,CAAC,GACnE,MAAM+xD,GAAQ,SAAkB,QAAcF,IAC9CE,EAAMzmC,KAAK,CAAC9pB,EAAGC,IACPD,EAAEY,OAASX,EAAEW,OACN,EAEFX,EAAEW,OAASZ,EAAEY,QACV,EAEL,GAEX,IAAI4vD,GAAW,EACf,IAAK,MAAMC,KAAYF,EACnB,GAAIC,QACM9B,EAAgBjC,EAASgE,EAAU,IAClCjyD,EACH8xD,WAAW,SAInB,IAEI,GAAsB,qBADE,OAAQ7D,EAASgE,IAC5BrzD,KACT,MAAM,IAAI6E,MAAM,yBAAyBouD,IAEjD,CACA,MAAOz4C,GAEH,GAAqB,MADPA,EACJid,OAQN,MAAMjd,EAPN44C,GAAW,QACL9B,EAAgBjC,EAASgE,EAAU,IAClCjyD,EACH8xD,WAAW,GAMvB,CAER,CA7DeI,CAA2BjE,EAAS4D,EAAS7xD,GACxD,MAAMqwD,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,WAaCp3C,GAb+B,QAAW25C,GAc/D35C,EAAKmiB,SAAS,KAGZniB,EAFIA,EAAO,MAdd3X,OAAQ,SACT0tD,EAASjuD,GACNK,QAAiB,OAAQgwD,EAAgBpC,GAUnD,IAA8B/1C,GAT1B,QAAmB+1C,EAAS5tD,EAChC,C,8GCTA,MAAM4oD,EAAO,OACN,SAASkH,EAAiBlC,EAASkD,EAAUnxD,EAAU,CAAC,GAC3D,MACMmyD,EAAY,IAAIC,EADI,eAS1B,OA6BJh2D,eAA6B6xD,EAASkD,EAAUnxD,EAAU,CAAC,GACvD,MAAM+wB,EAAU,CAAC,EACjB,GAA6B,iBAAlB/wB,EAAQ8B,OAAqD,iBAAxB9B,EAAQ8B,MAAMC,MAAoB,CAC9E,IAAIswD,EAAc,SAASryD,EAAQ8B,MAAMC,SACR,iBAAtB/B,EAAQ8B,MAAME,MACrBqwD,EAAc,GAAGA,IAAcryD,EAAQ8B,MAAME,OAEjD+uB,EAAQuhC,MAAQD,CACpB,CACA,MAAMhC,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,WAAW,QAAW6B,IAC3C5wD,OAAQ,MACRwwB,WACDk9B,EAASjuD,GACNK,QAAiB,OAAQgwD,EAAgBpC,GAE/C,IADA,QAAmBA,EAAS5tD,GACxB0wB,EAAQuhC,OAA6B,MAApBjyD,EAASg2B,OAAgB,CAC1C,MAAMk8B,EAAgB,IAAI9uD,MAAM,8CAA8CpD,EAASg2B,UAEvF,MADAk8B,EAAcl8B,OAASh2B,EAASg2B,OAC1Bk8B,CACV,CAOA,OANIvyD,EAAQmY,UACRmc,WAAW,KACPt0B,EAAQmY,SAAS9X,IAClB,GAGAA,EAAS8B,IACpB,CAhEIqwD,CAAcvE,EAASkD,EAAUnxD,GAC5Bm1B,KAAKvC,IACNA,EAAO0N,KAAK6xB,KAEXl6B,MAAM7e,IACP+4C,EAAUp9B,KAAK,QAAS3b,KAErB+4C,CACX,CACO,SAAS/B,EAAkBnC,EAASkD,EAAUnxD,EAAU,CAAC,EAAGmY,EAAW8wC,GAC1E,MACMwJ,EAAc,IAAIL,EADE,eAEpBrhC,EAAU,CAAC,GACS,IAAtB/wB,EAAQ0xD,YACR3gC,EAAQ,iBAAmB,KAE/B,MAAMs/B,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,WAAW,QAAW6B,IAC3C5wD,OAAQ,MACRwwB,UACAvzB,KAAMi1D,EACNC,aAAc,GACfzE,EAASjuD,GAYZ,OAXA,OAAQqwD,EAAgBpC,GACnB94B,KAAK90B,IAAY,QAAmB4tD,EAAS5tD,IAC7C80B,KAAK90B,IAENi0B,WAAW,KACPnc,EAAS9X,IACV,KAEF43B,MAAM7e,IACPq5C,EAAY19B,KAAK,QAAS3b,KAEvBq5C,CACX,C,2FCxCOr2D,eAAekE,EAAc2tD,EAAS8B,EAAYM,GAChDA,EAAe18C,MAChB08C,EAAe18C,KAAM,QAAQs6C,EAAQqB,WAAW,QAAWS,KAE/D,MAAM4C,GAAe,OAAsBtC,EAAgBpC,EAAS,CAAC,GAC/D5tD,QAAiB,OAAQsyD,EAAc1E,GAE7C,OADA,QAAmBA,EAAS5tD,GACrBA,CACX,C,2FCROjE,eAAek0D,EAAWrC,EAASvsC,EAAU1hB,EAAU,CAAC,GAC3D,MAAMqwD,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,WAAW,QAAW5tC,IAC3CnhB,OAAQ,UACT0tD,EAASjuD,GACNK,QAAiB,OAAQgwD,EAAgBpC,IAC/C,QAAmBA,EAAS5tD,EAChC,C,iHCLOjE,eAAeo0D,EAAqBvC,EAAS8B,EAAY/vD,EAAU,CAAC,GACvE,MAAMqwD,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,WAAW,QAAWS,GAAa,KACxDxvD,OAAQ,WACRwwB,QAAS,CACL6hC,OAAQ,6BACRjB,MAAO3xD,EAAQ6yD,KAAO,WAAa,MAExC5E,EAASjuD,GACNK,QAAiB,OAAQgwD,EAAgBpC,IAC/C,QAAmBA,EAAS5tD,GAC5B,MAAMG,QAAqBH,EAASI,OACpC,IAAKD,EACD,MAAM,IAAIiD,MAAM,qDAEpB,MAAMqvD,QAAgB,QAAStyD,EAAcytD,EAAQ2B,SAC/CmD,GAAc,QAAiBhD,GAErC,IAAIiD,EAMR,SAA2BryD,EAAQsyD,EAAsBC,EAAatyD,GAAa,EAAOuyD,GAAc,GACpG,MAAMC,EAAa,OAAeH,EAAsB,MAEhDpyD,aAAeR,SAAUS,IAAoBH,EAE/C0yD,EAAQvyD,EAAc/C,IAAIgD,IAE5B,MAAM0rC,GAAO,QAAc1rC,EAAK0rC,OAExBzrC,UAAYC,KAAM7C,IAAY2C,EAEhC2gB,EAA0B,MAAf0xC,EACXvkD,oBAAmB,QAAc49B,KACjC,QAAc,WAAmB59B,mBAAmBukD,GAAavkD,mBAAmB49B,KAC1F,OAAO,QAAqBruC,EAAOsjB,EAAU9gB,KAGjD,OAAIuyD,EACOE,EAGJA,EAAMtoC,OAAOhqB,GAAQA,EAAKgiB,WACd,SAAdhiB,EAAKnC,MAAmBmC,EAAK2gB,WAAawxC,EAAYzuD,QAAQ,MAAO,KAC9E,CA7BgBrD,CAAkB0xD,GADP,QAAiB7E,EAAQuB,gBAAkBvB,EAAQ8B,YACnBgD,EAAa/yD,EAAQszD,QAAStzD,EAAQmzD,aAI7F,OAHInzD,EAAQuzD,OACRP,GAAQ,QAAkBA,EAAOhzD,EAAQuzD,QAEtC,QAAuBlzD,EAAU2yD,EAAOhzD,EAAQszD,QAC3D,C,4DC5BOl3D,eAAem0D,EAAOtC,EAAS8B,EAAY/vD,EAAU,CAAC,GACzD,IAEI,aADM,OAAQiuD,EAAS8B,EAAY/vD,IAC5B,CACX,CACA,MAAOoZ,GACH,GAAmB,MAAfA,EAAIid,OACJ,OAAO,EAEX,MAAMjd,CACV,CACJ,C,2FCROhd,eAAeg1D,EAAiBnD,EAASkD,EAAUnxD,EAAU,CAAC,GACjE,MAAMqwD,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,WAAW,QAAW6B,IAC3C5wD,OAAQ,WACT0tD,EAASjuD,GACNK,QAAiB,OAAQgwD,EAAgBpC,GAC/C,KACI,QAAmBA,EAAS5tD,EAChC,CACA,MAAO+Y,GAEH,MADcA,CAElB,CAIA,MAAO,CACHo6C,YAJcnzD,EAAS0wB,QAAQnxB,IAAI,QAAU,IACpBmF,MAAM,KAAKhH,IAAIgD,GAAQA,EAAKuhB,QAIrDmxC,OAHWpzD,EAAS0wB,QAAQnxB,IAAI,WAAa,GAKrD,C,6JChBA,MAAM8zD,EAA2Bl7C,GAAMA,EAChCpc,eAAeq0D,EAAgBxC,EAASkD,EAAUnxD,EAAU,CAAC,GAChE,MAAM,OAAEkjB,EAAS,UAAaljB,EAC9B,GAAe,WAAXkjB,GAAkC,SAAXA,EACvB,MAAM,IAAI,KAAO,CACbhmB,KAAM,CACF0K,KAAM,KAAU+rD,sBAErB,0BAA0BzwC,KAEjC,MAAkB,SAAXA,EAoBX9mB,eAAqC6xD,EAASkD,EAAUnxD,EAAU,CAAC,GAC/D,MAAMqwD,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,WAAW,QAAW6B,IAC3C5wD,OAAQ,MACRwwB,QAAS,CACL6hC,OAAQ,cAEZgB,kBAAmB,CAACF,IACrBzF,EAASjuD,GACNK,QAAiB,OAAQgwD,EAAgBpC,IAC/C,QAAmBA,EAAS5tD,GAC5B,MAAM8B,QAAa9B,EAASI,OAC5B,OAAO,QAAuBJ,EAAU8B,EAAMnC,EAAQszD,QAC1D,CAhCUO,CAAsB5F,EAASkD,EAAUnxD,GAGnD5D,eAAqC6xD,EAASkD,EAAUnxD,EAAU,CAAC,GAC/D,MAAMqwD,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,WAAW,QAAW6B,IAC3C5wD,OAAQ,OACT0tD,EAASjuD,GACNK,QAAiB,OAAQgwD,EAAgBpC,GAE/C,IAAI9rD,EAOJ,OARA,QAAmB8rD,EAAS5tD,GAGxB8B,GADA,WAAW,eACE9B,EAASyzD,cAGfxgC,EAAOrV,WAAW5d,EAASyzD,gBAE/B,QAAuBzzD,EAAU8B,EAAMnC,EAAQszD,QAC1D,CAjBUS,CAAsB9F,EAASkD,EAAUnxD,EACnD,CA+BO,SAAS0wD,EAAoBzC,EAASkD,GACzC,IAAIx9C,GAAM,QAAQs6C,EAAQqB,WAAW,QAAW6B,IAChD,MAAMl9C,EAAW,WAAWhQ,KAAK0P,GAAO,QAAU,OAClD,OAAQs6C,EAAQE,UACZ,KAAK,KAASI,KAEV,MACJ,KAAK,KAASC,SAAU,CACpB,MAAMwF,EAAW/F,EAAQl9B,QAAQs9B,cAAc5pD,QAAQ,WAAY,IAAI6d,OACjE2xC,GAAe,QAAWD,GAChCrgD,EAAMA,EAAIlP,QAAQ,eAAgB,GAAGwP,OAAcggD,MACnD,KACJ,CACA,QACI,MAAM,IAAI,KAAO,CACb/2D,KAAM,CACF0K,KAAM,KAAUssD,0BAErB,wCAAwCjG,EAAQE,YAE3D,OAAOx6C,CACX,C,qGCpEOvX,eAAey0D,EAAS5C,EAASjuD,EAAU,CAAC,GAC/C,MAAMkY,EAAOlY,EAAQkY,MAAQ,IACvBm4C,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,UAAWp3C,GAChC3X,OAAQ,WACRwwB,QAAS,CACL6hC,OAAQ,6BACRjB,MAAO,MAEZ1D,EAASjuD,GACNK,QAAiB,OAAQgwD,EAAgBpC,IAC/C,QAAmBA,EAAS5tD,GAC5B,MAAMG,QAAqBH,EAASI,OAC9BE,QAAe,QAASH,EAAcytD,EAAQ2B,SAC9CuE,GAAQ,OAAWxzD,GACzB,OAAO,QAAuBN,EAAU8zD,EAAOn0D,EAAQszD,QAC3D,C,yHCfA,MAAMc,EAAkB,8BACjBh4D,eAAe00D,EAAK7C,EAAS/1C,EAAMlY,EAAU,CAAC,GACjD,MAAM,aAAEq0D,EAAY,QAAEhgC,EAAU+/B,GAAoBp0D,EAC9C+wB,EAAU,CACZ6hC,OAAQ,6BACR0B,QAASjgC,GAETggC,IACAtjC,EAAQwjC,GAAKF,GAEjB,MAAMhE,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,WAAW,QAAWp3C,IAC3C3X,OAAQ,OACRwwB,UACAvzB,MAAM,OAAgBywD,EAAQwB,cAC/BxB,EAASjuD,GACNK,QAAiB,OAAQgwD,EAAgBpC,IAC/C,QAAmBA,EAAS5tD,GAC5B,MAAMG,QAAqBH,EAASI,OAC9B+zD,GAAc,OAAqBh0D,GACnCzF,EAAQ,MAAey5D,EAAa,gDACpCC,EAAgB,MAAeD,EAAa,yCAClD,IAAKz5D,EAED,MADY,QAAwBsF,EAAU,4BAGlD,MAAO,CACHtF,QACA05D,gBAER,CACOr4D,eAAei1D,EAAOpD,EAAS/1C,EAAMnd,EAAOiF,EAAU,CAAC,GAC1D,MAAMqwD,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,WAAW,QAAWp3C,IAC3C3X,OAAQ,SACRwwB,QAAS,CACL,aAAch2B,IAEnBkzD,EAASjuD,GACNK,QAAiB,OAAQgwD,EAAgBpC,GAE/C,IADA,QAAmBA,EAAS5tD,GACJ,MAApBA,EAASg2B,QAAsC,MAApBh2B,EAASg2B,OAEpC,MADY,QAAwBh2B,EAG5C,C,2FC/COjE,eAAe20D,EAAS9C,EAASvsC,EAAUuuC,EAAajwD,EAAU,CAAC,GACtE,MAAMqwD,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,WAAW,QAAW5tC,IAC3CnhB,OAAQ,OACRwwB,QAAS,CACLygC,aAAa,QAAQvD,EAAQqB,WAAW,QAAWW,IAOnDwB,WAAiC,IAAtBzxD,EAAQ0xD,UAAsB,IAAM,MAEpDzD,EAASjuD,GACNK,QAAiB,OAAQgwD,EAAgBpC,IAC/C,QAAmBA,EAAS5tD,EAChC,C,4HCdOjE,eAAe80D,EAA0BjD,EAASkD,EAAUpvD,EAAOC,EAAKxE,EAAMwC,EAAU,CAAC,GAC5F,MAAMwzD,QAAmB,OAAiBvF,EAASkD,EAAUnxD,GAC7D,GAAIwzD,EAAWA,WAAW3S,SAAS,0BAC/B,aAYRzkD,eAAiD6xD,EAASkD,EAAUpvD,EAAOC,EAAKxE,EAAMwC,EAAU,CAAC,GAC7F,GAAI+B,EAAQC,GAAOD,EAAQ,EAGvB,MAAM,IAAI,KAAO,CACb7E,KAAM,CACF0K,KAAM,KAAU8sD,qBAErB,wBAAwB3yD,wBAE/B,MAAMgvB,EAAU,CACZ,eAAgB,uCAChB,iBAAkB,IAAG/uB,EAAMD,EAAQ,GACnC,iBAAkB,SAASA,KAASC,KAElCquD,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,WAAW,QAAW6B,IAC3C5wD,OAAQ,QACRwwB,UACAvzB,QACDywD,EAASjuD,GACNK,QAAiB,OAAQgwD,EAAgBpC,IAC/C,QAAmBA,EAAS5tD,EAChC,CAnCqBs0D,CAAkC1G,EAASkD,EAAUpvD,EAAOC,EAAKxE,EAAMwC,GAExF,GAAIwzD,EAAWC,OAAO5S,SAAS,WAC3B2S,EAAWA,WAAW3S,SAAS,wCAC/B,aAgCRzkD,eAA+C6xD,EAASkD,EAAUpvD,EAAOC,EAAKxE,EAAMwC,EAAU,CAAC,GAC3F,GAAI+B,EAAQC,GAAOD,EAAQ,EACvB,MAAM,IAAI,KAAO,CACb7E,KAAM,CACF0K,KAAM,KAAU8sD,qBAErB,wBAAwB3yD,wBAE/B,MAAMgvB,EAAU,CACZ,eAAgB,2BAChB,iBAAkB,IAAG/uB,EAAMD,EAAQ,GACnC,gBAAiB,SAASA,KAASC,OAEjCquD,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,WAAW,QAAW6B,IAC3C5wD,OAAQ,MACRwwB,UACAvzB,QACDywD,EAASjuD,GACNK,QAAiB,OAAQgwD,EAAgBpC,IAC/C,QAAmBA,EAAS5tD,EAChC,CArDqBu0D,CAAgC3G,EAASkD,EAAUpvD,EAAOC,EAAKxE,EAAMwC,GAEtF,MAAM,IAAI,KAAO,CACb9C,KAAM,CACF0K,KAAM,KAAUitD,eAErB,gBACP,C,qKCXOz4D,eAAe60D,EAAgBhD,EAASkD,EAAU3zD,EAAMwC,EAAU,CAAC,GACtE,MAAM,cAAE80D,GAAgB,EAAI,UAAEpD,GAAY,GAAS1xD,EAC7C+wB,EAAU,CACZ,eAAgB,8BAEf,YACA,eACiB,IAAX,QACqB,IAArB,GAAQsG,UACf75B,aAAgB,aAGO,IAAlBs3D,IAIL/jC,EAAQ,kBADsB,iBAAlB+jC,EACgB,GAAGA,IAGH,IAAG,OAAoBt3D,MAElDk0D,IACD3gC,EAAQ,iBAAmB,KAE/B,MAAMs/B,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,WAAW,QAAW6B,IAC3C5wD,OAAQ,MACRwwB,UACAvzB,QACDywD,EAASjuD,GACNK,QAAiB,OAAQgwD,EAAgBpC,GAC/C,KACI,QAAmBA,EAAS5tD,EAChC,CACA,MAAO+Y,GACH,MAAMzV,EAAQyV,EACd,GAAqB,MAAjBzV,EAAM0yB,QAAmBq7B,EAIzB,MAAM/tD,EAHN,OAAO,CAKf,CACA,OAAO,CACX,CACO,SAASgtD,EAAkB1C,EAASkD,GACvC,IAAIx9C,EAAM,IAAG,QAAQs6C,EAAQqB,WAAW,QAAW6B,4CACnD,MAAMl9C,EAAW,WAAWhQ,KAAK0P,GAAO,QAAU,OAClD,OAAQs6C,EAAQE,UACZ,KAAK,KAASI,KAEV,MACJ,KAAK,KAASC,SAAU,CACpB,MAAMwF,EAAW/F,EAAQl9B,QAAQs9B,cAAc5pD,QAAQ,WAAY,IAAI6d,OACjE2xC,GAAe,QAAWD,GAChCrgD,EAAMA,EAAIlP,QAAQ,eAAgB,GAAGwP,OAAcggD,MACnD,KACJ,CACA,QACI,MAAM,IAAI,KAAO,CACb/2D,KAAM,CACF0K,KAAM,KAAUssD,0BAErB,wCAAwCjG,EAAQE,YAE3D,OAAOx6C,CACX,C,sGCvEOvX,eAAe24D,EAAU9G,EAAS+G,EAAeh1D,EAAU,CAAC,GAC/D,MAAQszD,QAAS1yD,GAAa,GAAUZ,EAClCqwD,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,WAAW,QAAW0F,IAC3Cz0D,OAAQ,SACRwwB,QAAS,CACL6hC,OAAQ,6BAER,eAAgB3E,EAAQl9B,QAAQ,iBAAmB,mCAExDk9B,EAASjuD,GACNK,QAAiB,OAAQgwD,EAAgBpC,IAC/C,QAAmBA,EAAS5tD,GAC5B,MAAMw4B,QAAqBx4B,EAASI,OAC9BD,QAAqB,QAASq4B,EAAco1B,EAAQ2B,SACpDqF,GAAU,QAAYz0D,EAAcw0D,EAAep0D,GACzD,OAAO,QAAuBP,EAAU40D,EAASr0D,EACrD,C,sGCjBOxE,eAAe84D,EAAQjH,EAASvsC,EAAU1hB,EAAU,CAAC,GACxD,MAAQszD,QAAS1yD,GAAa,GAAUZ,EAClCqwD,GAAiB,OAAsB,CACzC18C,KAAK,QAAQs6C,EAAQqB,WAAW,QAAW5tC,IAC3CnhB,OAAQ,WACRwwB,QAAS,CACL6hC,OAAQ,6BACRjB,MAAO,MAEZ1D,EAASjuD,GACNK,QAAiB,OAAQgwD,EAAgBpC,IAC/C,QAAmBA,EAAS5tD,GAC5B,MAAMG,QAAqBH,EAASI,OAC9BE,QAAe,QAASH,EAAcytD,EAAQ2B,SAC9ClvD,GAAO,QAAUC,EAAQ+gB,EAAU9gB,GACzC,OAAO,QAAuBP,EAAUK,EAAME,EAClD,C,kLCyBO,SAASu0D,EAAsB9E,EAAgBpC,EAASmH,GAC3D,MAAMzC,GAAe,OAAatC,GAoBlC,OAnBAsC,EAAa5hC,SAAU,OAAak9B,EAAQl9B,QAAS4hC,EAAa5hC,SAAW,CAAC,EAAGqkC,EAAYrkC,SAAW,CAAC,QACzE,IAArBqkC,EAAY53D,OACnBm1D,EAAan1D,KAAO43D,EAAY53D,MAEhC43D,EAAYzgC,SACZg+B,EAAah+B,OAASygC,EAAYzgC,QAElCs5B,EAAQyB,YACRiD,EAAajD,UAAYzB,EAAQyB,WAEjCzB,EAAQ0B,aACRgD,EAAahD,WAAa1B,EAAQ0B,YAElC1B,EAAQnB,SACR6F,EAAahF,QAAUM,EAAQnB,QAEI,kBAA5BmB,EAAQ/4B,kBACfy9B,EAAaz9B,gBAAkB+4B,EAAQ/4B,iBAEpCy9B,CACX,CACOv2D,eAAe8X,EAAQm8C,EAAgBpC,GAC1C,OAAIA,EAAQE,WAAa,KAASC,KAQtChyD,eAA2Bi0D,EAAgBpC,GACvC,MAAM5tD,QAAiBg1D,EAAgBhF,GACvC,OAAIhwD,EAASi1D,IACTrH,EAAQE,SAAW,KAASK,SACrBnuD,GAEY,KAAnBA,EAASg2B,SAAiB,QAA4Bh2B,IACtD4tD,EAAQE,SAAW,KAASG,QAC5B,OAAUL,EAASA,EAAQ7gB,SAAU6gB,EAAQ5gB,cAAUxxC,OAAWA,GAClEw0D,EAAe1C,QAAUM,EAAQnB,OAC1ByI,EAAclF,IAElBhwD,CACX,CApBem1D,CAAYnF,EAAgBpC,GAEnCoC,EAAe1C,QACR4H,EAAclF,GAElBgF,EAAgBhF,EAC3B,CAeAj0D,eAAem5D,EAAclF,GAEzB,MAAM1C,EAAU0C,EAAe1C,eACxB0C,EAAe1C,QAElBA,EAAQf,gBACRyD,GAAiB,OAAMA,EAAgB,CACnCt/B,QAAS,CACLs9B,eAAe,QAAyBgC,EAAgB1C,OAKpE,MAAMttD,QAAiBg1D,EAAgBhF,GACvC,GAAuB,KAAnBhwD,EAASg2B,QAET,GADAs3B,EAAQf,eAAgB,QAAgBvsD,EAAUstD,GAC9CA,EAAQf,cAAe,CACvByD,GAAiB,OAAMA,EAAgB,CACnCt/B,QAAS,CACLs9B,eAAe,QAAyBgC,EAAgB1C,MAGhE,MAAM8H,QAAkBJ,EAAgBhF,GAOxC,OANwB,KAApBoF,EAAUp/B,OACVs3B,EAAQf,eAAgB,EAGxBe,EAAQjB,KAEL+I,CACX,OAGA9H,EAAQjB,KAEZ,OAAOrsD,CACX,CACA,SAASg1D,EAAgBhF,GACrB,MAAMqF,GAAU,SAChB,OAAOA,EAAQ1L,YAAY,UAAYhqD,GAAY01D,EAAQ1L,YAAY,QAAS,KAAOhqD,EAAQ2T,IAxHnG,SAAyB08C,GACrB,IAAIt/B,EAAU,CAAC,EAEf,MAAMnU,EAAO,CACTrc,OAAQ8vD,EAAe9vD,QAK3B,GAHI8vD,EAAet/B,UACfA,GAAU,OAAaA,EAASs/B,EAAet/B,eAEhB,IAAxBs/B,EAAe7yD,KAAsB,CAC5C,MAAO2E,EAAMwzD,IAAc,OAAuBtF,EAAe7yD,MACjEof,EAAKza,KAAOA,EACZ4uB,GAAU,OAAaA,EAAS4kC,EACpC,CAoBA,OAnBItF,EAAe17B,SACf/X,EAAK+X,OAAS07B,EAAe17B,QAE7B07B,EAAen7B,kBACftY,EAAKqY,YAAc,YAGlB,WAAY,WACTo7B,EAAeX,WAAaW,EAAeV,cAC3C/yC,EAAKg5C,MAASC,GACiB,UAAvBA,EAAU5hD,SACHo8C,EAAeX,WAAa,IAAI,QAEpCW,EAAeV,YAAc,IAAI,SAKpD/yC,EAAKmU,QAAUA,EACRnU,CACX,CAsFwGk5C,CAAgB91D,IAAWqwD,EACnI,C,iGClIO,SAAS0F,EAAwB11D,EAAU6pB,EAAS,IACvD,MAAM9Q,EAAM,IAAI3V,MAAM,GAAGymB,sBAA2B7pB,EAASg2B,UAAUh2B,EAASs3B,cAGhF,OAFAve,EAAIid,OAASh2B,EAASg2B,OACtBjd,EAAI/Y,SAAWA,EACR+Y,CACX,CACO,SAAS48C,EAAmB/H,EAAS5tD,GACxC,MAAM,OAAEg2B,GAAWh2B,EACnB,GAAe,MAAXg2B,GAAkB43B,EAAQnB,OAC1B,OAAOzsD,EACX,GAAIg2B,GAAU,IAEV,MADY0/B,EAAwB11D,GAGxC,OAAOA,CACX,CACO,SAAS41D,EAAkBjD,EAAOO,GACrC,OAAOP,EAAMjoC,OAAOyjB,IAAQ,QAAUA,EAAK9sB,SAAU6xC,EAAM,CAAE2C,WAAW,IAC5E,CAYO,SAAS50D,EAAuBjB,EAAU7C,EAAMoD,GAAa,GAChE,OAAOA,EACD,CACEpD,OACAuzB,QAAS1wB,EAAS0wB,SAAU,OAAuB1wB,EAAS0wB,SAAW,CAAC,EACxEsF,OAAQh2B,EAASg2B,OACjBsB,WAAYt3B,EAASs3B,YAEvBn6B,CACV,C,6FCrCO,SAAS24D,EAAuB34D,GACnC,KAAK,YAAY,UAAmBA,aAAgB,WAEhD,MAAO,CAACA,EAAM,CAAC,GAEnB,GAAoB,iBAATA,EACP,MAAO,CAACA,EAAM,CAAC,GAEd,IAAI,OAASA,GACd,MAAO,CAACA,EAAM,CAAC,GAEd,IAAI,OAAcA,GACnB,MAAO,CAACA,EAAM,CAAC,GAEd,GAAIA,GAAwB,iBAATA,EACpB,MAAO,CACHkS,KAAK2W,UAAU7oB,GACf,CACI,eAAgB,qBAI5B,MAAM,IAAIiG,MAAM,gEAAgEjG,EACpF,C,4DC1BO,SAAS44D,EAAWzJ,EAAW0J,EAAMnJ,EAAOoJ,EAAMnJ,EAAOC,EAAQX,GACpE,MAAM8J,EAAU9J,GAAO,EAAI,GAAG4J,KAAQnJ,KAASoJ,KAC/C,OAAI3J,GAAyC,aAA5BA,EAAU5xC,cAChB,EAAI,GAAGw7C,KAAWpJ,KAASC,KAE/BmJ,CACX,C,+FCHIC,E,2CAqDG,SAASC,EAAqBv+C,EAAMvY,GACvC,IAAIuY,EAAKmiB,SAAS,6BAIlB,OAAO16B,CACX,CACA,SAAS+2D,EAAkBptD,EAAKrI,EAAMrC,EAAO43D,EAAaG,UACtD,MAAM5uC,EAAM,MAAeze,EAAKrI,GAChC,MAAa,UAATrC,IAA2C,IAAvB6I,MAAMgR,QAAQsP,GAC3B,CAACA,GAEM,WAATnpB,GAAqB6I,MAAMgR,QAAQsP,GACjCA,EAAI,GAERA,CACX,CAuCO,SAAS1mB,EAASu1D,EAAK3I,GAO1B,OALAA,EAAUA,GAAW,CACjBrR,oBAAqB,IACrBiT,iBAAkB,GAClBC,WAAY,CAAC2G,IAEV,IAAI3mD,QAAQ6R,IAEfA,EAnCR,SAAyBhhB,GACrB,MAAM,YAAEE,GAAgBF,EACxB,GAAoB,KAAhBE,EACA,MAAO,CACHA,YAAa,CACTR,SAAU,KAItB,IAAKQ,EACD,MAAM,IAAI4C,MAAM,+CAEpB,MAAMY,EAAS,CACXxD,YAAa4G,MAAMgR,QAAQ5X,GAAeA,EAAY,GAAKA,GAI/D,OAFA,MAAewD,EAAQ,uBAAwBqyD,EAAkBryD,EAAQ,uBAAwBmyD,EAAa/uD,QAC9G,MAAepD,EAAQ,uBAAwB,MAAeA,EAAQ,wBAAwBtG,IAAIsC,GA5BtG,SAA2BA,GACvB,MAAMgE,EAAS7E,OAAOotB,OAAO,CAAC,EAAGvsB,GASjC,OAPIgE,EAAOgyB,OACP,MAAehyB,EAAQ,SAAUqyD,EAAkBryD,EAAQ,SAAUmyD,EAAah3D,UAGlF,MAAe6E,EAAQ,WAAYqyD,EAAkBryD,EAAQ,WAAYmyD,EAAah3D,SACtF,MAAe6E,EAAQ,gBAAiBqyD,EAAkBryD,EAAQ,gBAAiBmyD,EAAah3D,UAE7F6E,CACX,CAiBkHwyD,CAAkBx2D,KACzHgE,CACX,CAiBgByyD,CA/GhB,UAAmB,oBAAEla,EAAmB,iBAAEiT,EAAgB,WAAEC,IACxD,OAAO,IAAI,IAAU,CACjBtV,wBAAwB,EACxBoC,sBACAE,aAAc,OACdjD,kBAAkB,EAClBiJ,gBAAgB,EAChBI,mBAAoB,CAChBC,KAAK,EACLC,cAAc,GAElB,uBAAA/F,CAAwBnqC,EAAG6jD,EAAWnY,GAClC,IAAK,MAAMoY,KAAanH,EACpB,IACI,MAAMlwD,EAAQq3D,EAAUpY,EAAOmY,GAC/B,GAAIp3D,IAAUo3D,EACV,OAAOp3D,CAEf,CACA,MAAOgE,GAEP,CAEJ,OAAOozD,CACX,EACA,iBAAA3Z,CAAkBzhD,EAASilD,EAAUhC,GACjC,IAAK,MAAMoY,KAAalH,EACpB,IACI,MAAMnwD,EAAQq3D,EAAUpY,EAAOgC,GAC/B,GAAIjhD,IAAUihD,EACV,OAAOjhD,CAEf,CACA,MAAOgE,GAEP,CAEJ,OAAOi9C,CACX,GAER,CAsEuBqW,CAAUhJ,GAASj6C,MAAM4iD,MAGhD,CAQO,SAAS11D,EAAqB9C,EAAOsjB,EAAU9gB,GAAa,GAE/D,MAAQs2D,gBAAiBC,EAAU,KAAMC,iBAAkBC,EAAU,IAAKC,aAAc35D,EAAe,KAAM45D,eAAgB7+B,EAAW,KAAM8+B,QAASC,EAAO,MAASr5D,EACjKQ,EAAOjB,GACe,iBAAjBA,QAC4B,IAA5BA,EAAa+5D,WAClB,YACA,OACAh3D,EAAO,CACTghB,WACAqB,SAAU,WAAcrB,GACxBi2C,QAASR,EACTr2C,KAAMpb,SAAS2xD,EAAS,IACxBz4D,OACA64D,KAAsB,iBAATA,EAAoBA,EAAKhzD,QAAQ,KAAM,IAAM,MAY9D,MAVa,SAAT7F,IACA8B,EAAKk3D,KAAOl/B,GAAgC,iBAAbA,EAAwBA,EAAS3zB,MAAM,KAAK,GAAK,IAEhFnE,SAEiC,IAAtBxC,EAAMy5D,cACbz5D,EAAMy5D,YAAc7zD,OAAO5F,EAAMy5D,cAErCn3D,EAAKtC,MAAQA,GAEVsC,CACX,CASO,SAASo3D,EAAUn3D,EAAQ+gB,EAAU9gB,GAAa,GACrD,IAAIm3D,EAAe,KACnB,IAEQp3D,EAAOE,YAAYR,SAAS,GAAGW,WAC/B+2D,EAAep3D,EAAOE,YAAYR,SAAS,GAEnD,CACA,MAAO+J,GAEP,CACA,IAAK2tD,EACD,MAAM,IAAIt0D,MAAM,0CAEpB,MAAQzC,UAAYC,KAAM7C,EAAOi4B,OAAQ2hC,IAAiBD,GAEnD7kD,EAAG+kD,EAAetgC,GAAcqgC,EAAWjzD,MAAM,IAAK,GACvD0yB,EAAa/xB,SAASuyD,EAAe,IAC3C,GAAIxgC,GAAc,IAAK,CACnB,MAAMre,EAAM,IAAI3V,MAAM,qBAAqBg0B,KAAcE,KAEzD,MADAve,EAAIid,OAASoB,EACPre,CACV,CAEA,OAAOlY,EAAqB9C,GADX,QAAcsjB,GACc9gB,EACjD,CAQO,SAASs3D,EAAYv3D,EAAQq0D,EAAep0D,GAC/C,MAAMP,EAAW,CACb83D,WAAW,EACXlD,QAAS,IAab,OAXA50D,EAAS83D,UAAYx3D,EAAOE,YAAYR,SAASiH,KAAKkR,GACc,SAAvDA,EAAE6d,QAAU7d,EAAExX,UAAUq1B,QAAQtxB,MAAM,IAAK,KAAK,IACrDyT,EAAEi0B,KAAKhoC,QAAQ,MAAO,IAAI41B,UAAS,QAAW26B,GAAevwD,QAAQ,MAAO,MAEpF9D,EAAOE,YAAYR,SAASyZ,QAAQnZ,IAChC,QAAwB9E,IAApB8E,EAAOK,SACP,OAEJ,MAAM0gB,EAAW/gB,EAAO8rC,KAAK1nC,MAAM,KAAKhH,IAAI8Q,oBAAoB3O,KAAK,KACrEG,EAAS40D,QAAQhyD,KAAK/B,EAAqBP,EAAOK,SAASC,KAAMygB,EAAU9gB,MAExEP,CACX,CAOO,SAAS+3D,EAAmBz4D,GAC/B,OAAQqE,OAAOrE,IACX,IAAK,KACD,MAAO,YACX,IAAK,KAEL,IAAK,KAED,MAAO,UACX,QACI,OAAO+F,SAAS1B,OAAOrE,GAAQ,IAE3C,EAvOA,SAAW62D,GACPA,EAAoB,MAAI,QACxBA,EAAqB,OAAI,SACzBA,EAAuB,SAAI,UAC9B,CAJD,CAIGA,IAAiBA,EAAe,CAAC,G,sECE7B,SAAS6B,EAAW53D,GACvB,OAAO,SAAcA,EACzB,CACO,SAAS63D,EAAS73D,GACrB,OAAO,SAAcA,EACzB,C,oCChBO,SAAS83D,EAAuBxnC,GACnC,MAAM1sB,EAAS,CAAC,EAChB,IAAK,MAAMwP,KAAOkd,EAAQ5d,OACtB9O,EAAOwP,GAAOkd,EAAQnxB,IAAIiU,GAE9B,OAAOxP,CACX,CACO,SAASm0D,KAAgBC,GAC5B,GAA8B,IAA1BA,EAAer2D,OACf,MAAO,CAAC,EACZ,MAAMs2D,EAAa,CAAC,EACpB,OAAOD,EAAe5rC,OAAO,CAACxoB,EAAQ0sB,KAClCvxB,OAAO2T,KAAK4d,GAASjX,QAAQoa,IACzB,MAAMykC,EAAczkC,EAAOnZ,cACvB29C,EAAW1tD,eAAe2tD,GAC1Bt0D,EAAOq0D,EAAWC,IAAgB5nC,EAAQmD,IAG1CwkC,EAAWC,GAAezkC,EAC1B7vB,EAAO6vB,GAAUnD,EAAQmD,MAG1B7vB,GACR,CAAC,EACR,C,oDCxBO,SAASu0D,EAAatvD,GACzB,OAIJ,SAAuBA,GACnB,GAAmB,iBAARA,GACC,OAARA,GACuC,mBAAvC9J,OAAOE,UAAUyB,SAAS8G,KAAKqB,GAE/B,OAAO,EAEX,GAAmC,OAA/B9J,OAAO+K,eAAejB,GACtB,OAAO,EAEX,IAAI4lC,EAAQ5lC,EAEZ,KAAwC,OAAjC9J,OAAO+K,eAAe2kC,IACzBA,EAAQ1vC,OAAO+K,eAAe2kC,GAElC,OAAO1vC,OAAO+K,eAAejB,KAAS4lC,CAC1C,CApBW9uB,CAAc9W,GACf9J,OAAOotB,OAAO,CAAC,EAAGtjB,GAClB9J,OAAO6X,eAAe7X,OAAOotB,OAAO,CAAC,EAAGtjB,GAAM9J,OAAO+K,eAAejB,GAC9E,CAkBO,SAASugB,KAASthB,GACrB,IAAIlE,EAAS,KAAMw0D,EAAQ,IAAItwD,GAC/B,KAAOswD,EAAMz2D,OAAS,GAAG,CACrB,MAAM02D,EAAWD,EAAM9yD,QAKnB1B,EAJCA,EAIQ00D,EAAa10D,EAAQy0D,GAHrBF,EAAaE,EAK9B,CACA,OAAOz0D,CACX,CACA,SAAS00D,EAAaC,EAAMC,GACxB,MAAM50D,EAASu0D,EAAaI,GAqB5B,OApBAx5D,OAAO2T,KAAK8lD,GAAMn/C,QAAQjG,IACjBxP,EAAO2G,eAAe6I,GAIvBpM,MAAMgR,QAAQwgD,EAAKplD,IACnBxP,EAAOwP,GAAOpM,MAAMgR,QAAQpU,EAAOwP,IAC7B,IAAIxP,EAAOwP,MAASolD,EAAKplD,IACzB,IAAIolD,EAAKplD,IAEW,iBAAdolD,EAAKplD,IAAuBolD,EAAKplD,GAC7CxP,EAAOwP,GACoB,iBAAhBxP,EAAOwP,IAAuBxP,EAAOwP,GACtCklD,EAAa10D,EAAOwP,GAAMolD,EAAKplD,IAC/B+kD,EAAaK,EAAKplD,IAG5BxP,EAAOwP,GAAOolD,EAAKplD,GAfnBxP,EAAOwP,GAAOolD,EAAKplD,KAkBpBxP,CACX,C,2HCxDA,MAAM60D,EAAiB,2BACjBC,EAAmB,6BAClB,SAASC,EAAWjI,GACvB,IACI,MAAMkI,EAAWlI,EAAS1sD,QAAQ,MAAOy0D,GAAgBz0D,QAAQ,QAAS00D,GAE1E,OADkBpqD,mBAAmBsqD,GACpBt0D,MAAMo0D,GAAkBj5D,KAAK,QAAQ6E,MAAMm0D,GAAgBh5D,KAAK,IACrF,CACA,MAAOkZ,GACH,MAAM,IAAI,KAAOA,EAAK,uBAC1B,CACJ,CACO,SAASkgD,EAAkBC,GAC9B,IAAKA,GAA2B,MAAdA,EACd,MAAO,GACX,IAAIC,EAAcD,EAClB,MAAMl1D,EAAS,GACf,GACIA,EAAOpB,KAAKu2D,GACZA,EAAc,UAAaA,SACtBA,GAA+B,MAAhBA,GACxB,OAAOn1D,CACX,CACO,SAASo1D,EAAiBC,GAC7B,OAAOA,EAAQjb,WAAW,KAAOib,EAAU,IAAMA,CACrD,CACO,SAASC,EAAcD,GAC1B,IAAIE,EAAiBF,EAOrB,MAN0B,MAAtBE,EAAe,KACfA,EAAiB,IAAMA,GAEvB,SAAS31D,KAAK21D,KACdA,EAAiBA,EAAe/0D,OAAO,EAAG+0D,EAAex3D,OAAS,IAE/Dw3D,CACX,C,2DCpCO,SAASC,EAAWl5D,GACvB,IACI,MAAOo3D,GAAgBp3D,EAAOE,YAAYR,UAClCW,UAAYC,MAAQ,mBAAoB64D,EAAW,wBAAyBC,KAAmBhC,EACvG,YAA4B,IAAd+B,QAAmD,IAAfC,EAC5C,CAEEC,KAAMt0D,SAAS1B,OAAO81D,GAAY,IAClCG,WAAW,QAAmBF,IAEhC,IACV,CACA,MAAO3gD,GAEP,CACA,OAAO,IACX,C,wGCZO,SAAS8gD,EAAoB18D,GAChC,IAAI,OAAcA,GACd,OAAOA,EAAKy7B,WAEX,IAAI,OAASz7B,GACd,OAAOA,EAAK4E,OAEX,GAAoB,iBAAT5E,EACZ,OAAO,OAAWA,GAEtB,MAAM,IAAI,KAAO,CACbN,KAAM,CACF0K,KAAM,KAAUuyD,mBAErB,6CACP,C,8GChBO,SAASC,EAAeC,GAE3B,IAAIC,EADQ,IAAI,EAAID,GACF7tB,SAIlB,OAHI8tB,EAAQl4D,QAAU,IAClBk4D,EAAU,MAEP,QAAcA,EACzB,CACO,SAASC,KAAW30D,GACvB,OAAO,OAASA,EAAMinB,OAAO,CAACxoB,EAAQm2D,EAAUC,MAC1B,IAAdA,GACa,MAAbD,GACc,MAAbA,GAAkD,MAA9Bn2D,EAAOA,EAAOjC,OAAS,KAC5CiC,EAAOpB,KAAKu3D,GAETn2D,GACR,IACP,CACO,SAASq2D,EAAcjuB,GAC1B,IAEI,OADuBA,EAAKhoC,QAAQ,qBAAsB,GAE9D,CACA,MAAO2U,GACH,MAAM,IAAI,KAAOA,EAAK,0BAC1B,CACJ,C,8EC7BO,SAASuhD,EAAgBC,GAC5B,OAgBO,IAAI,IAAW,CAClBhe,oBAAqB,KACrB15B,QAAQ,EACR22B,kBAAkB,EAClBoD,mBAAmB,IApBHviD,MAAMmgE,EAAU,CAChCC,SAAU,CACN,YAAa,OACbC,UAAW,CACPC,UAAW,CAAC,GAEhBC,SAAU,CACNrjC,MAAO,CAAC,GAEZsjC,MAAO,CACHzuB,KAAMmuB,KAGf,KACP,CAgBA,SAASC,EAAUvxD,EAAK6xD,GACpB,MAAMjyB,EAAO,IAAK5/B,GAClB,IAAK,MAAMuK,KAAOq1B,EACTA,EAAKl+B,eAAe6I,KAGrBq1B,EAAKr1B,IAA6B,iBAAdq1B,EAAKr1B,KAA2C,IAAtBA,EAAI/Q,QAAQ,MAC1DomC,EAAK,GAAGiyB,KAAMtnD,KAASgnD,EAAU3xB,EAAKr1B,GAAMsnD,UACrCjyB,EAAKr1B,KAEa,IAApB,MAAM5P,KAAK4P,KAChBq1B,EAAK,GAAGiyB,KAAMtnD,KAASq1B,EAAKr1B,UACrBq1B,EAAKr1B,KAGpB,OAAOq1B,CACX,CACO,SAASkyB,EAAqBxE,GACjC,OAxBO,IAAI,IAAU,CACjB9T,gBAAgB,EAChBE,qBAAqB,EACrBD,eAAe,IAqBA/uC,MAAM4iD,EAC7B,C,gCClDWyE,EAQAC,E,oCAPX,SAAWD,GACPA,EAAe,KAAI,OACnBA,EAAiB,OAAI,SACrBA,EAAe,KAAI,OACnBA,EAAmB,SAAI,WACvBA,EAAgB,MAAI,OACvB,CAND,CAMGA,IAAaA,EAAW,CAAC,IAE5B,SAAWC,GACPA,EAA4B,iBAAI,sBAChCA,EAA2B,gBAAI,oBAC/BA,EAA+B,oBAAI,wBACnCA,EAAmC,wBAAI,wBACvCA,EAA8B,mBAAI,uBAClCA,EAAwB,aAAI,eAC/B,CAPD,CAOGA,IAAcA,EAAY,CAAC,G,4BCfZ,IAAI3rD,IAAI,CACtB,CAAC,EAAG,OAEJ,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,OAOJ3L,OAAOqgD,a,gCCnCTkX,EAiBOC,EA2BPC,EAQOC,E,2BAnDX,SAAWH,GACPA,EAAUA,EAAe,IAAI,IAAM,MACnCA,EAAUA,EAAgB,KAAI,IAAM,OACpCA,EAAUA,EAAkB,OAAI,IAAM,SACtCA,EAAUA,EAAgB,KAAI,IAAM,OACpCA,EAAUA,EAAgB,KAAI,IAAM,OACpCA,EAAUA,EAAmB,QAAI,IAAM,UACvCA,EAAUA,EAAmB,QAAI,KAAO,UACxCA,EAAUA,EAAmB,QAAI,KAAO,UACxCA,EAAUA,EAAmB,QAAI,KAAO,UACxCA,EAAUA,EAAmB,QAAI,IAAM,UACvCA,EAAUA,EAAmB,QAAI,IAAM,UACvCA,EAAUA,EAAmB,QAAI,IAAM,SAC1C,CAbD,CAaGA,IAAcA,EAAY,CAAC,IAI9B,SAAWC,GACPA,EAAaA,EAA2B,aAAI,OAAS,eACrDA,EAAaA,EAA4B,cAAI,OAAS,gBACtDA,EAAaA,EAAyB,WAAI,KAAO,YACpD,CAJD,CAIGA,IAAiBA,EAAe,CAAC,IAuBpC,SAAWC,GACPA,EAAmBA,EAAgC,YAAI,GAAK,cAC5DA,EAAmBA,EAAiC,aAAI,GAAK,eAC7DA,EAAmBA,EAAmC,eAAI,GAAK,iBAC/DA,EAAmBA,EAA+B,WAAI,GAAK,aAC3DA,EAAmBA,EAAgC,YAAI,GAAK,aAC/D,CAND,CAMGA,IAAuBA,EAAqB,CAAC,IAEhD,SAAWC,GAEPA,EAAaA,EAAqB,OAAI,GAAK,SAE3CA,EAAaA,EAAqB,OAAI,GAAK,SAE3CA,EAAaA,EAAwB,UAAI,GAAK,WACjD,CAPD,CAOGA,IAAiBA,EAAe,CAAC,G,yEC9DjB,IAAI/rD,IAAI,CACvB,CAAC,GAAI,UACL,CAAC,GAAI,SACL,CAAC,GAAI,UACL,CAAC,GAAI,QACL,CAAC,GAAI,UAKT3L,OAAOtE,UAAUi8D,YAwFyB,IAAIhsD,IAAI,CAC9C,CAAC,GAAI,UACL,CAAC,GAAI,SACL,CAAC,IAAK,YAQ2D,IAAIA,IAAI,CACzE,CAAC,GAAI,SACL,CAAC,GAAI,QACL,CAAC,GAAI,QACL,CAAC,IAAK,W,6EC9GCisD,EAOAC,E,2BANX,SAAWD,GAEPA,EAAYA,EAAiB,IAAI,GAAK,MAEtCA,EAAYA,EAAkB,KAAI,GAAK,MAC1C,CALD,CAKGA,IAAgBA,EAAc,CAAC,IAElC,SAAWC,GAKPA,EAAaA,EAAmB,KAAI,GAAK,OAMzCA,EAAaA,EAAoB,MAAI,GAAK,QAK1CA,EAAaA,EAAwB,UAAI,GAAK,YAK9CA,EAAaA,EAAwB,UAAI,GAAK,YAK9CA,EAAaA,EAAmB,KAAI,GAAK,MAC5C,CA3BD,CA2BGA,IAAiBA,EAAe,CAAC,G,6CCvCpC,MACaC,EAAsB/hB,IAC/B,GAAuB,iBAAZA,EACP,MAAM,IAAInvC,UAAU,mBAExB,GAAImvC,EAAQ33C,OALW,MAMnB,MAAM,IAAIwI,UAAU,uB,uECH5B,MAAMysC,EAAQ,IAAIrnC,IAAI,CAAC,IAAK,IAAK,IAAK,IAAK,MACrC+rD,EAAiB73D,GAAMmzC,EAAM7gC,IAAItS,GAMjC83D,EAAa,UAIbC,EAAkB,IAAIjsD,IAAI,CAAC,IAAK,MAEhCksD,EAAW,IAAIlsD,IAAI,CAAC,KAAM,MAC1BmsD,EAAa,IAAInsD,IAAI,mBACrBosD,EAAgB1/C,GAAMA,EAAEjY,QAAQ,2BAA4B,QAE5D43D,EAAQ,OAERC,EAAOD,EAAQ,KAGfE,EAAcF,EAAQ,KAGrB,MAAMG,EACT59D,KACA,GACA,GACA,IAAS,EACT,GAAS,GACT,GACA,GACA,GACA,IAAc,EACd,GACA,GAGA,IAAY,EACZ,WAAAwX,CAAYxX,EAAMypB,EAAQroB,EAAU,CAAC,GACjCvB,KAAKG,KAAOA,EAERA,IACAH,MAAK,GAAY,GACrBA,MAAK,EAAU4pB,EACf5pB,MAAK,EAAQA,MAAK,EAAUA,MAAK,GAAQ,EAAQA,KACjDA,MAAK,EAAWA,MAAK,IAAUA,KAAOuB,EAAUvB,MAAK,GAAM,EAC3DA,MAAK,EAAQA,MAAK,IAAUA,KAAO,GAAKA,MAAK,GAAM,EACtC,MAATG,GAAiBH,MAAK,GAAM,GAC5BA,MAAK,EAAMwE,KAAKxE,MACpBA,MAAK,EAAeA,MAAK,EAAUA,MAAK,GAAQ,EAAO2D,OAAS,CACpE,CACA,YAAIq6D,GAEA,QAAuB5gE,IAAnB4C,MAAK,EACL,OAAOA,MAAK,EAEhB,IAAK,MAAMoH,KAAKpH,MAAK,EACjB,GAAiB,iBAANoH,IAEPA,EAAEjH,MAAQiH,EAAE42D,UACZ,OAAQh+D,MAAK,GAAY,EAGjC,OAAOA,MAAK,CAChB,CAEA,QAAA0C,GACI,YAAuBtF,IAAnB4C,MAAK,EACEA,MAAK,EACXA,KAAKG,KAIEH,MAAK,EACTA,KAAKG,KAAO,IAAMH,MAAK,EAAOV,IAAI8H,GAAK7B,OAAO6B,IAAI3F,KAAK,KAAO,IAJ1DzB,MAAK,EAAYA,MAAK,EAAOV,IAAI8H,GAAK7B,OAAO6B,IAAI3F,KAAK,GAMtE,CACA,KAEI,GAAIzB,OAASA,MAAK,EACd,MAAM,IAAIgF,MAAM,4BACpB,GAAIhF,MAAK,EACL,OAAOA,KAKX,IAAIiI,EACJ,IAHAjI,KAAK0C,WACL1C,MAAK,GAAc,EAEXiI,EAAIjI,MAAK,EAAMyE,OAAQ,CAC3B,GAAe,MAAXwD,EAAE9H,KACF,SAEJ,IAAIiH,EAAIa,EACJg2D,EAAK72D,GAAE,EACX,KAAO62D,GAAI,CACP,IAAK,IAAI15D,EAAI6C,GAAE,EAAe,GAAI62D,EAAG99D,MAAQoE,EAAI05D,GAAG,EAAOt6D,OAAQY,IAC/D,IAAK,MAAMqP,KAAQ3L,GAAE,EAAQ,CAEzB,GAAoB,iBAAT2L,EACP,MAAM,IAAI5O,MAAM,gCAGpB4O,EAAKsqD,OAAOD,GAAG,EAAO15D,GAC1B,CAEJ6C,EAAI62D,EACJA,EAAK72D,GAAE,CACX,CACJ,CACA,OAAOpH,IACX,CACA,IAAAwE,IAAQ2C,GACJ,IAAK,MAAMC,KAAKD,EACZ,GAAU,KAANC,EAAJ,CAGA,GAAiB,iBAANA,KAAoBA,aAAa22D,GAAO32D,GAAE,IAAYpH,MAC7D,MAAM,IAAIgF,MAAM,iBAAmBoC,GAGvCpH,MAAK,EAAOwE,KAAK4C,EANL,CAQpB,CACA,MAAA+2D,GACI,MAAM98B,EAAoB,OAAdrhC,KAAKG,KACXH,MAAK,EAAOyD,QAAQnE,IAAI8H,GAAmB,iBAANA,EAAiBA,EAAIA,EAAE+2D,UAC5D,CAACn+D,KAAKG,QAASH,MAAK,EAAOV,IAAI8H,GAAKA,EAAE+2D,WAQ5C,OAPIn+D,KAAKo+D,YAAcp+D,KAAKG,MACxBkhC,EAAIpB,QAAQ,IACZjgC,KAAKq+D,UACJr+D,OAASA,MAAK,GACVA,MAAK,GAAM,GAAsC,MAAvBA,MAAK,GAASG,OAC7CkhC,EAAI78B,KAAK,CAAC,GAEP68B,CACX,CACA,OAAA+8B,GACI,GAAIp+D,MAAK,IAAUA,KACf,OAAO,EAEX,IAAKA,MAAK,GAASo+D,UACf,OAAO,EACX,GAA0B,IAAtBp+D,MAAK,EACL,OAAO,EAEX,MAAMoH,EAAIpH,MAAK,EACf,IAAK,IAAIuE,EAAI,EAAGA,EAAIvE,MAAK,EAAcuE,IAAK,CACxC,MAAM05D,EAAK72D,GAAE,EAAO7C,GACpB,KAAM05D,aAAcF,GAAmB,MAAZE,EAAG99D,MAC1B,OAAO,CAEf,CACA,OAAO,CACX,CACA,KAAAk+D,GACI,GAAIr+D,MAAK,IAAUA,KACf,OAAO,EACX,GAA2B,MAAvBA,MAAK,GAASG,KACd,OAAO,EACX,IAAKH,MAAK,GAASq+D,QACf,OAAO,EACX,IAAKr+D,KAAKG,KACN,OAAOH,MAAK,GAASq+D,QAGzB,MAAMC,EAAKt+D,MAAK,EAAUA,MAAK,GAAQ,EAAO2D,OAAS,EAEvD,OAAO3D,MAAK,IAAiBs+D,EAAK,CACtC,CACA,MAAAJ,CAAOtqD,GACiB,iBAATA,EACP5T,KAAKwE,KAAKoP,GAEV5T,KAAKwE,KAAKoP,EAAK2qD,MAAMv+D,MAC7B,CACA,KAAAu+D,CAAM30C,GACF,MAAMnkB,EAAI,IAAIs4D,EAAI/9D,KAAKG,KAAMypB,GAC7B,IAAK,MAAMxiB,KAAKpH,MAAK,EACjByF,EAAEy4D,OAAO92D,GAEb,OAAO3B,CACX,CACA,QAAO,CAAUxC,EAAKu7D,EAAK1zC,EAAK2zC,GAC5B,IAAIC,GAAW,EACXC,GAAU,EACVC,GAAc,EACdC,GAAW,EACf,GAAiB,OAAbL,EAAIr+D,KAAe,CAEnB,IAAIoE,EAAIumB,EACJuD,EAAM,GACV,KAAO9pB,EAAItB,EAAIU,QAAQ,CACnB,MAAM8B,EAAIxC,EAAI8C,OAAOxB,KAGrB,GAAIm6D,GAAkB,OAANj5D,EACZi5D,GAAYA,EACZrwC,GAAO5oB,OAGX,GAAIk5D,EACIp6D,IAAMq6D,EAAa,EACT,MAANn5D,GAAmB,MAANA,IACbo5D,GAAW,GAGJ,MAANp5D,GAAelB,IAAMq6D,EAAa,GAAKC,IAC5CF,GAAU,GAEdtwC,GAAO5oB,OAGN,GAAU,MAANA,EAAJ,CAOL,IAAKg5D,EAAIK,OAASxB,EAAc73D,IAAwB,MAAlBxC,EAAI8C,OAAOxB,GAAY,CACzDi6D,EAAIh6D,KAAK6pB,GACTA,EAAM,GACN,MAAM9J,EAAM,IAAIw5C,EAAIt4D,EAAG+4D,GACvBj6D,EAAIw5D,GAAI,EAAU96D,EAAKshB,EAAKhgB,EAAGk6D,GAC/BD,EAAIh6D,KAAK+f,GACT,QACJ,CACA8J,GAAO5oB,CATP,MALIk5D,GAAU,EACVC,EAAar6D,EACbs6D,GAAW,EACXxwC,GAAO5oB,CAYf,CAEA,OADA+4D,EAAIh6D,KAAK6pB,GACF9pB,CACX,CAGA,IAAIA,EAAIumB,EAAM,EACVlX,EAAO,IAAImqD,EAAI,KAAMS,GACzB,MAAMr3D,EAAQ,GACd,IAAIknB,EAAM,GACV,KAAO9pB,EAAItB,EAAIU,QAAQ,CACnB,MAAM8B,EAAIxC,EAAI8C,OAAOxB,KAGrB,GAAIm6D,GAAkB,OAANj5D,EACZi5D,GAAYA,EACZrwC,GAAO5oB,OAGX,GAAIk5D,EACIp6D,IAAMq6D,EAAa,EACT,MAANn5D,GAAmB,MAANA,IACbo5D,GAAW,GAGJ,MAANp5D,GAAelB,IAAMq6D,EAAa,GAAKC,IAC5CF,GAAU,GAEdtwC,GAAO5oB,OAGN,GAAU,MAANA,EAAJ,CAOL,GAAI63D,EAAc73D,IAAwB,MAAlBxC,EAAI8C,OAAOxB,GAAY,CAC3CqP,EAAKpP,KAAK6pB,GACVA,EAAM,GACN,MAAM9J,EAAM,IAAIw5C,EAAIt4D,EAAGmO,GACvBA,EAAKpP,KAAK+f,GACVhgB,EAAIw5D,GAAI,EAAU96D,EAAKshB,EAAKhgB,EAAGk6D,GAC/B,QACJ,CACA,GAAU,MAANh5D,EAAJ,CAOA,GAAU,MAANA,EAOA,MANY,KAAR4oB,GAAoC,IAAtBmwC,GAAI,EAAO76D,SACzB66D,GAAI,GAAY,GAEpB5qD,EAAKpP,KAAK6pB,GACVA,EAAM,GACNmwC,EAAIh6D,QAAQ2C,EAAOyM,GACZrP,EAEX8pB,GAAO5oB,CAVP,MALImO,EAAKpP,KAAK6pB,GACVA,EAAM,GACNlnB,EAAM3C,KAAKoP,GACXA,EAAO,IAAImqD,EAAI,KAAMS,EAbzB,MALIG,GAAU,EACVC,EAAar6D,EACbs6D,GAAW,EACXxwC,GAAO5oB,CA4Bf,CAOA,OAHA+4D,EAAIr+D,KAAO,KACXq+D,GAAI,OAAYphE,EAChBohE,GAAI,EAAS,CAACv7D,EAAI04B,UAAU7Q,EAAM,IAC3BvmB,CACX,CACA,eAAOw6D,CAASzjB,EAAS/5C,EAAU,CAAC,GAChC,MAAMi9D,EAAM,IAAIT,EAAI,UAAM3gE,EAAWmE,GAErC,OADAw8D,GAAI,EAAUziB,EAASkjB,EAAK,EAAGj9D,GACxBi9D,CACX,CAGA,WAAAQ,GAGI,GAAIh/D,OAASA,MAAK,EACd,OAAOA,MAAK,EAAMg/D,cAEtB,MAAMlK,EAAO90D,KAAK0C,YACX+1C,EAAI/0C,EAAMs6D,EAAUiB,GAASj/D,KAAKk/D,iBASzC,KALiBlB,GACbh+D,MAAK,GACJA,MAAK,EAASm/D,SACVn/D,MAAK,EAASo/D,iBACftK,EAAK14C,gBAAkB04C,EAAKx4C,eAEhC,OAAO5Y,EAEX,MAAM27D,GAASr/D,MAAK,EAASm/D,OAAS,IAAM,KAAOF,EAAQ,IAAM,IACjE,OAAOl+D,OAAOotB,OAAO,IAAIjrB,OAAO,IAAIu1C,KAAO4mB,GAAQ,CAC/CC,KAAM7mB,EACN8mB,MAAOzK,GAEf,CACA,WAAIvzD,GACA,OAAOvB,MAAK,CAChB,CAsEA,cAAAk/D,CAAeM,GACX,MAAMC,EAAMD,KAAcx/D,MAAK,EAASy/D,IAGxC,GAFIz/D,MAAK,IAAUA,MACfA,MAAK,KACJA,KAAKG,KAAM,CACZ,MAAMu/D,EAAU1/D,KAAKo+D,WAAap+D,KAAKq+D,QACjCr8B,EAAMhiC,MAAK,EACZV,IAAI8H,IACL,MAAOqxC,EAAIhkC,EAAGupD,EAAUiB,GAAsB,iBAAN73D,EAClC22D,GAAI,EAAW32D,EAAGpH,MAAK,EAAW0/D,GAClCt4D,EAAE83D,eAAeM,GAGvB,OAFAx/D,MAAK,EAAYA,MAAK,GAAag+D,EACnCh+D,MAAK,EAASA,MAAK,GAAUi/D,EACtBxmB,IAENh3C,KAAK,IACV,IAAI6B,EAAQ,GACZ,GAAItD,KAAKo+D,WACyB,iBAAnBp+D,MAAK,EAAO,KAK2B,IAAvBA,MAAK,EAAO2D,SAAgB85D,EAAS1lD,IAAI/X,MAAK,EAAO,KACvD,CACjB,MAAM2/D,EAAMnC,EAGNoC,EAELH,GAAOE,EAAI5nD,IAAIiqB,EAAIj8B,OAAO,KAEtBi8B,EAAIge,WAAW,QAAU2f,EAAI5nD,IAAIiqB,EAAIj8B,OAAO,KAE5Ci8B,EAAIge,WAAW,WAAa2f,EAAI5nD,IAAIiqB,EAAIj8B,OAAO,IAG9C85D,GAAaJ,IAAQD,GAAYG,EAAI5nD,IAAIiqB,EAAIj8B,OAAO,IAC1DzC,EAAQs8D,EAtbP,4BAsbuCC,EAAYtC,EAAa,EACrE,CAIR,IAAIh6D,EAAM,GAOV,OANIvD,KAAKq+D,SACLr+D,MAAK,GAAM,GACY,MAAvBA,MAAK,GAASG,OACdoD,EAAM,aAGH,CADOD,EAAQ0+B,EAAMz+B,GAGxB,OAASy+B,GACRhiC,MAAK,IAAcA,MAAK,EACzBA,MAAK,EAEb,CAIA,MAAM8/D,EAAyB,MAAd9/D,KAAKG,MAA8B,MAAdH,KAAKG,KAErCmD,EAAsB,MAAdtD,KAAKG,KAAe,YAAc,MAChD,IAAIuD,EAAO1D,MAAK,EAAey/D,GAC/B,GAAIz/D,KAAKo+D,WAAap+D,KAAKq+D,UAAY36D,GAAsB,MAAd1D,KAAKG,KAAc,CAG9D,MAAM8d,EAAIje,KAAK0C,WAIf,OAHA1C,MAAK,EAAS,CAACie,GACfje,KAAKG,KAAO,KACZH,MAAK,OAAY5C,EACV,CAAC6gB,GAAG,OAASje,KAAK0C,aAAa,GAAO,EACjD,CAEA,IAAIq9D,GAAkBD,GAAYN,GAAYC,EACxC,GACAz/D,MAAK,GAAe,GACtB+/D,IAAmBr8D,IACnBq8D,EAAiB,IAEjBA,IACAr8D,EAAO,MAAMA,QAAWq8D,QAG5B,IAAI34B,EAAQ,GAsBZ,OApBIA,EADc,MAAdpnC,KAAKG,MAAgBH,MAAK,GACjBA,KAAKo+D,YAAcqB,EAAMlC,EAAa,IAAMO,EAkB7Cx6D,EAAQI,GAfY,MAAd1D,KAAKG,KAEX,OACKH,KAAKo+D,WAAcqB,GAAQD,EAAwB,GAAbjC,GACvCM,EACA,IACQ,MAAd79D,KAAKG,KACD,IACc,MAAdH,KAAKG,KACD,KACc,MAAdH,KAAKG,MAAgB4/D,EACjB,IACc,MAAd//D,KAAKG,MAAgB4/D,EACjB,KACA,IAAI//D,KAAKG,QAG5B,CACHinC,GACA,OAAS1jC,GACR1D,MAAK,IAAcA,MAAK,EACzBA,MAAK,EAEb,CACA,GAAey/D,GACX,OAAOz/D,MAAK,EACPV,IAAI8H,IAGL,GAAiB,iBAANA,EACP,MAAM,IAAIpC,MAAM,gCAIpB,MAAOyzC,EAAIhkC,EAAGurD,EAAWf,GAAS73D,EAAE83D,eAAeO,GAEnD,OADAz/D,MAAK,EAASA,MAAK,GAAUi/D,EACtBxmB,IAENnsB,OAAOllB,KAAOpH,KAAKo+D,WAAap+D,KAAKq+D,UAAcj3D,IACnD3F,KAAK,IACd,CACA,QAAO,CAAWqzD,EAAMkJ,EAAU0B,GAAU,GACxC,IAAIhB,GAAW,EACXjmB,EAAK,GACLwmB,GAAQ,EACZ,IAAK,IAAI16D,EAAI,EAAGA,EAAIuwD,EAAKnxD,OAAQY,IAAK,CAClC,MAAMkB,EAAIqvD,EAAK/uD,OAAOxB,GACtB,GAAIm6D,EACAA,GAAW,EACXjmB,IAAOilB,EAAW3lD,IAAItS,GAAK,KAAO,IAAMA,OAG5C,GAAU,OAANA,EAAJ,CASA,GAAU,MAANA,EAAW,CACX,MAAOu8B,EAAKi+B,EAAWC,EAAUC,IAAS,OAAWrL,EAAMvwD,GAC3D,GAAI27D,EAAU,CACVznB,GAAMzW,EACNi9B,EAAQA,GAASgB,EACjB17D,GAAK27D,EAAW,EAChBlC,EAAWA,GAAYmC,EACvB,QACJ,CACJ,CACU,MAAN16D,EAQM,MAANA,EAKJgzC,GAAMklB,EAAal4D,IAJfgzC,GAAMmlB,EACNI,GAAW,IARPvlB,GADAinB,GAAoB,MAAT5K,EACLgJ,EAEAD,EACVG,GAAW,EAhBf,MAPQz5D,IAAMuwD,EAAKnxD,OAAS,EACpB80C,GAAM,OAGNimB,GAAW,CA4BvB,CACA,MAAO,CAACjmB,GAAI,OAASqc,KAASkJ,EAAUiB,EAC5C,E,6CCtkBJ,MAAMmB,EAAe,CACjB,YAAa,CAAC,wBAAwB,GACtC,YAAa,CAAC,iBAAiB,GAC/B,YAAa,CAAC,eAAyB,GACvC,YAAa,CAAC,cAAc,GAC5B,YAAa,CAAC,WAAW,GACzB,YAAa,CAAC,WAAW,GACzB,YAAa,CAAC,gBAAgB,GAAM,GACpC,YAAa,CAAC,WAAW,GACzB,YAAa,CAAC,UAAU,GACxB,YAAa,CAAC,UAAU,GACxB,YAAa,CAAC,yBAAyB,GACvC,YAAa,CAAC,WAAW,GACzB,WAAY,CAAC,+BAA+B,GAC5C,aAAc,CAAC,aAAa,IAI1BC,EAAepiD,GAAMA,EAAEjY,QAAQ,YAAa,QAI5Cs6D,EAAkBC,GAAWA,EAAO9+D,KAAK,IAOlC++D,EAAa,CAAC1L,EAAMjvD,KAC7B,MAAMilB,EAAMjlB,EAEZ,GAAyB,MAArBivD,EAAK/uD,OAAO+kB,GACZ,MAAM,IAAI9lB,MAAM,6BAGpB,MAAMu7D,EAAS,GACTE,EAAO,GACb,IAAIl8D,EAAIumB,EAAM,EACV41C,GAAW,EACXzB,GAAQ,EACRP,GAAW,EACXiC,GAAS,EACTC,EAAS91C,EACT+1C,EAAa,GACjBC,EAAO,KAAOv8D,EAAIuwD,EAAKnxD,QAAQ,CAC3B,MAAM8B,EAAIqvD,EAAK/uD,OAAOxB,GACtB,GAAW,MAANkB,GAAmB,MAANA,GAAclB,IAAMumB,EAAM,EAA5C,CAKA,GAAU,MAANrlB,GAAai7D,IAAahC,EAAU,CACpCkC,EAASr8D,EAAI,EACb,KACJ,CAEA,GADAm8D,GAAW,EACD,OAANj7D,GACKi5D,EADT,CAQA,GAAU,MAANj5D,IAAci5D,EAEd,IAAK,MAAOqC,GAAMC,EAAM5wB,EAAG6wB,MAASlgE,OAAOuhB,QAAQ89C,GAC/C,GAAItL,EAAK9U,WAAW+gB,EAAKx8D,GAAI,CAEzB,GAAIs8D,EACA,MAAO,CAAC,MAAM,EAAO/L,EAAKnxD,OAASmnB,GAAK,GAE5CvmB,GAAKw8D,EAAIp9D,OACLs9D,EACAR,EAAKj8D,KAAKw8D,GAEVT,EAAO/7D,KAAKw8D,GAChB/B,EAAQA,GAAS7uB,EACjB,SAAS0wB,CACb,CAIRpC,GAAW,EACPmC,GAGIp7D,EAAIo7D,EACJN,EAAO/7D,KAAK67D,EAAYQ,GAAc,IAAMR,EAAY56D,IAEnDA,IAAMo7D,GACXN,EAAO/7D,KAAK67D,EAAY56D,IAE5Bo7D,EAAa,GACbt8D,KAKAuwD,EAAK9U,WAAW,KAAMz7C,EAAI,IAC1Bg8D,EAAO/7D,KAAK67D,EAAY56D,EAAI,MAC5BlB,GAAK,GAGLuwD,EAAK9U,WAAW,IAAKz7C,EAAI,IACzBs8D,EAAap7D,EACblB,GAAK,IAITg8D,EAAO/7D,KAAK67D,EAAY56D,IACxBlB,IAhDA,MALQm6D,GAAW,EACXn6D,GATR,MAHIo8D,GAAS,EACTp8D,GAgER,CACA,GAAIq8D,EAASr8D,EAGT,MAAO,CAAC,IAAI,EAAO,GAAG,GAI1B,IAAKg8D,EAAO58D,SAAW88D,EAAK98D,OACxB,MAAO,CAAC,MAAM,EAAOmxD,EAAKnxD,OAASmnB,GAAK,GAM5C,GAAoB,IAAhB21C,EAAK98D,QACa,IAAlB48D,EAAO58D,QACP,SAAS6B,KAAK+6D,EAAO,MACpBI,EAAQ,CAET,MAAO,EAjHO1iD,EAgHiB,IAArBsiD,EAAO,GAAG58D,OAAe48D,EAAO,GAAG98D,OAAO,GAAK88D,EAAO,GAhH5CtiD,EAAEjY,QAAQ,2BAA4B,UAiHjC,EAAO46D,EAAS91C,GAAK,EAClD,CAlHiB,IAAC7M,EAmHlB,MAAMijD,EAAU,KAAOP,EAAS,IAAM,IAAML,EAAeC,GAAU,IAC/DY,EAAQ,KAAOR,EAAS,GAAK,KAAOL,EAAeG,GAAQ,IAMjE,MAAO,CALMF,EAAO58D,QAAU88D,EAAK98D,OAC7B,IAAMu9D,EAAU,IAAMC,EAAQ,IAC9BZ,EAAO58D,OACHu9D,EACAC,EACIlC,EAAO2B,EAAS91C,GAAK,G,6CCxIhC,MAAMkE,EAAS,CAAC/Q,GAAKmjD,wBAAuB,GAAW,CAAC,IAIpDA,EACDnjD,EAAEjY,QAAQ,aAAc,QACxBiY,EAAEjY,QAAQ,eAAgB,O,oHCV7B,MAAMq7D,EAAY,CAACj6D,EAAGk0C,EAAS/5C,EAAU,CAAC,MAC7C,OAAmB+5C,MAEd/5C,EAAQ+/D,WAAmC,MAAtBhmB,EAAQv1C,OAAO,KAGlC,IAAIw7D,EAAUjmB,EAAS/5C,GAASwC,MAAMqD,IAG3Co6D,EAAe,wBACfC,EAAkBl9C,GAAS5E,IAAOA,EAAEqgC,WAAW,MAAQrgC,EAAEic,SAASrX,GAClEm9C,EAAqBn9C,GAAS5E,GAAMA,EAAEic,SAASrX,GAC/Co9C,EAAwBp9C,IAC1BA,EAAMA,EAAIjI,cACFqD,IAAOA,EAAEqgC,WAAW,MAAQrgC,EAAErD,cAAcsf,SAASrX,IAE3Dq9C,EAA2Br9C,IAC7BA,EAAMA,EAAIjI,cACFqD,GAAMA,EAAErD,cAAcsf,SAASrX,IAErCs9C,EAAgB,aAChBC,EAAmBniD,IAAOA,EAAEqgC,WAAW,MAAQrgC,EAAEyiC,SAAS,KAC1D2f,EAAsBpiD,GAAY,MAANA,GAAmB,OAANA,GAAcA,EAAEyiC,SAAS,KAClE4f,EAAY,UACZC,EAAetiD,GAAY,MAANA,GAAmB,OAANA,GAAcA,EAAEqgC,WAAW,KAC7DkiB,EAAS,QACTC,EAAYxiD,GAAmB,IAAbA,EAAEhc,SAAiBgc,EAAEqgC,WAAW,KAClDoiB,EAAeziD,GAAmB,IAAbA,EAAEhc,QAAsB,MAANgc,GAAmB,OAANA,EACpD0iD,EAAW,yBACXC,EAAmB,EAAEn5C,EAAI5E,EAAM,OACjC,MAAMu6C,EAAQyD,EAAgB,CAACp5C,IAC/B,OAAK5E,GAELA,EAAMA,EAAIjI,cACFqD,GAAMm/C,EAAMn/C,IAAMA,EAAErD,cAAcsf,SAASrX,IAFxCu6C,GAIT0D,EAAsB,EAAEr5C,EAAI5E,EAAM,OACpC,MAAMu6C,EAAQ2D,EAAmB,CAACt5C,IAClC,OAAK5E,GAELA,EAAMA,EAAIjI,cACFqD,GAAMm/C,EAAMn/C,IAAMA,EAAErD,cAAcsf,SAASrX,IAFxCu6C,GAIT4D,EAAgB,EAAEv5C,EAAI5E,EAAM,OAC9B,MAAMu6C,EAAQ2D,EAAmB,CAACt5C,IAClC,OAAQ5E,EAAe5E,GAAMm/C,EAAMn/C,IAAMA,EAAEic,SAASrX,GAAtCu6C,GAEZ6D,EAAa,EAAEx5C,EAAI5E,EAAM,OAC3B,MAAMu6C,EAAQyD,EAAgB,CAACp5C,IAC/B,OAAQ5E,EAAe5E,GAAMm/C,EAAMn/C,IAAMA,EAAEic,SAASrX,GAAtCu6C,GAEZyD,EAAkB,EAAEp5C,MACtB,MAAMjgB,EAAMigB,EAAGxlB,OACf,OAAQgc,GAAMA,EAAEhc,SAAWuF,IAAQyW,EAAEqgC,WAAW,MAE9CyiB,EAAqB,EAAEt5C,MACzB,MAAMjgB,EAAMigB,EAAGxlB,OACf,OAAQgc,GAAMA,EAAEhc,SAAWuF,GAAa,MAANyW,GAAmB,OAANA,GAG7CijD,EAAsC,iBAAZv/C,GAAwBA,EAC1B,iBAAhBA,EAAQuzB,KACdvzB,EAAQuzB,KACRvzB,EAAQuzB,IAAIisB,gCACZx/C,EAAQy/C,SACV,QAMOl+C,EAA0B,UAApBg+C,EAJD,KACA,IAIlBvB,EAAUz8C,IAAMA,EACT,MAAMm+C,EAAWpzD,OAAO,eAC/B0xD,EAAU0B,SAAWA,EAcrB1B,EAAU/0C,OADY,CAACgvB,EAAS/5C,EAAU,CAAC,IAAO6F,GAAMi6D,EAAUj6D,EAAGk0C,EAAS/5C,GAE9E,MAAMgjB,EAAM,CAACxhB,EAAGC,EAAI,CAAC,IAAMjC,OAAOotB,OAAO,CAAC,EAAGprB,EAAGC,GAqChDq+D,EAAUt5C,SApCei7C,IACrB,IAAKA,GAAsB,iBAARA,IAAqBjiE,OAAO2T,KAAKsuD,GAAKr/D,OACrD,OAAO09D,EAEX,MAAM4B,EAAO5B,EAEb,OAAOtgE,OAAOotB,OADJ,CAAC/mB,EAAGk0C,EAAS/5C,EAAU,CAAC,IAAM0hE,EAAK77D,EAAGk0C,EAAS/2B,EAAIy+C,EAAKzhE,IAC1C,CACpBggE,UAAW,cAAwB0B,EAAK1B,UACpC,WAAA5pD,CAAY2jC,EAAS/5C,EAAU,CAAC,GAC5B0qD,MAAM3Q,EAAS/2B,EAAIy+C,EAAKzhE,GAC5B,CACA,eAAOwmB,CAASxmB,GACZ,OAAO0hE,EAAKl7C,SAASxD,EAAIy+C,EAAKzhE,IAAUggE,SAC5C,GAEJxD,IAAK,cAAkBkF,EAAKlF,IAExB,WAAApmD,CAAYxX,EAAMypB,EAAQroB,EAAU,CAAC,GACjC0qD,MAAM9rD,EAAMypB,EAAQrF,EAAIy+C,EAAKzhE,GACjC,CAEA,eAAOw9D,CAASzjB,EAAS/5C,EAAU,CAAC,GAChC,OAAO0hE,EAAKlF,IAAIgB,SAASzjB,EAAS/2B,EAAIy+C,EAAKzhE,GAC/C,GAEJstB,SAAU,CAAC5Q,EAAG1c,EAAU,CAAC,IAAM0hE,EAAKp0C,SAAS5Q,EAAGsG,EAAIy+C,EAAKzhE,IACzDytB,OAAQ,CAAC/Q,EAAG1c,EAAU,CAAC,IAAM0hE,EAAKj0C,OAAO/Q,EAAGsG,EAAIy+C,EAAKzhE,IACrD+qB,OAAQ,CAACgvB,EAAS/5C,EAAU,CAAC,IAAM0hE,EAAK32C,OAAOgvB,EAAS/2B,EAAIy+C,EAAKzhE,IACjEwmB,SAAWxmB,GAAY0hE,EAAKl7C,SAASxD,EAAIy+C,EAAKzhE,IAC9C2hE,OAAQ,CAAC5nB,EAAS/5C,EAAU,CAAC,IAAM0hE,EAAKC,OAAO5nB,EAAS/2B,EAAIy+C,EAAKzhE,IACjE4hE,YAAa,CAAC7nB,EAAS/5C,EAAU,CAAC,IAAM0hE,EAAKE,YAAY7nB,EAAS/2B,EAAIy+C,EAAKzhE,IAC3EwC,MAAO,CAACyI,EAAM8uC,EAAS/5C,EAAU,CAAC,IAAM0hE,EAAKl/D,MAAMyI,EAAM8uC,EAAS/2B,EAAIy+C,EAAKzhE,IAC3EqjB,IAAKq+C,EAAKr+C,IACVm+C,SAAUA,KAcX,MAAMI,EAAc,CAAC7nB,EAAS/5C,EAAU,CAAC,MAC5C,OAAmB+5C,GAGf/5C,EAAQ6hE,UAAY,mBAAmB59D,KAAK81C,GAErC,CAACA,GAEL,EAAOA,IAElB+lB,EAAU8B,YAAcA,EAaxB9B,EAAU6B,OADY,CAAC5nB,EAAS/5C,EAAU,CAAC,IAAM,IAAIggE,EAAUjmB,EAAS/5C,GAAS2hE,SAUjF7B,EAAUt9D,MARW,CAACyI,EAAM8uC,EAAS/5C,EAAU,CAAC,KAC5C,MAAM8hE,EAAK,IAAI9B,EAAUjmB,EAAS/5C,GAKlC,OAJAiL,EAAOA,EAAK8f,OAAO3M,GAAK0jD,EAAGt/D,MAAM4b,IAC7B0jD,EAAG9hE,QAAQ+hE,SAAW92D,EAAK7I,QAC3B6I,EAAKhI,KAAK82C,GAEP9uC,GAIX,MAAM+2D,EAAY,0BAEX,MAAMhC,EACThgE,QACAyW,IACAsjC,QACA8lB,qBACAoC,SACA7C,OACAphE,QACAkkE,MACAC,wBACAC,QACAC,QACAC,UACA1E,OACA2E,UACAhB,SACAiB,mBACAC,OACA,WAAArsD,CAAY2jC,EAAS/5C,EAAU,CAAC,IAC5B,OAAmB+5C,GACnB/5C,EAAUA,GAAW,CAAC,EACtBvB,KAAKuB,QAAUA,EACfvB,KAAKs7C,QAAUA,EACft7C,KAAK8iE,SAAWvhE,EAAQuhE,UAAYF,EACpC5iE,KAAK8jE,UAA8B,UAAlB9jE,KAAK8iE,SACtB9iE,KAAKohE,uBACC7/D,EAAQ6/D,uBAAuD,IAA/B7/D,EAAQ0iE,mBAC1CjkE,KAAKohE,uBACLphE,KAAKs7C,QAAUt7C,KAAKs7C,QAAQt1C,QAAQ,MAAO,MAE/ChG,KAAK0jE,0BAA4BniE,EAAQmiE,wBACzC1jE,KAAKgkE,OAAS,KACdhkE,KAAK2gE,QAAS,EACd3gE,KAAKwjE,WAAajiE,EAAQiiE,SAC1BxjE,KAAKT,SAAU,EACfS,KAAKyjE,OAAQ,EACbzjE,KAAK2jE,UAAYpiE,EAAQoiE,QACzB3jE,KAAKm/D,SAAWn/D,KAAKuB,QAAQ49D,OAC7Bn/D,KAAK+jE,wBAC8B3mE,IAA/BmE,EAAQwiE,mBACFxiE,EAAQwiE,sBACL/jE,KAAK8jE,YAAa9jE,KAAKm/D,QACpCn/D,KAAK4jE,QAAU,GACf5jE,KAAK6jE,UAAY,GACjB7jE,KAAKgY,IAAM,GAEXhY,KAAKkkE,MACT,CACA,QAAAlG,GACI,GAAIh+D,KAAKuB,QAAQ4iE,eAAiBnkE,KAAKgY,IAAIrU,OAAS,EAChD,OAAO,EAEX,IAAK,MAAM23C,KAAWt7C,KAAKgY,IACvB,IAAK,MAAMpE,KAAQ0nC,EACf,GAAoB,iBAAT1nC,EACP,OAAO,EAGnB,OAAO,CACX,CACA,KAAAzU,IAASsV,GAAK,CACd,IAAAyvD,GACI,MAAM5oB,EAAUt7C,KAAKs7C,QACf/5C,EAAUvB,KAAKuB,QAErB,IAAKA,EAAQ+/D,WAAmC,MAAtBhmB,EAAQv1C,OAAO,GAErC,YADA/F,KAAKT,SAAU,GAGnB,IAAK+7C,EAED,YADAt7C,KAAKyjE,OAAQ,GAIjBzjE,KAAKokE,cAELpkE,KAAK4jE,QAAU,IAAI,IAAIryD,IAAIvR,KAAKmjE,gBAC5B5hE,EAAQpC,QACRa,KAAKb,MAAQ,IAAI2K,IAAS0sC,QAAQtxC,SAAS4E,IAE/C9J,KAAKb,MAAMa,KAAKs7C,QAASt7C,KAAK4jE,SAU9B,MAAMS,EAAerkE,KAAK4jE,QAAQtkE,IAAI2e,GAAKje,KAAKskE,WAAWrmD,IAC3Dje,KAAK6jE,UAAY7jE,KAAKukE,WAAWF,GACjCrkE,KAAKb,MAAMa,KAAKs7C,QAASt7C,KAAK6jE,WAE9B,IAAI7rD,EAAMhY,KAAK6jE,UAAUvkE,IAAI,CAAC2e,EAAGxJ,EAAG+vD,KAChC,GAAIxkE,KAAK8jE,WAAa9jE,KAAK+jE,mBAAoB,CAE3C,MAAMU,IAAiB,KAATxmD,EAAE,IACH,KAATA,EAAE,IACQ,MAATA,EAAE,IAAeslD,EAAU/9D,KAAKyY,EAAE,KAClCslD,EAAU/9D,KAAKyY,EAAE,KAChBymD,EAAU,WAAWl/D,KAAKyY,EAAE,IAClC,GAAIwmD,EACA,MAAO,IAAIxmD,EAAExa,MAAM,EAAG,MAAOwa,EAAExa,MAAM,GAAGnE,IAAIqlE,GAAM3kE,KAAKuV,MAAMovD,KAE5D,GAAID,EACL,MAAO,CAACzmD,EAAE,MAAOA,EAAExa,MAAM,GAAGnE,IAAIqlE,GAAM3kE,KAAKuV,MAAMovD,IAEzD,CACA,OAAO1mD,EAAE3e,IAAIqlE,GAAM3kE,KAAKuV,MAAMovD,MAMlC,GAJA3kE,KAAKb,MAAMa,KAAKs7C,QAAStjC,GAEzBhY,KAAKgY,IAAMA,EAAIsU,OAAOrO,IAA2B,IAAtBA,EAAE5Z,SAAQ,IAEjCrE,KAAK8jE,UACL,IAAK,IAAIv/D,EAAI,EAAGA,EAAIvE,KAAKgY,IAAIrU,OAAQY,IAAK,CACtC,MAAM6C,EAAIpH,KAAKgY,IAAIzT,GACN,KAAT6C,EAAE,IACO,KAATA,EAAE,IACuB,MAAzBpH,KAAK6jE,UAAUt/D,GAAG,IACF,iBAAT6C,EAAE,IACT,YAAY5B,KAAK4B,EAAE,MACnBA,EAAE,GAAK,IAEf,CAEJpH,KAAKb,MAAMa,KAAKs7C,QAASt7C,KAAKgY,IAClC,CAMA,UAAAusD,CAAWV,GAEP,GAAI7jE,KAAKuB,QAAQqjE,WACb,IAAK,IAAIrgE,EAAI,EAAGA,EAAIs/D,EAAUlgE,OAAQY,IAClC,IAAK,IAAI0E,EAAI,EAAGA,EAAI46D,EAAUt/D,GAAGZ,OAAQsF,IACb,OAApB46D,EAAUt/D,GAAG0E,KACb46D,EAAUt/D,GAAG0E,GAAK,KAKlC,MAAM,kBAAE47D,EAAoB,GAAM7kE,KAAKuB,QAcvC,OAbIsjE,GAAqB,GAErBhB,EAAY7jE,KAAK8kE,qBAAqBjB,GACtCA,EAAY7jE,KAAK+kE,sBAAsBlB,IAIvCA,EAFKgB,GAAqB,EAEd7kE,KAAKglE,iBAAiBnB,GAItB7jE,KAAKilE,0BAA0BpB,GAExCA,CACX,CAEA,yBAAAoB,CAA0BpB,GACtB,OAAOA,EAAUvkE,IAAI6H,IACjB,IAAI+9D,GAAM,EACV,MAAQ,KAAOA,EAAK/9D,EAAM9C,QAAQ,KAAM6gE,EAAK,KAAK,CAC9C,IAAI3gE,EAAI2gE,EACR,KAAwB,OAAjB/9D,EAAM5C,EAAI,IACbA,IAEAA,IAAM2gE,GACN/9D,EAAMqL,OAAO0yD,EAAI3gE,EAAI2gE,EAE7B,CACA,OAAO/9D,GAEf,CAEA,gBAAA69D,CAAiBnB,GACb,OAAOA,EAAUvkE,IAAI6H,GAeO,KAdxBA,EAAQA,EAAMinB,OAAO,CAACpW,EAAKpE,KACvB,MAAMyL,EAAOrH,EAAIA,EAAIrU,OAAS,GAC9B,MAAa,OAATiQ,GAA0B,OAATyL,EACVrH,EAEE,OAATpE,GACIyL,GAAiB,OAATA,GAA0B,MAATA,GAAyB,OAATA,GACzCrH,EAAIvT,MACGuT,IAGfA,EAAIxT,KAAKoP,GACFoE,IACR,KACUrU,OAAe,CAAC,IAAMwD,EAE3C,CACA,oBAAAg+D,CAAqBh+D,GACZ6B,MAAMgR,QAAQ7S,KACfA,EAAQnH,KAAKskE,WAAWn9D,IAE5B,IAAIi+D,GAAe,EACnB,EAAG,CAGC,GAFAA,GAAe,GAEVplE,KAAK0jE,wBAAyB,CAC/B,IAAK,IAAIn/D,EAAI,EAAGA,EAAI4C,EAAMxD,OAAS,EAAGY,IAAK,CACvC,MAAM6C,EAAID,EAAM5C,GAEN,IAANA,GAAiB,KAAN6C,GAAyB,KAAbD,EAAM,IAEvB,MAANC,GAAmB,KAANA,IACbg+D,GAAe,EACfj+D,EAAMqL,OAAOjO,EAAG,GAChBA,IAER,CACiB,MAAb4C,EAAM,IACW,IAAjBA,EAAMxD,QACQ,MAAbwD,EAAM,IAA2B,KAAbA,EAAM,KAC3Bi+D,GAAe,EACfj+D,EAAM1C,MAEd,CAEA,IAAI4gE,EAAK,EACT,MAAQ,KAAOA,EAAKl+D,EAAM9C,QAAQ,KAAMghE,EAAK,KAAK,CAC9C,MAAMj+D,EAAID,EAAMk+D,EAAK,GACjBj+D,GAAW,MAANA,GAAmB,OAANA,GAAoB,OAANA,IAChCg+D,GAAe,EACfj+D,EAAMqL,OAAO6yD,EAAK,EAAG,GACrBA,GAAM,EAEd,CACJ,OAASD,GACT,OAAwB,IAAjBj+D,EAAMxD,OAAe,CAAC,IAAMwD,CACvC,CAmBA,oBAAA29D,CAAqBjB,GACjB,IAAIuB,GAAe,EACnB,EAAG,CACCA,GAAe,EAEf,IAAK,IAAIj+D,KAAS08D,EAAW,CACzB,IAAIqB,GAAM,EACV,MAAQ,KAAOA,EAAK/9D,EAAM9C,QAAQ,KAAM6gE,EAAK,KAAK,CAC9C,IAAII,EAAMJ,EACV,KAA0B,OAAnB/9D,EAAMm+D,EAAM,IAEfA,IAIAA,EAAMJ,GACN/9D,EAAMqL,OAAO0yD,EAAK,EAAGI,EAAMJ,GAE/B,IAAI90C,EAAOjpB,EAAM+9D,EAAK,GACtB,MAAM99D,EAAID,EAAM+9D,EAAK,GACfK,EAAKp+D,EAAM+9D,EAAK,GACtB,GAAa,OAAT90C,EACA,SACJ,IAAKhpB,GACK,MAANA,GACM,OAANA,IACCm+D,GACM,MAAPA,GACO,OAAPA,EACA,SAEJH,GAAe,EAEfj+D,EAAMqL,OAAO0yD,EAAI,GACjB,MAAMM,EAAQr+D,EAAM1D,MAAM,GAC1B+hE,EAAMN,GAAM,KACZrB,EAAUr/D,KAAKghE,GACfN,GACJ,CAEA,IAAKllE,KAAK0jE,wBAAyB,CAC/B,IAAK,IAAIn/D,EAAI,EAAGA,EAAI4C,EAAMxD,OAAS,EAAGY,IAAK,CACvC,MAAM6C,EAAID,EAAM5C,GAEN,IAANA,GAAiB,KAAN6C,GAAyB,KAAbD,EAAM,IAEvB,MAANC,GAAmB,KAANA,IACbg+D,GAAe,EACfj+D,EAAMqL,OAAOjO,EAAG,GAChBA,IAER,CACiB,MAAb4C,EAAM,IACW,IAAjBA,EAAMxD,QACQ,MAAbwD,EAAM,IAA2B,KAAbA,EAAM,KAC3Bi+D,GAAe,EACfj+D,EAAM1C,MAEd,CAEA,IAAI4gE,EAAK,EACT,MAAQ,KAAOA,EAAKl+D,EAAM9C,QAAQ,KAAMghE,EAAK,KAAK,CAC9C,MAAMj+D,EAAID,EAAMk+D,EAAK,GACrB,GAAIj+D,GAAW,MAANA,GAAmB,OAANA,GAAoB,OAANA,EAAY,CAC5Cg+D,GAAe,EACf,MACMK,EADiB,IAAPJ,GAA8B,OAAlBl+D,EAAMk+D,EAAK,GACf,CAAC,KAAO,GAChCl+D,EAAMqL,OAAO6yD,EAAK,EAAG,KAAMI,GACN,IAAjBt+D,EAAMxD,QACNwD,EAAM3C,KAAK,IACf6gE,GAAM,CACV,CACJ,CACJ,CACJ,OAASD,GACT,OAAOvB,CACX,CAQA,qBAAAkB,CAAsBlB,GAClB,IAAK,IAAIt/D,EAAI,EAAGA,EAAIs/D,EAAUlgE,OAAS,EAAGY,IACtC,IAAK,IAAI0E,EAAI1E,EAAI,EAAG0E,EAAI46D,EAAUlgE,OAAQsF,IAAK,CAC3C,MAAMy8D,EAAU1lE,KAAK2lE,WAAW9B,EAAUt/D,GAAIs/D,EAAU56D,IAAKjJ,KAAK0jE,yBAClE,GAAIgC,EAAS,CACT7B,EAAUt/D,GAAK,GACfs/D,EAAU56D,GAAKy8D,EACf,KACJ,CACJ,CAEJ,OAAO7B,EAAUv3C,OAAO44C,GAAMA,EAAGvhE,OACrC,CACA,UAAAgiE,CAAW5iE,EAAGC,EAAG4iE,GAAe,GAC5B,IAAIxhE,EAAK,EACLE,EAAK,EACLpC,EAAS,GACT2jE,EAAQ,GACZ,KAAOzhE,EAAKrB,EAAEY,QAAUW,EAAKtB,EAAEW,QAC3B,GAAIZ,EAAEqB,KAAQpB,EAAEsB,GACZpC,EAAOsC,KAAe,MAAVqhE,EAAgB7iE,EAAEsB,GAAMvB,EAAEqB,IACtCA,IACAE,SAEC,GAAIshE,GAA0B,OAAV7iE,EAAEqB,IAAgBpB,EAAEsB,KAAQvB,EAAEqB,EAAK,GACxDlC,EAAOsC,KAAKzB,EAAEqB,IACdA,SAEC,GAAIwhE,GAA0B,OAAV5iE,EAAEsB,IAAgBvB,EAAEqB,KAAQpB,EAAEsB,EAAK,GACxDpC,EAAOsC,KAAKxB,EAAEsB,IACdA,SAEC,GAAc,MAAVvB,EAAEqB,KACPpB,EAAEsB,KACDtE,KAAKuB,QAAQk+D,KAAQz8D,EAAEsB,GAAI07C,WAAW,MAC7B,OAAVh9C,EAAEsB,GAQD,IAAc,MAAVtB,EAAEsB,KACPvB,EAAEqB,KACDpE,KAAKuB,QAAQk+D,KAAQ18D,EAAEqB,GAAI47C,WAAW,MAC7B,OAAVj9C,EAAEqB,GASF,OAAO,EARP,GAAc,MAAVyhE,EACA,OAAO,EACXA,EAAQ,IACR3jE,EAAOsC,KAAKxB,EAAEsB,IACdF,IACAE,GAIJ,KArBoB,CAChB,GAAc,MAAVuhE,EACA,OAAO,EACXA,EAAQ,IACR3jE,EAAOsC,KAAKzB,EAAEqB,IACdA,IACAE,GACJ,CAkBJ,OAAOvB,EAAEY,SAAWX,EAAEW,QAAUzB,CACpC,CACA,WAAAkiE,GACI,GAAIpkE,KAAKwjE,SACL,OACJ,MAAMloB,EAAUt7C,KAAKs7C,QACrB,IAAIqlB,GAAS,EACTmF,EAAe,EACnB,IAAK,IAAIvhE,EAAI,EAAGA,EAAI+2C,EAAQ33C,QAAgC,MAAtB23C,EAAQv1C,OAAOxB,GAAYA,IAC7Do8D,GAAUA,EACVmF,IAEAA,IACA9lE,KAAKs7C,QAAUA,EAAQ73C,MAAMqiE,IACjC9lE,KAAK2gE,OAASA,CAClB,CAMA,QAAAoF,CAASh2B,EAAMuL,EAASqoB,GAAU,GAC9B,MAAMpiE,EAAUvB,KAAKuB,QAIrB,GAAIvB,KAAK8jE,UAAW,CAChB,MAAMkC,EAA+B,iBAAZj2B,EAAK,IAAmB,YAAYvqC,KAAKuqC,EAAK,IACjEk2B,GAAWD,GACD,KAAZj2B,EAAK,IACO,KAAZA,EAAK,IACO,MAAZA,EAAK,IACL,YAAYvqC,KAAKuqC,EAAK,IACpBm2B,EAAqC,iBAAf5qB,EAAQ,IAAmB,YAAY91C,KAAK81C,EAAQ,IAO1E6qB,EAAMF,EAAU,EAAID,EAAY,OAAI5oE,EACpCgpE,GAPcF,GACD,KAAf5qB,EAAQ,IACO,KAAfA,EAAQ,IACO,MAAfA,EAAQ,IACc,iBAAfA,EAAQ,IACf,YAAY91C,KAAK81C,EAAQ,IAEJ,EAAI4qB,EAAe,OAAI9oE,EAChD,GAAmB,iBAAR+oE,GAAmC,iBAARC,EAAkB,CACpD,MAAOC,EAAIC,GAAM,CAACv2B,EAAKo2B,GAAM7qB,EAAQ8qB,IACjCC,EAAG/pD,gBAAkBgqD,EAAGhqD,gBACxBg/B,EAAQ8qB,GAAOC,EACXD,EAAMD,EACN7qB,EAAUA,EAAQ73C,MAAM2iE,GAEnBD,EAAMC,IACXr2B,EAAOA,EAAKtsC,MAAM0iE,IAG9B,CACJ,CAGA,MAAM,kBAAEtB,EAAoB,GAAM7kE,KAAKuB,QACnCsjE,GAAqB,IACrB90B,EAAO/vC,KAAKmlE,qBAAqBp1B,IAErC/vC,KAAKb,MAAM,WAAYa,KAAM,CAAE+vC,OAAMuL,YACrCt7C,KAAKb,MAAM,WAAY4wC,EAAKpsC,OAAQ23C,EAAQ33C,QAC5C,IAAK,IAAI4iE,EAAK,EAAGC,EAAK,EAAGC,EAAK12B,EAAKpsC,OAAQ26D,EAAKhjB,EAAQ33C,OAAQ4iE,EAAKE,GAAMD,EAAKlI,EAAIiI,IAAMC,IAAM,CAC5FxmE,KAAKb,MAAM,iBACX,IAAIiI,EAAIk0C,EAAQkrB,GACZ7mD,EAAIowB,EAAKw2B,GAKb,GAJAvmE,KAAKb,MAAMm8C,EAASl0C,EAAGuY,IAIb,IAANvY,EACA,OAAO,EAGX,GAAIA,IAAM27D,EAAU,CAChB/iE,KAAKb,MAAM,WAAY,CAACm8C,EAASl0C,EAAGuY,IAuBpC,IAAI+mD,EAAKH,EACLI,EAAKH,EAAK,EACd,GAAIG,IAAOrI,EAAI,CAQX,IAPAt+D,KAAKb,MAAM,iBAOJonE,EAAKE,EAAIF,IACZ,GAAiB,MAAbx2B,EAAKw2B,IACQ,OAAbx2B,EAAKw2B,KACHhlE,EAAQk+D,KAA8B,MAAvB1vB,EAAKw2B,GAAIxgE,OAAO,GACjC,OAAO,EAEf,OAAO,CACX,CAEA,KAAO2gE,EAAKD,GAAI,CACZ,IAAIG,EAAY72B,EAAK22B,GAGrB,GAFA1mE,KAAKb,MAAM,mBAAoB4wC,EAAM22B,EAAIprB,EAASqrB,EAAIC,GAElD5mE,KAAK+lE,SAASh2B,EAAKtsC,MAAMijE,GAAKprB,EAAQ73C,MAAMkjE,GAAKhD,GAGjD,OAFA3jE,KAAKb,MAAM,wBAAyBunE,EAAID,EAAIG,IAErC,EAKP,GAAkB,MAAdA,GACc,OAAdA,IACErlE,EAAQk+D,KAA+B,MAAxBmH,EAAU7gE,OAAO,GAAa,CAC/C/F,KAAKb,MAAM,gBAAiB4wC,EAAM22B,EAAIprB,EAASqrB,GAC/C,KACJ,CAEA3mE,KAAKb,MAAM,4CACXunE,GAER,CAIA,SAAI/C,IAEA3jE,KAAKb,MAAM,2BAA4B4wC,EAAM22B,EAAIprB,EAASqrB,GACtDD,IAAOD,GAMnB,CAIA,IAAII,EASJ,GARiB,iBAANz/D,GACPy/D,EAAMlnD,IAAMvY,EACZpH,KAAKb,MAAM,eAAgBiI,EAAGuY,EAAGknD,KAGjCA,EAAMz/D,EAAE5B,KAAKma,GACb3f,KAAKb,MAAM,gBAAiBiI,EAAGuY,EAAGknD,KAEjCA,EACD,OAAO,CACf,CAYA,GAAIN,IAAOE,GAAMD,IAAOlI,EAGpB,OAAO,EAEN,GAAIiI,IAAOE,EAIZ,OAAO9C,EAEN,GAAI6C,IAAOlI,EAKZ,OAAOiI,IAAOE,EAAK,GAAkB,KAAb12B,EAAKw2B,GAK7B,MAAM,IAAIvhE,MAAM,OAGxB,CACA,WAAAm+D,GACI,OAAOA,EAAYnjE,KAAKs7C,QAASt7C,KAAKuB,QAC1C,CACA,KAAAgU,CAAM+lC,IACF,OAAmBA,GACnB,MAAM/5C,EAAUvB,KAAKuB,QAErB,GAAgB,OAAZ+5C,EACA,OAAOynB,EACX,GAAgB,KAAZznB,EACA,MAAO,GAGX,IAAIx3C,EACAgjE,EAAW,MACVhjE,EAAIw3C,EAAQv3C,MAAMm+D,IACnB4E,EAAWvlE,EAAQk+D,IAAM2C,EAAcD,GAEjCr+D,EAAIw3C,EAAQv3C,MAAMy9D,IACxBsF,GAAYvlE,EAAQ49D,OACd59D,EAAQk+D,IACJmC,EACAD,EACJpgE,EAAQk+D,IACJiC,EACAD,GAAgB39D,EAAE,KAEtBA,EAAIw3C,EAAQv3C,MAAMs+D,IACxByE,GAAYvlE,EAAQ49D,OACd59D,EAAQk+D,IACJ+C,EACAF,EACJ/gE,EAAQk+D,IACJiD,EACAC,GAAY7+D,IAEhBA,EAAIw3C,EAAQv3C,MAAM89D,IACxBiF,EAAWvlE,EAAQk+D,IAAMsC,EAAqBD,GAExCh+D,EAAIw3C,EAAQv3C,MAAMi+D,MACxB8E,EAAW7E,GAEf,MAAMxpB,EAAK,IAAIsmB,SAASzjB,EAASt7C,KAAKuB,SAASy9D,cAK/C,OAJI8H,GAA0B,iBAAPruB,GAEnB1uC,QAAQ/I,eAAey3C,EAAI,OAAQ,CAAEv3C,MAAO4lE,IAEzCruB,CACX,CACA,MAAAyqB,GACI,GAAIljE,KAAKgkE,SAA0B,IAAhBhkE,KAAKgkE,OACpB,OAAOhkE,KAAKgkE,OAOhB,MAAMhsD,EAAMhY,KAAKgY,IACjB,IAAKA,EAAIrU,OAEL,OADA3D,KAAKgkE,QAAS,EACPhkE,KAAKgkE,OAEhB,MAAMziE,EAAUvB,KAAKuB,QACfwlE,EAAUxlE,EAAQqjE,WA1vBnBhH,SA4vBCr8D,EAAQk+D,IAxvBH,0CAGE,0BAwvBPJ,EAAQ,IAAI9tD,IAAIhQ,EAAQ49D,OAAS,CAAC,KAAO,IAO/C,IAAI1mB,EAAKzgC,EACJ1Y,IAAIg8C,IACL,MAAM2iB,EAAK3iB,EAAQh8C,IAAI8H,IACnB,GAAIA,aAAalE,OACb,IAAK,MAAMyc,KAAKvY,EAAEi4D,MAAM/4D,MAAM,IAC1B+4D,EAAM7lB,IAAI75B,GAElB,MAAoB,iBAANvY,EACKA,EAjrBLpB,QAAQ,2BAA4B,QAkrB5CoB,IAAM27D,EACFA,EACA37D,EAAEk4D,OAwBhB,OAtBArB,EAAG5iD,QAAQ,CAACjU,EAAG7C,KACX,MAAM6rB,EAAO6tC,EAAG15D,EAAI,GACd8a,EAAO4+C,EAAG15D,EAAI,GAChB6C,IAAM27D,GAAY1jD,IAAS0jD,SAGlB3lE,IAATiiB,OACajiB,IAATgzB,GAAsBA,IAAS2yC,EAC/B9E,EAAG15D,EAAI,GAAK,UAAYwiE,EAAU,QAAU32C,EAG5C6tC,EAAG15D,GAAKwiE,OAGE3pE,IAATgzB,EACL6tC,EAAG15D,EAAI,GAAK8a,EAAO,UAAY0nD,EAAU,KAEpC32C,IAAS2yC,IACd9E,EAAG15D,EAAI,GAAK8a,EAAO,aAAe0nD,EAAU,OAAS32C,EACrD6tC,EAAG15D,EAAI,GAAKw+D,MAGb9E,EAAG3xC,OAAOllB,GAAKA,IAAM27D,GAAUthE,KAAK,OAE1CA,KAAK,KAGV,MAAOyxB,EAAMoG,GAASthB,EAAIrU,OAAS,EAAI,CAAC,MAAO,KAAO,CAAC,GAAI,IAG3D80C,EAAK,IAAMvlB,EAAOulB,EAAKnf,EAAQ,IAE3Bt5B,KAAK2gE,SACLloB,EAAK,OAASA,EAAK,QACvB,IACIz4C,KAAKgkE,OAAS,IAAI9gE,OAAOu1C,EAAI,IAAI4mB,GAAO59D,KAAK,IAEjD,CACA,MAAOulE,GAEHhnE,KAAKgkE,QAAS,CAClB,CAEA,OAAOhkE,KAAKgkE,MAChB,CACA,UAAAM,CAAWl9D,GAKP,OAAIpH,KAAK0jE,wBACEt8D,EAAEd,MAAM,KAEVtG,KAAK8jE,WAAa,cAAct+D,KAAK4B,GAEnC,CAAC,MAAOA,EAAEd,MAAM,QAGhBc,EAAEd,MAAM,MAEvB,CACA,KAAAvC,CAAM4b,EAAGgkD,EAAU3jE,KAAK2jE,SAIpB,GAHA3jE,KAAKb,MAAM,QAASwgB,EAAG3f,KAAKs7C,SAGxBt7C,KAAKT,QACL,OAAO,EAEX,GAAIS,KAAKyjE,MACL,MAAa,KAAN9jD,EAEX,GAAU,MAANA,GAAagkD,EACb,OAAO,EAEX,MAAMpiE,EAAUvB,KAAKuB,QAEjBvB,KAAK8jE,YACLnkD,EAAIA,EAAErZ,MAAM,MAAM7E,KAAK,MAG3B,MAAMwlE,EAAKjnE,KAAKskE,WAAW3kD,GAC3B3f,KAAKb,MAAMa,KAAKs7C,QAAS,QAAS2rB,GAKlC,MAAMjvD,EAAMhY,KAAKgY,IACjBhY,KAAKb,MAAMa,KAAKs7C,QAAS,MAAOtjC,GAEhC,IAAIiL,EAAWgkD,EAAGA,EAAGtjE,OAAS,GAC9B,IAAKsf,EACD,IAAK,IAAI1e,EAAI0iE,EAAGtjE,OAAS,GAAIsf,GAAY1e,GAAK,EAAGA,IAC7C0e,EAAWgkD,EAAG1iE,GAGtB,IAAK,IAAIA,EAAI,EAAGA,EAAIyT,EAAIrU,OAAQY,IAAK,CACjC,MAAM+2C,EAAUtjC,EAAIzT,GACpB,IAAIwrC,EAAOk3B,EAKX,GAJI1lE,EAAQk2D,WAAgC,IAAnBnc,EAAQ33C,SAC7BosC,EAAO,CAAC9sB,IAEAjjB,KAAK+lE,SAASh2B,EAAMuL,EAASqoB,GAErC,QAAIpiE,EAAQ2lE,aAGJlnE,KAAK2gE,MAErB,CAGA,OAAIp/D,EAAQ2lE,YAGLlnE,KAAK2gE,MAChB,CACA,eAAO54C,CAASi7C,GACZ,OAAO3B,EAAUt5C,SAASi7C,GAAKzB,SACnC,EAOJF,EAAUtD,IAAM,IAChBsD,EAAUE,UAAYA,EACtBF,EAAUryC,OAAS,IACnBqyC,EAAUxyC,SAAW,G,6CCz9Bd,MAAMA,EAAW,CAAC5Q,GAAKmjD,wBAAuB,GAAW,CAAC,IACtDA,EACDnjD,EAAEjY,QAAQ,iBAAkB,MAC5BiY,EAAEjY,QAAQ,4BAA6B,QAAQA,QAAQ,aAAc,K,GChB3EmhE,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqBjqE,IAAjBkqE,EACH,OAAOA,EAAa3iE,QAGrB,IAAID,EAASyiE,EAAyBE,GAAY,CACjDhnE,GAAIgnE,EACJE,QAAQ,EACR5iE,QAAS,CAAC,GAUX,OANA6iE,EAAoBH,GAAU79D,KAAK9E,EAAOC,QAASD,EAAQA,EAAOC,QAASyiE,GAG3E1iE,EAAO6iE,QAAS,EAGT7iE,EAAOC,OACf,CAGAyiE,EAAoBtjE,EAAI0jE,EhL5BpB7rE,EAAW,GACfyrE,EAAoBpzD,EAAI,CAAC9R,EAAQulE,EAAUx1D,EAAIy1D,KAC9C,IAAGD,EAAH,CAMA,IAAIE,EAAexqD,IACnB,IAAS5Y,EAAI,EAAGA,EAAI5I,EAASgI,OAAQY,IAAK,CAGzC,IAFA,IAAKkjE,EAAUx1D,EAAIy1D,GAAY/rE,EAAS4I,GACpCqjE,GAAY,EACP3+D,EAAI,EAAGA,EAAIw+D,EAAS9jE,OAAQsF,MACpB,EAAXy+D,GAAsBC,GAAgBD,IAAa3mE,OAAO2T,KAAK0yD,EAAoBpzD,GAAG6zD,MAAOzyD,GAASgyD,EAAoBpzD,EAAEoB,GAAKqyD,EAASx+D,KAC9Iw+D,EAASj1D,OAAOvJ,IAAK,IAErB2+D,GAAY,EACTF,EAAWC,IAAcA,EAAeD,IAG7C,GAAGE,EAAW,CACbjsE,EAAS6W,OAAOjO,IAAK,GACrB,IAAInB,EAAI6O,SACE7U,IAANgG,IAAiBlB,EAASkB,EAC/B,CACD,CACA,OAAOlB,CAnBP,CAJCwlE,EAAWA,GAAY,EACvB,IAAI,IAAInjE,EAAI5I,EAASgI,OAAQY,EAAI,GAAK5I,EAAS4I,EAAI,GAAG,GAAKmjE,EAAUnjE,IAAK5I,EAAS4I,GAAK5I,EAAS4I,EAAI,GACrG5I,EAAS4I,GAAK,CAACkjE,EAAUx1D,EAAIy1D,IiLJ/BN,EAAoBn/D,EAAKvD,IACxB,IAAIi2C,EAASj2C,GAAUA,EAAOojE,WAC7B,IAAOpjE,EAAiB,QACxB,IAAM,EAEP,OADA0iE,EAAoB1uB,EAAEiC,EAAQ,CAAE53C,EAAG43C,IAC5BA,GCLRysB,EAAoB1uB,EAAI,CAAC/zC,EAASojE,KACjC,IAAI,IAAI3yD,KAAO2yD,EACXX,EAAoBzuD,EAAEovD,EAAY3yD,KAASgyD,EAAoBzuD,EAAEhU,EAASyQ,IAC5ErU,OAAOC,eAAe2D,EAASyQ,EAAK,CAAE/J,YAAY,EAAMlK,IAAK4mE,EAAW3yD,MCJ3EgyD,EAAoBznD,EAAI,CAAC,EAGzBynD,EAAoBz7D,EAAKq8D,GACjB32D,QAAQwF,IAAI9V,OAAO2T,KAAK0yD,EAAoBznD,GAAGyO,OAAO,CAAC65C,EAAU7yD,KACvEgyD,EAAoBznD,EAAEvK,GAAK4yD,EAASC,GAC7BA,GACL,KCNJb,EAAoBh3B,EAAK43B,GAEZA,EAAU,IAAMA,EAAU,SAAW,CAAC,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,wBAAwBA,GCHxdZ,EAAoBzuD,EAAI,CAAC9N,EAAKrI,IAAUzB,OAAOE,UAAUsL,eAAe/C,KAAKqB,EAAKrI,GpLA9E5G,EAAa,CAAC,EACdC,EAAoB,uBAExBurE,EAAoBrlD,EAAI,CAAC7M,EAAK+iB,EAAM7iB,EAAK4yD,KACxC,GAAGpsE,EAAWsZ,GAAQtZ,EAAWsZ,GAAK1Q,KAAKyzB,OAA3C,CACA,IAAIiwC,EAAQC,EACZ,QAAW/qE,IAARgY,EAEF,IADA,IAAIgzD,EAAUxxD,SAASyxD,qBAAqB,UACpC9jE,EAAI,EAAGA,EAAI6jE,EAAQzkE,OAAQY,IAAK,CACvC,IAAI0Z,EAAImqD,EAAQ7jE,GAChB,GAAG0Z,EAAEiC,aAAa,QAAUhL,GAAO+I,EAAEiC,aAAa,iBAAmBrkB,EAAoBuZ,EAAK,CAAE8yD,EAASjqD,EAAG,KAAO,CACpH,CAEGiqD,IACHC,GAAa,GACbD,EAAStxD,SAAS0xD,cAAc,WAEzBjgD,QAAU,QACb++C,EAAoBnZ,IACvBia,EAAOK,aAAa,QAASnB,EAAoBnZ,IAElDia,EAAOK,aAAa,eAAgB1sE,EAAoBuZ,GAExD8yD,EAAOlmC,IAAM9sB,GAEdtZ,EAAWsZ,GAAO,CAAC+iB,GACnB,IAAIuwC,EAAmB,CAACnpD,EAAM4jB,KAE7BilC,EAAOxwC,QAAUwwC,EAAOztC,OAAS,KACjCvC,aAAatC,GACb,IAAI6yC,EAAU7sE,EAAWsZ,GAIzB,UAHOtZ,EAAWsZ,GAClBgzD,EAAOQ,YAAcR,EAAOQ,WAAWC,YAAYT,GACnDO,GAAWA,EAAQptD,QAASpJ,GAAQA,EAAGgxB,IACpC5jB,EAAM,OAAOA,EAAK4jB,IAElBrN,EAAUC,WAAW2yC,EAAiBp/D,KAAK,UAAMhM,EAAW,CAAE+C,KAAM,UAAWkN,OAAQ66D,IAAW,MACtGA,EAAOxwC,QAAU8wC,EAAiBp/D,KAAK,KAAM8+D,EAAOxwC,SACpDwwC,EAAOztC,OAAS+tC,EAAiBp/D,KAAK,KAAM8+D,EAAOztC,QACnD0tC,GAAcvxD,SAAS2pB,KAAKqoC,YAAYV,EAnCkB,GqLH3Dd,EAAoBhkE,EAAKuB,IACH,oBAAXgL,QAA0BA,OAAOoF,aAC1ChU,OAAOC,eAAe2D,EAASgL,OAAOoF,YAAa,CAAE7T,MAAO,WAE7DH,OAAOC,eAAe2D,EAAS,aAAc,CAAEzD,OAAO,KCLvDkmE,EAAoByB,IAAOnkE,IAC1BA,EAAO4uD,MAAQ,GACV5uD,EAAOokE,WAAUpkE,EAAOokE,SAAW,IACjCpkE,GCHR0iE,EAAoBn+D,EAAI,K,MCAxB,IAAI8/D,EACAvnD,WAAWwnD,gBAAeD,EAAYvnD,WAAW0Q,SAAW,IAChE,IAAItb,EAAW4K,WAAW5K,SAC1B,IAAKmyD,GAAanyD,IACbA,EAASqyD,eAAkE,WAAjDryD,EAASqyD,cAAc/rE,QAAQkf,gBAC5D2sD,EAAYnyD,EAASqyD,cAAcjnC,MAC/B+mC,GAAW,CACf,IAAIX,EAAUxxD,EAASyxD,qBAAqB,UAC5C,GAAGD,EAAQzkE,OAEV,IADA,IAAIY,EAAI6jE,EAAQzkE,OAAS,EAClBY,GAAK,KAAOwkE,IAAc,aAAavjE,KAAKujE,KAAaA,EAAYX,EAAQ7jE,KAAKy9B,GAE3F,CAID,IAAK+mC,EAAW,MAAM,IAAI/jE,MAAM,yDAChC+jE,EAAYA,EAAU/iE,QAAQ,SAAU,IAAIA,QAAQ,OAAQ,IAAIA,QAAQ,QAAS,IAAIA,QAAQ,YAAa,KAC1GohE,EAAoBhgE,EAAI2hE,C,WClBxB3B,EAAoBpkE,EAAyB,oBAAb4T,UAA4BA,SAASsyD,SAAYhwD,KAAKgZ,SAAS8b,KAK/F,IAAIm7B,EAAkB,CACrB,KAAM,GAGP/B,EAAoBznD,EAAE1W,EAAI,CAAC++D,EAASC,KAElC,IAAImB,EAAqBhC,EAAoBzuD,EAAEwwD,EAAiBnB,GAAWmB,EAAgBnB,QAAW5qE,EACtG,GAA0B,IAAvBgsE,EAGF,GAAGA,EACFnB,EAASzjE,KAAK4kE,EAAmB,QAC3B,CAGL,IAAIx/B,EAAU,IAAIv4B,QAAQ,CAAC6R,EAASkW,IAAYgwC,EAAqBD,EAAgBnB,GAAW,CAAC9kD,EAASkW,IAC1G6uC,EAASzjE,KAAK4kE,EAAmB,GAAKx/B,GAGtC,IAAI10B,EAAMkyD,EAAoBhgE,EAAIggE,EAAoBh3B,EAAE43B,GAEpD9iE,EAAQ,IAAIF,MAgBhBoiE,EAAoBrlD,EAAE7M,EAfF+tB,IACnB,GAAGmkC,EAAoBzuD,EAAEwwD,EAAiBnB,KAEf,KAD1BoB,EAAqBD,EAAgBnB,MACRmB,EAAgBnB,QAAW5qE,GACrDgsE,GAAoB,CACtB,IAAIC,EAAYpmC,IAAyB,SAAfA,EAAM9iC,KAAkB,UAAY8iC,EAAM9iC,MAChEmpE,EAAUrmC,GAASA,EAAM51B,QAAU41B,EAAM51B,OAAO20B,IACpD98B,EAAMH,QAAU,iBAAmBijE,EAAU,cAAgBqB,EAAY,KAAOC,EAAU,IAC1FpkE,EAAMD,KAAO,iBACbC,EAAM/E,KAAOkpE,EACbnkE,EAAMuQ,QAAU6zD,EAChBF,EAAmB,GAAGlkE,EACvB,GAGuC,SAAW8iE,EAASA,EAE/D,GAYHZ,EAAoBpzD,EAAE/K,EAAK++D,GAA0C,IAA7BmB,EAAgBnB,GAGxD,IAAIuB,EAAuB,CAACC,EAA4BzqE,KACvD,IAGIsoE,EAAUW,GAHTP,EAAUgC,EAAaC,GAAW3qE,EAGhBwF,EAAI,EAC3B,GAAGkjE,EAAS5+D,KAAMxI,GAAgC,IAAxB8oE,EAAgB9oE,IAAa,CACtD,IAAIgnE,KAAYoC,EACZrC,EAAoBzuD,EAAE8wD,EAAapC,KACrCD,EAAoBtjE,EAAEujE,GAAYoC,EAAYpC,IAGhD,GAAGqC,EAAS,IAAIxnE,EAASwnE,EAAQtC,EAClC,CAEA,IADGoC,GAA4BA,EAA2BzqE,GACrDwF,EAAIkjE,EAAS9jE,OAAQY,IACzByjE,EAAUP,EAASljE,GAChB6iE,EAAoBzuD,EAAEwwD,EAAiBnB,IAAYmB,EAAgBnB,IACrEmB,EAAgBnB,GAAS,KAE1BmB,EAAgBnB,GAAW,EAE5B,OAAOZ,EAAoBpzD,EAAE9R,IAG1BynE,EAAqBnoD,WAA4C,gCAAIA,WAA4C,iCAAK,GAC1HmoD,EAAmBtuD,QAAQkuD,EAAqBngE,KAAK,KAAM,IAC3DugE,EAAmBnlE,KAAO+kE,EAAqBngE,KAAK,KAAMugE,EAAmBnlE,KAAK4E,KAAKugE,G,KCrFvFvC,EAAoBnZ,QAAK7wD,ECGzB,IAAIwsE,EAAsBxC,EAAoBpzD,OAAE5W,EAAW,CAAC,MAAO,IAAOgqE,EAAoB,QAC9FwC,EAAsBxC,EAAoBpzD,EAAE41D,E","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/comments/src/logger.js","webpack:///nextcloud/apps/comments/src/services/DavClient.js","webpack:///nextcloud/apps/comments/src/utils/davUtils.js","webpack:///nextcloud/apps/comments/src/comments-activity-tab.ts","webpack:///nextcloud/apps/comments/src/files-sidebar.ts","webpack:///nextcloud/apps/comments/src/utils/activity.ts","webpack:///nextcloud/apps/comments/src/services/GetComments.ts","webpack:///nextcloud/node_modules/balanced-match/index.js","webpack:///nextcloud/node_modules/base-64/base64.js","webpack:///nextcloud/node_modules/brace-expansion/index.js","webpack:///nextcloud/node_modules/builtin-status-codes/browser.js","webpack:///nextcloud/node_modules/byte-length/dist/index.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/actualApply.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/applyBind.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/functionApply.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/functionCall.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/index.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/reflectApply.js","webpack:///nextcloud/node_modules/call-bind/index.js","webpack:///nextcloud/node_modules/call-bound/index.js","webpack:///nextcloud/node_modules/define-data-property/index.js","webpack:///nextcloud/node_modules/dunder-proto/get.js","webpack:///nextcloud/node_modules/es-define-property/index.js","webpack:///nextcloud/node_modules/es-errors/eval.js","webpack:///nextcloud/node_modules/es-errors/index.js","webpack:///nextcloud/node_modules/es-errors/range.js","webpack:///nextcloud/node_modules/es-errors/ref.js","webpack:///nextcloud/node_modules/es-errors/syntax.js","webpack:///nextcloud/node_modules/es-errors/type.js","webpack:///nextcloud/node_modules/es-errors/uri.js","webpack:///nextcloud/node_modules/es-object-atoms/index.js","webpack:///nextcloud/node_modules/for-each/index.js","webpack:///nextcloud/node_modules/function-bind/implementation.js","webpack:///nextcloud/node_modules/function-bind/index.js","webpack:///nextcloud/node_modules/generator-function/index.js","webpack:///nextcloud/node_modules/get-intrinsic/index.js","webpack:///nextcloud/node_modules/get-proto/Object.getPrototypeOf.js","webpack:///nextcloud/node_modules/get-proto/Reflect.getPrototypeOf.js","webpack:///nextcloud/node_modules/get-proto/index.js","webpack:///nextcloud/node_modules/gopd/gOPD.js","webpack:///nextcloud/node_modules/gopd/index.js","webpack:///nextcloud/node_modules/has-property-descriptors/index.js","webpack:///nextcloud/node_modules/has-symbols/index.js","webpack:///nextcloud/node_modules/has-symbols/shams.js","webpack:///nextcloud/node_modules/has-tostringtag/shams.js","webpack:///nextcloud/node_modules/hasown/index.js","webpack:///nextcloud/node_modules/https-browserify/index.js","webpack:///nextcloud/node_modules/is-arguments/index.js","webpack:///nextcloud/node_modules/is-callable/index.js","webpack:///nextcloud/node_modules/is-generator-function/index.js","webpack:///nextcloud/node_modules/is-regex/index.js","webpack:///nextcloud/node_modules/is-typed-array/index.js","webpack:///nextcloud/node_modules/math-intrinsics/abs.js","webpack:///nextcloud/node_modules/math-intrinsics/floor.js","webpack:///nextcloud/node_modules/math-intrinsics/isNaN.js","webpack:///nextcloud/node_modules/math-intrinsics/max.js","webpack:///nextcloud/node_modules/math-intrinsics/min.js","webpack:///nextcloud/node_modules/math-intrinsics/pow.js","webpack:///nextcloud/node_modules/math-intrinsics/round.js","webpack:///nextcloud/node_modules/math-intrinsics/sign.js","webpack:///nextcloud/node_modules/nested-property/dist/nested-property.js","webpack:///nextcloud/node_modules/object-inspect/index.js","webpack:///nextcloud/node_modules/path-posix/index.js","webpack:///nextcloud/node_modules/possible-typed-array-names/index.js","webpack:///nextcloud/node_modules/punycode/punycode.js","webpack:///nextcloud/node_modules/qs/lib/formats.js","webpack:///nextcloud/node_modules/qs/lib/index.js","webpack:///nextcloud/node_modules/qs/lib/parse.js","webpack:///nextcloud/node_modules/qs/lib/stringify.js","webpack:///nextcloud/node_modules/qs/lib/utils.js","webpack:///nextcloud/node_modules/querystringify/index.js","webpack:///nextcloud/node_modules/requires-port/index.js","webpack:///nextcloud/node_modules/safe-regex-test/index.js","webpack:///nextcloud/node_modules/set-function-length/index.js","webpack:///nextcloud/node_modules/side-channel-list/index.js","webpack:///nextcloud/node_modules/side-channel-map/index.js","webpack:///nextcloud/node_modules/side-channel-weakmap/index.js","webpack:///nextcloud/node_modules/side-channel/index.js","webpack:///nextcloud/node_modules/stream-http/index.js","webpack:///nextcloud/node_modules/stream-http/lib/capability.js","webpack:///nextcloud/node_modules/stream-http/lib/request.js","webpack:///nextcloud/node_modules/stream-http/lib/response.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/errors-browser.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_readable.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_transform.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_writable.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/readable-browser.js","webpack:///nextcloud/node_modules/url-parse/index.js","webpack:///nextcloud/node_modules/url/url.js","webpack:///nextcloud/node_modules/util/support/isBufferBrowser.js","webpack:///nextcloud/node_modules/util/support/types.js","webpack:///nextcloud/node_modules/util/util.js","webpack:///nextcloud/node_modules/which-typed-array/index.js","webpack:///nextcloud/node_modules/xtend/immutable.js","webpack:///nextcloud/node_modules/available-typed-arrays/index.js","webpack:///nextcloud/node_modules/@buttercup/fetch/dist/index.browser.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/ignoreAttributes.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/util.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/validator.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/node2json.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js","webpack:///nextcloud/node_modules/hot-patcher/dist/functions.js","webpack:///nextcloud/node_modules/hot-patcher/dist/patcher.js","webpack:///nextcloud/node_modules/layerr/dist/error.js","webpack:///nextcloud/node_modules/layerr/dist/global.js","webpack:///nextcloud/node_modules/layerr/dist/layerr.js","webpack:///nextcloud/node_modules/layerr/dist/tools.js","webpack:///nextcloud/node_modules/strnum/strnum.js","webpack:///nextcloud/node_modules/url-join/lib/url-join.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/basic.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/digest.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/index.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/oauth.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/arrayBuffer.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/buffer.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/env.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/patcher.js","webpack:///nextcloud/node_modules/webdav/dist/node/factory.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/copyFile.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/createDirectory.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/createStream.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/customRequest.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/deleteFile.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/directoryContents.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/exists.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/getDAVCompliance.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/getFileContents.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/getQuota.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/lock.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/moveFile.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/partialUpdateFileContents.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/putFileContents.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/search.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/stat.js","webpack:///nextcloud/node_modules/webdav/dist/node/request.js","webpack:///nextcloud/node_modules/webdav/dist/node/response.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/body.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/crypto.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/dav.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/encode.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/headers.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/merge.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/path.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/quota.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/size.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/url.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/xml.js","webpack:///nextcloud/node_modules/webdav/dist/node/types.js","webpack:///nextcloud/node_modules/webdav/node_modules/entities/dist/esm/decode-codepoint.js","webpack:///nextcloud/node_modules/webdav/node_modules/entities/dist/esm/decode.js","webpack:///nextcloud/node_modules/webdav/node_modules/entities/dist/esm/escape.js","webpack:///nextcloud/node_modules/webdav/node_modules/entities/dist/esm/index.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/assert-valid-pattern.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/ast.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/brace-expressions.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/escape.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/index.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/unescape.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('comments')\n\t.detectUser()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\nimport { createClient } from 'webdav'\nimport { getRootPath } from '../utils/davUtils.js'\n\n// init webdav client\nconst client = createClient(getRootPath())\n\n// set CSRF token header\n/**\n * @param token\n */\nfunction setHeaders(token) {\n\tclient.setHeaders({\n\t\t// Add this so the server knows it is an request from the browser\n\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t// Inject user auth\n\t\trequesttoken: token ?? '',\n\t})\n}\n\n// refresh headers when request token changes\nonRequestTokenUpdate(setHeaders)\nsetHeaders(getRequestToken())\n\nexport default client\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateRemoteUrl } from '@nextcloud/router'\n\n/**\n *\n */\nfunction getRootPath() {\n\treturn generateRemoteUrl('dav/comments')\n}\n\nexport { getRootPath }\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport moment from '@nextcloud/moment';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport Vue, {} from 'vue';\nimport logger from './logger.js';\nimport { getComments } from './services/GetComments.js';\nVue.use(PiniaVuePlugin);\nlet ActivityTabPluginView;\nlet ActivityTabPluginInstance;\n/**\n * Register the comments plugins for the Activity sidebar\n */\nexport function registerCommentsPlugins() {\n    window.OCA.Activity.registerSidebarAction({\n        mount: async (el, { node, reload }) => {\n            const pinia = createPinia();\n            if (!ActivityTabPluginView) {\n                const { default: ActivityCommentAction } = await import('./views/ActivityCommentAction.vue');\n                // @ts-expect-error Types are broken for Vue2\n                ActivityTabPluginView = Vue.extend(ActivityCommentAction);\n            }\n            ActivityTabPluginInstance = new ActivityTabPluginView({\n                el,\n                pinia,\n                propsData: {\n                    reloadCallback: reload,\n                    resourceId: node.fileid,\n                },\n            });\n            logger.info('Comments plugin mounted in Activity sidebar action', { node });\n        },\n        unmount: () => {\n            // destroy previous instance if available\n            if (ActivityTabPluginInstance) {\n                ActivityTabPluginInstance.$destroy();\n            }\n        },\n    });\n    window.OCA.Activity.registerSidebarEntries(async ({ node, limit, offset }) => {\n        const { data: comments } = await getComments({ resourceType: 'files', resourceId: node.fileid }, {\n            limit,\n            offset: offset ?? 0,\n        });\n        logger.debug('Loaded comments', { node, comments });\n        const { default: CommentView } = await import('./views/ActivityCommentEntry.vue');\n        // @ts-expect-error Types are broken for Vue2\n        const CommentsViewObject = Vue.extend(CommentView);\n        return comments.map((comment) => ({\n            _CommentsViewInstance: undefined,\n            timestamp: moment(comment.props?.creationDateTime).toDate().getTime(),\n            mount(element, { reload }) {\n                this._CommentsViewInstance = new CommentsViewObject({\n                    el: element,\n                    propsData: {\n                        comment,\n                        resourceId: node.fileid,\n                        reloadCallback: reload,\n                    },\n                });\n            },\n            unmount() {\n                this._CommentsViewInstance?.$destroy();\n            },\n        }));\n    });\n    window.OCA.Activity.registerSidebarFilter((activity) => activity.type !== 'comments');\n    logger.info('Comments plugin registered for Activity sidebar action');\n}\n","/*!\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport MessageReplyText from '@mdi/svg/svg/message-reply-text.svg?raw';\nimport { getCSPNonce } from '@nextcloud/auth';\nimport { registerSidebarTab } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport wrap from '@vue/web-component-wrapper';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport Vue from 'vue';\nimport { registerCommentsPlugins } from './comments-activity-tab.ts';\nimport { isUsingActivityIntegration } from './utils/activity.ts';\n__webpack_nonce__ = getCSPNonce();\nconst tagName = 'comments_files-sidebar-tab';\nif (isUsingActivityIntegration()) {\n    // Do not mount own tab but mount into activity\n    window.addEventListener('DOMContentLoaded', function () {\n        registerCommentsPlugins();\n    });\n}\nelse {\n    registerSidebarTab({\n        id: 'comments',\n        displayName: t('comments', 'Comments'),\n        iconSvgInline: MessageReplyText,\n        order: 50,\n        tagName,\n        async onInit() {\n            const { default: FilesSidebarTab } = await import('./views/FilesSidebarTab.vue');\n            Vue.use(PiniaVuePlugin);\n            Vue.mixin({ pinia: createPinia() });\n            const webComponent = wrap(Vue, FilesSidebarTab);\n            // In Vue 2, wrap doesn't support disabling shadow. Disable with a hack\n            Object.defineProperty(webComponent.prototype, 'attachShadow', {\n                value() { return this; },\n            });\n            Object.defineProperty(webComponent.prototype, 'shadowRoot', {\n                get() { return this; },\n            });\n            window.customElements.define(tagName, webComponent);\n        },\n    });\n}\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { loadState } from '@nextcloud/initial-state';\n/**\n * Check if the comments app is using the Activity app integration for the sidebar.\n */\nexport function isUsingActivityIntegration() {\n    return loadState('comments', 'activityEnabled', false) && window.OCA?.Activity?.registerSidebarAction !== undefined;\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { parseXML } from 'webdav';\nimport { processResponsePayload } from 'webdav/dist/node/response.js';\nimport { prepareFileFromProps } from 'webdav/dist/node/tools/dav.js';\nimport client from './DavClient.js';\nexport const DEFAULT_LIMIT = 20;\n/**\n * Retrieve the comments list\n *\n * @param data destructuring object\n * @param data.resourceType the resource type\n * @param data.resourceId the resource ID\n * @param [options] optional options for axios\n * @param [options.offset] the pagination offset\n * @param [options.limit] the pagination limit, defaults to 20\n * @param [options.datetime] optional date to query\n * @return the comments list\n */\nexport async function getComments({ resourceType, resourceId }, options) {\n    const resourcePath = ['', resourceType, resourceId].join('/');\n    const datetime = options.datetime ? `${options.datetime.toISOString()}` : '';\n    const response = await client.customRequest(resourcePath, {\n        method: 'REPORT',\n        data: `\n\t\t\t\n\t\t\t\t${options.limit ?? DEFAULT_LIMIT}\n\t\t\t\t${options.offset || 0}\n\t\t\t\t${datetime}\n\t\t\t`,\n        ...options,\n    });\n    const responseData = await response.text();\n    const result = await parseXML(responseData);\n    const stat = getDirectoryFiles(result, true);\n    // https://github.com/perry-mitchell/webdav-client/issues/339\n    return processResponsePayload(response, stat, true);\n}\n/**\n * https://github.com/perry-mitchell/webdav-client/blob/8d9694613c978ce7404e26a401c39a41f125f87f/source/operations/directoryContents.ts\n *\n * @param result\n * @param isDetailed\n */\nfunction getDirectoryFiles(result, isDetailed = false) {\n    // Extract the response items (directory contents)\n    const { multistatus: { response: responseItems }, } = result;\n    // Map all items to a consistent output structure (results)\n    return responseItems.map((item) => {\n        // Each item should contain a stat object\n        const props = item.propstat.prop;\n        return prepareFileFromProps(props, props.id.toString(), isDetailed);\n    });\n}\n","'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n  if (a instanceof RegExp) a = maybeMatch(a, str);\n  if (b instanceof RegExp) b = maybeMatch(b, str);\n\n  var r = range(a, b, str);\n\n  return r && {\n    start: r[0],\n    end: r[1],\n    pre: str.slice(0, r[0]),\n    body: str.slice(r[0] + a.length, r[1]),\n    post: str.slice(r[1] + b.length)\n  };\n}\n\nfunction maybeMatch(reg, str) {\n  var m = str.match(reg);\n  return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n  var begs, beg, left, right, result;\n  var ai = str.indexOf(a);\n  var bi = str.indexOf(b, ai + 1);\n  var i = ai;\n\n  if (ai >= 0 && bi > 0) {\n    if(a===b) {\n      return [ai, bi];\n    }\n    begs = [];\n    left = str.length;\n\n    while (i >= 0 && !result) {\n      if (i == ai) {\n        begs.push(i);\n        ai = str.indexOf(a, i + 1);\n      } else if (begs.length == 1) {\n        result = [ begs.pop(), bi ];\n      } else {\n        beg = begs.pop();\n        if (beg < left) {\n          left = beg;\n          right = bi;\n        }\n\n        bi = str.indexOf(b, i + 1);\n      }\n\n      i = ai < bi && ai >= 0 ? ai : bi;\n    }\n\n    if (begs.length) {\n      result = [ left, right ];\n    }\n  }\n\n  return result;\n}\n","/*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '1.0.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n","var balanced = require('balanced-match');\n\nmodule.exports = expandTop;\n\nvar escSlash = '\\0SLASH'+Math.random()+'\\0';\nvar escOpen = '\\0OPEN'+Math.random()+'\\0';\nvar escClose = '\\0CLOSE'+Math.random()+'\\0';\nvar escComma = '\\0COMMA'+Math.random()+'\\0';\nvar escPeriod = '\\0PERIOD'+Math.random()+'\\0';\n\nfunction numeric(str) {\n  return parseInt(str, 10) == str\n    ? parseInt(str, 10)\n    : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n  return str.split('\\\\\\\\').join(escSlash)\n            .split('\\\\{').join(escOpen)\n            .split('\\\\}').join(escClose)\n            .split('\\\\,').join(escComma)\n            .split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n  return str.split(escSlash).join('\\\\')\n            .split(escOpen).join('{')\n            .split(escClose).join('}')\n            .split(escComma).join(',')\n            .split(escPeriod).join('.');\n}\n\n\n// Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\nfunction parseCommaParts(str) {\n  if (!str)\n    return [''];\n\n  var parts = [];\n  var m = balanced('{', '}', str);\n\n  if (!m)\n    return str.split(',');\n\n  var pre = m.pre;\n  var body = m.body;\n  var post = m.post;\n  var p = pre.split(',');\n\n  p[p.length-1] += '{' + body + '}';\n  var postParts = parseCommaParts(post);\n  if (post.length) {\n    p[p.length-1] += postParts.shift();\n    p.push.apply(p, postParts);\n  }\n\n  parts.push.apply(parts, p);\n\n  return parts;\n}\n\nfunction expandTop(str) {\n  if (!str)\n    return [];\n\n  // I don't know why Bash 4.3 does this, but it does.\n  // Anything starting with {} will have the first two bytes preserved\n  // but *only* at the top level, so {},a}b will not expand to anything,\n  // but a{},b}c will be expanded to [a}c,abc].\n  // One could argue that this is a bug in Bash, but since the goal of\n  // this module is to match Bash's rules, we escape a leading {}\n  if (str.substr(0, 2) === '{}') {\n    str = '\\\\{\\\\}' + str.substr(2);\n  }\n\n  return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction embrace(str) {\n  return '{' + str + '}';\n}\nfunction isPadded(el) {\n  return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n  return i <= y;\n}\nfunction gte(i, y) {\n  return i >= y;\n}\n\nfunction expand(str, isTop) {\n  var expansions = [];\n\n  var m = balanced('{', '}', str);\n  if (!m) return [str];\n\n  // no need to expand pre, since it is guaranteed to be free of brace-sets\n  var pre = m.pre;\n  var post = m.post.length\n    ? expand(m.post, false)\n    : [''];\n\n  if (/\\$$/.test(m.pre)) {    \n    for (var k = 0; k < post.length; k++) {\n      var expansion = pre+ '{' + m.body + '}' + post[k];\n      expansions.push(expansion);\n    }\n  } else {\n    var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n    var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n    var isSequence = isNumericSequence || isAlphaSequence;\n    var isOptions = m.body.indexOf(',') >= 0;\n    if (!isSequence && !isOptions) {\n      // {a},b}\n      if (m.post.match(/,(?!,).*\\}/)) {\n        str = m.pre + '{' + m.body + escClose + m.post;\n        return expand(str);\n      }\n      return [str];\n    }\n\n    var n;\n    if (isSequence) {\n      n = m.body.split(/\\.\\./);\n    } else {\n      n = parseCommaParts(m.body);\n      if (n.length === 1) {\n        // x{{a,b}}y ==> x{a}y x{b}y\n        n = expand(n[0], false).map(embrace);\n        if (n.length === 1) {\n          return post.map(function(p) {\n            return m.pre + n[0] + p;\n          });\n        }\n      }\n    }\n\n    // at this point, n is the parts, and we know it's not a comma set\n    // with a single entry.\n    var N;\n\n    if (isSequence) {\n      var x = numeric(n[0]);\n      var y = numeric(n[1]);\n      var width = Math.max(n[0].length, n[1].length)\n      var incr = n.length == 3\n        ? Math.abs(numeric(n[2]))\n        : 1;\n      var test = lte;\n      var reverse = y < x;\n      if (reverse) {\n        incr *= -1;\n        test = gte;\n      }\n      var pad = n.some(isPadded);\n\n      N = [];\n\n      for (var i = x; test(i, y); i += incr) {\n        var c;\n        if (isAlphaSequence) {\n          c = String.fromCharCode(i);\n          if (c === '\\\\')\n            c = '';\n        } else {\n          c = String(i);\n          if (pad) {\n            var need = width - c.length;\n            if (need > 0) {\n              var z = new Array(need + 1).join('0');\n              if (i < 0)\n                c = '-' + z + c.slice(1);\n              else\n                c = z + c;\n            }\n          }\n        }\n        N.push(c);\n      }\n    } else {\n      N = [];\n\n      for (var j = 0; j < n.length; j++) {\n        N.push.apply(N, expand(n[j], false));\n      }\n    }\n\n    for (var j = 0; j < N.length; j++) {\n      for (var k = 0; k < post.length; k++) {\n        var expansion = pre + N[j] + post[k];\n        if (!isTop || isSequence || expansion)\n          expansions.push(expansion);\n      }\n    }\n  }\n\n  return expansions;\n}\n\n","module.exports = {\n  \"100\": \"Continue\",\n  \"101\": \"Switching Protocols\",\n  \"102\": \"Processing\",\n  \"200\": \"OK\",\n  \"201\": \"Created\",\n  \"202\": \"Accepted\",\n  \"203\": \"Non-Authoritative Information\",\n  \"204\": \"No Content\",\n  \"205\": \"Reset Content\",\n  \"206\": \"Partial Content\",\n  \"207\": \"Multi-Status\",\n  \"208\": \"Already Reported\",\n  \"226\": \"IM Used\",\n  \"300\": \"Multiple Choices\",\n  \"301\": \"Moved Permanently\",\n  \"302\": \"Found\",\n  \"303\": \"See Other\",\n  \"304\": \"Not Modified\",\n  \"305\": \"Use Proxy\",\n  \"307\": \"Temporary Redirect\",\n  \"308\": \"Permanent Redirect\",\n  \"400\": \"Bad Request\",\n  \"401\": \"Unauthorized\",\n  \"402\": \"Payment Required\",\n  \"403\": \"Forbidden\",\n  \"404\": \"Not Found\",\n  \"405\": \"Method Not Allowed\",\n  \"406\": \"Not Acceptable\",\n  \"407\": \"Proxy Authentication Required\",\n  \"408\": \"Request Timeout\",\n  \"409\": \"Conflict\",\n  \"410\": \"Gone\",\n  \"411\": \"Length Required\",\n  \"412\": \"Precondition Failed\",\n  \"413\": \"Payload Too Large\",\n  \"414\": \"URI Too Long\",\n  \"415\": \"Unsupported Media Type\",\n  \"416\": \"Range Not Satisfiable\",\n  \"417\": \"Expectation Failed\",\n  \"418\": \"I'm a teapot\",\n  \"421\": \"Misdirected Request\",\n  \"422\": \"Unprocessable Entity\",\n  \"423\": \"Locked\",\n  \"424\": \"Failed Dependency\",\n  \"425\": \"Unordered Collection\",\n  \"426\": \"Upgrade Required\",\n  \"428\": \"Precondition Required\",\n  \"429\": \"Too Many Requests\",\n  \"431\": \"Request Header Fields Too Large\",\n  \"451\": \"Unavailable For Legal Reasons\",\n  \"500\": \"Internal Server Error\",\n  \"501\": \"Not Implemented\",\n  \"502\": \"Bad Gateway\",\n  \"503\": \"Service Unavailable\",\n  \"504\": \"Gateway Timeout\",\n  \"505\": \"HTTP Version Not Supported\",\n  \"506\": \"Variant Also Negotiates\",\n  \"507\": \"Insufficient Storage\",\n  \"508\": \"Loop Detected\",\n  \"509\": \"Bandwidth Limit Exceeded\",\n  \"510\": \"Not Extended\",\n  \"511\": \"Network Authentication Required\"\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\n * Calculate the byte lengths for utf8 encoded strings.\n */\nfunction byteLength(str) {\n    if (!str) {\n        return 0;\n    }\n    str = str.toString();\n    var len = str.length;\n    for (var i = str.length; i--;) {\n        var code = str.charCodeAt(i);\n        if (0xdc00 <= code && code <= 0xdfff) {\n            i--;\n        }\n        if (0x7f < code && code <= 0x7ff) {\n            len++;\n        }\n        else if (0x7ff < code && code <= 0xffff) {\n            len += 2;\n        }\n    }\n    return len;\n}\nexports.byteLength = byteLength;\n//# sourceMappingURL=index.js.map","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\nvar bind = require('function-bind');\nvar $apply = require('./functionApply');\nvar actualApply = require('./actualApply');\n\n/** @type {import('./applyBind')} */\nmodule.exports = function applyBind() {\n\treturn actualApply(bind, $apply, arguments);\n};\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar setFunctionLength = require('set-function-length');\n\nvar $defineProperty = require('es-define-property');\n\nvar callBindBasic = require('call-bind-apply-helpers');\nvar applyBind = require('call-bind-apply-helpers/applyBind');\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = callBindBasic(arguments);\n\tvar adjustedLength = originalFunction.length - (arguments.length - 1);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + (adjustedLength > 0 ? adjustedLength : 0),\n\t\ttrue\n\t);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBindBasic = require('call-bind-apply-helpers');\n\n/** @type {(thisArg: string, searchString: string, position?: number) => number} */\nvar $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);\n\n/** @type {import('.')} */\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\t/* eslint no-extra-parens: 0 */\n\n\tvar intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing));\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBindBasic(/** @type {const} */ ([intrinsic]));\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/** @type {(arr: A, iterator: (this: This | void, value: A[number], index: number, arr: A) => void, receiver: This | undefined) => void} */\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n    for (var i = 0, len = array.length; i < len; i++) {\n        if (hasOwnProperty.call(array, i)) {\n            if (receiver == null) {\n                iterator(array[i], i, array);\n            } else {\n                iterator.call(receiver, array[i], i, array);\n            }\n        }\n    }\n};\n\n/** @type {(string: S, iterator: (this: This | void, value: S[number], index: number, string: S) => void, receiver: This | undefined) => void} */\nvar forEachString = function forEachString(string, iterator, receiver) {\n    for (var i = 0, len = string.length; i < len; i++) {\n        // no such thing as a sparse string.\n        if (receiver == null) {\n            iterator(string.charAt(i), i, string);\n        } else {\n            iterator.call(receiver, string.charAt(i), i, string);\n        }\n    }\n};\n\n/** @type {(obj: O, iterator: (this: This | void, value: O[keyof O], index: keyof O, obj: O) => void, receiver: This | undefined) => void} */\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n    for (var k in object) {\n        if (hasOwnProperty.call(object, k)) {\n            if (receiver == null) {\n                iterator(object[k], k, object);\n            } else {\n                iterator.call(receiver, object[k], k, object);\n            }\n        }\n    }\n};\n\n/** @type {(x: unknown) => x is readonly unknown[]} */\nfunction isArray(x) {\n    return toStr.call(x) === '[object Array]';\n}\n\n/** @type {import('.')._internal} */\nmodule.exports = function forEach(list, iterator, thisArg) {\n    if (!isCallable(iterator)) {\n        throw new TypeError('iterator must be a function');\n    }\n\n    var receiver;\n    if (arguments.length >= 3) {\n        receiver = thisArg;\n    }\n\n    if (isArray(list)) {\n        forEachArray(list, iterator, receiver);\n    } else if (typeof list === 'string') {\n        forEachString(list, iterator, receiver);\n    } else {\n        forEachObject(list, iterator, receiver);\n    }\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n    var arr = [];\n\n    for (var i = 0; i < a.length; i += 1) {\n        arr[i] = a[i];\n    }\n    for (var j = 0; j < b.length; j += 1) {\n        arr[j + a.length] = b[j];\n    }\n\n    return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n    var arr = [];\n    for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n        arr[j] = arrLike[i];\n    }\n    return arr;\n};\n\nvar joiny = function (arr, joiner) {\n    var str = '';\n    for (var i = 0; i < arr.length; i += 1) {\n        str += arr[i];\n        if (i + 1 < arr.length) {\n            str += joiner;\n        }\n    }\n    return str;\n};\n\nmodule.exports = function bind(that) {\n    var target = this;\n    if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n        throw new TypeError(ERROR_MESSAGE + target);\n    }\n    var args = slicy(arguments, 1);\n\n    var bound;\n    var binder = function () {\n        if (this instanceof bound) {\n            var result = target.apply(\n                this,\n                concatty(args, arguments)\n            );\n            if (Object(result) === result) {\n                return result;\n            }\n            return this;\n        }\n        return target.apply(\n            that,\n            concatty(args, arguments)\n        );\n\n    };\n\n    var boundLength = max(0, target.length - args.length);\n    var boundArgs = [];\n    for (var i = 0; i < boundLength; i++) {\n        boundArgs[i] = '$' + i;\n    }\n\n    bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n    if (target.prototype) {\n        var Empty = function Empty() {};\n        Empty.prototype = target.prototype;\n        bound.prototype = new Empty();\n        Empty.prototype = null;\n    }\n\n    return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\n// eslint-disable-next-line no-extra-parens, no-empty-function\nconst cached = /** @type {GeneratorFunctionConstructor} */ (function* () {}.constructor);\n\n/** @type {import('.')} */\nmodule.exports = () => cached;\n\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","var http = require('http')\nvar url = require('url')\n\nvar https = module.exports\n\nfor (var key in http) {\n  if (http.hasOwnProperty(key)) https[key] = http[key]\n}\n\nhttps.request = function (params, cb) {\n  params = validateParams(params)\n  return http.request.call(this, params, cb)\n}\n\nhttps.get = function (params, cb) {\n  params = validateParams(params)\n  return http.get.call(this, params, cb)\n}\n\nfunction validateParams (params) {\n  if (typeof params === 'string') {\n    params = url.parse(params)\n  }\n  if (!params.protocol) {\n    params.protocol = 'https:'\n  }\n  if (params.protocol !== 'https:') {\n    throw new Error('Protocol \"' + params.protocol + '\" not supported. Expected \"https:\"')\n  }\n  return params\n}\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bound');\n\nvar $toString = callBound('Object.prototype.toString');\n\n/** @type {import('.')} */\nvar isStandardArguments = function isArguments(value) {\n\tif (\n\t\thasToStringTag\n\t\t&& value\n\t\t&& typeof value === 'object'\n\t\t&& Symbol.toStringTag in value\n\t) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\n/** @type {import('.')} */\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null\n\t\t&& typeof value === 'object'\n\t\t&& 'length' in value\n\t\t&& typeof value.length === 'number'\n\t\t&& value.length >= 0\n\t\t&& $toString(value) !== '[object Array]'\n\t\t&& 'callee' in value\n\t\t&& $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\n// @ts-expect-error TODO make this not error\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\n/** @type {import('.')} */\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar callBound = require('call-bound');\nvar safeRegexTest = require('safe-regex-test');\nvar isFnRegex = safeRegexTest(/^\\s*(?:function)?\\*/);\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = require('get-proto');\n\nvar toStr = callBound('Object.prototype.toString');\nvar fnToStr = callBound('Function.prototype.toString');\n\nvar getGeneratorFunction = require('generator-function');\n\n/** @type {import('.')} */\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex(fnToStr(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tvar GeneratorFunction = getGeneratorFunction();\n\treturn GeneratorFunction && getProto(fn) === GeneratorFunction.prototype;\n};\n","'use strict';\n\nvar callBound = require('call-bound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar hasOwn = require('hasown');\nvar gOPD = require('gopd');\n\n/** @type {import('.')} */\nvar fn;\n\nif (hasToStringTag) {\n\t/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */\n\tvar $exec = callBound('RegExp.prototype.exec');\n\t/** @type {object} */\n\tvar isRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\t/** @type {{ toString(): never, valueOf(): never, [Symbol.toPrimitive]?(): never }} */\n\tvar badStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n\n\t/** @type {import('.')} */\n\t// @ts-expect-error TS can't figure out that the $exec call always throws\n\t// eslint-disable-next-line consistent-return\n\tfn = function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {NonNullable} */ (gOPD)(/** @type {{ lastIndex?: unknown }} */ (value), 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && hasOwn(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t$exec(value, /** @type {string} */ (/** @type {unknown} */ (badStringifier)));\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t};\n} else {\n\t/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */\n\tvar $toString = callBound('Object.prototype.toString');\n\t/** @const @type {'[object RegExp]'} */\n\tvar regexClass = '[object RegExp]';\n\n\t/** @type {import('.')} */\n\tfn = function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n}\n\nmodule.exports = fn;\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","/**\n* @license nested-property https://github.com/cosmosio/nested-property\n*\n* The MIT License (MIT)\n*\n* Copyright (c) 2014-2020 Olivier Scherrer \n*/\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar ARRAY_WILDCARD = \"+\";\nvar PATH_DELIMITER = \".\";\n\nvar ObjectPrototypeMutationError = /*#__PURE__*/function (_Error) {\n  _inherits(ObjectPrototypeMutationError, _Error);\n\n  function ObjectPrototypeMutationError(params) {\n    var _this;\n\n    _classCallCheck(this, ObjectPrototypeMutationError);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(ObjectPrototypeMutationError).call(this, params));\n    _this.name = \"ObjectPrototypeMutationError\";\n    return _this;\n  }\n\n  return ObjectPrototypeMutationError;\n}(_wrapNativeSuper(Error));\n\nmodule.exports = {\n  set: setNestedProperty,\n  get: getNestedProperty,\n  has: hasNestedProperty,\n  hasOwn: function hasOwn(object, property, options) {\n    return this.has(object, property, options || {\n      own: true\n    });\n  },\n  isIn: isInNestedProperty,\n  ObjectPrototypeMutationError: ObjectPrototypeMutationError\n};\n/**\n * Get the property of an object nested in one or more objects or array\n * Given an object such as a.b.c.d = 5, getNestedProperty(a, \"b.c.d\") will return 5.\n * It also works through arrays. Given a nested array such as a[0].b = 5, getNestedProperty(a, \"0.b\") will return 5.\n * For accessing nested properties through all items in an array, you may use the array wildcard \"+\".\n * For instance, getNestedProperty([{a:1}, {a:2}, {a:3}], \"+.a\") will return [1, 2, 3]\n * @param {Object} object the object to get the property from\n * @param {String} property the path to the property as a string\n * @returns the object or the the property value if found\n */\n\nfunction getNestedProperty(object, property) {\n  if (_typeof(object) != \"object\" || object === null) {\n    return object;\n  }\n\n  if (typeof property == \"undefined\") {\n    return object;\n  }\n\n  if (typeof property == \"number\") {\n    return object[property];\n  }\n\n  try {\n    return traverse(object, property, function _getNestedProperty(currentObject, currentProperty) {\n      return currentObject[currentProperty];\n    });\n  } catch (err) {\n    return object;\n  }\n}\n/**\n * Tell if a nested object has a given property (or array a given index)\n * given an object such as a.b.c.d = 5, hasNestedProperty(a, \"b.c.d\") will return true.\n * It also returns true if the property is in the prototype chain.\n * @param {Object} object the object to get the property from\n * @param {String} property the path to the property as a string\n * @param {Object} options:\n *  - own: set to reject properties from the prototype\n * @returns true if has (property in object), false otherwise\n */\n\n\nfunction hasNestedProperty(object, property) {\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n  if (_typeof(object) != \"object\" || object === null) {\n    return false;\n  }\n\n  if (typeof property == \"undefined\") {\n    return false;\n  }\n\n  if (typeof property == \"number\") {\n    return property in object;\n  }\n\n  try {\n    var has = false;\n    traverse(object, property, function _hasNestedProperty(currentObject, currentProperty, segments, index) {\n      if (isLastSegment(segments, index)) {\n        if (options.own) {\n          has = currentObject.hasOwnProperty(currentProperty);\n        } else {\n          has = currentProperty in currentObject;\n        }\n      } else {\n        return currentObject && currentObject[currentProperty];\n      }\n    });\n    return has;\n  } catch (err) {\n    return false;\n  }\n}\n/**\n * Set the property of an object nested in one or more objects\n * If the property doesn't exist, it gets created.\n * @param {Object} object\n * @param {String} property\n * @param value the value to set\n * @returns object if no assignment was made or the value if the assignment was made\n */\n\n\nfunction setNestedProperty(object, property, value) {\n  if (_typeof(object) != \"object\" || object === null) {\n    return object;\n  }\n\n  if (typeof property == \"undefined\") {\n    return object;\n  }\n\n  if (typeof property == \"number\") {\n    object[property] = value;\n    return object[property];\n  }\n\n  try {\n    return traverse(object, property, function _setNestedProperty(currentObject, currentProperty, segments, index) {\n      if (currentObject === Reflect.getPrototypeOf({})) {\n        throw new ObjectPrototypeMutationError(\"Attempting to mutate Object.prototype\");\n      }\n\n      if (!currentObject[currentProperty]) {\n        var nextPropIsNumber = Number.isInteger(Number(segments[index + 1]));\n        var nextPropIsArrayWildcard = segments[index + 1] === ARRAY_WILDCARD;\n\n        if (nextPropIsNumber || nextPropIsArrayWildcard) {\n          currentObject[currentProperty] = [];\n        } else {\n          currentObject[currentProperty] = {};\n        }\n      }\n\n      if (isLastSegment(segments, index)) {\n        currentObject[currentProperty] = value;\n      }\n\n      return currentObject[currentProperty];\n    });\n  } catch (err) {\n    if (err instanceof ObjectPrototypeMutationError) {\n      // rethrow\n      throw err;\n    } else {\n      return object;\n    }\n  }\n}\n/**\n * Tell if an object is on the path to a nested property\n * If the object is on the path, and the path exists, it returns true, and false otherwise.\n * @param {Object} object to get the nested property from\n * @param {String} property name of the nested property\n * @param {Object} objectInPath the object to check\n * @param {Object} options:\n *  - validPath: return false if the path is invalid, even if the object is in the path\n * @returns {boolean} true if the object is on the path\n */\n\n\nfunction isInNestedProperty(object, property, objectInPath) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n  if (_typeof(object) != \"object\" || object === null) {\n    return false;\n  }\n\n  if (typeof property == \"undefined\") {\n    return false;\n  }\n\n  try {\n    var isIn = false,\n        pathExists = false;\n    traverse(object, property, function _isInNestedProperty(currentObject, currentProperty, segments, index) {\n      isIn = isIn || currentObject === objectInPath || !!currentObject && currentObject[currentProperty] === objectInPath;\n      pathExists = isLastSegment(segments, index) && _typeof(currentObject) === \"object\" && currentProperty in currentObject;\n      return currentObject && currentObject[currentProperty];\n    });\n\n    if (options.validPath) {\n      return isIn && pathExists;\n    } else {\n      return isIn;\n    }\n  } catch (err) {\n    return false;\n  }\n}\n\nfunction traverse(object, path) {\n  var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n  var segments = path.split(PATH_DELIMITER);\n  var length = segments.length;\n\n  var _loop = function _loop(idx) {\n    var currentSegment = segments[idx];\n\n    if (!object) {\n      return {\n        v: void 0\n      };\n    }\n\n    if (currentSegment === ARRAY_WILDCARD) {\n      if (Array.isArray(object)) {\n        return {\n          v: object.map(function (value, index) {\n            var remainingSegments = segments.slice(idx + 1);\n\n            if (remainingSegments.length > 0) {\n              return traverse(value, remainingSegments.join(PATH_DELIMITER), callback);\n            } else {\n              return callback(object, index, segments, idx);\n            }\n          })\n        };\n      } else {\n        var pathToHere = segments.slice(0, idx).join(PATH_DELIMITER);\n        throw new Error(\"Object at wildcard (\".concat(pathToHere, \") is not an array\"));\n      }\n    } else {\n      object = callback(object, currentSegment, segments, idx);\n    }\n  };\n\n  for (var idx = 0; idx < length; idx++) {\n    var _ret = _loop(idx);\n\n    if (_typeof(_ret) === \"object\") return _ret.v;\n  }\n\n  return object;\n}\n\nfunction isLastSegment(segments, index) {\n  return segments.length === index + 1;\n}\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n    ? Symbol.toStringTag\n    : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n    [].__proto__ === Array.prototype // eslint-disable-line no-proto\n        ? function (O) {\n            return O.__proto__; // eslint-disable-line no-proto\n        }\n        : null\n);\n\nfunction addNumericSeparator(num, str) {\n    if (\n        num === Infinity\n        || num === -Infinity\n        || num !== num\n        || (num && num > -1000 && num < 1000)\n        || $test.call(/e/, str)\n    ) {\n        return str;\n    }\n    var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n    if (typeof num === 'number') {\n        var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n        if (int !== num) {\n            var intStr = String(int);\n            var dec = $slice.call(str, intStr.length + 1);\n            return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n        }\n    }\n    return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nvar quotes = {\n    __proto__: null,\n    'double': '\"',\n    single: \"'\"\n};\nvar quoteREs = {\n    __proto__: null,\n    'double': /([\"\\\\])/g,\n    single: /(['\\\\])/g\n};\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n    var opts = options || {};\n\n    if (has(opts, 'quoteStyle') && !has(quotes, opts.quoteStyle)) {\n        throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n    }\n    if (\n        has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n            ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n            : opts.maxStringLength !== null\n        )\n    ) {\n        throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n    }\n    var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n    if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n        throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n    }\n\n    if (\n        has(opts, 'indent')\n        && opts.indent !== null\n        && opts.indent !== '\\t'\n        && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n    ) {\n        throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n    }\n    if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n        throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n    }\n    var numericSeparator = opts.numericSeparator;\n\n    if (typeof obj === 'undefined') {\n        return 'undefined';\n    }\n    if (obj === null) {\n        return 'null';\n    }\n    if (typeof obj === 'boolean') {\n        return obj ? 'true' : 'false';\n    }\n\n    if (typeof obj === 'string') {\n        return inspectString(obj, opts);\n    }\n    if (typeof obj === 'number') {\n        if (obj === 0) {\n            return Infinity / obj > 0 ? '0' : '-0';\n        }\n        var str = String(obj);\n        return numericSeparator ? addNumericSeparator(obj, str) : str;\n    }\n    if (typeof obj === 'bigint') {\n        var bigIntStr = String(obj) + 'n';\n        return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n    }\n\n    var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n    if (typeof depth === 'undefined') { depth = 0; }\n    if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n        return isArray(obj) ? '[Array]' : '[Object]';\n    }\n\n    var indent = getIndent(opts, depth);\n\n    if (typeof seen === 'undefined') {\n        seen = [];\n    } else if (indexOf(seen, obj) >= 0) {\n        return '[Circular]';\n    }\n\n    function inspect(value, from, noIndent) {\n        if (from) {\n            seen = $arrSlice.call(seen);\n            seen.push(from);\n        }\n        if (noIndent) {\n            var newOpts = {\n                depth: opts.depth\n            };\n            if (has(opts, 'quoteStyle')) {\n                newOpts.quoteStyle = opts.quoteStyle;\n            }\n            return inspect_(value, newOpts, depth + 1, seen);\n        }\n        return inspect_(value, opts, depth + 1, seen);\n    }\n\n    if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n        var name = nameOf(obj);\n        var keys = arrObjKeys(obj, inspect);\n        return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n    }\n    if (isSymbol(obj)) {\n        var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n        return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n    }\n    if (isElement(obj)) {\n        var s = '<' + $toLowerCase.call(String(obj.nodeName));\n        var attrs = obj.attributes || [];\n        for (var i = 0; i < attrs.length; i++) {\n            s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n        }\n        s += '>';\n        if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n        s += '';\n        return s;\n    }\n    if (isArray(obj)) {\n        if (obj.length === 0) { return '[]'; }\n        var xs = arrObjKeys(obj, inspect);\n        if (indent && !singleLineValues(xs)) {\n            return '[' + indentedJoin(xs, indent) + ']';\n        }\n        return '[ ' + $join.call(xs, ', ') + ' ]';\n    }\n    if (isError(obj)) {\n        var parts = arrObjKeys(obj, inspect);\n        if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n            return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n        }\n        if (parts.length === 0) { return '[' + String(obj) + ']'; }\n        return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n    }\n    if (typeof obj === 'object' && customInspect) {\n        if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n            return utilInspect(obj, { depth: maxDepth - depth });\n        } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n            return obj.inspect();\n        }\n    }\n    if (isMap(obj)) {\n        var mapParts = [];\n        if (mapForEach) {\n            mapForEach.call(obj, function (value, key) {\n                mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n            });\n        }\n        return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n    }\n    if (isSet(obj)) {\n        var setParts = [];\n        if (setForEach) {\n            setForEach.call(obj, function (value) {\n                setParts.push(inspect(value, obj));\n            });\n        }\n        return collectionOf('Set', setSize.call(obj), setParts, indent);\n    }\n    if (isWeakMap(obj)) {\n        return weakCollectionOf('WeakMap');\n    }\n    if (isWeakSet(obj)) {\n        return weakCollectionOf('WeakSet');\n    }\n    if (isWeakRef(obj)) {\n        return weakCollectionOf('WeakRef');\n    }\n    if (isNumber(obj)) {\n        return markBoxed(inspect(Number(obj)));\n    }\n    if (isBigInt(obj)) {\n        return markBoxed(inspect(bigIntValueOf.call(obj)));\n    }\n    if (isBoolean(obj)) {\n        return markBoxed(booleanValueOf.call(obj));\n    }\n    if (isString(obj)) {\n        return markBoxed(inspect(String(obj)));\n    }\n    // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n    /* eslint-env browser */\n    if (typeof window !== 'undefined' && obj === window) {\n        return '{ [object Window] }';\n    }\n    if (\n        (typeof globalThis !== 'undefined' && obj === globalThis)\n        || (typeof global !== 'undefined' && obj === global)\n    ) {\n        return '{ [object globalThis] }';\n    }\n    if (!isDate(obj) && !isRegExp(obj)) {\n        var ys = arrObjKeys(obj, inspect);\n        var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n        var protoTag = obj instanceof Object ? '' : 'null prototype';\n        var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n        var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n        var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n        if (ys.length === 0) { return tag + '{}'; }\n        if (indent) {\n            return tag + '{' + indentedJoin(ys, indent) + '}';\n        }\n        return tag + '{ ' + $join.call(ys, ', ') + ' }';\n    }\n    return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n    var style = opts.quoteStyle || defaultStyle;\n    var quoteChar = quotes[style];\n    return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n    return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction canTrustToString(obj) {\n    return !toStringTag || !(typeof obj === 'object' && (toStringTag in obj || typeof obj[toStringTag] !== 'undefined'));\n}\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && canTrustToString(obj); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && canTrustToString(obj); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && canTrustToString(obj); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && canTrustToString(obj); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && canTrustToString(obj); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && canTrustToString(obj); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && canTrustToString(obj); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n    if (hasShammedSymbols) {\n        return obj && typeof obj === 'object' && obj instanceof Symbol;\n    }\n    if (typeof obj === 'symbol') {\n        return true;\n    }\n    if (!obj || typeof obj !== 'object' || !symToString) {\n        return false;\n    }\n    try {\n        symToString.call(obj);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nfunction isBigInt(obj) {\n    if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n        return false;\n    }\n    try {\n        bigIntValueOf.call(obj);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n    return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n    return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n    if (f.name) { return f.name; }\n    var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n    if (m) { return m[1]; }\n    return null;\n}\n\nfunction indexOf(xs, x) {\n    if (xs.indexOf) { return xs.indexOf(x); }\n    for (var i = 0, l = xs.length; i < l; i++) {\n        if (xs[i] === x) { return i; }\n    }\n    return -1;\n}\n\nfunction isMap(x) {\n    if (!mapSize || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        mapSize.call(x);\n        try {\n            setSize.call(x);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof Map; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakMap(x) {\n    if (!weakMapHas || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakMapHas.call(x, weakMapHas);\n        try {\n            weakSetHas.call(x, weakSetHas);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakRef(x) {\n    if (!weakRefDeref || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakRefDeref.call(x);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nfunction isSet(x) {\n    if (!setSize || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        setSize.call(x);\n        try {\n            mapSize.call(x);\n        } catch (m) {\n            return true;\n        }\n        return x instanceof Set; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakSet(x) {\n    if (!weakSetHas || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakSetHas.call(x, weakSetHas);\n        try {\n            weakMapHas.call(x, weakMapHas);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isElement(x) {\n    if (!x || typeof x !== 'object') { return false; }\n    if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n        return true;\n    }\n    return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n    if (str.length > opts.maxStringLength) {\n        var remaining = str.length - opts.maxStringLength;\n        var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n        return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n    }\n    var quoteRE = quoteREs[opts.quoteStyle || 'single'];\n    quoteRE.lastIndex = 0;\n    // eslint-disable-next-line no-control-regex\n    var s = $replace.call($replace.call(str, quoteRE, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n    return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n    var n = c.charCodeAt(0);\n    var x = {\n        8: 'b',\n        9: 't',\n        10: 'n',\n        12: 'f',\n        13: 'r'\n    }[n];\n    if (x) { return '\\\\' + x; }\n    return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n    return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n    return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n    var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n    return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n    for (var i = 0; i < xs.length; i++) {\n        if (indexOf(xs[i], '\\n') >= 0) {\n            return false;\n        }\n    }\n    return true;\n}\n\nfunction getIndent(opts, depth) {\n    var baseIndent;\n    if (opts.indent === '\\t') {\n        baseIndent = '\\t';\n    } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n        baseIndent = $join.call(Array(opts.indent + 1), ' ');\n    } else {\n        return null;\n    }\n    return {\n        base: baseIndent,\n        prev: $join.call(Array(depth + 1), baseIndent)\n    };\n}\n\nfunction indentedJoin(xs, indent) {\n    if (xs.length === 0) { return ''; }\n    var lineJoiner = '\\n' + indent.prev + indent.base;\n    return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n    var isArr = isArray(obj);\n    var xs = [];\n    if (isArr) {\n        xs.length = obj.length;\n        for (var i = 0; i < obj.length; i++) {\n            xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n        }\n    }\n    var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n    var symMap;\n    if (hasShammedSymbols) {\n        symMap = {};\n        for (var k = 0; k < syms.length; k++) {\n            symMap['$' + syms[k]] = syms[k];\n        }\n    }\n\n    for (var key in obj) { // eslint-disable-line no-restricted-syntax\n        if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n        if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n        if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n            // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n            continue; // eslint-disable-line no-restricted-syntax, no-continue\n        } else if ($test.call(/[^\\w$]/, key)) {\n            xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n        } else {\n            xs.push(key + ': ' + inspect(obj[key], obj));\n        }\n    }\n    if (typeof gOPS === 'function') {\n        for (var j = 0; j < syms.length; j++) {\n            if (isEnumerable.call(obj, syms[j])) {\n                xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n            }\n        }\n    }\n    return xs;\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\nvar util = require('util');\nvar isString = function (x) {\n  return typeof x === 'string';\n};\n\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n  var res = [];\n  for (var i = 0; i < parts.length; i++) {\n    var p = parts[i];\n\n    // ignore empty parts\n    if (!p || p === '.')\n      continue;\n\n    if (p === '..') {\n      if (res.length && res[res.length - 1] !== '..') {\n        res.pop();\n      } else if (allowAboveRoot) {\n        res.push('..');\n      }\n    } else {\n      res.push(p);\n    }\n  }\n\n  return res;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nvar splitPathRe =\n    /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\nvar posix = {};\n\n\nfunction posixSplitPath(filename) {\n  return splitPathRe.exec(filename).slice(1);\n}\n\n\n// path.resolve([from ...], to)\n// posix version\nposix.resolve = function() {\n  var resolvedPath = '',\n      resolvedAbsolute = false;\n\n  for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n    var path = (i >= 0) ? arguments[i] : process.cwd();\n\n    // Skip empty and invalid entries\n    if (!isString(path)) {\n      throw new TypeError('Arguments to path.resolve must be strings');\n    } else if (!path) {\n      continue;\n    }\n\n    resolvedPath = path + '/' + resolvedPath;\n    resolvedAbsolute = path.charAt(0) === '/';\n  }\n\n  // At this point the path should be resolved to a full absolute path, but\n  // handle relative paths to be safe (might happen when process.cwd() fails)\n\n  // Normalize the path\n  resolvedPath = normalizeArray(resolvedPath.split('/'),\n                                !resolvedAbsolute).join('/');\n\n  return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nposix.normalize = function(path) {\n  var isAbsolute = posix.isAbsolute(path),\n      trailingSlash = path.substr(-1) === '/';\n\n  // Normalize the path\n  path = normalizeArray(path.split('/'), !isAbsolute).join('/');\n\n  if (!path && !isAbsolute) {\n    path = '.';\n  }\n  if (path && trailingSlash) {\n    path += '/';\n  }\n\n  return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nposix.isAbsolute = function(path) {\n  return path.charAt(0) === '/';\n};\n\n// posix version\nposix.join = function() {\n  var path = '';\n  for (var i = 0; i < arguments.length; i++) {\n    var segment = arguments[i];\n    if (!isString(segment)) {\n      throw new TypeError('Arguments to path.join must be strings');\n    }\n    if (segment) {\n      if (!path) {\n        path += segment;\n      } else {\n        path += '/' + segment;\n      }\n    }\n  }\n  return posix.normalize(path);\n};\n\n\n// path.relative(from, to)\n// posix version\nposix.relative = function(from, to) {\n  from = posix.resolve(from).substr(1);\n  to = posix.resolve(to).substr(1);\n\n  function trim(arr) {\n    var start = 0;\n    for (; start < arr.length; start++) {\n      if (arr[start] !== '') break;\n    }\n\n    var end = arr.length - 1;\n    for (; end >= 0; end--) {\n      if (arr[end] !== '') break;\n    }\n\n    if (start > end) return [];\n    return arr.slice(start, end + 1);\n  }\n\n  var fromParts = trim(from.split('/'));\n  var toParts = trim(to.split('/'));\n\n  var length = Math.min(fromParts.length, toParts.length);\n  var samePartsLength = length;\n  for (var i = 0; i < length; i++) {\n    if (fromParts[i] !== toParts[i]) {\n      samePartsLength = i;\n      break;\n    }\n  }\n\n  var outputParts = [];\n  for (var i = samePartsLength; i < fromParts.length; i++) {\n    outputParts.push('..');\n  }\n\n  outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n  return outputParts.join('/');\n};\n\n\nposix._makeLong = function(path) {\n  return path;\n};\n\n\nposix.dirname = function(path) {\n  var result = posixSplitPath(path),\n      root = result[0],\n      dir = result[1];\n\n  if (!root && !dir) {\n    // No dirname whatsoever\n    return '.';\n  }\n\n  if (dir) {\n    // It has a dirname, strip trailing slash\n    dir = dir.substr(0, dir.length - 1);\n  }\n\n  return root + dir;\n};\n\n\nposix.basename = function(path, ext) {\n  var f = posixSplitPath(path)[2];\n  // TODO: make this comparison case-insensitive on windows?\n  if (ext && f.substr(-1 * ext.length) === ext) {\n    f = f.substr(0, f.length - ext.length);\n  }\n  return f;\n};\n\n\nposix.extname = function(path) {\n  return posixSplitPath(path)[3];\n};\n\n\nposix.format = function(pathObject) {\n  if (!util.isObject(pathObject)) {\n    throw new TypeError(\n        \"Parameter 'pathObject' must be an object, not \" + typeof pathObject\n    );\n  }\n\n  var root = pathObject.root || '';\n\n  if (!isString(root)) {\n    throw new TypeError(\n        \"'pathObject.root' must be a string or undefined, not \" +\n        typeof pathObject.root\n    );\n  }\n\n  var dir = pathObject.dir ? pathObject.dir + posix.sep : '';\n  var base = pathObject.base || '';\n  return dir + base;\n};\n\n\nposix.parse = function(pathString) {\n  if (!isString(pathString)) {\n    throw new TypeError(\n        \"Parameter 'pathString' must be a string, not \" + typeof pathString\n    );\n  }\n  var allParts = posixSplitPath(pathString);\n  if (!allParts || allParts.length !== 4) {\n    throw new TypeError(\"Invalid path '\" + pathString + \"'\");\n  }\n  allParts[1] = allParts[1] || '';\n  allParts[2] = allParts[2] || '';\n  allParts[3] = allParts[3] || '';\n\n  return {\n    root: allParts[0],\n    dir: allParts[0] + allParts[1].slice(0, allParts[1].length - 1),\n    base: allParts[2],\n    ext: allParts[3],\n    name: allParts[2].slice(0, allParts[2].length - allParts[3].length)\n  };\n};\n\n\nposix.sep = '/';\nposix.delimiter = ':';\n\n  module.exports = posix;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float16Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t    counter = 0,\n\t\t    length = string.length,\n\t\t    value,\n\t\t    extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t//  0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t    inputLength = input.length,\n\t\t    out,\n\t\t    i = 0,\n\t\t    n = initialN,\n\t\t    bias = initialBias,\n\t\t    basic,\n\t\t    j,\n\t\t    index,\n\t\t    oldi,\n\t\t    w,\n\t\t    k,\n\t\t    digit,\n\t\t    t,\n\t\t    /** Cached calculation results */\n\t\t    baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t    delta,\n\t\t    handledCPCount,\n\t\t    basicLength,\n\t\t    bias,\n\t\t    j,\n\t\t    m,\n\t\t    q,\n\t\t    k,\n\t\t    t,\n\t\t    currentValue,\n\t\t    output = [],\n\t\t    /** `inputLength` will hold the number of code points in `input`. */\n\t\t    inputLength,\n\t\t    /** Cached calculation results */\n\t\t    handledCPCountPlusOne,\n\t\t    baseMinusT,\n\t\t    qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's  state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n    RFC1738: 'RFC1738',\n    RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n    'default': Format.RFC3986,\n    formatters: {\n        RFC1738: function (value) {\n            return replace.call(value, percentTwenties, '+');\n        },\n        RFC3986: function (value) {\n            return String(value);\n        }\n    },\n    RFC1738: Format.RFC1738,\n    RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n    formats: formats,\n    parse: parse,\n    stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n    allowDots: false,\n    allowEmptyArrays: false,\n    allowPrototypes: false,\n    allowSparse: false,\n    arrayLimit: 20,\n    charset: 'utf-8',\n    charsetSentinel: false,\n    comma: false,\n    decodeDotInKeys: false,\n    decoder: utils.decode,\n    delimiter: '&',\n    depth: 5,\n    duplicates: 'combine',\n    ignoreQueryPrefix: false,\n    interpretNumericEntities: false,\n    parameterLimit: 1000,\n    parseArrays: true,\n    plainObjects: false,\n    strictDepth: false,\n    strictNullHandling: false,\n    throwOnLimitExceeded: false\n};\n\nvar interpretNumericEntities = function (str) {\n    return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n        return String.fromCharCode(parseInt(numberStr, 10));\n    });\n};\n\nvar parseArrayValue = function (val, options, currentArrayLength) {\n    if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n        return val.split(',');\n    }\n\n    if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) {\n        throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n    }\n\n    return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n    var obj = { __proto__: null };\n\n    var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n    cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n\n    var limit = options.parameterLimit === Infinity ? void undefined : options.parameterLimit;\n    var parts = cleanStr.split(\n        options.delimiter,\n        options.throwOnLimitExceeded ? limit + 1 : limit\n    );\n\n    if (options.throwOnLimitExceeded && parts.length > limit) {\n        throw new RangeError('Parameter limit exceeded. Only ' + limit + ' parameter' + (limit === 1 ? '' : 's') + ' allowed.');\n    }\n\n    var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n    var i;\n\n    var charset = options.charset;\n    if (options.charsetSentinel) {\n        for (i = 0; i < parts.length; ++i) {\n            if (parts[i].indexOf('utf8=') === 0) {\n                if (parts[i] === charsetSentinel) {\n                    charset = 'utf-8';\n                } else if (parts[i] === isoSentinel) {\n                    charset = 'iso-8859-1';\n                }\n                skipIndex = i;\n                i = parts.length; // The eslint settings do not allow break;\n            }\n        }\n    }\n\n    for (i = 0; i < parts.length; ++i) {\n        if (i === skipIndex) {\n            continue;\n        }\n        var part = parts[i];\n\n        var bracketEqualsPos = part.indexOf(']=');\n        var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n        var key;\n        var val;\n        if (pos === -1) {\n            key = options.decoder(part, defaults.decoder, charset, 'key');\n            val = options.strictNullHandling ? null : '';\n        } else {\n            key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n\n            if (key !== null) {\n                val = utils.maybeMap(\n                    parseArrayValue(\n                        part.slice(pos + 1),\n                        options,\n                        isArray(obj[key]) ? obj[key].length : 0\n                    ),\n                    function (encodedVal) {\n                        return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n                    }\n                );\n            }\n        }\n\n        if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n            val = interpretNumericEntities(String(val));\n        }\n\n        if (part.indexOf('[]=') > -1) {\n            val = isArray(val) ? [val] : val;\n        }\n\n        if (options.comma && isArray(val) && val.length > options.arrayLimit) {\n            if (options.throwOnLimitExceeded) {\n                throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n            }\n            val = utils.combine([], val, options.arrayLimit, options.plainObjects);\n        }\n\n        if (key !== null) {\n            var existing = has.call(obj, key);\n            if (existing && options.duplicates === 'combine') {\n                obj[key] = utils.combine(\n                    obj[key],\n                    val,\n                    options.arrayLimit,\n                    options.plainObjects\n                );\n            } else if (!existing || options.duplicates === 'last') {\n                obj[key] = val;\n            }\n        }\n    }\n\n    return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n    var currentArrayLength = 0;\n    if (chain.length > 0 && chain[chain.length - 1] === '[]') {\n        var parentKey = chain.slice(0, -1).join('');\n        currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0;\n    }\n\n    var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength);\n\n    for (var i = chain.length - 1; i >= 0; --i) {\n        var obj;\n        var root = chain[i];\n\n        if (root === '[]' && options.parseArrays) {\n            if (utils.isOverflow(leaf)) {\n                // leaf is already an overflow object, preserve it\n                obj = leaf;\n            } else {\n                obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null))\n                    ? []\n                    : utils.combine(\n                        [],\n                        leaf,\n                        options.arrayLimit,\n                        options.plainObjects\n                    );\n            }\n        } else {\n            obj = options.plainObjects ? { __proto__: null } : {};\n            var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n            var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;\n            var index = parseInt(decodedRoot, 10);\n            var isValidArrayIndex = !isNaN(index)\n                && root !== decodedRoot\n                && String(index) === decodedRoot\n                && index >= 0\n                && options.parseArrays;\n            if (!options.parseArrays && decodedRoot === '') {\n                obj = { 0: leaf };\n            } else if (isValidArrayIndex && index < options.arrayLimit) {\n                obj = [];\n                obj[index] = leaf;\n            } else if (isValidArrayIndex && options.throwOnLimitExceeded) {\n                throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n            } else if (isValidArrayIndex) {\n                obj[index] = leaf;\n                utils.markOverflow(obj, index);\n            } else if (decodedRoot !== '__proto__') {\n                obj[decodedRoot] = leaf;\n            }\n        }\n\n        leaf = obj;\n    }\n\n    return leaf;\n};\n\nvar splitKeyIntoSegments = function splitKeyIntoSegments(givenKey, options) {\n    var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n    if (options.depth <= 0) {\n        if (!options.plainObjects && has.call(Object.prototype, key)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        return [key];\n    }\n\n    var brackets = /(\\[[^[\\]]*])/;\n    var child = /(\\[[^[\\]]*])/g;\n\n    var segment = brackets.exec(key);\n    var parent = segment ? key.slice(0, segment.index) : key;\n\n    var keys = [];\n\n    if (parent) {\n        if (!options.plainObjects && has.call(Object.prototype, parent)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        keys[keys.length] = parent;\n    }\n\n    var i = 0;\n    while ((segment = child.exec(key)) !== null && i < options.depth) {\n        i += 1;\n\n        var segmentContent = segment[1].slice(1, -1);\n        if (!options.plainObjects && has.call(Object.prototype, segmentContent)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        keys[keys.length] = segment[1];\n    }\n\n    if (segment) {\n        if (options.strictDepth === true) {\n            throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');\n        }\n\n        keys[keys.length] = '[' + key.slice(segment.index) + ']';\n    }\n\n    return keys;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n    if (!givenKey) {\n        return;\n    }\n\n    var keys = splitKeyIntoSegments(givenKey, options);\n\n    if (!keys) {\n        return;\n    }\n\n    return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n    if (!opts) {\n        return defaults;\n    }\n\n    if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n        throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n    }\n\n    if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {\n        throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');\n    }\n\n    if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {\n        throw new TypeError('Decoder has to be a function.');\n    }\n\n    if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n        throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n    }\n\n    if (typeof opts.throwOnLimitExceeded !== 'undefined' && typeof opts.throwOnLimitExceeded !== 'boolean') {\n        throw new TypeError('`throwOnLimitExceeded` option must be a boolean');\n    }\n\n    var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n    var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;\n\n    if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {\n        throw new TypeError('The duplicates option must be either combine, first, or last');\n    }\n\n    var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n    return {\n        allowDots: allowDots,\n        allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n        allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n        allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n        arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n        charset: charset,\n        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n        comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n        decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,\n        decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n        delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n        // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n        depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n        duplicates: duplicates,\n        ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n        interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n        parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n        parseArrays: opts.parseArrays !== false,\n        plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n        strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth,\n        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,\n        throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === 'boolean' ? opts.throwOnLimitExceeded : false\n    };\n};\n\nmodule.exports = function (str, opts) {\n    var options = normalizeParseOptions(opts);\n\n    if (str === '' || str === null || typeof str === 'undefined') {\n        return options.plainObjects ? { __proto__: null } : {};\n    }\n\n    var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n    var obj = options.plainObjects ? { __proto__: null } : {};\n\n    // Iterate over the keys and setup the new object\n\n    var keys = Object.keys(tempObj);\n    for (var i = 0; i < keys.length; ++i) {\n        var key = keys[i];\n        var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n        obj = utils.merge(obj, newObj, options);\n    }\n\n    if (options.allowSparse === true) {\n        return obj;\n    }\n\n    return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n    brackets: function brackets(prefix) {\n        return prefix + '[]';\n    },\n    comma: 'comma',\n    indices: function indices(prefix, key) {\n        return prefix + '[' + key + ']';\n    },\n    repeat: function repeat(prefix) {\n        return prefix;\n    }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n    push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n    addQueryPrefix: false,\n    allowDots: false,\n    allowEmptyArrays: false,\n    arrayFormat: 'indices',\n    charset: 'utf-8',\n    charsetSentinel: false,\n    commaRoundTrip: false,\n    delimiter: '&',\n    encode: true,\n    encodeDotInKeys: false,\n    encoder: utils.encode,\n    encodeValuesOnly: false,\n    filter: void undefined,\n    format: defaultFormat,\n    formatter: formats.formatters[defaultFormat],\n    // deprecated\n    indices: false,\n    serializeDate: function serializeDate(date) {\n        return toISO.call(date);\n    },\n    skipNulls: false,\n    strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n    return typeof v === 'string'\n        || typeof v === 'number'\n        || typeof v === 'boolean'\n        || typeof v === 'symbol'\n        || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n    object,\n    prefix,\n    generateArrayPrefix,\n    commaRoundTrip,\n    allowEmptyArrays,\n    strictNullHandling,\n    skipNulls,\n    encodeDotInKeys,\n    encoder,\n    filter,\n    sort,\n    allowDots,\n    serializeDate,\n    format,\n    formatter,\n    encodeValuesOnly,\n    charset,\n    sideChannel\n) {\n    var obj = object;\n\n    var tmpSc = sideChannel;\n    var step = 0;\n    var findFlag = false;\n    while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n        // Where object last appeared in the ref tree\n        var pos = tmpSc.get(object);\n        step += 1;\n        if (typeof pos !== 'undefined') {\n            if (pos === step) {\n                throw new RangeError('Cyclic object value');\n            } else {\n                findFlag = true; // Break while\n            }\n        }\n        if (typeof tmpSc.get(sentinel) === 'undefined') {\n            step = 0;\n        }\n    }\n\n    if (typeof filter === 'function') {\n        obj = filter(prefix, obj);\n    } else if (obj instanceof Date) {\n        obj = serializeDate(obj);\n    } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n        obj = utils.maybeMap(obj, function (value) {\n            if (value instanceof Date) {\n                return serializeDate(value);\n            }\n            return value;\n        });\n    }\n\n    if (obj === null) {\n        if (strictNullHandling) {\n            return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n        }\n\n        obj = '';\n    }\n\n    if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n        if (encoder) {\n            var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n            return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n        }\n        return [formatter(prefix) + '=' + formatter(String(obj))];\n    }\n\n    var values = [];\n\n    if (typeof obj === 'undefined') {\n        return values;\n    }\n\n    var objKeys;\n    if (generateArrayPrefix === 'comma' && isArray(obj)) {\n        // we need to join elements in\n        if (encodeValuesOnly && encoder) {\n            obj = utils.maybeMap(obj, encoder);\n        }\n        objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n    } else if (isArray(filter)) {\n        objKeys = filter;\n    } else {\n        var keys = Object.keys(obj);\n        objKeys = sort ? keys.sort(sort) : keys;\n    }\n\n    var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\\./g, '%2E') : String(prefix);\n\n    var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;\n\n    if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n        return adjustedPrefix + '[]';\n    }\n\n    for (var j = 0; j < objKeys.length; ++j) {\n        var key = objKeys[j];\n        var value = typeof key === 'object' && key && typeof key.value !== 'undefined'\n            ? key.value\n            : obj[key];\n\n        if (skipNulls && value === null) {\n            continue;\n        }\n\n        var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\\./g, '%2E') : String(key);\n        var keyPrefix = isArray(obj)\n            ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix\n            : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');\n\n        sideChannel.set(object, step);\n        var valueSideChannel = getSideChannel();\n        valueSideChannel.set(sentinel, sideChannel);\n        pushToArray(values, stringify(\n            value,\n            keyPrefix,\n            generateArrayPrefix,\n            commaRoundTrip,\n            allowEmptyArrays,\n            strictNullHandling,\n            skipNulls,\n            encodeDotInKeys,\n            generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n            filter,\n            sort,\n            allowDots,\n            serializeDate,\n            format,\n            formatter,\n            encodeValuesOnly,\n            charset,\n            valueSideChannel\n        ));\n    }\n\n    return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n    if (!opts) {\n        return defaults;\n    }\n\n    if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n        throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n    }\n\n    if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n        throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n    }\n\n    if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n        throw new TypeError('Encoder has to be a function.');\n    }\n\n    var charset = opts.charset || defaults.charset;\n    if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n        throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n    }\n\n    var format = formats['default'];\n    if (typeof opts.format !== 'undefined') {\n        if (!has.call(formats.formatters, opts.format)) {\n            throw new TypeError('Unknown format option provided.');\n        }\n        format = opts.format;\n    }\n    var formatter = formats.formatters[format];\n\n    var filter = defaults.filter;\n    if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n        filter = opts.filter;\n    }\n\n    var arrayFormat;\n    if (opts.arrayFormat in arrayPrefixGenerators) {\n        arrayFormat = opts.arrayFormat;\n    } else if ('indices' in opts) {\n        arrayFormat = opts.indices ? 'indices' : 'repeat';\n    } else {\n        arrayFormat = defaults.arrayFormat;\n    }\n\n    if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n        throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n    }\n\n    var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n    return {\n        addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n        allowDots: allowDots,\n        allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n        arrayFormat: arrayFormat,\n        charset: charset,\n        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n        commaRoundTrip: !!opts.commaRoundTrip,\n        delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n        encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n        encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n        encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n        encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n        filter: filter,\n        format: format,\n        formatter: formatter,\n        serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n        skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n        sort: typeof opts.sort === 'function' ? opts.sort : null,\n        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n    };\n};\n\nmodule.exports = function (object, opts) {\n    var obj = object;\n    var options = normalizeStringifyOptions(opts);\n\n    var objKeys;\n    var filter;\n\n    if (typeof options.filter === 'function') {\n        filter = options.filter;\n        obj = filter('', obj);\n    } else if (isArray(options.filter)) {\n        filter = options.filter;\n        objKeys = filter;\n    }\n\n    var keys = [];\n\n    if (typeof obj !== 'object' || obj === null) {\n        return '';\n    }\n\n    var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];\n    var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n\n    if (!objKeys) {\n        objKeys = Object.keys(obj);\n    }\n\n    if (options.sort) {\n        objKeys.sort(options.sort);\n    }\n\n    var sideChannel = getSideChannel();\n    for (var i = 0; i < objKeys.length; ++i) {\n        var key = objKeys[i];\n        var value = obj[key];\n\n        if (options.skipNulls && value === null) {\n            continue;\n        }\n        pushToArray(keys, stringify(\n            value,\n            key,\n            generateArrayPrefix,\n            commaRoundTrip,\n            options.allowEmptyArrays,\n            options.strictNullHandling,\n            options.skipNulls,\n            options.encodeDotInKeys,\n            options.encode ? options.encoder : null,\n            options.filter,\n            options.sort,\n            options.allowDots,\n            options.serializeDate,\n            options.format,\n            options.formatter,\n            options.encodeValuesOnly,\n            options.charset,\n            sideChannel\n        ));\n    }\n\n    var joined = keys.join(options.delimiter);\n    var prefix = options.addQueryPrefix === true ? '?' : '';\n\n    if (options.charsetSentinel) {\n        if (options.charset === 'iso-8859-1') {\n            // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n            prefix += 'utf8=%26%2310003%3B&';\n        } else {\n            // encodeURIComponent('✓')\n            prefix += 'utf8=%E2%9C%93&';\n        }\n    }\n\n    return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\nvar getSideChannel = require('side-channel');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\n// Track objects created from arrayLimit overflow using side-channel\n// Stores the current max numeric index for O(1) lookup\nvar overflowChannel = getSideChannel();\n\nvar markOverflow = function markOverflow(obj, maxIndex) {\n    overflowChannel.set(obj, maxIndex);\n    return obj;\n};\n\nvar isOverflow = function isOverflow(obj) {\n    return overflowChannel.has(obj);\n};\n\nvar getMaxIndex = function getMaxIndex(obj) {\n    return overflowChannel.get(obj);\n};\n\nvar setMaxIndex = function setMaxIndex(obj, maxIndex) {\n    overflowChannel.set(obj, maxIndex);\n};\n\nvar hexTable = (function () {\n    var array = [];\n    for (var i = 0; i < 256; ++i) {\n        array[array.length] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase();\n    }\n\n    return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n    while (queue.length > 1) {\n        var item = queue.pop();\n        var obj = item.obj[item.prop];\n\n        if (isArray(obj)) {\n            var compacted = [];\n\n            for (var j = 0; j < obj.length; ++j) {\n                if (typeof obj[j] !== 'undefined') {\n                    compacted[compacted.length] = obj[j];\n                }\n            }\n\n            item.obj[item.prop] = compacted;\n        }\n    }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n    var obj = options && options.plainObjects ? { __proto__: null } : {};\n    for (var i = 0; i < source.length; ++i) {\n        if (typeof source[i] !== 'undefined') {\n            obj[i] = source[i];\n        }\n    }\n\n    return obj;\n};\n\nvar merge = function merge(target, source, options) {\n    /* eslint no-param-reassign: 0 */\n    if (!source) {\n        return target;\n    }\n\n    if (typeof source !== 'object' && typeof source !== 'function') {\n        if (isArray(target)) {\n            var nextIndex = target.length;\n            if (options && typeof options.arrayLimit === 'number' && nextIndex > options.arrayLimit) {\n                return markOverflow(arrayToObject(target.concat(source), options), nextIndex);\n            }\n            target[nextIndex] = source;\n        } else if (target && typeof target === 'object') {\n            if (isOverflow(target)) {\n                // Add at next numeric index for overflow objects\n                var newIndex = getMaxIndex(target) + 1;\n                target[newIndex] = source;\n                setMaxIndex(target, newIndex);\n            } else if (\n                (options && (options.plainObjects || options.allowPrototypes))\n                || !has.call(Object.prototype, source)\n            ) {\n                target[source] = true;\n            }\n        } else {\n            return [target, source];\n        }\n\n        return target;\n    }\n\n    if (!target || typeof target !== 'object') {\n        if (isOverflow(source)) {\n            // Create new object with target at 0, source values shifted by 1\n            var sourceKeys = Object.keys(source);\n            var result = options && options.plainObjects\n                ? { __proto__: null, 0: target }\n                : { 0: target };\n            for (var m = 0; m < sourceKeys.length; m++) {\n                var oldKey = parseInt(sourceKeys[m], 10);\n                result[oldKey + 1] = source[sourceKeys[m]];\n            }\n            return markOverflow(result, getMaxIndex(source) + 1);\n        }\n        var combined = [target].concat(source);\n        if (options && typeof options.arrayLimit === 'number' && combined.length > options.arrayLimit) {\n            return markOverflow(arrayToObject(combined, options), combined.length - 1);\n        }\n        return combined;\n    }\n\n    var mergeTarget = target;\n    if (isArray(target) && !isArray(source)) {\n        mergeTarget = arrayToObject(target, options);\n    }\n\n    if (isArray(target) && isArray(source)) {\n        source.forEach(function (item, i) {\n            if (has.call(target, i)) {\n                var targetItem = target[i];\n                if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n                    target[i] = merge(targetItem, item, options);\n                } else {\n                    target[target.length] = item;\n                }\n            } else {\n                target[i] = item;\n            }\n        });\n        return target;\n    }\n\n    return Object.keys(source).reduce(function (acc, key) {\n        var value = source[key];\n\n        if (has.call(acc, key)) {\n            acc[key] = merge(acc[key], value, options);\n        } else {\n            acc[key] = value;\n        }\n\n        if (isOverflow(source) && !isOverflow(acc)) {\n            markOverflow(acc, getMaxIndex(source));\n        }\n        if (isOverflow(acc)) {\n            var keyNum = parseInt(key, 10);\n            if (String(keyNum) === key && keyNum >= 0 && keyNum > getMaxIndex(acc)) {\n                setMaxIndex(acc, keyNum);\n            }\n        }\n\n        return acc;\n    }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n    return Object.keys(source).reduce(function (acc, key) {\n        acc[key] = source[key];\n        return acc;\n    }, target);\n};\n\nvar decode = function (str, defaultDecoder, charset) {\n    var strWithoutPlus = str.replace(/\\+/g, ' ');\n    if (charset === 'iso-8859-1') {\n        // unescape never throws, no try...catch needed:\n        return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n    }\n    // utf-8\n    try {\n        return decodeURIComponent(strWithoutPlus);\n    } catch (e) {\n        return strWithoutPlus;\n    }\n};\n\nvar limit = 1024;\n\n/* eslint operator-linebreak: [2, \"before\"] */\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n    // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n    // It has been adapted here for stricter adherence to RFC 3986\n    if (str.length === 0) {\n        return str;\n    }\n\n    var string = str;\n    if (typeof str === 'symbol') {\n        string = Symbol.prototype.toString.call(str);\n    } else if (typeof str !== 'string') {\n        string = String(str);\n    }\n\n    if (charset === 'iso-8859-1') {\n        return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n            return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n        });\n    }\n\n    var out = '';\n    for (var j = 0; j < string.length; j += limit) {\n        var segment = string.length >= limit ? string.slice(j, j + limit) : string;\n        var arr = [];\n\n        for (var i = 0; i < segment.length; ++i) {\n            var c = segment.charCodeAt(i);\n            if (\n                c === 0x2D // -\n                || c === 0x2E // .\n                || c === 0x5F // _\n                || c === 0x7E // ~\n                || (c >= 0x30 && c <= 0x39) // 0-9\n                || (c >= 0x41 && c <= 0x5A) // a-z\n                || (c >= 0x61 && c <= 0x7A) // A-Z\n                || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n            ) {\n                arr[arr.length] = segment.charAt(i);\n                continue;\n            }\n\n            if (c < 0x80) {\n                arr[arr.length] = hexTable[c];\n                continue;\n            }\n\n            if (c < 0x800) {\n                arr[arr.length] = hexTable[0xC0 | (c >> 6)]\n                    + hexTable[0x80 | (c & 0x3F)];\n                continue;\n            }\n\n            if (c < 0xD800 || c >= 0xE000) {\n                arr[arr.length] = hexTable[0xE0 | (c >> 12)]\n                    + hexTable[0x80 | ((c >> 6) & 0x3F)]\n                    + hexTable[0x80 | (c & 0x3F)];\n                continue;\n            }\n\n            i += 1;\n            c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF));\n\n            arr[arr.length] = hexTable[0xF0 | (c >> 18)]\n                + hexTable[0x80 | ((c >> 12) & 0x3F)]\n                + hexTable[0x80 | ((c >> 6) & 0x3F)]\n                + hexTable[0x80 | (c & 0x3F)];\n        }\n\n        out += arr.join('');\n    }\n\n    return out;\n};\n\nvar compact = function compact(value) {\n    var queue = [{ obj: { o: value }, prop: 'o' }];\n    var refs = [];\n\n    for (var i = 0; i < queue.length; ++i) {\n        var item = queue[i];\n        var obj = item.obj[item.prop];\n\n        var keys = Object.keys(obj);\n        for (var j = 0; j < keys.length; ++j) {\n            var key = keys[j];\n            var val = obj[key];\n            if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n                queue[queue.length] = { obj: obj, prop: key };\n                refs[refs.length] = val;\n            }\n        }\n    }\n\n    compactQueue(queue);\n\n    return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n    return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n    if (!obj || typeof obj !== 'object') {\n        return false;\n    }\n\n    return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b, arrayLimit, plainObjects) {\n    // If 'a' is already an overflow object, add to it\n    if (isOverflow(a)) {\n        var newIndex = getMaxIndex(a) + 1;\n        a[newIndex] = b;\n        setMaxIndex(a, newIndex);\n        return a;\n    }\n\n    var result = [].concat(a, b);\n    if (result.length > arrayLimit) {\n        return markOverflow(arrayToObject(result, { plainObjects: plainObjects }), result.length - 1);\n    }\n    return result;\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n    if (isArray(val)) {\n        var mapped = [];\n        for (var i = 0; i < val.length; i += 1) {\n            mapped[mapped.length] = fn(val[i]);\n        }\n        return mapped;\n    }\n    return fn(val);\n};\n\nmodule.exports = {\n    arrayToObject: arrayToObject,\n    assign: assign,\n    combine: combine,\n    compact: compact,\n    decode: decode,\n    encode: encode,\n    isBuffer: isBuffer,\n    isOverflow: isOverflow,\n    isRegExp: isRegExp,\n    markOverflow: markOverflow,\n    maybeMap: maybeMap,\n    merge: merge\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n  , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n  try {\n    return decodeURIComponent(input.replace(/\\+/g, ' '));\n  } catch (e) {\n    return null;\n  }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n  try {\n    return encodeURIComponent(input);\n  } catch (e) {\n    return null;\n  }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n  var parser = /([^=?#&]+)=?([^&]*)/g\n    , result = {}\n    , part;\n\n  while (part = parser.exec(query)) {\n    var key = decode(part[1])\n      , value = decode(part[2]);\n\n    //\n    // Prevent overriding of existing properties. This ensures that build-in\n    // methods like `toString` or __proto__ are not overriden by malicious\n    // querystrings.\n    //\n    // In the case if failed decoding, we want to omit the key/value pairs\n    // from the result.\n    //\n    if (key === null || value === null || key in result) continue;\n    result[key] = value;\n  }\n\n  return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n  prefix = prefix || '';\n\n  var pairs = []\n    , value\n    , key;\n\n  //\n  // Optionally prefix with a '?' if needed\n  //\n  if ('string' !== typeof prefix) prefix = '?';\n\n  for (key in obj) {\n    if (has.call(obj, key)) {\n      value = obj[key];\n\n      //\n      // Edge cases where we actually want to encode the value to an empty\n      // string instead of the stringified value.\n      //\n      if (!value && (value === null || value === undef || isNaN(value))) {\n        value = '';\n      }\n\n      key = encode(key);\n      value = encode(value);\n\n      //\n      // If we failed to encode the strings, we should bail out as we don't\n      // want to add invalid strings to the query.\n      //\n      if (key === null || value === null) continue;\n      pairs.push(key +'='+ value);\n    }\n  }\n\n  return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n  protocol = protocol.split(':')[0];\n  port = +port;\n\n  if (!port) return false;\n\n  switch (protocol) {\n    case 'http':\n    case 'ws':\n    return port !== 80;\n\n    case 'https':\n    case 'wss':\n    return port !== 443;\n\n    case 'ftp':\n    return port !== 21;\n\n    case 'gopher':\n    return port !== 70;\n\n    case 'file':\n    return false;\n  }\n\n  return port !== 0;\n};\n","'use strict';\n\nvar callBound = require('call-bound');\nvar isRegex = require('is-regex');\n\nvar $exec = callBound('RegExp.prototype.exec');\nvar $TypeError = require('es-errors/type');\n\n/** @type {import('.')} */\nmodule.exports = function regexTester(regex) {\n\tif (!isRegex(regex)) {\n\t\tthrow new $TypeError('`regex` must be a RegExp');\n\t}\n\treturn function test(s) {\n\t\treturn $exec(regex, s) !== null;\n\t};\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* 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.\n* By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('./list.d.ts').listGetNode} */\n// eslint-disable-next-line consistent-return\nvar listGetNode = function (list, key, isDelete) {\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\t// eslint-disable-next-line eqeqeq\n\tfor (; (curr = prev.next) != null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tif (!isDelete) {\n\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\tcurr.next = /** @type {NonNullable} */ (list.next);\n\t\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\t}\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('./list.d.ts').listGet} */\nvar listGet = function (objects, key) {\n\tif (!objects) {\n\t\treturn void undefined;\n\t}\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('./list.d.ts').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('./list.d.ts').ListNode} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('./list.d.ts').listHas} */\nvar listHas = function (objects, key) {\n\tif (!objects) {\n\t\treturn false;\n\t}\n\treturn !!listGetNode(objects, key);\n};\n/** @type {import('./list.d.ts').listDelete} */\n// eslint-disable-next-line consistent-return\nvar listDelete = function (objects, key) {\n\tif (objects) {\n\t\treturn listGetNode(objects, key, true);\n\t}\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannelList() {\n\t/** @typedef {ReturnType} Channel */\n\t/** @typedef {Parameters[0]} K */\n\t/** @typedef {Parameters[1]} V */\n\n\t/** @type {import('./list.d.ts').RootNode | undefined} */ var $o;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tvar root = $o && $o.next;\n\t\t\tvar deletedNode = listDelete($o, key);\n\t\t\tif (deletedNode && root && root === deletedNode) {\n\t\t\t\t$o = void undefined;\n\t\t\t}\n\t\t\treturn !!deletedNode;\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn listGet($o, key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn listHas($o, key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$o) {\n\t\t\t\t// 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\n\t\t\t\t$o = {\n\t\t\t\t\tnext: void undefined\n\t\t\t\t};\n\t\t\t}\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tlistSet(/** @type {NonNullable} */ ($o), key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $Map = GetIntrinsic('%Map%', true);\n\n/** @type {(thisArg: Map, key: K) => V} */\nvar $mapGet = callBound('Map.prototype.get', true);\n/** @type {(thisArg: Map, key: K, value: V) => void} */\nvar $mapSet = callBound('Map.prototype.set', true);\n/** @type {(thisArg: Map, key: K) => boolean} */\nvar $mapHas = callBound('Map.prototype.has', true);\n/** @type {(thisArg: Map, key: K) => boolean} */\nvar $mapDelete = callBound('Map.prototype.delete', true);\n/** @type {(thisArg: Map) => number} */\nvar $mapSize = callBound('Map.prototype.size', true);\n\n/** @type {import('.')} */\nmodule.exports = !!$Map && /** @type {Exclude} */ function getSideChannelMap() {\n\t/** @typedef {ReturnType} Channel */\n\t/** @typedef {Parameters[0]} K */\n\t/** @typedef {Parameters[1]} V */\n\n\t/** @type {Map | undefined} */ var $m;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tif ($m) {\n\t\t\t\tvar result = $mapDelete($m, key);\n\t\t\t\tif ($mapSize($m) === 0) {\n\t\t\t\t\t$m = void undefined;\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($m) {\n\t\t\t\treturn $mapGet($m, key);\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($m) {\n\t\t\t\treturn $mapHas($m, key);\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$m) {\n\t\t\t\t// @ts-expect-error TS can't handle narrowing a variable inside a closure\n\t\t\t\t$m = new $Map();\n\t\t\t}\n\t\t\t$mapSet($m, key, value);\n\t\t}\n\t};\n\n\t// @ts-expect-error TODO: figure out why TS is erroring here\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\nvar getSideChannelMap = require('side-channel-map');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\n\n/** @type {(thisArg: WeakMap, key: K) => V} */\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\n/** @type {(thisArg: WeakMap, key: K, value: V) => void} */\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\n/** @type {(thisArg: WeakMap, key: K) => boolean} */\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\n/** @type {(thisArg: WeakMap, key: K) => boolean} */\nvar $weakMapDelete = callBound('WeakMap.prototype.delete', true);\n\n/** @type {import('.')} */\nmodule.exports = $WeakMap\n\t? /** @type {Exclude} */ function getSideChannelWeakMap() {\n\t\t/** @typedef {ReturnType} Channel */\n\t\t/** @typedef {Parameters[0]} K */\n\t\t/** @typedef {Parameters[1]} V */\n\n\t\t/** @type {WeakMap | undefined} */ var $wm;\n\t\t/** @type {Channel | undefined} */ var $m;\n\n\t\t/** @type {Channel} */\n\t\tvar channel = {\n\t\t\tassert: function (key) {\n\t\t\t\tif (!channel.has(key)) {\n\t\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t\t}\n\t\t\t},\n\t\t\t'delete': function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapDelete($wm, key);\n\t\t\t\t\t}\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif ($m) {\n\t\t\t\t\t\treturn $m['delete'](key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tget: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn $m && $m.get(key);\n\t\t\t},\n\t\t\thas: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn !!$m && $m.has(key);\n\t\t\t},\n\t\t\tset: function (key, value) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif (!$wm) {\n\t\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t\t}\n\t\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif (!$m) {\n\t\t\t\t\t\t$m = getSideChannelMap();\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\t\t/** @type {NonNullable} */ ($m).set(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// @ts-expect-error TODO: figure out why this is erroring\n\t\treturn channel;\n\t}\n\t: getSideChannelMap;\n","'use strict';\n\nvar $TypeError = require('es-errors/type');\nvar inspect = require('object-inspect');\nvar getSideChannelList = require('side-channel-list');\nvar getSideChannelMap = require('side-channel-map');\nvar getSideChannelWeakMap = require('side-channel-weakmap');\n\nvar makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @typedef {ReturnType} Channel */\n\n\t/** @type {Channel | undefined} */ var $channelData;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\treturn !!$channelData && $channelData['delete'](key);\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn $channelData && $channelData.get(key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn !!$channelData && $channelData.has(key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$channelData) {\n\t\t\t\t$channelData = makeChannel();\n\t\t\t}\n\n\t\t\t$channelData.set(key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || checkTypeSupport('arraybuffer')\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && checkTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + Buffer.from(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\tself._socketTimeout = null\n\tself._socketTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tif ('timeout' in opts && opts.timeout !== 0) {\n\t\tself.setTimeout(opts.timeout)\n\t}\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n        body = new Blob(self._body, {\n            type: (headersObj['content-type'] || {}).value || ''\n        });\n    }\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._resetTimers(false)\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tself._resetTimers(true)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself._resetTimers(true)\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tself._resetTimers(false)\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress(self._resetTimers.bind(self))\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._resetTimers.bind(self))\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype._resetTimers = function (done) {\n\tvar self = this\n\n\tglobal.clearTimeout(self._socketTimer)\n\tself._socketTimer = null\n\n\tif (done) {\n\t\tglobal.clearTimeout(self._fetchTimer)\n\t\tself._fetchTimer = null\n\t} else if (self._socketTimeout) {\n\t\tself._socketTimer = global.setTimeout(function () {\n\t\t\tself.emit('timeout')\n\t\t}, self._socketTimeout)\n\t}\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function (err) {\n\tvar self = this\n\tself._destroyed = true\n\tself._resetTimers(true)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n\n\tif (err)\n\t\tself.emit('error', err)\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.setTimeout = function (timeout, cb) {\n\tvar self = this\n\n\tif (cb)\n\t\tself.once('timeout', cb)\n\n\tself._socketTimeout = timeout\n\tself._resetTimers(false)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, resetTimers) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\tresetTimers(false)\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(Buffer.from(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tresetTimers(result.done)\n\t\t\t\tif (result.done) {\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(Buffer.from(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tresetTimers(true)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function (resetTimers) {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text':\n\t\t\tresponse = xhr.responseText\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = Buffer.alloc(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(Buffer.from(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tresetTimers(true)\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tresetTimers(true)\n\t\tself.push(null)\n\t}\n}\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n  if (!Base) {\n    Base = Error;\n  }\n\n  function getMessage(arg1, arg2, arg3) {\n    if (typeof message === 'string') {\n      return message;\n    } else {\n      return message(arg1, arg2, arg3);\n    }\n  }\n\n  var NodeError =\n  /*#__PURE__*/\n  function (_Base) {\n    _inheritsLoose(NodeError, _Base);\n\n    function NodeError(arg1, arg2, arg3) {\n      return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n    }\n\n    return NodeError;\n  }(Base);\n\n  NodeError.prototype.name = Base.name;\n  NodeError.prototype.code = code;\n  codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n  if (Array.isArray(expected)) {\n    var len = expected.length;\n    expected = expected.map(function (i) {\n      return String(i);\n    });\n\n    if (len > 2) {\n      return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n    } else if (len === 2) {\n      return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n    } else {\n      return \"of \".concat(thing, \" \").concat(expected[0]);\n    }\n  } else {\n    return \"of \".concat(thing, \" \").concat(String(expected));\n  }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n  return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n  if (this_len === undefined || this_len > str.length) {\n    this_len = str.length;\n  }\n\n  return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n  if (typeof start !== 'number') {\n    start = 0;\n  }\n\n  if (start + search.length > str.length) {\n    return false;\n  } else {\n    return str.indexOf(search, start) !== -1;\n  }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n  return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n  // determiner: 'must be' or 'must not be'\n  var determiner;\n\n  if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n    determiner = 'must not be';\n    expected = expected.replace(/^not /, '');\n  } else {\n    determiner = 'must be';\n  }\n\n  var msg;\n\n  if (endsWith(name, ' argument')) {\n    // For cases like 'first argument'\n    msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n  } else {\n    var type = includes(name, '.') ? 'property' : 'argument';\n    msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n  }\n\n  msg += \". Received type \".concat(typeof actual);\n  return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n  return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n  return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n  return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n  var keys = [];\n  for (var key in obj) keys.push(key);\n  return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n  // Allow the keys array to be GC'ed.\n  var keys = objectKeys(Writable.prototype);\n  for (var v = 0; v < keys.length; v++) {\n    var method = keys[v];\n    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n  }\n}\nfunction Duplex(options) {\n  if (!(this instanceof Duplex)) return new Duplex(options);\n  Readable.call(this, options);\n  Writable.call(this, options);\n  this.allowHalfOpen = true;\n  if (options) {\n    if (options.readable === false) this.readable = false;\n    if (options.writable === false) this.writable = false;\n    if (options.allowHalfOpen === false) {\n      this.allowHalfOpen = false;\n      this.once('end', onend);\n    }\n  }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.highWaterMark;\n  }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState && this._writableState.getBuffer();\n  }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.length;\n  }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n  // If the writable side ended, then we're ok.\n  if (this._writableState.ended) return;\n\n  // no more data can be written.\n  // But allow more writes to happen in this tick.\n  process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n  self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed && this._writableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n    this._writableState.destroyed = value;\n  }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n  if (!(this instanceof PassThrough)) return new PassThrough(options);\n  Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n  cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n  return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n  debug = debugUtil.debuglog('stream');\n} else {\n  debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n  getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n  ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n  ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n  ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n  // Sadly this is not cacheable as some libraries bundle their own\n  // event emitter implementation with them.\n  if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n  // This is a hack to make sure that our error handler is attached before any\n  // userland ones.  NEVER DO THIS. This is here only because this code needs\n  // to continue to work with older versions of Node.js that do not include\n  // the prependListener() method. The goal is to eventually remove this hack.\n  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n  Duplex = Duplex || require('./_stream_duplex');\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n  // object stream flag. Used to make read(n) ignore n and to\n  // make all the buffer merging and length checks go away\n  this.objectMode = !!options.objectMode;\n  if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n  // the point at which it stops calling _read() to fill the buffer\n  // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n  this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n  // A linked list is used to store data chunks instead of an array because the\n  // linked list can remove elements from the beginning faster than\n  // array.shift()\n  this.buffer = new BufferList();\n  this.length = 0;\n  this.pipes = null;\n  this.pipesCount = 0;\n  this.flowing = null;\n  this.ended = false;\n  this.endEmitted = false;\n  this.reading = false;\n\n  // a flag to be able to tell if the event 'readable'/'data' is emitted\n  // immediately, or on a later tick.  We set this to true at first, because\n  // any actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first read call.\n  this.sync = true;\n\n  // whenever we return null, then we set a flag to say\n  // that we're awaiting a 'readable' event emission.\n  this.needReadable = false;\n  this.emittedReadable = false;\n  this.readableListening = false;\n  this.resumeScheduled = false;\n  this.paused = true;\n\n  // Should close be emitted on destroy. Defaults to true.\n  this.emitClose = options.emitClose !== false;\n\n  // Should .destroy() be called after 'end' (and potentially 'finish')\n  this.autoDestroy = !!options.autoDestroy;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // the number of writers that are awaiting a drain event in .pipe()s\n  this.awaitDrain = 0;\n\n  // if true, a maybeReadMore has been scheduled\n  this.readingMore = false;\n  this.decoder = null;\n  this.encoding = null;\n  if (options.encoding) {\n    if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n    this.decoder = new StringDecoder(options.encoding);\n    this.encoding = options.encoding;\n  }\n}\nfunction Readable(options) {\n  Duplex = Duplex || require('./_stream_duplex');\n  if (!(this instanceof Readable)) return new Readable(options);\n\n  // Checking for a Stream.Duplex instance is faster here instead of inside\n  // the ReadableState constructor, at least with V8 6.5\n  var isDuplex = this instanceof Duplex;\n  this._readableState = new ReadableState(options, this, isDuplex);\n\n  // legacy\n  this.readable = true;\n  if (options) {\n    if (typeof options.read === 'function') this._read = options.read;\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n  }\n  Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._readableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._readableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n  }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n  cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n  var state = this._readableState;\n  var skipChunkCheck;\n  if (!state.objectMode) {\n    if (typeof chunk === 'string') {\n      encoding = encoding || state.defaultEncoding;\n      if (encoding !== state.encoding) {\n        chunk = Buffer.from(chunk, encoding);\n        encoding = '';\n      }\n      skipChunkCheck = true;\n    }\n  } else {\n    skipChunkCheck = true;\n  }\n  return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n  return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n  debug('readableAddChunk', chunk);\n  var state = stream._readableState;\n  if (chunk === null) {\n    state.reading = false;\n    onEofChunk(stream, state);\n  } else {\n    var er;\n    if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n    if (er) {\n      errorOrDestroy(stream, er);\n    } else if (state.objectMode || chunk && chunk.length > 0) {\n      if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n        chunk = _uint8ArrayToBuffer(chunk);\n      }\n      if (addToFront) {\n        if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n      } else if (state.ended) {\n        errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n      } else if (state.destroyed) {\n        return false;\n      } else {\n        state.reading = false;\n        if (state.decoder && !encoding) {\n          chunk = state.decoder.write(chunk);\n          if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n        } else {\n          addChunk(stream, state, chunk, false);\n        }\n      }\n    } else if (!addToFront) {\n      state.reading = false;\n      maybeReadMore(stream, state);\n    }\n  }\n\n  // We can push more data if we are below the highWaterMark.\n  // Also, if we have no data yet, we can stand some more bytes.\n  // This is to work around cases where hwm=0, such as the repl.\n  return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n  if (state.flowing && state.length === 0 && !state.sync) {\n    state.awaitDrain = 0;\n    stream.emit('data', chunk);\n  } else {\n    // update the buffer info.\n    state.length += state.objectMode ? 1 : chunk.length;\n    if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n    if (state.needReadable) emitReadable(stream);\n  }\n  maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n  var er;\n  if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n    er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n  }\n  return er;\n}\nReadable.prototype.isPaused = function () {\n  return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n  if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n  var decoder = new StringDecoder(enc);\n  this._readableState.decoder = decoder;\n  // If setEncoding(null), decoder.encoding equals utf8\n  this._readableState.encoding = this._readableState.decoder.encoding;\n\n  // Iterate over current buffer to convert already stored Buffers:\n  var p = this._readableState.buffer.head;\n  var content = '';\n  while (p !== null) {\n    content += decoder.write(p.data);\n    p = p.next;\n  }\n  this._readableState.buffer.clear();\n  if (content !== '') this._readableState.buffer.push(content);\n  this._readableState.length = content.length;\n  return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n  if (n >= MAX_HWM) {\n    // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n    n = MAX_HWM;\n  } else {\n    // Get the next highest power of 2 to prevent increasing hwm excessively in\n    // tiny amounts\n    n--;\n    n |= n >>> 1;\n    n |= n >>> 2;\n    n |= n >>> 4;\n    n |= n >>> 8;\n    n |= n >>> 16;\n    n++;\n  }\n  return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n  if (n <= 0 || state.length === 0 && state.ended) return 0;\n  if (state.objectMode) return 1;\n  if (n !== n) {\n    // Only flow one buffer at a time\n    if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n  }\n  // If we're asking for more than the current hwm, then raise the hwm.\n  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n  if (n <= state.length) return n;\n  // Don't have enough\n  if (!state.ended) {\n    state.needReadable = true;\n    return 0;\n  }\n  return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n  debug('read', n);\n  n = parseInt(n, 10);\n  var state = this._readableState;\n  var nOrig = n;\n  if (n !== 0) state.emittedReadable = false;\n\n  // if we're doing read(0) to trigger a readable event, but we\n  // already have a bunch of data in the buffer, then just trigger\n  // the 'readable' event and move on.\n  if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n    debug('read: emitReadable', state.length, state.ended);\n    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n    return null;\n  }\n  n = howMuchToRead(n, state);\n\n  // if we've ended, and we're now clear, then finish it up.\n  if (n === 0 && state.ended) {\n    if (state.length === 0) endReadable(this);\n    return null;\n  }\n\n  // All the actual chunk generation logic needs to be\n  // *below* the call to _read.  The reason is that in certain\n  // synthetic stream cases, such as passthrough streams, _read\n  // may be a completely synchronous operation which may change\n  // the state of the read buffer, providing enough data when\n  // before there was *not* enough.\n  //\n  // So, the steps are:\n  // 1. Figure out what the state of things will be after we do\n  // a read from the buffer.\n  //\n  // 2. If that resulting state will trigger a _read, then call _read.\n  // Note that this may be asynchronous, or synchronous.  Yes, it is\n  // deeply ugly to write APIs this way, but that still doesn't mean\n  // that the Readable class should behave improperly, as streams are\n  // designed to be sync/async agnostic.\n  // Take note if the _read call is sync or async (ie, if the read call\n  // has returned yet), so that we know whether or not it's safe to emit\n  // 'readable' etc.\n  //\n  // 3. Actually pull the requested chunks out of the buffer and return.\n\n  // if we need a readable event, then we need to do some reading.\n  var doRead = state.needReadable;\n  debug('need readable', doRead);\n\n  // if we currently have less than the highWaterMark, then also read some\n  if (state.length === 0 || state.length - n < state.highWaterMark) {\n    doRead = true;\n    debug('length less than watermark', doRead);\n  }\n\n  // however, if we've ended, then there's no point, and if we're already\n  // reading, then it's unnecessary.\n  if (state.ended || state.reading) {\n    doRead = false;\n    debug('reading or ended', doRead);\n  } else if (doRead) {\n    debug('do read');\n    state.reading = true;\n    state.sync = true;\n    // if the length is currently zero, then we *need* a readable event.\n    if (state.length === 0) state.needReadable = true;\n    // call internal read method\n    this._read(state.highWaterMark);\n    state.sync = false;\n    // If _read pushed data synchronously, then `reading` will be false,\n    // and we need to re-evaluate how much data we can return to the user.\n    if (!state.reading) n = howMuchToRead(nOrig, state);\n  }\n  var ret;\n  if (n > 0) ret = fromList(n, state);else ret = null;\n  if (ret === null) {\n    state.needReadable = state.length <= state.highWaterMark;\n    n = 0;\n  } else {\n    state.length -= n;\n    state.awaitDrain = 0;\n  }\n  if (state.length === 0) {\n    // If we have nothing in the buffer, then we want to know\n    // as soon as we *do* get something into the buffer.\n    if (!state.ended) state.needReadable = true;\n\n    // If we tried to read() past the EOF, then emit end on the next tick.\n    if (nOrig !== n && state.ended) endReadable(this);\n  }\n  if (ret !== null) this.emit('data', ret);\n  return ret;\n};\nfunction onEofChunk(stream, state) {\n  debug('onEofChunk');\n  if (state.ended) return;\n  if (state.decoder) {\n    var chunk = state.decoder.end();\n    if (chunk && chunk.length) {\n      state.buffer.push(chunk);\n      state.length += state.objectMode ? 1 : chunk.length;\n    }\n  }\n  state.ended = true;\n  if (state.sync) {\n    // if we are sync, wait until next tick to emit the data.\n    // Otherwise we risk emitting data in the flow()\n    // the readable code triggers during a read() call\n    emitReadable(stream);\n  } else {\n    // emit 'readable' now to make sure it gets picked up.\n    state.needReadable = false;\n    if (!state.emittedReadable) {\n      state.emittedReadable = true;\n      emitReadable_(stream);\n    }\n  }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow.  This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n  var state = stream._readableState;\n  debug('emitReadable', state.needReadable, state.emittedReadable);\n  state.needReadable = false;\n  if (!state.emittedReadable) {\n    debug('emitReadable', state.flowing);\n    state.emittedReadable = true;\n    process.nextTick(emitReadable_, stream);\n  }\n}\nfunction emitReadable_(stream) {\n  var state = stream._readableState;\n  debug('emitReadable_', state.destroyed, state.length, state.ended);\n  if (!state.destroyed && (state.length || state.ended)) {\n    stream.emit('readable');\n    state.emittedReadable = false;\n  }\n\n  // The stream needs another readable event if\n  // 1. It is not flowing, as the flow mechanism will take\n  //    care of it.\n  // 2. It is not ended.\n  // 3. It is below the highWaterMark, so we can schedule\n  //    another readable later.\n  state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n  flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data.  that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n  if (!state.readingMore) {\n    state.readingMore = true;\n    process.nextTick(maybeReadMore_, stream, state);\n  }\n}\nfunction maybeReadMore_(stream, state) {\n  // Attempt to read more data if we should.\n  //\n  // The conditions for reading more data are (one of):\n  // - Not enough data buffered (state.length < state.highWaterMark). The loop\n  //   is responsible for filling the buffer with enough data if such data\n  //   is available. If highWaterMark is 0 and we are not in the flowing mode\n  //   we should _not_ attempt to buffer any extra data. We'll get more data\n  //   when the stream consumer calls read() instead.\n  // - No data in the buffer, and the stream is in flowing mode. In this mode\n  //   the loop below is responsible for ensuring read() is called. Failing to\n  //   call read here would abort the flow and there's no other mechanism for\n  //   continuing the flow if the stream consumer has just subscribed to the\n  //   'data' event.\n  //\n  // In addition to the above conditions to keep reading data, the following\n  // conditions prevent the data from being read:\n  // - The stream has ended (state.ended).\n  // - There is already a pending 'read' operation (state.reading). This is a\n  //   case where the the stream has called the implementation defined _read()\n  //   method, but they are processing the call asynchronously and have _not_\n  //   called push() with new data. In this case we skip performing more\n  //   read()s. The execution ends in this method again after the _read() ends\n  //   up calling push() with more data.\n  while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n    var len = state.length;\n    debug('maybeReadMore read 0');\n    stream.read(0);\n    if (len === state.length)\n      // didn't get any data, stop spinning.\n      break;\n  }\n  state.readingMore = false;\n}\n\n// abstract method.  to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n  errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n  var src = this;\n  var state = this._readableState;\n  switch (state.pipesCount) {\n    case 0:\n      state.pipes = dest;\n      break;\n    case 1:\n      state.pipes = [state.pipes, dest];\n      break;\n    default:\n      state.pipes.push(dest);\n      break;\n  }\n  state.pipesCount += 1;\n  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n  var endFn = doEnd ? onend : unpipe;\n  if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n  dest.on('unpipe', onunpipe);\n  function onunpipe(readable, unpipeInfo) {\n    debug('onunpipe');\n    if (readable === src) {\n      if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n        unpipeInfo.hasUnpiped = true;\n        cleanup();\n      }\n    }\n  }\n  function onend() {\n    debug('onend');\n    dest.end();\n  }\n\n  // when the dest drains, it reduces the awaitDrain counter\n  // on the source.  This would be more elegant with a .once()\n  // handler in flow(), but adding and removing repeatedly is\n  // too slow.\n  var ondrain = pipeOnDrain(src);\n  dest.on('drain', ondrain);\n  var cleanedUp = false;\n  function cleanup() {\n    debug('cleanup');\n    // cleanup event handlers once the pipe is broken\n    dest.removeListener('close', onclose);\n    dest.removeListener('finish', onfinish);\n    dest.removeListener('drain', ondrain);\n    dest.removeListener('error', onerror);\n    dest.removeListener('unpipe', onunpipe);\n    src.removeListener('end', onend);\n    src.removeListener('end', unpipe);\n    src.removeListener('data', ondata);\n    cleanedUp = true;\n\n    // if the reader is waiting for a drain event from this\n    // specific writer, then it would cause it to never start\n    // flowing again.\n    // So, if this is awaiting a drain, then we just call it now.\n    // If we don't know, then assume that we are waiting for one.\n    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n  }\n  src.on('data', ondata);\n  function ondata(chunk) {\n    debug('ondata');\n    var ret = dest.write(chunk);\n    debug('dest.write', ret);\n    if (ret === false) {\n      // If the user unpiped during `dest.write()`, it is possible\n      // to get stuck in a permanently paused state if that write\n      // also returned false.\n      // => Check whether `dest` is still a piping destination.\n      if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n        debug('false write response, pause', state.awaitDrain);\n        state.awaitDrain++;\n      }\n      src.pause();\n    }\n  }\n\n  // if the dest has an error, then stop piping into it.\n  // however, don't suppress the throwing behavior for this.\n  function onerror(er) {\n    debug('onerror', er);\n    unpipe();\n    dest.removeListener('error', onerror);\n    if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n  }\n\n  // Make sure our error handler is attached before userland ones.\n  prependListener(dest, 'error', onerror);\n\n  // Both close and finish should trigger unpipe, but only once.\n  function onclose() {\n    dest.removeListener('finish', onfinish);\n    unpipe();\n  }\n  dest.once('close', onclose);\n  function onfinish() {\n    debug('onfinish');\n    dest.removeListener('close', onclose);\n    unpipe();\n  }\n  dest.once('finish', onfinish);\n  function unpipe() {\n    debug('unpipe');\n    src.unpipe(dest);\n  }\n\n  // tell the dest that it's being piped to\n  dest.emit('pipe', src);\n\n  // start the flow if it hasn't been started already.\n  if (!state.flowing) {\n    debug('pipe resume');\n    src.resume();\n  }\n  return dest;\n};\nfunction pipeOnDrain(src) {\n  return function pipeOnDrainFunctionResult() {\n    var state = src._readableState;\n    debug('pipeOnDrain', state.awaitDrain);\n    if (state.awaitDrain) state.awaitDrain--;\n    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n      state.flowing = true;\n      flow(src);\n    }\n  };\n}\nReadable.prototype.unpipe = function (dest) {\n  var state = this._readableState;\n  var unpipeInfo = {\n    hasUnpiped: false\n  };\n\n  // if we're not piping anywhere, then do nothing.\n  if (state.pipesCount === 0) return this;\n\n  // just one destination.  most common case.\n  if (state.pipesCount === 1) {\n    // passed in one, but it's not the right one.\n    if (dest && dest !== state.pipes) return this;\n    if (!dest) dest = state.pipes;\n\n    // got a match.\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n    if (dest) dest.emit('unpipe', this, unpipeInfo);\n    return this;\n  }\n\n  // slow case. multiple pipe destinations.\n\n  if (!dest) {\n    // remove all.\n    var dests = state.pipes;\n    var len = state.pipesCount;\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n    for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n      hasUnpiped: false\n    });\n    return this;\n  }\n\n  // try to find the right one.\n  var index = indexOf(state.pipes, dest);\n  if (index === -1) return this;\n  state.pipes.splice(index, 1);\n  state.pipesCount -= 1;\n  if (state.pipesCount === 1) state.pipes = state.pipes[0];\n  dest.emit('unpipe', this, unpipeInfo);\n  return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n  var res = Stream.prototype.on.call(this, ev, fn);\n  var state = this._readableState;\n  if (ev === 'data') {\n    // update readableListening so that resume() may be a no-op\n    // a few lines down. This is needed to support once('readable').\n    state.readableListening = this.listenerCount('readable') > 0;\n\n    // Try start flowing on next tick if stream isn't explicitly paused\n    if (state.flowing !== false) this.resume();\n  } else if (ev === 'readable') {\n    if (!state.endEmitted && !state.readableListening) {\n      state.readableListening = state.needReadable = true;\n      state.flowing = false;\n      state.emittedReadable = false;\n      debug('on readable', state.length, state.reading);\n      if (state.length) {\n        emitReadable(this);\n      } else if (!state.reading) {\n        process.nextTick(nReadingNextTick, this);\n      }\n    }\n  }\n  return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n  var res = Stream.prototype.removeListener.call(this, ev, fn);\n  if (ev === 'readable') {\n    // We need to check if there is someone still listening to\n    // readable and reset the state. However this needs to happen\n    // after readable has been emitted but before I/O (nextTick) to\n    // support once('readable', fn) cycles. This means that calling\n    // resume within the same tick will have no\n    // effect.\n    process.nextTick(updateReadableListening, this);\n  }\n  return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n  var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n  if (ev === 'readable' || ev === undefined) {\n    // We need to check if there is someone still listening to\n    // readable and reset the state. However this needs to happen\n    // after readable has been emitted but before I/O (nextTick) to\n    // support once('readable', fn) cycles. This means that calling\n    // resume within the same tick will have no\n    // effect.\n    process.nextTick(updateReadableListening, this);\n  }\n  return res;\n};\nfunction updateReadableListening(self) {\n  var state = self._readableState;\n  state.readableListening = self.listenerCount('readable') > 0;\n  if (state.resumeScheduled && !state.paused) {\n    // flowing needs to be set to true now, otherwise\n    // the upcoming resume will not flow.\n    state.flowing = true;\n\n    // crude way to check if we should resume\n  } else if (self.listenerCount('data') > 0) {\n    self.resume();\n  }\n}\nfunction nReadingNextTick(self) {\n  debug('readable nexttick read 0');\n  self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n  var state = this._readableState;\n  if (!state.flowing) {\n    debug('resume');\n    // we flow only if there is no one listening\n    // for readable, but we still have to call\n    // resume()\n    state.flowing = !state.readableListening;\n    resume(this, state);\n  }\n  state.paused = false;\n  return this;\n};\nfunction resume(stream, state) {\n  if (!state.resumeScheduled) {\n    state.resumeScheduled = true;\n    process.nextTick(resume_, stream, state);\n  }\n}\nfunction resume_(stream, state) {\n  debug('resume', state.reading);\n  if (!state.reading) {\n    stream.read(0);\n  }\n  state.resumeScheduled = false;\n  stream.emit('resume');\n  flow(stream);\n  if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n  debug('call pause flowing=%j', this._readableState.flowing);\n  if (this._readableState.flowing !== false) {\n    debug('pause');\n    this._readableState.flowing = false;\n    this.emit('pause');\n  }\n  this._readableState.paused = true;\n  return this;\n};\nfunction flow(stream) {\n  var state = stream._readableState;\n  debug('flow', state.flowing);\n  while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n  var _this = this;\n  var state = this._readableState;\n  var paused = false;\n  stream.on('end', function () {\n    debug('wrapped end');\n    if (state.decoder && !state.ended) {\n      var chunk = state.decoder.end();\n      if (chunk && chunk.length) _this.push(chunk);\n    }\n    _this.push(null);\n  });\n  stream.on('data', function (chunk) {\n    debug('wrapped data');\n    if (state.decoder) chunk = state.decoder.write(chunk);\n\n    // don't skip over falsy values in objectMode\n    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n    var ret = _this.push(chunk);\n    if (!ret) {\n      paused = true;\n      stream.pause();\n    }\n  });\n\n  // proxy all the other methods.\n  // important when wrapping filters and duplexes.\n  for (var i in stream) {\n    if (this[i] === undefined && typeof stream[i] === 'function') {\n      this[i] = function methodWrap(method) {\n        return function methodWrapReturnFunction() {\n          return stream[method].apply(stream, arguments);\n        };\n      }(i);\n    }\n  }\n\n  // proxy certain important events.\n  for (var n = 0; n < kProxyEvents.length; n++) {\n    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n  }\n\n  // when we try to consume some more bytes, simply unpause the\n  // underlying stream.\n  this._read = function (n) {\n    debug('wrapped _read', n);\n    if (paused) {\n      paused = false;\n      stream.resume();\n    }\n  };\n  return this;\n};\nif (typeof Symbol === 'function') {\n  Readable.prototype[Symbol.asyncIterator] = function () {\n    if (createReadableStreamAsyncIterator === undefined) {\n      createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n    }\n    return createReadableStreamAsyncIterator(this);\n  };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.highWaterMark;\n  }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState && this._readableState.buffer;\n  }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.flowing;\n  },\n  set: function set(state) {\n    if (this._readableState) {\n      this._readableState.flowing = state;\n    }\n  }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.length;\n  }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n  // nothing buffered\n  if (state.length === 0) return null;\n  var ret;\n  if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n    // read it all, truncate the list\n    if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n    state.buffer.clear();\n  } else {\n    // read part of list\n    ret = state.buffer.consume(n, state.decoder);\n  }\n  return ret;\n}\nfunction endReadable(stream) {\n  var state = stream._readableState;\n  debug('endReadable', state.endEmitted);\n  if (!state.endEmitted) {\n    state.ended = true;\n    process.nextTick(endReadableNT, state, stream);\n  }\n}\nfunction endReadableNT(state, stream) {\n  debug('endReadableNT', state.endEmitted, state.length);\n\n  // Check that we didn't get one last unshift.\n  if (!state.endEmitted && state.length === 0) {\n    state.endEmitted = true;\n    stream.readable = false;\n    stream.emit('end');\n    if (state.autoDestroy) {\n      // In case of duplex streams we need a way to detect\n      // if the writable side is ready for autoDestroy as well\n      var wState = stream._writableState;\n      if (!wState || wState.autoDestroy && wState.finished) {\n        stream.destroy();\n      }\n    }\n  }\n}\nif (typeof Symbol === 'function') {\n  Readable.from = function (iterable, opts) {\n    if (from === undefined) {\n      from = require('./internal/streams/from');\n    }\n    return from(Readable, iterable, opts);\n  };\n}\nfunction indexOf(xs, x) {\n  for (var i = 0, l = xs.length; i < l; i++) {\n    if (xs[i] === x) return i;\n  }\n  return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data.  Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored.  (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation.  For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes.  When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up.  When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer.  When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks.  If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk.  However,\n// a pathological inflate type of transform can cause excessive buffering\n// here.  For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output.  In this case, you could write a very small\n// amount of input, and end up with a very large amount of output.  In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform.  A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n  ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n  ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n  ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n  var ts = this._transformState;\n  ts.transforming = false;\n  var cb = ts.writecb;\n  if (cb === null) {\n    return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n  }\n  ts.writechunk = null;\n  ts.writecb = null;\n  if (data != null)\n    // single equals check for both `null` and `undefined`\n    this.push(data);\n  cb(er);\n  var rs = this._readableState;\n  rs.reading = false;\n  if (rs.needReadable || rs.length < rs.highWaterMark) {\n    this._read(rs.highWaterMark);\n  }\n}\nfunction Transform(options) {\n  if (!(this instanceof Transform)) return new Transform(options);\n  Duplex.call(this, options);\n  this._transformState = {\n    afterTransform: afterTransform.bind(this),\n    needTransform: false,\n    transforming: false,\n    writecb: null,\n    writechunk: null,\n    writeencoding: null\n  };\n\n  // start out asking for a readable event once data is transformed.\n  this._readableState.needReadable = true;\n\n  // we have implemented the _read method, and done the other things\n  // that Readable wants before the first _read call, so unset the\n  // sync guard flag.\n  this._readableState.sync = false;\n  if (options) {\n    if (typeof options.transform === 'function') this._transform = options.transform;\n    if (typeof options.flush === 'function') this._flush = options.flush;\n  }\n\n  // When the writable side finishes, then flush out anything remaining.\n  this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n  var _this = this;\n  if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n    this._flush(function (er, data) {\n      done(_this, er, data);\n    });\n  } else {\n    done(this, null, null);\n  }\n}\nTransform.prototype.push = function (chunk, encoding) {\n  this._transformState.needTransform = false;\n  return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side.  You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk.  If you pass\n// an error, then that'll put the hurt on the whole operation.  If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n  cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n  var ts = this._transformState;\n  ts.writecb = cb;\n  ts.writechunk = chunk;\n  ts.writeencoding = encoding;\n  if (!ts.transforming) {\n    var rs = this._readableState;\n    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n  }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n  var ts = this._transformState;\n  if (ts.writechunk !== null && !ts.transforming) {\n    ts.transforming = true;\n    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n  } else {\n    // mark that we need a transform, so that any data that comes in\n    // will get processed, now that we've asked for it.\n    ts.needTransform = true;\n  }\n};\nTransform.prototype._destroy = function (err, cb) {\n  Duplex.prototype._destroy.call(this, err, function (err2) {\n    cb(err2);\n  });\n};\nfunction done(stream, er, data) {\n  if (er) return stream.emit('error', er);\n  if (data != null)\n    // single equals check for both `null` and `undefined`\n    stream.push(data);\n\n  // TODO(BridgeAR): Write a test for these two error cases\n  // if there's nothing in the write buffer, then that means\n  // that nothing more will ever be provided\n  if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n  if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n  return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/*  */\nfunction WriteReq(chunk, encoding, cb) {\n  this.chunk = chunk;\n  this.encoding = encoding;\n  this.callback = cb;\n  this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n  var _this = this;\n  this.next = null;\n  this.entry = null;\n  this.finish = function () {\n    onCorkedFinish(_this, state);\n  };\n}\n/*  */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n  deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n  getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n  ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n  ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n  ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n  ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n  ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n  ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n  ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n  Duplex = Duplex || require('./_stream_duplex');\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream,\n  // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n  // object stream flag to indicate whether or not this stream\n  // contains buffers or objects.\n  this.objectMode = !!options.objectMode;\n  if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n  // the point at which write() starts returning false\n  // Note: 0 is a valid value, means that we always return false if\n  // the entire buffer is not flushed immediately on write()\n  this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n  // if _final has been called\n  this.finalCalled = false;\n\n  // drain event flag.\n  this.needDrain = false;\n  // at the start of calling end()\n  this.ending = false;\n  // when end() has been called, and returned\n  this.ended = false;\n  // when 'finish' is emitted\n  this.finished = false;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // should we decode strings into buffers before passing to _write?\n  // this is here so that some node-core streams can optimize string\n  // handling at a lower level.\n  var noDecode = options.decodeStrings === false;\n  this.decodeStrings = !noDecode;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // not an actual buffer we keep track of, but a measurement\n  // of how much we're waiting to get pushed to some underlying\n  // socket or file.\n  this.length = 0;\n\n  // a flag to see when we're in the middle of a write.\n  this.writing = false;\n\n  // when true all writes will be buffered until .uncork() call\n  this.corked = 0;\n\n  // a flag to be able to tell if the onwrite cb is called immediately,\n  // or on a later tick.  We set this to true at first, because any\n  // actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first write call.\n  this.sync = true;\n\n  // a flag to know if we're processing previously buffered items, which\n  // may call the _write() callback in the same tick, so that we don't\n  // end up in an overlapped onwrite situation.\n  this.bufferProcessing = false;\n\n  // the callback that's passed to _write(chunk,cb)\n  this.onwrite = function (er) {\n    onwrite(stream, er);\n  };\n\n  // the callback that the user supplies to write(chunk,encoding,cb)\n  this.writecb = null;\n\n  // the amount that is being written when _write is called.\n  this.writelen = 0;\n  this.bufferedRequest = null;\n  this.lastBufferedRequest = null;\n\n  // number of pending user-supplied write callbacks\n  // this must be 0 before 'finish' can be emitted\n  this.pendingcb = 0;\n\n  // emit prefinish if the only thing we're waiting for is _write cbs\n  // This is relevant for synchronous Transform streams\n  this.prefinished = false;\n\n  // True if the error was already emitted and should not be thrown again\n  this.errorEmitted = false;\n\n  // Should close be emitted on destroy. Defaults to true.\n  this.emitClose = options.emitClose !== false;\n\n  // Should .destroy() be called after 'finish' (and potentially 'end')\n  this.autoDestroy = !!options.autoDestroy;\n\n  // count buffered requests\n  this.bufferedRequestCount = 0;\n\n  // allocate the first CorkedRequest, there is always\n  // one allocated and free to use, and we maintain at most two\n  this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n  var current = this.bufferedRequest;\n  var out = [];\n  while (current) {\n    out.push(current);\n    current = current.next;\n  }\n  return out;\n};\n(function () {\n  try {\n    Object.defineProperty(WritableState.prototype, 'buffer', {\n      get: internalUtil.deprecate(function writableStateBufferGetter() {\n        return this.getBuffer();\n      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n    });\n  } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n  realHasInstance = Function.prototype[Symbol.hasInstance];\n  Object.defineProperty(Writable, Symbol.hasInstance, {\n    value: function value(object) {\n      if (realHasInstance.call(this, object)) return true;\n      if (this !== Writable) return false;\n      return object && object._writableState instanceof WritableState;\n    }\n  });\n} else {\n  realHasInstance = function realHasInstance(object) {\n    return object instanceof this;\n  };\n}\nfunction Writable(options) {\n  Duplex = Duplex || require('./_stream_duplex');\n\n  // Writable ctor is applied to Duplexes, too.\n  // `realHasInstance` is necessary because using plain `instanceof`\n  // would return false, as no `_writableState` property is attached.\n\n  // Trying to use the custom `instanceof` for Writable here will also break the\n  // Node.js LazyTransform implementation, which has a non-trivial getter for\n  // `_writableState` that would lead to infinite recursion.\n\n  // Checking for a Stream.Duplex instance is faster here instead of inside\n  // the WritableState constructor, at least with V8 6.5\n  var isDuplex = this instanceof Duplex;\n  if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n  this._writableState = new WritableState(options, this, isDuplex);\n\n  // legacy.\n  this.writable = true;\n  if (options) {\n    if (typeof options.write === 'function') this._write = options.write;\n    if (typeof options.writev === 'function') this._writev = options.writev;\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n    if (typeof options.final === 'function') this._final = options.final;\n  }\n  Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n  errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n  var er = new ERR_STREAM_WRITE_AFTER_END();\n  // TODO: defer error events consistently everywhere, not just the cb\n  errorOrDestroy(stream, er);\n  process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n  var er;\n  if (chunk === null) {\n    er = new ERR_STREAM_NULL_VALUES();\n  } else if (typeof chunk !== 'string' && !state.objectMode) {\n    er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n  }\n  if (er) {\n    errorOrDestroy(stream, er);\n    process.nextTick(cb, er);\n    return false;\n  }\n  return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n  var state = this._writableState;\n  var ret = false;\n  var isBuf = !state.objectMode && _isUint8Array(chunk);\n  if (isBuf && !Buffer.isBuffer(chunk)) {\n    chunk = _uint8ArrayToBuffer(chunk);\n  }\n  if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n  if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n  if (typeof cb !== 'function') cb = nop;\n  if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n    state.pendingcb++;\n    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n  }\n  return ret;\n};\nWritable.prototype.cork = function () {\n  this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n  var state = this._writableState;\n  if (state.corked) {\n    state.corked--;\n    if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n  }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n  // node::ParseEncoding() requires lower case.\n  if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n  this._writableState.defaultEncoding = encoding;\n  return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState && this._writableState.getBuffer();\n  }\n});\nfunction decodeChunk(state, chunk, encoding) {\n  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n    chunk = Buffer.from(chunk, encoding);\n  }\n  return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.highWaterMark;\n  }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn.  Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n  if (!isBuf) {\n    var newChunk = decodeChunk(state, chunk, encoding);\n    if (chunk !== newChunk) {\n      isBuf = true;\n      encoding = 'buffer';\n      chunk = newChunk;\n    }\n  }\n  var len = state.objectMode ? 1 : chunk.length;\n  state.length += len;\n  var ret = state.length < state.highWaterMark;\n  // we must ensure that previous needDrain will not be reset to false.\n  if (!ret) state.needDrain = true;\n  if (state.writing || state.corked) {\n    var last = state.lastBufferedRequest;\n    state.lastBufferedRequest = {\n      chunk: chunk,\n      encoding: encoding,\n      isBuf: isBuf,\n      callback: cb,\n      next: null\n    };\n    if (last) {\n      last.next = state.lastBufferedRequest;\n    } else {\n      state.bufferedRequest = state.lastBufferedRequest;\n    }\n    state.bufferedRequestCount += 1;\n  } else {\n    doWrite(stream, state, false, len, chunk, encoding, cb);\n  }\n  return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n  state.writelen = len;\n  state.writecb = cb;\n  state.writing = true;\n  state.sync = true;\n  if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n  state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n  --state.pendingcb;\n  if (sync) {\n    // defer the callback if we are being called synchronously\n    // to avoid piling up things on the stack\n    process.nextTick(cb, er);\n    // this can emit finish, and it will always happen\n    // after error\n    process.nextTick(finishMaybe, stream, state);\n    stream._writableState.errorEmitted = true;\n    errorOrDestroy(stream, er);\n  } else {\n    // the caller expect this to happen before if\n    // it is async\n    cb(er);\n    stream._writableState.errorEmitted = true;\n    errorOrDestroy(stream, er);\n    // this can emit finish, but finish must\n    // always follow error\n    finishMaybe(stream, state);\n  }\n}\nfunction onwriteStateUpdate(state) {\n  state.writing = false;\n  state.writecb = null;\n  state.length -= state.writelen;\n  state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n  var state = stream._writableState;\n  var sync = state.sync;\n  var cb = state.writecb;\n  if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n  onwriteStateUpdate(state);\n  if (er) onwriteError(stream, state, sync, er, cb);else {\n    // Check if we're actually ready to finish, but don't emit yet\n    var finished = needFinish(state) || stream.destroyed;\n    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n      clearBuffer(stream, state);\n    }\n    if (sync) {\n      process.nextTick(afterWrite, stream, state, finished, cb);\n    } else {\n      afterWrite(stream, state, finished, cb);\n    }\n  }\n}\nfunction afterWrite(stream, state, finished, cb) {\n  if (!finished) onwriteDrain(stream, state);\n  state.pendingcb--;\n  cb();\n  finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n  if (state.length === 0 && state.needDrain) {\n    state.needDrain = false;\n    stream.emit('drain');\n  }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n  state.bufferProcessing = true;\n  var entry = state.bufferedRequest;\n  if (stream._writev && entry && entry.next) {\n    // Fast case, write everything using _writev()\n    var l = state.bufferedRequestCount;\n    var buffer = new Array(l);\n    var holder = state.corkedRequestsFree;\n    holder.entry = entry;\n    var count = 0;\n    var allBuffers = true;\n    while (entry) {\n      buffer[count] = entry;\n      if (!entry.isBuf) allBuffers = false;\n      entry = entry.next;\n      count += 1;\n    }\n    buffer.allBuffers = allBuffers;\n    doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n    // doWrite is almost always async, defer these to save a bit of time\n    // as the hot path ends with doWrite\n    state.pendingcb++;\n    state.lastBufferedRequest = null;\n    if (holder.next) {\n      state.corkedRequestsFree = holder.next;\n      holder.next = null;\n    } else {\n      state.corkedRequestsFree = new CorkedRequest(state);\n    }\n    state.bufferedRequestCount = 0;\n  } else {\n    // Slow case, write chunks one-by-one\n    while (entry) {\n      var chunk = entry.chunk;\n      var encoding = entry.encoding;\n      var cb = entry.callback;\n      var len = state.objectMode ? 1 : chunk.length;\n      doWrite(stream, state, false, len, chunk, encoding, cb);\n      entry = entry.next;\n      state.bufferedRequestCount--;\n      // if we didn't call the onwrite immediately, then\n      // it means that we need to wait until it does.\n      // also, that means that the chunk and cb are currently\n      // being processed, so move the buffer counter past them.\n      if (state.writing) {\n        break;\n      }\n    }\n    if (entry === null) state.lastBufferedRequest = null;\n  }\n  state.bufferedRequest = entry;\n  state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n  cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n  var state = this._writableState;\n  if (typeof chunk === 'function') {\n    cb = chunk;\n    chunk = null;\n    encoding = null;\n  } else if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n  // .end() fully uncorks\n  if (state.corked) {\n    state.corked = 1;\n    this.uncork();\n  }\n\n  // ignore unnecessary end() calls.\n  if (!state.ending) endWritable(this, state, cb);\n  return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.length;\n  }\n});\nfunction needFinish(state) {\n  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n  stream._final(function (err) {\n    state.pendingcb--;\n    if (err) {\n      errorOrDestroy(stream, err);\n    }\n    state.prefinished = true;\n    stream.emit('prefinish');\n    finishMaybe(stream, state);\n  });\n}\nfunction prefinish(stream, state) {\n  if (!state.prefinished && !state.finalCalled) {\n    if (typeof stream._final === 'function' && !state.destroyed) {\n      state.pendingcb++;\n      state.finalCalled = true;\n      process.nextTick(callFinal, stream, state);\n    } else {\n      state.prefinished = true;\n      stream.emit('prefinish');\n    }\n  }\n}\nfunction finishMaybe(stream, state) {\n  var need = needFinish(state);\n  if (need) {\n    prefinish(stream, state);\n    if (state.pendingcb === 0) {\n      state.finished = true;\n      stream.emit('finish');\n      if (state.autoDestroy) {\n        // In case of duplex streams we need a way to detect\n        // if the readable side is ready for autoDestroy as well\n        var rState = stream._readableState;\n        if (!rState || rState.autoDestroy && rState.endEmitted) {\n          stream.destroy();\n        }\n      }\n    }\n  }\n  return need;\n}\nfunction endWritable(stream, state, cb) {\n  state.ending = true;\n  finishMaybe(stream, state);\n  if (cb) {\n    if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n  }\n  state.ended = true;\n  stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n  var entry = corkReq.entry;\n  corkReq.entry = null;\n  while (entry) {\n    var cb = entry.callback;\n    state.pendingcb--;\n    cb(err);\n    entry = entry.next;\n  }\n\n  // reuse the free corkReq.\n  state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._writableState === undefined) {\n      return false;\n    }\n    return this._writableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._writableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._writableState.destroyed = value;\n  }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n  cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n  return {\n    value: value,\n    done: done\n  };\n}\nfunction readAndResolve(iter) {\n  var resolve = iter[kLastResolve];\n  if (resolve !== null) {\n    var data = iter[kStream].read();\n    // we defer if data is null\n    // we can be expecting either 'end' or\n    // 'error'\n    if (data !== null) {\n      iter[kLastPromise] = null;\n      iter[kLastResolve] = null;\n      iter[kLastReject] = null;\n      resolve(createIterResult(data, false));\n    }\n  }\n}\nfunction onReadable(iter) {\n  // we wait for the next tick, because it might\n  // emit an error with process.nextTick\n  process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n  return function (resolve, reject) {\n    lastPromise.then(function () {\n      if (iter[kEnded]) {\n        resolve(createIterResult(undefined, true));\n        return;\n      }\n      iter[kHandlePromise](resolve, reject);\n    }, reject);\n  };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n  get stream() {\n    return this[kStream];\n  },\n  next: function next() {\n    var _this = this;\n    // if we have detected an error in the meanwhile\n    // reject straight away\n    var error = this[kError];\n    if (error !== null) {\n      return Promise.reject(error);\n    }\n    if (this[kEnded]) {\n      return Promise.resolve(createIterResult(undefined, true));\n    }\n    if (this[kStream].destroyed) {\n      // We need to defer via nextTick because if .destroy(err) is\n      // called, the error will be emitted via nextTick, and\n      // we cannot guarantee that there is no error lingering around\n      // waiting to be emitted.\n      return new Promise(function (resolve, reject) {\n        process.nextTick(function () {\n          if (_this[kError]) {\n            reject(_this[kError]);\n          } else {\n            resolve(createIterResult(undefined, true));\n          }\n        });\n      });\n    }\n\n    // if we have multiple next() calls\n    // we will wait for the previous Promise to finish\n    // this logic is optimized to support for await loops,\n    // where next() is only called once at a time\n    var lastPromise = this[kLastPromise];\n    var promise;\n    if (lastPromise) {\n      promise = new Promise(wrapForNext(lastPromise, this));\n    } else {\n      // fast path needed to support multiple this.push()\n      // without triggering the next() queue\n      var data = this[kStream].read();\n      if (data !== null) {\n        return Promise.resolve(createIterResult(data, false));\n      }\n      promise = new Promise(this[kHandlePromise]);\n    }\n    this[kLastPromise] = promise;\n    return promise;\n  }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n  return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n  var _this2 = this;\n  // destroy(err, cb) is a private API\n  // we can guarantee we have that here, because we control the\n  // Readable class this is attached to\n  return new Promise(function (resolve, reject) {\n    _this2[kStream].destroy(null, function (err) {\n      if (err) {\n        reject(err);\n        return;\n      }\n      resolve(createIterResult(undefined, true));\n    });\n  });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n  var _Object$create;\n  var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n    value: stream,\n    writable: true\n  }), _defineProperty(_Object$create, kLastResolve, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kLastReject, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kError, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kEnded, {\n    value: stream._readableState.endEmitted,\n    writable: true\n  }), _defineProperty(_Object$create, kHandlePromise, {\n    value: function value(resolve, reject) {\n      var data = iterator[kStream].read();\n      if (data) {\n        iterator[kLastPromise] = null;\n        iterator[kLastResolve] = null;\n        iterator[kLastReject] = null;\n        resolve(createIterResult(data, false));\n      } else {\n        iterator[kLastResolve] = resolve;\n        iterator[kLastReject] = reject;\n      }\n    },\n    writable: true\n  }), _Object$create));\n  iterator[kLastPromise] = null;\n  finished(stream, function (err) {\n    if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n      var reject = iterator[kLastReject];\n      // reject if we are waiting for data in the Promise\n      // returned by next() and store the error\n      if (reject !== null) {\n        iterator[kLastPromise] = null;\n        iterator[kLastResolve] = null;\n        iterator[kLastReject] = null;\n        reject(err);\n      }\n      iterator[kError] = err;\n      return;\n    }\n    var resolve = iterator[kLastResolve];\n    if (resolve !== null) {\n      iterator[kLastPromise] = null;\n      iterator[kLastResolve] = null;\n      iterator[kLastReject] = null;\n      resolve(createIterResult(undefined, true));\n    }\n    iterator[kEnded] = true;\n  });\n  stream.on('readable', onReadable.bind(null, iterator));\n  return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n  Buffer = _require.Buffer;\nvar _require2 = require('util'),\n  inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n  Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n  function BufferList() {\n    _classCallCheck(this, BufferList);\n    this.head = null;\n    this.tail = null;\n    this.length = 0;\n  }\n  _createClass(BufferList, [{\n    key: \"push\",\n    value: function push(v) {\n      var entry = {\n        data: v,\n        next: null\n      };\n      if (this.length > 0) this.tail.next = entry;else this.head = entry;\n      this.tail = entry;\n      ++this.length;\n    }\n  }, {\n    key: \"unshift\",\n    value: function unshift(v) {\n      var entry = {\n        data: v,\n        next: this.head\n      };\n      if (this.length === 0) this.tail = entry;\n      this.head = entry;\n      ++this.length;\n    }\n  }, {\n    key: \"shift\",\n    value: function shift() {\n      if (this.length === 0) return;\n      var ret = this.head.data;\n      if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n      --this.length;\n      return ret;\n    }\n  }, {\n    key: \"clear\",\n    value: function clear() {\n      this.head = this.tail = null;\n      this.length = 0;\n    }\n  }, {\n    key: \"join\",\n    value: function join(s) {\n      if (this.length === 0) return '';\n      var p = this.head;\n      var ret = '' + p.data;\n      while (p = p.next) ret += s + p.data;\n      return ret;\n    }\n  }, {\n    key: \"concat\",\n    value: function concat(n) {\n      if (this.length === 0) return Buffer.alloc(0);\n      var ret = Buffer.allocUnsafe(n >>> 0);\n      var p = this.head;\n      var i = 0;\n      while (p) {\n        copyBuffer(p.data, ret, i);\n        i += p.data.length;\n        p = p.next;\n      }\n      return ret;\n    }\n\n    // Consumes a specified amount of bytes or characters from the buffered data.\n  }, {\n    key: \"consume\",\n    value: function consume(n, hasStrings) {\n      var ret;\n      if (n < this.head.data.length) {\n        // `slice` is the same for buffers and strings.\n        ret = this.head.data.slice(0, n);\n        this.head.data = this.head.data.slice(n);\n      } else if (n === this.head.data.length) {\n        // First chunk is a perfect match.\n        ret = this.shift();\n      } else {\n        // Result spans more than one buffer.\n        ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n      }\n      return ret;\n    }\n  }, {\n    key: \"first\",\n    value: function first() {\n      return this.head.data;\n    }\n\n    // Consumes a specified amount of characters from the buffered data.\n  }, {\n    key: \"_getString\",\n    value: function _getString(n) {\n      var p = this.head;\n      var c = 1;\n      var ret = p.data;\n      n -= ret.length;\n      while (p = p.next) {\n        var str = p.data;\n        var nb = n > str.length ? str.length : n;\n        if (nb === str.length) ret += str;else ret += str.slice(0, n);\n        n -= nb;\n        if (n === 0) {\n          if (nb === str.length) {\n            ++c;\n            if (p.next) this.head = p.next;else this.head = this.tail = null;\n          } else {\n            this.head = p;\n            p.data = str.slice(nb);\n          }\n          break;\n        }\n        ++c;\n      }\n      this.length -= c;\n      return ret;\n    }\n\n    // Consumes a specified amount of bytes from the buffered data.\n  }, {\n    key: \"_getBuffer\",\n    value: function _getBuffer(n) {\n      var ret = Buffer.allocUnsafe(n);\n      var p = this.head;\n      var c = 1;\n      p.data.copy(ret);\n      n -= p.data.length;\n      while (p = p.next) {\n        var buf = p.data;\n        var nb = n > buf.length ? buf.length : n;\n        buf.copy(ret, ret.length - n, 0, nb);\n        n -= nb;\n        if (n === 0) {\n          if (nb === buf.length) {\n            ++c;\n            if (p.next) this.head = p.next;else this.head = this.tail = null;\n          } else {\n            this.head = p;\n            p.data = buf.slice(nb);\n          }\n          break;\n        }\n        ++c;\n      }\n      this.length -= c;\n      return ret;\n    }\n\n    // Make sure the linked list only shows the minimal necessary information.\n  }, {\n    key: custom,\n    value: function value(_, options) {\n      return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n        // Only inspect one level.\n        depth: 0,\n        // It should not recurse.\n        customInspect: false\n      }));\n    }\n  }]);\n  return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n  var _this = this;\n  var readableDestroyed = this._readableState && this._readableState.destroyed;\n  var writableDestroyed = this._writableState && this._writableState.destroyed;\n  if (readableDestroyed || writableDestroyed) {\n    if (cb) {\n      cb(err);\n    } else if (err) {\n      if (!this._writableState) {\n        process.nextTick(emitErrorNT, this, err);\n      } else if (!this._writableState.errorEmitted) {\n        this._writableState.errorEmitted = true;\n        process.nextTick(emitErrorNT, this, err);\n      }\n    }\n    return this;\n  }\n\n  // we set destroyed to true before firing error callbacks in order\n  // to make it re-entrance safe in case destroy() is called within callbacks\n\n  if (this._readableState) {\n    this._readableState.destroyed = true;\n  }\n\n  // if this is a duplex stream mark the writable part as destroyed as well\n  if (this._writableState) {\n    this._writableState.destroyed = true;\n  }\n  this._destroy(err || null, function (err) {\n    if (!cb && err) {\n      if (!_this._writableState) {\n        process.nextTick(emitErrorAndCloseNT, _this, err);\n      } else if (!_this._writableState.errorEmitted) {\n        _this._writableState.errorEmitted = true;\n        process.nextTick(emitErrorAndCloseNT, _this, err);\n      } else {\n        process.nextTick(emitCloseNT, _this);\n      }\n    } else if (cb) {\n      process.nextTick(emitCloseNT, _this);\n      cb(err);\n    } else {\n      process.nextTick(emitCloseNT, _this);\n    }\n  });\n  return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n  emitErrorNT(self, err);\n  emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n  if (self._writableState && !self._writableState.emitClose) return;\n  if (self._readableState && !self._readableState.emitClose) return;\n  self.emit('close');\n}\nfunction undestroy() {\n  if (this._readableState) {\n    this._readableState.destroyed = false;\n    this._readableState.reading = false;\n    this._readableState.ended = false;\n    this._readableState.endEmitted = false;\n  }\n  if (this._writableState) {\n    this._writableState.destroyed = false;\n    this._writableState.ended = false;\n    this._writableState.ending = false;\n    this._writableState.finalCalled = false;\n    this._writableState.prefinished = false;\n    this._writableState.finished = false;\n    this._writableState.errorEmitted = false;\n  }\n}\nfunction emitErrorNT(self, err) {\n  self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n  // We have tests that rely on errors being emitted\n  // in the same tick, so changing this is semver major.\n  // For now when you opt-in to autoDestroy we allow\n  // the error to be emitted nextTick. In a future\n  // semver major update we should change the default to this.\n\n  var rState = stream._readableState;\n  var wState = stream._writableState;\n  if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n  destroy: destroy,\n  undestroy: undestroy,\n  errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n  var called = false;\n  return function () {\n    if (called) return;\n    called = true;\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    callback.apply(this, args);\n  };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n  return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n  if (typeof opts === 'function') return eos(stream, null, opts);\n  if (!opts) opts = {};\n  callback = once(callback || noop);\n  var readable = opts.readable || opts.readable !== false && stream.readable;\n  var writable = opts.writable || opts.writable !== false && stream.writable;\n  var onlegacyfinish = function onlegacyfinish() {\n    if (!stream.writable) onfinish();\n  };\n  var writableEnded = stream._writableState && stream._writableState.finished;\n  var onfinish = function onfinish() {\n    writable = false;\n    writableEnded = true;\n    if (!readable) callback.call(stream);\n  };\n  var readableEnded = stream._readableState && stream._readableState.endEmitted;\n  var onend = function onend() {\n    readable = false;\n    readableEnded = true;\n    if (!writable) callback.call(stream);\n  };\n  var onerror = function onerror(err) {\n    callback.call(stream, err);\n  };\n  var onclose = function onclose() {\n    var err;\n    if (readable && !readableEnded) {\n      if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n      return callback.call(stream, err);\n    }\n    if (writable && !writableEnded) {\n      if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n      return callback.call(stream, err);\n    }\n  };\n  var onrequest = function onrequest() {\n    stream.req.on('finish', onfinish);\n  };\n  if (isRequest(stream)) {\n    stream.on('complete', onfinish);\n    stream.on('abort', onclose);\n    if (stream.req) onrequest();else stream.on('request', onrequest);\n  } else if (writable && !stream._writableState) {\n    // legacy streams\n    stream.on('end', onlegacyfinish);\n    stream.on('close', onlegacyfinish);\n  }\n  stream.on('end', onend);\n  stream.on('finish', onfinish);\n  if (opts.error !== false) stream.on('error', onerror);\n  stream.on('close', onclose);\n  return function () {\n    stream.removeListener('complete', onfinish);\n    stream.removeListener('abort', onclose);\n    stream.removeListener('request', onrequest);\n    if (stream.req) stream.req.removeListener('finish', onfinish);\n    stream.removeListener('end', onlegacyfinish);\n    stream.removeListener('close', onlegacyfinish);\n    stream.removeListener('finish', onfinish);\n    stream.removeListener('end', onend);\n    stream.removeListener('error', onerror);\n    stream.removeListener('close', onclose);\n  };\n}\nmodule.exports = eos;","module.exports = function () {\n  throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n  var called = false;\n  return function () {\n    if (called) return;\n    called = true;\n    callback.apply(void 0, arguments);\n  };\n}\nvar _require$codes = require('../../../errors').codes,\n  ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n  ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n  // Rethrow the error if it exists to avoid swallowing it\n  if (err) throw err;\n}\nfunction isRequest(stream) {\n  return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n  callback = once(callback);\n  var closed = false;\n  stream.on('close', function () {\n    closed = true;\n  });\n  if (eos === undefined) eos = require('./end-of-stream');\n  eos(stream, {\n    readable: reading,\n    writable: writing\n  }, function (err) {\n    if (err) return callback(err);\n    closed = true;\n    callback();\n  });\n  var destroyed = false;\n  return function (err) {\n    if (closed) return;\n    if (destroyed) return;\n    destroyed = true;\n\n    // request.destroy just do .end - .abort is what we want\n    if (isRequest(stream)) return stream.abort();\n    if (typeof stream.destroy === 'function') return stream.destroy();\n    callback(err || new ERR_STREAM_DESTROYED('pipe'));\n  };\n}\nfunction call(fn) {\n  fn();\n}\nfunction pipe(from, to) {\n  return from.pipe(to);\n}\nfunction popCallback(streams) {\n  if (!streams.length) return noop;\n  if (typeof streams[streams.length - 1] !== 'function') return noop;\n  return streams.pop();\n}\nfunction pipeline() {\n  for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n    streams[_key] = arguments[_key];\n  }\n  var callback = popCallback(streams);\n  if (Array.isArray(streams[0])) streams = streams[0];\n  if (streams.length < 2) {\n    throw new ERR_MISSING_ARGS('streams');\n  }\n  var error;\n  var destroys = streams.map(function (stream, i) {\n    var reading = i < streams.length - 1;\n    var writing = i > 0;\n    return destroyer(stream, reading, writing, function (err) {\n      if (!error) error = err;\n      if (err) destroys.forEach(call);\n      if (reading) return;\n      destroys.forEach(call);\n      callback(error);\n    });\n  });\n  return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n  return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n  var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n  if (hwm != null) {\n    if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n      var name = isDuplex ? duplexKey : 'highWaterMark';\n      throw new ERR_INVALID_OPT_VALUE(name, hwm);\n    }\n    return Math.floor(hwm);\n  }\n\n  // Default value\n  return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n  getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict';\n\nvar required = require('requires-port')\n  , qs = require('querystringify')\n  , controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n  , CRHTLF = /[\\n\\r\\t]/g\n  , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n  , port = /:\\d+$/\n  , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n  , windowsDriveLetter = /^[a-zA-Z]:/;\n\n/**\n * Remove control characters and whitespace from the beginning of a string.\n *\n * @param {Object|String} str String to trim.\n * @returns {String} A new string representing `str` stripped of control\n *     characters and whitespace from its beginning.\n * @public\n */\nfunction trimLeft(str) {\n  return (str ? str : '').toString().replace(controlOrWhitespace, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n *    indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n *    the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n  ['#', 'hash'],                        // Extract from the back.\n  ['?', 'query'],                       // Extract from the back.\n  function sanitize(address, url) {     // Sanitize what is left of the address\n    return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n  },\n  ['/', 'pathname'],                    // Extract from the back.\n  ['@', 'auth', 1],                     // Extract from the front.\n  [NaN, 'host', undefined, 1, 1],       // Set left over value.\n  [/:(\\d*)$/, 'port', undefined, 1],    // RegExp the back.\n  [NaN, 'hostname', undefined, 1, 1]    // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n  var globalVar;\n\n  if (typeof window !== 'undefined') globalVar = window;\n  else if (typeof global !== 'undefined') globalVar = global;\n  else if (typeof self !== 'undefined') globalVar = self;\n  else globalVar = {};\n\n  var location = globalVar.location || {};\n  loc = loc || location;\n\n  var finaldestination = {}\n    , type = typeof loc\n    , key;\n\n  if ('blob:' === loc.protocol) {\n    finaldestination = new Url(unescape(loc.pathname), {});\n  } else if ('string' === type) {\n    finaldestination = new Url(loc, {});\n    for (key in ignore) delete finaldestination[key];\n  } else if ('object' === type) {\n    for (key in loc) {\n      if (key in ignore) continue;\n      finaldestination[key] = loc[key];\n    }\n\n    if (finaldestination.slashes === undefined) {\n      finaldestination.slashes = slashes.test(loc.href);\n    }\n  }\n\n  return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n  return (\n    scheme === 'file:' ||\n    scheme === 'ftp:' ||\n    scheme === 'http:' ||\n    scheme === 'https:' ||\n    scheme === 'ws:' ||\n    scheme === 'wss:'\n  );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n  address = trimLeft(address);\n  address = address.replace(CRHTLF, '');\n  location = location || {};\n\n  var match = protocolre.exec(address);\n  var protocol = match[1] ? match[1].toLowerCase() : '';\n  var forwardSlashes = !!match[2];\n  var otherSlashes = !!match[3];\n  var slashesCount = 0;\n  var rest;\n\n  if (forwardSlashes) {\n    if (otherSlashes) {\n      rest = match[2] + match[3] + match[4];\n      slashesCount = match[2].length + match[3].length;\n    } else {\n      rest = match[2] + match[4];\n      slashesCount = match[2].length;\n    }\n  } else {\n    if (otherSlashes) {\n      rest = match[3] + match[4];\n      slashesCount = match[3].length;\n    } else {\n      rest = match[4]\n    }\n  }\n\n  if (protocol === 'file:') {\n    if (slashesCount >= 2) {\n      rest = rest.slice(2);\n    }\n  } else if (isSpecial(protocol)) {\n    rest = match[4];\n  } else if (protocol) {\n    if (forwardSlashes) {\n      rest = rest.slice(2);\n    }\n  } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n    rest = match[4];\n  }\n\n  return {\n    protocol: protocol,\n    slashes: forwardSlashes || isSpecial(protocol),\n    slashesCount: slashesCount,\n    rest: rest\n  };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n  if (relative === '') return base;\n\n  var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n    , i = path.length\n    , last = path[i - 1]\n    , unshift = false\n    , up = 0;\n\n  while (i--) {\n    if (path[i] === '.') {\n      path.splice(i, 1);\n    } else if (path[i] === '..') {\n      path.splice(i, 1);\n      up++;\n    } else if (up) {\n      if (i === 0) unshift = true;\n      path.splice(i, 1);\n      up--;\n    }\n  }\n\n  if (unshift) path.unshift('');\n  if (last === '.' || last === '..') path.push('');\n\n  return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n  address = trimLeft(address);\n  address = address.replace(CRHTLF, '');\n\n  if (!(this instanceof Url)) {\n    return new Url(address, location, parser);\n  }\n\n  var relative, extracted, parse, instruction, index, key\n    , instructions = rules.slice()\n    , type = typeof location\n    , url = this\n    , i = 0;\n\n  //\n  // The following if statements allows this module two have compatibility with\n  // 2 different API:\n  //\n  // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n  //    where the boolean indicates that the query string should also be parsed.\n  //\n  // 2. The `URL` interface of the browser which accepts a URL, object as\n  //    arguments. The supplied object will be used as default values / fall-back\n  //    for relative paths.\n  //\n  if ('object' !== type && 'string' !== type) {\n    parser = location;\n    location = null;\n  }\n\n  if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n  location = lolcation(location);\n\n  //\n  // Extract protocol information before running the instructions.\n  //\n  extracted = extractProtocol(address || '', location);\n  relative = !extracted.protocol && !extracted.slashes;\n  url.slashes = extracted.slashes || relative && location.slashes;\n  url.protocol = extracted.protocol || location.protocol || '';\n  address = extracted.rest;\n\n  //\n  // When the authority component is absent the URL starts with a path\n  // component.\n  //\n  if (\n    extracted.protocol === 'file:' && (\n      extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n    (!extracted.slashes &&\n      (extracted.protocol ||\n        extracted.slashesCount < 2 ||\n        !isSpecial(url.protocol)))\n  ) {\n    instructions[3] = [/(.*)/, 'pathname'];\n  }\n\n  for (; i < instructions.length; i++) {\n    instruction = instructions[i];\n\n    if (typeof instruction === 'function') {\n      address = instruction(address, url);\n      continue;\n    }\n\n    parse = instruction[0];\n    key = instruction[1];\n\n    if (parse !== parse) {\n      url[key] = address;\n    } else if ('string' === typeof parse) {\n      index = parse === '@'\n        ? address.lastIndexOf(parse)\n        : address.indexOf(parse);\n\n      if (~index) {\n        if ('number' === typeof instruction[2]) {\n          url[key] = address.slice(0, index);\n          address = address.slice(index + instruction[2]);\n        } else {\n          url[key] = address.slice(index);\n          address = address.slice(0, index);\n        }\n      }\n    } else if ((index = parse.exec(address))) {\n      url[key] = index[1];\n      address = address.slice(0, index.index);\n    }\n\n    url[key] = url[key] || (\n      relative && instruction[3] ? location[key] || '' : ''\n    );\n\n    //\n    // Hostname, host and protocol should be lowercased so they can be used to\n    // create a proper `origin`.\n    //\n    if (instruction[4]) url[key] = url[key].toLowerCase();\n  }\n\n  //\n  // Also parse the supplied query string in to an object. If we're supplied\n  // with a custom parser as function use that instead of the default build-in\n  // parser.\n  //\n  if (parser) url.query = parser(url.query);\n\n  //\n  // If the URL is relative, resolve the pathname against the base URL.\n  //\n  if (\n      relative\n    && location.slashes\n    && url.pathname.charAt(0) !== '/'\n    && (url.pathname !== '' || location.pathname !== '')\n  ) {\n    url.pathname = resolve(url.pathname, location.pathname);\n  }\n\n  //\n  // Default to a / for pathname if none exists. This normalizes the URL\n  // to always have a /\n  //\n  if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n    url.pathname = '/' + url.pathname;\n  }\n\n  //\n  // We should not add port numbers if they are already the default port number\n  // for a given protocol. As the host also contains the port number we're going\n  // override it with the hostname which contains no port number.\n  //\n  if (!required(url.port, url.protocol)) {\n    url.host = url.hostname;\n    url.port = '';\n  }\n\n  //\n  // Parse down the `auth` for the username and password.\n  //\n  url.username = url.password = '';\n\n  if (url.auth) {\n    index = url.auth.indexOf(':');\n\n    if (~index) {\n      url.username = url.auth.slice(0, index);\n      url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n      url.password = url.auth.slice(index + 1);\n      url.password = encodeURIComponent(decodeURIComponent(url.password))\n    } else {\n      url.username = encodeURIComponent(decodeURIComponent(url.auth));\n    }\n\n    url.auth = url.password ? url.username +':'+ url.password : url.username;\n  }\n\n  url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n    ? url.protocol +'//'+ url.host\n    : 'null';\n\n  //\n  // The href is just the compiled result.\n  //\n  url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part          Property we need to adjust.\n * @param {Mixed} value          The newly assigned value.\n * @param {Boolean|Function} fn  When setting the query, it will be the function\n *                               used to parse the query.\n *                               When setting the protocol, double slash will be\n *                               removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n  var url = this;\n\n  switch (part) {\n    case 'query':\n      if ('string' === typeof value && value.length) {\n        value = (fn || qs.parse)(value);\n      }\n\n      url[part] = value;\n      break;\n\n    case 'port':\n      url[part] = value;\n\n      if (!required(value, url.protocol)) {\n        url.host = url.hostname;\n        url[part] = '';\n      } else if (value) {\n        url.host = url.hostname +':'+ value;\n      }\n\n      break;\n\n    case 'hostname':\n      url[part] = value;\n\n      if (url.port) value += ':'+ url.port;\n      url.host = value;\n      break;\n\n    case 'host':\n      url[part] = value;\n\n      if (port.test(value)) {\n        value = value.split(':');\n        url.port = value.pop();\n        url.hostname = value.join(':');\n      } else {\n        url.hostname = value;\n        url.port = '';\n      }\n\n      break;\n\n    case 'protocol':\n      url.protocol = value.toLowerCase();\n      url.slashes = !fn;\n      break;\n\n    case 'pathname':\n    case 'hash':\n      if (value) {\n        var char = part === 'pathname' ? '/' : '#';\n        url[part] = value.charAt(0) !== char ? char + value : value;\n      } else {\n        url[part] = value;\n      }\n      break;\n\n    case 'username':\n    case 'password':\n      url[part] = encodeURIComponent(value);\n      break;\n\n    case 'auth':\n      var index = value.indexOf(':');\n\n      if (~index) {\n        url.username = value.slice(0, index);\n        url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n        url.password = value.slice(index + 1);\n        url.password = encodeURIComponent(decodeURIComponent(url.password));\n      } else {\n        url.username = encodeURIComponent(decodeURIComponent(value));\n      }\n  }\n\n  for (var i = 0; i < rules.length; i++) {\n    var ins = rules[i];\n\n    if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n  }\n\n  url.auth = url.password ? url.username +':'+ url.password : url.username;\n\n  url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n    ? url.protocol +'//'+ url.host\n    : 'null';\n\n  url.href = url.toString();\n\n  return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n  if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n  var query\n    , url = this\n    , host = url.host\n    , protocol = url.protocol;\n\n  if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n  var result =\n    protocol +\n    ((url.protocol && url.slashes) || isSpecial(url.protocol) ? '//' : '');\n\n  if (url.username) {\n    result += url.username;\n    if (url.password) result += ':'+ url.password;\n    result += '@';\n  } else if (url.password) {\n    result += ':'+ url.password;\n    result += '@';\n  } else if (\n    url.protocol !== 'file:' &&\n    isSpecial(url.protocol) &&\n    !host &&\n    url.pathname !== '/'\n  ) {\n    //\n    // Add back the empty userinfo, otherwise the original invalid URL\n    // might be transformed into a valid one with `url.pathname` as host.\n    //\n    result += '@';\n  }\n\n  //\n  // Trailing colon is removed from `url.host` when it is parsed. If it still\n  // ends with a colon, then add back the trailing colon that was removed. This\n  // prevents an invalid URL from being transformed into a valid one.\n  //\n  if (host[host.length - 1] === ':' || (port.test(url.hostname) && !url.port)) {\n    host += ':';\n  }\n\n  result += host + url.pathname;\n\n  query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n  if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n  if (url.hash) result += url.hash;\n\n  return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n","/*\n * Copyright Joyent, Inc. and other Node contributors.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to permit\n * persons to whom the Software is furnished to do so, subject to the\n * following conditions:\n *\n * The above copyright notice and this permission notice shall be included\n * in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n * USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n'use strict';\n\nvar punycode = require('punycode/');\n\nfunction Url() {\n  this.protocol = null;\n  this.slashes = null;\n  this.auth = null;\n  this.host = null;\n  this.port = null;\n  this.hostname = null;\n  this.hash = null;\n  this.search = null;\n  this.query = null;\n  this.pathname = null;\n  this.path = null;\n  this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n/*\n * define these here so at least they only have to be\n * compiled once on the first module load.\n */\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n  portPattern = /:[0-9]*$/,\n\n  // Special case for a simple path URL\n  simplePathPattern = /^(\\/\\/?(?!\\/)[^?\\s]*)(\\?[^\\s]*)?$/,\n\n  /*\n   * RFC 2396: characters reserved for delimiting URLs.\n   * We actually just auto-escape these.\n   */\n  delims = [\n    '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'\n  ],\n\n  // RFC 2396: characters not allowed for various reasons.\n  unwise = [\n    '{', '}', '|', '\\\\', '^', '`'\n  ].concat(delims),\n\n  // Allowed by RFCs, but cause of XSS attacks.  Always escape these.\n  autoEscape = ['\\''].concat(unwise),\n  /*\n   * Characters that are never ever allowed in a hostname.\n   * Note that any invalid chars are also handled, but these\n   * are the ones that are *expected* to be seen, so we fast-path\n   * them.\n   */\n  nonHostChars = [\n    '%', '/', '?', ';', '#'\n  ].concat(autoEscape),\n  hostEndingChars = [\n    '/', '?', '#'\n  ],\n  hostnameMaxLen = 255,\n  hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n  hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n  // protocols that can allow \"unsafe\" and \"unwise\" chars.\n  unsafeProtocol = {\n    javascript: true,\n    'javascript:': true\n  },\n  // protocols that never have a hostname.\n  hostlessProtocol = {\n    javascript: true,\n    'javascript:': true\n  },\n  // protocols that always contain a // bit.\n  slashedProtocol = {\n    http: true,\n    https: true,\n    ftp: true,\n    gopher: true,\n    file: true,\n    'http:': true,\n    'https:': true,\n    'ftp:': true,\n    'gopher:': true,\n    'file:': true\n  },\n  querystring = require('qs');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n  if (url && typeof url === 'object' && url instanceof Url) { return url; }\n\n  var u = new Url();\n  u.parse(url, parseQueryString, slashesDenoteHost);\n  return u;\n}\n\nUrl.prototype.parse = function (url, parseQueryString, slashesDenoteHost) {\n  if (typeof url !== 'string') {\n    throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n  }\n\n  /*\n   * Copy chrome, IE, opera backslash-handling behavior.\n   * Back slashes before the query string get converted to forward slashes\n   * See: https://code.google.com/p/chromium/issues/detail?id=25916\n   */\n  var queryIndex = url.indexOf('?'),\n    splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n    uSplit = url.split(splitter),\n    slashRegex = /\\\\/g;\n  uSplit[0] = uSplit[0].replace(slashRegex, '/');\n  url = uSplit.join(splitter);\n\n  var rest = url;\n\n  /*\n   * trim before proceeding.\n   * This is to support parse stuff like \"  http://foo.com  \\n\"\n   */\n  rest = rest.trim();\n\n  if (!slashesDenoteHost && url.split('#').length === 1) {\n    // Try fast path regexp\n    var simplePath = simplePathPattern.exec(rest);\n    if (simplePath) {\n      this.path = rest;\n      this.href = rest;\n      this.pathname = simplePath[1];\n      if (simplePath[2]) {\n        this.search = simplePath[2];\n        if (parseQueryString) {\n          this.query = querystring.parse(this.search.substr(1));\n        } else {\n          this.query = this.search.substr(1);\n        }\n      } else if (parseQueryString) {\n        this.search = '';\n        this.query = {};\n      }\n      return this;\n    }\n  }\n\n  var proto = protocolPattern.exec(rest);\n  if (proto) {\n    proto = proto[0];\n    var lowerProto = proto.toLowerCase();\n    this.protocol = lowerProto;\n    rest = rest.substr(proto.length);\n  }\n\n  /*\n   * figure out if it's got a host\n   * user@server is *always* interpreted as a hostname, and url\n   * resolution will treat //foo/bar as host=foo,path=bar because that's\n   * how the browser resolves relative URLs.\n   */\n  if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@/]+@[^@/]+/)) {\n    var slashes = rest.substr(0, 2) === '//';\n    if (slashes && !(proto && hostlessProtocol[proto])) {\n      rest = rest.substr(2);\n      this.slashes = true;\n    }\n  }\n\n  if (!hostlessProtocol[proto] && (slashes || (proto && !slashedProtocol[proto]))) {\n\n    /*\n     * there's a hostname.\n     * the first instance of /, ?, ;, or # ends the host.\n     *\n     * If there is an @ in the hostname, then non-host chars *are* allowed\n     * to the left of the last @ sign, unless some host-ending character\n     * comes *before* the @-sign.\n     * URLs are obnoxious.\n     *\n     * ex:\n     * http://a@b@c/ => user:a@b host:c\n     * http://a@b?@c => user:a host:c path:/?@c\n     */\n\n    /*\n     * v0.12 TODO(isaacs): This is not quite how Chrome does things.\n     * Review our test case against browsers more comprehensively.\n     */\n\n    // find the first instance of any hostEndingChars\n    var hostEnd = -1;\n    for (var i = 0; i < hostEndingChars.length; i++) {\n      var hec = rest.indexOf(hostEndingChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n    }\n\n    /*\n     * at this point, either we have an explicit point where the\n     * auth portion cannot go past, or the last @ char is the decider.\n     */\n    var auth, atSign;\n    if (hostEnd === -1) {\n      // atSign can be anywhere.\n      atSign = rest.lastIndexOf('@');\n    } else {\n      /*\n       * atSign must be in auth portion.\n       * http://a@b/c@d => host:b auth:a path:/c@d\n       */\n      atSign = rest.lastIndexOf('@', hostEnd);\n    }\n\n    /*\n     * Now we have a portion which is definitely the auth.\n     * Pull that off.\n     */\n    if (atSign !== -1) {\n      auth = rest.slice(0, atSign);\n      rest = rest.slice(atSign + 1);\n      this.auth = decodeURIComponent(auth);\n    }\n\n    // the host is the remaining to the left of the first non-host char\n    hostEnd = -1;\n    for (var i = 0; i < nonHostChars.length; i++) {\n      var hec = rest.indexOf(nonHostChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n    }\n    // if we still have not hit it, then the entire thing is a host.\n    if (hostEnd === -1) { hostEnd = rest.length; }\n\n    this.host = rest.slice(0, hostEnd);\n    rest = rest.slice(hostEnd);\n\n    // pull out port.\n    this.parseHost();\n\n    /*\n     * we've indicated that there is a hostname,\n     * so even if it's empty, it has to be present.\n     */\n    this.hostname = this.hostname || '';\n\n    /*\n     * if hostname begins with [ and ends with ]\n     * assume that it's an IPv6 address.\n     */\n    var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']';\n\n    // validate a little.\n    if (!ipv6Hostname) {\n      var hostparts = this.hostname.split(/\\./);\n      for (var i = 0, l = hostparts.length; i < l; i++) {\n        var part = hostparts[i];\n        if (!part) { continue; }\n        if (!part.match(hostnamePartPattern)) {\n          var newpart = '';\n          for (var j = 0, k = part.length; j < k; j++) {\n            if (part.charCodeAt(j) > 127) {\n              /*\n               * we replace non-ASCII char with a temporary placeholder\n               * we need this to make sure size of hostname is not\n               * broken by replacing non-ASCII by nothing\n               */\n              newpart += 'x';\n            } else {\n              newpart += part[j];\n            }\n          }\n          // we test again with ASCII char only\n          if (!newpart.match(hostnamePartPattern)) {\n            var validParts = hostparts.slice(0, i);\n            var notHost = hostparts.slice(i + 1);\n            var bit = part.match(hostnamePartStart);\n            if (bit) {\n              validParts.push(bit[1]);\n              notHost.unshift(bit[2]);\n            }\n            if (notHost.length) {\n              rest = '/' + notHost.join('.') + rest;\n            }\n            this.hostname = validParts.join('.');\n            break;\n          }\n        }\n      }\n    }\n\n    if (this.hostname.length > hostnameMaxLen) {\n      this.hostname = '';\n    } else {\n      // hostnames are always lower case.\n      this.hostname = this.hostname.toLowerCase();\n    }\n\n    if (!ipv6Hostname) {\n      /*\n       * IDNA Support: Returns a punycoded representation of \"domain\".\n       * It only converts parts of the domain name that\n       * have non-ASCII characters, i.e. it doesn't matter if\n       * you call it with a domain that already is ASCII-only.\n       */\n      this.hostname = punycode.toASCII(this.hostname);\n    }\n\n    var p = this.port ? ':' + this.port : '';\n    var h = this.hostname || '';\n    this.host = h + p;\n    this.href += this.host;\n\n    /*\n     * strip [ and ] from the hostname\n     * the host field still retains them, though\n     */\n    if (ipv6Hostname) {\n      this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n      if (rest[0] !== '/') {\n        rest = '/' + rest;\n      }\n    }\n  }\n\n  /*\n   * now rest is set to the post-host stuff.\n   * chop off any delim chars.\n   */\n  if (!unsafeProtocol[lowerProto]) {\n\n    /*\n     * First, make 100% sure that any \"autoEscape\" chars get\n     * escaped, even if encodeURIComponent doesn't think they\n     * need to be.\n     */\n    for (var i = 0, l = autoEscape.length; i < l; i++) {\n      var ae = autoEscape[i];\n      if (rest.indexOf(ae) === -1) { continue; }\n      var esc = encodeURIComponent(ae);\n      if (esc === ae) {\n        esc = escape(ae);\n      }\n      rest = rest.split(ae).join(esc);\n    }\n  }\n\n  // chop off from the tail first.\n  var hash = rest.indexOf('#');\n  if (hash !== -1) {\n    // got a fragment string.\n    this.hash = rest.substr(hash);\n    rest = rest.slice(0, hash);\n  }\n  var qm = rest.indexOf('?');\n  if (qm !== -1) {\n    this.search = rest.substr(qm);\n    this.query = rest.substr(qm + 1);\n    if (parseQueryString) {\n      this.query = querystring.parse(this.query);\n    }\n    rest = rest.slice(0, qm);\n  } else if (parseQueryString) {\n    // no query string, but parseQueryString still requested\n    this.search = '';\n    this.query = {};\n  }\n  if (rest) { this.pathname = rest; }\n  if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n    this.pathname = '/';\n  }\n\n  // to support http.request\n  if (this.pathname || this.search) {\n    var p = this.pathname || '';\n    var s = this.search || '';\n    this.path = p + s;\n  }\n\n  // finally, reconstruct the href based on what has been validated.\n  this.href = this.format();\n  return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n  /*\n   * ensure it's an object, and not a string url.\n   * If it's an obj, this is a no-op.\n   * this way, you can call url_format() on strings\n   * to clean up potentially wonky urls.\n   */\n  if (typeof obj === 'string') { obj = urlParse(obj); }\n  if (!(obj instanceof Url)) { return Url.prototype.format.call(obj); }\n  return obj.format();\n}\n\nUrl.prototype.format = function () {\n  var auth = this.auth || '';\n  if (auth) {\n    auth = encodeURIComponent(auth);\n    auth = auth.replace(/%3A/i, ':');\n    auth += '@';\n  }\n\n  var protocol = this.protocol || '',\n    pathname = this.pathname || '',\n    hash = this.hash || '',\n    host = false,\n    query = '';\n\n  if (this.host) {\n    host = auth + this.host;\n  } else if (this.hostname) {\n    host = auth + (this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']');\n    if (this.port) {\n      host += ':' + this.port;\n    }\n  }\n\n  if (this.query && typeof this.query === 'object' && Object.keys(this.query).length) {\n    query = querystring.stringify(this.query, {\n      arrayFormat: 'repeat',\n      addQueryPrefix: false\n    });\n  }\n\n  var search = this.search || (query && ('?' + query)) || '';\n\n  if (protocol && protocol.substr(-1) !== ':') { protocol += ':'; }\n\n  /*\n   * only the slashedProtocols get the //.  Not mailto:, xmpp:, etc.\n   * unless they had them to begin with.\n   */\n  if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {\n    host = '//' + (host || '');\n    if (pathname && pathname.charAt(0) !== '/') { pathname = '/' + pathname; }\n  } else if (!host) {\n    host = '';\n  }\n\n  if (hash && hash.charAt(0) !== '#') { hash = '#' + hash; }\n  if (search && search.charAt(0) !== '?') { search = '?' + search; }\n\n  pathname = pathname.replace(/[?#]/g, function (match) {\n    return encodeURIComponent(match);\n  });\n  search = search.replace('#', '%23');\n\n  return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n  return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function (relative) {\n  return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n  if (!source) { return relative; }\n  return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function (relative) {\n  if (typeof relative === 'string') {\n    var rel = new Url();\n    rel.parse(relative, false, true);\n    relative = rel;\n  }\n\n  var result = new Url();\n  var tkeys = Object.keys(this);\n  for (var tk = 0; tk < tkeys.length; tk++) {\n    var tkey = tkeys[tk];\n    result[tkey] = this[tkey];\n  }\n\n  /*\n   * hash is always overridden, no matter what.\n   * even href=\"\" will remove it.\n   */\n  result.hash = relative.hash;\n\n  // if the relative url is empty, then there's nothing left to do here.\n  if (relative.href === '') {\n    result.href = result.format();\n    return result;\n  }\n\n  // hrefs like //foo/bar always cut to the protocol.\n  if (relative.slashes && !relative.protocol) {\n    // take everything except the protocol from relative\n    var rkeys = Object.keys(relative);\n    for (var rk = 0; rk < rkeys.length; rk++) {\n      var rkey = rkeys[rk];\n      if (rkey !== 'protocol') { result[rkey] = relative[rkey]; }\n    }\n\n    // urlParse appends trailing / to urls like http://www.example.com\n    if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n      result.pathname = '/';\n      result.path = result.pathname;\n    }\n\n    result.href = result.format();\n    return result;\n  }\n\n  if (relative.protocol && relative.protocol !== result.protocol) {\n    /*\n     * if it's a known url protocol, then changing\n     * the protocol does weird things\n     * first, if it's not file:, then we MUST have a host,\n     * and if there was a path\n     * to begin with, then we MUST have a path.\n     * if it is file:, then the host is dropped,\n     * because that's known to be hostless.\n     * anything else is assumed to be absolute.\n     */\n    if (!slashedProtocol[relative.protocol]) {\n      var keys = Object.keys(relative);\n      for (var v = 0; v < keys.length; v++) {\n        var k = keys[v];\n        result[k] = relative[k];\n      }\n      result.href = result.format();\n      return result;\n    }\n\n    result.protocol = relative.protocol;\n    if (!relative.host && !hostlessProtocol[relative.protocol]) {\n      var relPath = (relative.pathname || '').split('/');\n      while (relPath.length && !(relative.host = relPath.shift())) { }\n      if (!relative.host) { relative.host = ''; }\n      if (!relative.hostname) { relative.hostname = ''; }\n      if (relPath[0] !== '') { relPath.unshift(''); }\n      if (relPath.length < 2) { relPath.unshift(''); }\n      result.pathname = relPath.join('/');\n    } else {\n      result.pathname = relative.pathname;\n    }\n    result.search = relative.search;\n    result.query = relative.query;\n    result.host = relative.host || '';\n    result.auth = relative.auth;\n    result.hostname = relative.hostname || relative.host;\n    result.port = relative.port;\n    // to support http.request\n    if (result.pathname || result.search) {\n      var p = result.pathname || '';\n      var s = result.search || '';\n      result.path = p + s;\n    }\n    result.slashes = result.slashes || relative.slashes;\n    result.href = result.format();\n    return result;\n  }\n\n  var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/',\n    isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n    mustEndAbs = isRelAbs || isSourceAbs || (result.host && relative.pathname),\n    removeAllDots = mustEndAbs,\n    srcPath = result.pathname && result.pathname.split('/') || [],\n    relPath = relative.pathname && relative.pathname.split('/') || [],\n    psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n  /*\n   * if the url is a non-slashed url, then relative\n   * links like ../.. should be able\n   * to crawl up to the hostname, as well.  This is strange.\n   * result.protocol has already been set by now.\n   * Later on, put the first path part into the host field.\n   */\n  if (psychotic) {\n    result.hostname = '';\n    result.port = null;\n    if (result.host) {\n      if (srcPath[0] === '') { srcPath[0] = result.host; } else { srcPath.unshift(result.host); }\n    }\n    result.host = '';\n    if (relative.protocol) {\n      relative.hostname = null;\n      relative.port = null;\n      if (relative.host) {\n        if (relPath[0] === '') { relPath[0] = relative.host; } else { relPath.unshift(relative.host); }\n      }\n      relative.host = null;\n    }\n    mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n  }\n\n  if (isRelAbs) {\n    // it's absolute.\n    result.host = relative.host || relative.host === '' ? relative.host : result.host;\n    result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n    result.search = relative.search;\n    result.query = relative.query;\n    srcPath = relPath;\n    // fall through to the dot-handling below.\n  } else if (relPath.length) {\n    /*\n     * it's relative\n     * throw away the existing file, and take the new path instead.\n     */\n    if (!srcPath) { srcPath = []; }\n    srcPath.pop();\n    srcPath = srcPath.concat(relPath);\n    result.search = relative.search;\n    result.query = relative.query;\n  } else if (relative.search != null) {\n    /*\n     * just pull out the search.\n     * like href='?foo'.\n     * Put this after the other two cases because it simplifies the booleans\n     */\n    if (psychotic) {\n      result.host = srcPath.shift();\n      result.hostname = result.host;\n      /*\n       * occationaly the auth can get stuck only in host\n       * this especially happens in cases like\n       * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n       */\n      var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n      if (authInHost) {\n        result.auth = authInHost.shift();\n        result.hostname = authInHost.shift();\n        result.host = result.hostname;\n      }\n    }\n    result.search = relative.search;\n    result.query = relative.query;\n    // to support http.request\n    if (result.pathname !== null || result.search !== null) {\n      result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n    }\n    result.href = result.format();\n    return result;\n  }\n\n  if (!srcPath.length) {\n    /*\n     * no path at all.  easy.\n     * we've already handled the other stuff above.\n     */\n    result.pathname = null;\n    // to support http.request\n    if (result.search) {\n      result.path = '/' + result.search;\n    } else {\n      result.path = null;\n    }\n    result.href = result.format();\n    return result;\n  }\n\n  /*\n   * if a url ENDs in . or .., then it must get a trailing slash.\n   * however, if it ends in anything else non-slashy,\n   * then it must NOT get a trailing slash.\n   */\n  var last = srcPath.slice(-1)[0];\n  var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === '';\n\n  /*\n   * strip single dots, resolve double dots to parent dir\n   * if the path tries to go above the root, `up` ends up > 0\n   */\n  var up = 0;\n  for (var i = srcPath.length; i >= 0; i--) {\n    last = srcPath[i];\n    if (last === '.') {\n      srcPath.splice(i, 1);\n    } else if (last === '..') {\n      srcPath.splice(i, 1);\n      up++;\n    } else if (up) {\n      srcPath.splice(i, 1);\n      up--;\n    }\n  }\n\n  // if the path is allowed to go above the root, restore leading ..s\n  if (!mustEndAbs && !removeAllDots) {\n    for (; up--; up) {\n      srcPath.unshift('..');\n    }\n  }\n\n  if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n    srcPath.unshift('');\n  }\n\n  if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n    srcPath.push('');\n  }\n\n  var isAbsolute = srcPath[0] === '' || (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n  // put the host back\n  if (psychotic) {\n    result.hostname = isAbsolute ? '' : srcPath.length ? srcPath.shift() : '';\n    result.host = result.hostname;\n    /*\n     * occationaly the auth can get stuck only in host\n     * this especially happens in cases like\n     * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n     */\n    var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n    if (authInHost) {\n      result.auth = authInHost.shift();\n      result.hostname = authInHost.shift();\n      result.host = result.hostname;\n    }\n  }\n\n  mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n  if (mustEndAbs && !isAbsolute) {\n    srcPath.unshift('');\n  }\n\n  if (srcPath.length > 0) {\n    result.pathname = srcPath.join('/');\n  } else {\n    result.pathname = null;\n    result.path = null;\n  }\n\n  // to support request.http\n  if (result.pathname !== null || result.search !== null) {\n    result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n  }\n  result.auth = relative.auth || result.auth;\n  result.slashes = result.slashes || relative.slashes;\n  result.href = result.format();\n  return result;\n};\n\nUrl.prototype.parseHost = function () {\n  var host = this.host;\n  var port = portPattern.exec(host);\n  if (port) {\n    port = port[0];\n    if (port !== ':') {\n      this.port = port.substr(1);\n    }\n    host = host.substr(0, host.length - port.length);\n  }\n  if (host) { this.hostname = host; }\n};\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n","module.exports = function isBuffer(arg) {\n  return arg && typeof arg === 'object'\n    && typeof arg.copy === 'function'\n    && typeof arg.fill === 'function'\n    && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n  return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n  var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n  var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n  if (typeof value !== 'object') {\n    return false;\n  }\n  try {\n    prototypeValueOf(value);\n    return true;\n  } catch(e) {\n    return false;\n  }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n  if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n    return ArrayBuffer.isView(value);\n  }\n\n  return (\n    isTypedArray(value) ||\n    isDataView(value)\n  );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n  return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n  return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n  return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n  return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n  return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n  return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n  return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n  return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n  return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n  return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n  return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n  return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n  typeof Map !== 'undefined' &&\n  isMapToString(new Map())\n);\n\nfunction isMap(value) {\n  if (typeof Map === 'undefined') {\n    return false;\n  }\n\n  return isMapToString.working\n    ? isMapToString(value)\n    : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n  return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n  typeof Set !== 'undefined' &&\n  isSetToString(new Set())\n);\nfunction isSet(value) {\n  if (typeof Set === 'undefined') {\n    return false;\n  }\n\n  return isSetToString.working\n    ? isSetToString(value)\n    : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n  return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n  typeof WeakMap !== 'undefined' &&\n  isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n  if (typeof WeakMap === 'undefined') {\n    return false;\n  }\n\n  return isWeakMapToString.working\n    ? isWeakMapToString(value)\n    : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n  return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n  typeof WeakSet !== 'undefined' &&\n  isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n  return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n  return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n  typeof ArrayBuffer !== 'undefined' &&\n  isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n  if (typeof ArrayBuffer === 'undefined') {\n    return false;\n  }\n\n  return isArrayBufferToString.working\n    ? isArrayBufferToString(value)\n    : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n  return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n  typeof ArrayBuffer !== 'undefined' &&\n  typeof DataView !== 'undefined' &&\n  isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n  if (typeof DataView === 'undefined') {\n    return false;\n  }\n\n  return isDataViewToString.working\n    ? isDataViewToString(value)\n    : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n  return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n  if (typeof SharedArrayBufferCopy === 'undefined') {\n    return false;\n  }\n\n  if (typeof isSharedArrayBufferToString.working === 'undefined') {\n    isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n  }\n\n  return isSharedArrayBufferToString.working\n    ? isSharedArrayBufferToString(value)\n    : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n  return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n  return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n  return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n  return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n  return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n  return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n  return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n  return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n  return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n  return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n  return (\n    isNumberObject(value) ||\n    isStringObject(value) ||\n    isBooleanObject(value) ||\n    isBigIntObject(value) ||\n    isSymbolObject(value)\n  );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n  return typeof Uint8Array !== 'undefined' && (\n    isArrayBuffer(value) ||\n    isSharedArrayBuffer(value)\n  );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n  Object.defineProperty(exports, method, {\n    enumerable: false,\n    value: function() {\n      throw new Error(method + ' is not supported in userland');\n    }\n  });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n  function getOwnPropertyDescriptors(obj) {\n    var keys = Object.keys(obj);\n    var descriptors = {};\n    for (var i = 0; i < keys.length; i++) {\n      descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n    }\n    return descriptors;\n  };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n  if (!isString(f)) {\n    var objects = [];\n    for (var i = 0; i < arguments.length; i++) {\n      objects.push(inspect(arguments[i]));\n    }\n    return objects.join(' ');\n  }\n\n  var i = 1;\n  var args = arguments;\n  var len = args.length;\n  var str = String(f).replace(formatRegExp, function(x) {\n    if (x === '%%') return '%';\n    if (i >= len) return x;\n    switch (x) {\n      case '%s': return String(args[i++]);\n      case '%d': return Number(args[i++]);\n      case '%j':\n        try {\n          return JSON.stringify(args[i++]);\n        } catch (_) {\n          return '[Circular]';\n        }\n      default:\n        return x;\n    }\n  });\n  for (var x = args[i]; i < len; x = args[++i]) {\n    if (isNull(x) || !isObject(x)) {\n      str += ' ' + x;\n    } else {\n      str += ' ' + inspect(x);\n    }\n  }\n  return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n  if (typeof process !== 'undefined' && process.noDeprecation === true) {\n    return fn;\n  }\n\n  // Allow for deprecating things in the process of starting up.\n  if (typeof process === 'undefined') {\n    return function() {\n      return exports.deprecate(fn, msg).apply(this, arguments);\n    };\n  }\n\n  var warned = false;\n  function deprecated() {\n    if (!warned) {\n      if (process.throwDeprecation) {\n        throw new Error(msg);\n      } else if (process.traceDeprecation) {\n        console.trace(msg);\n      } else {\n        console.error(msg);\n      }\n      warned = true;\n    }\n    return fn.apply(this, arguments);\n  }\n\n  return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n  var debugEnv = process.env.NODE_DEBUG;\n  debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n    .replace(/\\*/g, '.*')\n    .replace(/,/g, '$|^')\n    .toUpperCase();\n  debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n  set = set.toUpperCase();\n  if (!debugs[set]) {\n    if (debugEnvRegex.test(set)) {\n      var pid = process.pid;\n      debugs[set] = function() {\n        var msg = exports.format.apply(exports, arguments);\n        console.error('%s %d: %s', set, pid, msg);\n      };\n    } else {\n      debugs[set] = function() {};\n    }\n  }\n  return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n  // default options\n  var ctx = {\n    seen: [],\n    stylize: stylizeNoColor\n  };\n  // legacy...\n  if (arguments.length >= 3) ctx.depth = arguments[2];\n  if (arguments.length >= 4) ctx.colors = arguments[3];\n  if (isBoolean(opts)) {\n    // legacy...\n    ctx.showHidden = opts;\n  } else if (opts) {\n    // got an \"options\" object\n    exports._extend(ctx, opts);\n  }\n  // set default options\n  if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n  if (isUndefined(ctx.depth)) ctx.depth = 2;\n  if (isUndefined(ctx.colors)) ctx.colors = false;\n  if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n  if (ctx.colors) ctx.stylize = stylizeWithColor;\n  return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n  'bold' : [1, 22],\n  'italic' : [3, 23],\n  'underline' : [4, 24],\n  'inverse' : [7, 27],\n  'white' : [37, 39],\n  'grey' : [90, 39],\n  'black' : [30, 39],\n  'blue' : [34, 39],\n  'cyan' : [36, 39],\n  'green' : [32, 39],\n  'magenta' : [35, 39],\n  'red' : [31, 39],\n  'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n  'special': 'cyan',\n  'number': 'yellow',\n  'boolean': 'yellow',\n  'undefined': 'grey',\n  'null': 'bold',\n  'string': 'green',\n  'date': 'magenta',\n  // \"name\": intentionally not styling\n  'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n  var style = inspect.styles[styleType];\n\n  if (style) {\n    return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n           '\\u001b[' + inspect.colors[style][1] + 'm';\n  } else {\n    return str;\n  }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n  return str;\n}\n\n\nfunction arrayToHash(array) {\n  var hash = {};\n\n  array.forEach(function(val, idx) {\n    hash[val] = true;\n  });\n\n  return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n  // Provide a hook for user-specified inspect functions.\n  // Check that value is an object with an inspect function on it\n  if (ctx.customInspect &&\n      value &&\n      isFunction(value.inspect) &&\n      // Filter out the util module, it's inspect function is special\n      value.inspect !== exports.inspect &&\n      // Also filter out any prototype objects using the circular check.\n      !(value.constructor && value.constructor.prototype === value)) {\n    var ret = value.inspect(recurseTimes, ctx);\n    if (!isString(ret)) {\n      ret = formatValue(ctx, ret, recurseTimes);\n    }\n    return ret;\n  }\n\n  // Primitive types cannot have properties\n  var primitive = formatPrimitive(ctx, value);\n  if (primitive) {\n    return primitive;\n  }\n\n  // Look up the keys of the object.\n  var keys = Object.keys(value);\n  var visibleKeys = arrayToHash(keys);\n\n  if (ctx.showHidden) {\n    keys = Object.getOwnPropertyNames(value);\n  }\n\n  // IE doesn't make error fields non-enumerable\n  // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n  if (isError(value)\n      && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n    return formatError(value);\n  }\n\n  // Some type of object without properties can be shortcutted.\n  if (keys.length === 0) {\n    if (isFunction(value)) {\n      var name = value.name ? ': ' + value.name : '';\n      return ctx.stylize('[Function' + name + ']', 'special');\n    }\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    }\n    if (isDate(value)) {\n      return ctx.stylize(Date.prototype.toString.call(value), 'date');\n    }\n    if (isError(value)) {\n      return formatError(value);\n    }\n  }\n\n  var base = '', array = false, braces = ['{', '}'];\n\n  // Make Array say that they are Array\n  if (isArray(value)) {\n    array = true;\n    braces = ['[', ']'];\n  }\n\n  // Make functions say that they are functions\n  if (isFunction(value)) {\n    var n = value.name ? ': ' + value.name : '';\n    base = ' [Function' + n + ']';\n  }\n\n  // Make RegExps say that they are RegExps\n  if (isRegExp(value)) {\n    base = ' ' + RegExp.prototype.toString.call(value);\n  }\n\n  // Make dates with properties first say the date\n  if (isDate(value)) {\n    base = ' ' + Date.prototype.toUTCString.call(value);\n  }\n\n  // Make error with message first say the error\n  if (isError(value)) {\n    base = ' ' + formatError(value);\n  }\n\n  if (keys.length === 0 && (!array || value.length == 0)) {\n    return braces[0] + base + braces[1];\n  }\n\n  if (recurseTimes < 0) {\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    } else {\n      return ctx.stylize('[Object]', 'special');\n    }\n  }\n\n  ctx.seen.push(value);\n\n  var output;\n  if (array) {\n    output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n  } else {\n    output = keys.map(function(key) {\n      return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n    });\n  }\n\n  ctx.seen.pop();\n\n  return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n  if (isUndefined(value))\n    return ctx.stylize('undefined', 'undefined');\n  if (isString(value)) {\n    var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n                                             .replace(/'/g, \"\\\\'\")\n                                             .replace(/\\\\\"/g, '\"') + '\\'';\n    return ctx.stylize(simple, 'string');\n  }\n  if (isNumber(value))\n    return ctx.stylize('' + value, 'number');\n  if (isBoolean(value))\n    return ctx.stylize('' + value, 'boolean');\n  // For some reason typeof null is \"object\", so special case here.\n  if (isNull(value))\n    return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n  return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n  var output = [];\n  for (var i = 0, l = value.length; i < l; ++i) {\n    if (hasOwnProperty(value, String(i))) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          String(i), true));\n    } else {\n      output.push('');\n    }\n  }\n  keys.forEach(function(key) {\n    if (!key.match(/^\\d+$/)) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          key, true));\n    }\n  });\n  return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n  var name, str, desc;\n  desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n  if (desc.get) {\n    if (desc.set) {\n      str = ctx.stylize('[Getter/Setter]', 'special');\n    } else {\n      str = ctx.stylize('[Getter]', 'special');\n    }\n  } else {\n    if (desc.set) {\n      str = ctx.stylize('[Setter]', 'special');\n    }\n  }\n  if (!hasOwnProperty(visibleKeys, key)) {\n    name = '[' + key + ']';\n  }\n  if (!str) {\n    if (ctx.seen.indexOf(desc.value) < 0) {\n      if (isNull(recurseTimes)) {\n        str = formatValue(ctx, desc.value, null);\n      } else {\n        str = formatValue(ctx, desc.value, recurseTimes - 1);\n      }\n      if (str.indexOf('\\n') > -1) {\n        if (array) {\n          str = str.split('\\n').map(function(line) {\n            return '  ' + line;\n          }).join('\\n').slice(2);\n        } else {\n          str = '\\n' + str.split('\\n').map(function(line) {\n            return '   ' + line;\n          }).join('\\n');\n        }\n      }\n    } else {\n      str = ctx.stylize('[Circular]', 'special');\n    }\n  }\n  if (isUndefined(name)) {\n    if (array && key.match(/^\\d+$/)) {\n      return str;\n    }\n    name = JSON.stringify('' + key);\n    if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n      name = name.slice(1, -1);\n      name = ctx.stylize(name, 'name');\n    } else {\n      name = name.replace(/'/g, \"\\\\'\")\n                 .replace(/\\\\\"/g, '\"')\n                 .replace(/(^\"|\"$)/g, \"'\");\n      name = ctx.stylize(name, 'string');\n    }\n  }\n\n  return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n  var numLinesEst = 0;\n  var length = output.reduce(function(prev, cur) {\n    numLinesEst++;\n    if (cur.indexOf('\\n') >= 0) numLinesEst++;\n    return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n  }, 0);\n\n  if (length > 60) {\n    return braces[0] +\n           (base === '' ? '' : base + '\\n ') +\n           ' ' +\n           output.join(',\\n  ') +\n           ' ' +\n           braces[1];\n  }\n\n  return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n  return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n  return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n  return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n  return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n  return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n  return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n  return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n  return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n  return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n  return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n  return isObject(e) &&\n      (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n  return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n  return arg === null ||\n         typeof arg === 'boolean' ||\n         typeof arg === 'number' ||\n         typeof arg === 'string' ||\n         typeof arg === 'symbol' ||  // ES6 symbol\n         typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n  return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n  return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n              'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n  var d = new Date();\n  var time = [pad(d.getHours()),\n              pad(d.getMinutes()),\n              pad(d.getSeconds())].join(':');\n  return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n  console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n *     prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n  // Don't do anything if add isn't an object\n  if (!add || !isObject(add)) return origin;\n\n  var keys = Object.keys(add);\n  var i = keys.length;\n  while (i--) {\n    origin[keys[i]] = add[keys[i]];\n  }\n  return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n  return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n  if (typeof original !== 'function')\n    throw new TypeError('The \"original\" argument must be of type Function');\n\n  if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n    var fn = original[kCustomPromisifiedSymbol];\n    if (typeof fn !== 'function') {\n      throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n    }\n    Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n      value: fn, enumerable: false, writable: false, configurable: true\n    });\n    return fn;\n  }\n\n  function fn() {\n    var promiseResolve, promiseReject;\n    var promise = new Promise(function (resolve, reject) {\n      promiseResolve = resolve;\n      promiseReject = reject;\n    });\n\n    var args = [];\n    for (var i = 0; i < arguments.length; i++) {\n      args.push(arguments[i]);\n    }\n    args.push(function (err, value) {\n      if (err) {\n        promiseReject(err);\n      } else {\n        promiseResolve(value);\n      }\n    });\n\n    try {\n      original.apply(this, args);\n    } catch (err) {\n      promiseReject(err);\n    }\n\n    return promise;\n  }\n\n  Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n  if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n    value: fn, enumerable: false, writable: false, configurable: true\n  });\n  return Object.defineProperties(\n    fn,\n    getOwnPropertyDescriptors(original)\n  );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n  // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n  // Because `null` is a special error value in callbacks which means \"no error\n  // occurred\", we error-wrap so the callback consumer can distinguish between\n  // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n  if (!reason) {\n    var newReason = new Error('Promise was rejected with a falsy value');\n    newReason.reason = reason;\n    reason = newReason;\n  }\n  return cb(reason);\n}\n\nfunction callbackify(original) {\n  if (typeof original !== 'function') {\n    throw new TypeError('The \"original\" argument must be of type Function');\n  }\n\n  // We DO NOT return the promise as it gives the user a false sense that\n  // the promise is actually somehow related to the callback's execution\n  // and that the callback throwing will reject the promise.\n  function callbackified() {\n    var args = [];\n    for (var i = 0; i < arguments.length; i++) {\n      args.push(arguments[i]);\n    }\n\n    var maybeCb = args.pop();\n    if (typeof maybeCb !== 'function') {\n      throw new TypeError('The last argument must be of type Function');\n    }\n    var self = this;\n    var cb = function() {\n      return maybeCb.apply(self, arguments);\n    };\n    // In true node style we process the callback on `nextTick` with all the\n    // implications (stack, `uncaughtException`, `async_hooks`)\n    original.apply(this, args)\n      .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n            function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n  }\n\n  Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n  Object.defineProperties(callbackified,\n                          getOwnPropertyDescriptors(original));\n  return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bound');\nvar gOPD = require('gopd');\nvar getProto = require('get-proto');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\n\n/** @type {(array: readonly T[], value: unknown) => number} */\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {import('./types').Getter} Getter */\n/** @type {import('./types').Cache} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getProto) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr && getProto) {\n\t\t\tvar proto = getProto(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor && proto) {\n\t\t\t\tvar superProto = getProto(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\tcache[\n\t\t\t\t/** @type {`$${import('.').TypedArrayName}`} */ ('$' + typedArray)\n\t\t\t] = /** @type {import('./types').BoundSlice | import('./types').BoundSet} */ (\n\t\t\t\t// @ts-expect-error TODO FIXME\n\t\t\t\tcallBind(fn)\n\t\t\t);\n\t\t}\n\t});\n}\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */ (cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n\t\tfunction (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(typedArray, 1));\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */(cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(name, 1));\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\t/** @type {string} */\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n    var target = {}\n\n    for (var i = 0; i < arguments.length; i++) {\n        var source = arguments[i]\n\n        for (var key in source) {\n            if (hasOwnProperty.call(source, key)) {\n                target[key] = source[key]\n            }\n        }\n    }\n\n    return target\n}\n","'use strict';\n\nvar possibleNames = require('possible-typed-array-names');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","const inWebWorker = typeof WorkerGlobalScope !== \"undefined\" &&\n    self instanceof WorkerGlobalScope;\nconst root = inWebWorker\n    ? self\n    : typeof window !== \"undefined\"\n        ? window\n        : globalThis;\nexport const fetch = root.fetch.bind(root);\nexport const Headers = root.Headers;\nexport const Request = root.Request;\nexport const Response = root.Response;\n","export default function getIgnoreAttributesFn(ignoreAttributes) {\n    if (typeof ignoreAttributes === 'function') {\n        return ignoreAttributes\n    }\n    if (Array.isArray(ignoreAttributes)) {\n        return (attrName) => {\n            for (const pattern of ignoreAttributes) {\n                if (typeof pattern === 'string' && attrName === pattern) {\n                    return true\n                }\n                if (pattern instanceof RegExp && pattern.test(attrName)) {\n                    return true\n                }\n            }\n        }\n    }\n    return () => false\n}","'use strict';\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nexport const nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*';\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nexport function getAllMatches(string, regex) {\n  const matches = [];\n  let match = regex.exec(string);\n  while (match) {\n    const allmatches = [];\n    allmatches.startIndex = regex.lastIndex - match[0].length;\n    const len = match.length;\n    for (let index = 0; index < len; index++) {\n      allmatches.push(match[index]);\n    }\n    matches.push(allmatches);\n    match = regex.exec(string);\n  }\n  return matches;\n}\n\nexport const isName = function(string) {\n  const match = regexName.exec(string);\n  return !(match === null || typeof match === 'undefined');\n}\n\nexport function isExist(v) {\n  return typeof v !== 'undefined';\n}\n\nexport function isEmptyObject(obj) {\n  return Object.keys(obj).length === 0;\n}\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexport function merge(target, a, arrayMode) {\n  if (a) {\n    const keys = Object.keys(a); // will return an array of own properties\n    const len = keys.length; //don't make it inline\n    for (let i = 0; i < len; i++) {\n      if (arrayMode === 'strict') {\n        target[keys[i]] = [ a[keys[i]] ];\n      } else {\n        target[keys[i]] = a[keys[i]];\n      }\n    }\n  }\n}\n/* exports.merge =function (b,a){\n  return Object.assign(b,a);\n} */\n\nexport function getValue(v) {\n  if (exports.isExist(v)) {\n    return v;\n  } else {\n    return '';\n  }\n}\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};","'use strict';\n\nimport {getAllMatches, isName} from './util.js';\n\nconst defaultOptions = {\n  allowBooleanAttributes: false, //A tag can have attributes without any value\n  unpairedTags: []\n};\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexport function validate(xmlData, options) {\n  options = Object.assign({}, defaultOptions, options);\n\n  //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n  //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n  //xmlData = xmlData.replace(/()/g,\"\");//Remove DOCTYPE\n  const tags = [];\n  let tagFound = false;\n\n  //indicates that the root tag has been closed (aka. depth 0 has been reached)\n  let reachedRoot = false;\n\n  if (xmlData[0] === '\\ufeff') {\n    // check for byte order mark (BOM)\n    xmlData = xmlData.substr(1);\n  }\n  \n  for (let i = 0; i < xmlData.length; i++) {\n\n    if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n      i+=2;\n      i = readPI(xmlData,i);\n      if (i.err) return i;\n    }else if (xmlData[i] === '<') {\n      //starting of tag\n      //read until you reach to '>' avoiding any '>' in attribute value\n      let tagStartPos = i;\n      i++;\n      \n      if (xmlData[i] === '!') {\n        i = readCommentAndCDATA(xmlData, i);\n        continue;\n      } else {\n        let closingTag = false;\n        if (xmlData[i] === '/') {\n          //closing tag\n          closingTag = true;\n          i++;\n        }\n        //read tagname\n        let tagName = '';\n        for (; i < xmlData.length &&\n          xmlData[i] !== '>' &&\n          xmlData[i] !== ' ' &&\n          xmlData[i] !== '\\t' &&\n          xmlData[i] !== '\\n' &&\n          xmlData[i] !== '\\r'; i++\n        ) {\n          tagName += xmlData[i];\n        }\n        tagName = tagName.trim();\n        //console.log(tagName);\n\n        if (tagName[tagName.length - 1] === '/') {\n          //self closing tag without attributes\n          tagName = tagName.substring(0, tagName.length - 1);\n          //continue;\n          i--;\n        }\n        if (!validateTagName(tagName)) {\n          let msg;\n          if (tagName.trim().length === 0) {\n            msg = \"Invalid space after '<'.\";\n          } else {\n            msg = \"Tag '\"+tagName+\"' is an invalid name.\";\n          }\n          return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n        }\n\n        const result = readAttributeStr(xmlData, i);\n        if (result === false) {\n          return getErrorObject('InvalidAttr', \"Attributes for '\"+tagName+\"' have open quote.\", getLineNumberForPosition(xmlData, i));\n        }\n        let attrStr = result.value;\n        i = result.index;\n\n        if (attrStr[attrStr.length - 1] === '/') {\n          //self closing tag\n          const attrStrStart = i - attrStr.length;\n          attrStr = attrStr.substring(0, attrStr.length - 1);\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid === true) {\n            tagFound = true;\n            //continue; //text may presents after self closing tag\n          } else {\n            //the result from the nested function returns the position of the error within the attribute\n            //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n            //this gives us the absolute index in the entire xml, which we can use to find the line at last\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n          }\n        } else if (closingTag) {\n          if (!result.tagClosed) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n          } else if (attrStr.trim().length > 0) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else if (tags.length === 0) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else {\n            const otg = tags.pop();\n            if (tagName !== otg.tagName) {\n              let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n              return getErrorObject('InvalidTag',\n                \"Expected closing tag '\"+otg.tagName+\"' (opened in line \"+openPos.line+\", col \"+openPos.col+\") instead of closing tag '\"+tagName+\"'.\",\n                getLineNumberForPosition(xmlData, tagStartPos));\n            }\n\n            //when there are no more tags, we reached the root level.\n            if (tags.length == 0) {\n              reachedRoot = true;\n            }\n          }\n        } else {\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid !== true) {\n            //the result from the nested function returns the position of the error within the attribute\n            //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n            //this gives us the absolute index in the entire xml, which we can use to find the line at last\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n          }\n\n          //if the root level has been reached before ...\n          if (reachedRoot === true) {\n            return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n          } else if(options.unpairedTags.indexOf(tagName) !== -1){\n            //don't push into stack\n          } else {\n            tags.push({tagName, tagStartPos});\n          }\n          tagFound = true;\n        }\n\n        //skip tag text value\n        //It may include comments and CDATA value\n        for (i++; i < xmlData.length; i++) {\n          if (xmlData[i] === '<') {\n            if (xmlData[i + 1] === '!') {\n              //comment or CADATA\n              i++;\n              i = readCommentAndCDATA(xmlData, i);\n              continue;\n            } else if (xmlData[i+1] === '?') {\n              i = readPI(xmlData, ++i);\n              if (i.err) return i;\n            } else{\n              break;\n            }\n          } else if (xmlData[i] === '&') {\n            const afterAmp = validateAmpersand(xmlData, i);\n            if (afterAmp == -1)\n              return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n            i = afterAmp;\n          }else{\n            if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n              return getErrorObject('InvalidXml', \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n            }\n          }\n        } //end of reading tag text value\n        if (xmlData[i] === '<') {\n          i--;\n        }\n      }\n    } else {\n      if ( isWhiteSpace(xmlData[i])) {\n        continue;\n      }\n      return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n    }\n  }\n\n  if (!tagFound) {\n    return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n  }else if (tags.length == 1) {\n      return getErrorObject('InvalidTag', \"Unclosed tag '\"+tags[0].tagName+\"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n  }else if (tags.length > 0) {\n      return getErrorObject('InvalidXml', \"Invalid '\"+\n          JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '')+\n          \"' found.\", {line: 1, col: 1});\n  }\n\n  return true;\n};\n\nfunction isWhiteSpace(char){\n  return char === ' ' || char === '\\t' || char === '\\n'  || char === '\\r';\n}\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n  const start = i;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] == '?' || xmlData[i] == ' ') {\n      //tagname\n      const tagname = xmlData.substr(start, i - start);\n      if (i > 5 && tagname === 'xml') {\n        return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n      } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n        //check if valid attribut string\n        i++;\n        break;\n      } else {\n        continue;\n      }\n    }\n  }\n  return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n  if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n    //comment\n    for (i += 3; i < xmlData.length; i++) {\n      if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n        i += 2;\n        break;\n      }\n    }\n  } else if (\n    xmlData.length > i + 8 &&\n    xmlData[i + 1] === 'D' &&\n    xmlData[i + 2] === 'O' &&\n    xmlData[i + 3] === 'C' &&\n    xmlData[i + 4] === 'T' &&\n    xmlData[i + 5] === 'Y' &&\n    xmlData[i + 6] === 'P' &&\n    xmlData[i + 7] === 'E'\n  ) {\n    let angleBracketsCount = 1;\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === '<') {\n        angleBracketsCount++;\n      } else if (xmlData[i] === '>') {\n        angleBracketsCount--;\n        if (angleBracketsCount === 0) {\n          break;\n        }\n      }\n    }\n  } else if (\n    xmlData.length > i + 9 &&\n    xmlData[i + 1] === '[' &&\n    xmlData[i + 2] === 'C' &&\n    xmlData[i + 3] === 'D' &&\n    xmlData[i + 4] === 'A' &&\n    xmlData[i + 5] === 'T' &&\n    xmlData[i + 6] === 'A' &&\n    xmlData[i + 7] === '['\n  ) {\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n        i += 2;\n        break;\n      }\n    }\n  }\n\n  return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n  let attrStr = '';\n  let startChar = '';\n  let tagClosed = false;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n      if (startChar === '') {\n        startChar = xmlData[i];\n      } else if (startChar !== xmlData[i]) {\n        //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n      } else {\n        startChar = '';\n      }\n    } else if (xmlData[i] === '>') {\n      if (startChar === '') {\n        tagClosed = true;\n        break;\n      }\n    }\n    attrStr += xmlData[i];\n  }\n  if (startChar !== '') {\n    return false;\n  }\n\n  return {\n    value: attrStr,\n    index: i,\n    tagClosed: tagClosed\n  };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab  cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n  //console.log(\"start:\"+attrStr+\":end\");\n\n  //if(attrStr.trim().length === 0) return true; //empty string\n\n  const matches = getAllMatches(attrStr, validAttrStrRegxp);\n  const attrNames = {};\n\n  for (let i = 0; i < matches.length; i++) {\n    if (matches[i][1].length === 0) {\n      //nospace before attribute name: a=\"sd\"b=\"saf\"\n      return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(matches[i]))\n    } else if (matches[i][3] !== undefined && matches[i][4] === undefined) {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' is without value.\", getPositionFromMatch(matches[i]));\n    } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n      //independent attribute: ab\n      return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(matches[i]));\n    }\n    /* else if(matches[i][6] === undefined){//attribute without value: ab=\n                    return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n                } */\n    const attrName = matches[i][2];\n    if (!validateAttrName(attrName)) {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(matches[i]));\n    }\n    if (!attrNames.hasOwnProperty(attrName)) {\n      //check for duplicate attribute.\n      attrNames[attrName] = 1;\n    } else {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(matches[i]));\n    }\n  }\n\n  return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n  let re = /\\d/;\n  if (xmlData[i] === 'x') {\n    i++;\n    re = /[\\da-fA-F]/;\n  }\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === ';')\n      return i;\n    if (!xmlData[i].match(re))\n      break;\n  }\n  return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n  // https://www.w3.org/TR/xml/#dt-charref\n  i++;\n  if (xmlData[i] === ';')\n    return -1;\n  if (xmlData[i] === '#') {\n    i++;\n    return validateNumberAmpersand(xmlData, i);\n  }\n  let count = 0;\n  for (; i < xmlData.length; i++, count++) {\n    if (xmlData[i].match(/\\w/) && count < 20)\n      continue;\n    if (xmlData[i] === ';')\n      break;\n    return -1;\n  }\n  return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n  return {\n    err: {\n      code: code,\n      msg: message,\n      line: lineNumber.line || lineNumber,\n      col: lineNumber.col,\n    },\n  };\n}\n\nfunction validateAttrName(attrName) {\n  return isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n  return isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n  const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n  return {\n    line: lines.length,\n\n    // column number is last line's length + 1, because column numbering starts at 1:\n    col: lines[lines.length - 1].length + 1\n  };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n  return match.startIndex + match[1].length;\n}\n","'use strict';\n//parse Empty Node as self closing node\nimport buildFromOrderedJs from './orderedJs2Xml.js';\nimport getIgnoreAttributesFn from \"../ignoreAttributes.js\";\n\nconst defaultOptions = {\n  attributeNamePrefix: '@_',\n  attributesGroupName: false,\n  textNodeName: '#text',\n  ignoreAttributes: true,\n  cdataPropName: false,\n  format: false,\n  indentBy: '  ',\n  suppressEmptyNode: false,\n  suppressUnpairedNode: true,\n  suppressBooleanAttributes: true,\n  tagValueProcessor: function(key, a) {\n    return a;\n  },\n  attributeValueProcessor: function(attrName, a) {\n    return a;\n  },\n  preserveOrder: false,\n  commentPropName: false,\n  unpairedTags: [],\n  entities: [\n    { regex: new RegExp(\"&\", \"g\"), val: \"&\" },//it must be on top\n    { regex: new RegExp(\">\", \"g\"), val: \">\" },\n    { regex: new RegExp(\"<\", \"g\"), val: \"<\" },\n    { regex: new RegExp(\"\\'\", \"g\"), val: \"'\" },\n    { regex: new RegExp(\"\\\"\", \"g\"), val: \""\" }\n  ],\n  processEntities: true,\n  stopNodes: [],\n  // transformTagName: false,\n  // transformAttributeName: false,\n  oneListGroup: false\n};\n\nexport default function Builder(options) {\n  this.options = Object.assign({}, defaultOptions, options);\n  if (this.options.ignoreAttributes === true || this.options.attributesGroupName) {\n    this.isAttribute = function(/*a*/) {\n      return false;\n    };\n  } else {\n    this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes)\n    this.attrPrefixLen = this.options.attributeNamePrefix.length;\n    this.isAttribute = isAttribute;\n  }\n\n  this.processTextOrObjNode = processTextOrObjNode\n\n  if (this.options.format) {\n    this.indentate = indentate;\n    this.tagEndChar = '>\\n';\n    this.newLine = '\\n';\n  } else {\n    this.indentate = function() {\n      return '';\n    };\n    this.tagEndChar = '>';\n    this.newLine = '';\n  }\n}\n\nBuilder.prototype.build = function(jObj) {\n  if(this.options.preserveOrder){\n    return buildFromOrderedJs(jObj, this.options);\n  }else {\n    if(Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1){\n      jObj = {\n        [this.options.arrayNodeName] : jObj\n      }\n    }\n    return this.j2x(jObj, 0, []).val;\n  }\n};\n\nBuilder.prototype.j2x = function(jObj, level, ajPath) {\n  let attrStr = '';\n  let val = '';\n  const jPath = ajPath.join('.')\n  for (let key in jObj) {\n    if(!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n    if (typeof jObj[key] === 'undefined') {\n      // supress undefined node only if it is not an attribute\n      if (this.isAttribute(key)) {\n        val += '';\n      }\n    } else if (jObj[key] === null) {\n      // null attribute should be ignored by the attribute list, but should not cause the tag closing\n      if (this.isAttribute(key)) {\n        val += '';\n      } else if (key === this.options.cdataPropName) {\n        val += '';\n      } else if (key[0] === '?') {\n        val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n      } else {\n        val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n      }\n      // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n    } else if (jObj[key] instanceof Date) {\n      val += this.buildTextValNode(jObj[key], key, '', level);\n    } else if (typeof jObj[key] !== 'object') {\n      //premitive type\n      const attr = this.isAttribute(key);\n      if (attr && !this.ignoreAttributesFn(attr, jPath)) {\n        attrStr += this.buildAttrPairStr(attr, '' + jObj[key]);\n      } else if (!attr) {\n        //tag value\n        if (key === this.options.textNodeName) {\n          let newval = this.options.tagValueProcessor(key, '' + jObj[key]);\n          val += this.replaceEntitiesValue(newval);\n        } else {\n          val += this.buildTextValNode(jObj[key], key, '', level);\n        }\n      }\n    } else if (Array.isArray(jObj[key])) {\n      //repeated nodes\n      const arrLen = jObj[key].length;\n      let listTagVal = \"\";\n      let listTagAttr = \"\";\n      for (let j = 0; j < arrLen; j++) {\n        const item = jObj[key][j];\n        if (typeof item === 'undefined') {\n          // supress undefined node\n        } else if (item === null) {\n          if(key[0] === \"?\") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n          else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n          // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n        } else if (typeof item === 'object') {\n          if(this.options.oneListGroup){\n            const result = this.j2x(item, level + 1, ajPath.concat(key));\n            listTagVal += result.val;\n            if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n              listTagAttr += result.attrStr\n            }\n          }else{\n            listTagVal += this.processTextOrObjNode(item, key, level, ajPath)\n          }\n        } else {\n          if (this.options.oneListGroup) {\n            let textValue = this.options.tagValueProcessor(key, item);\n            textValue = this.replaceEntitiesValue(textValue);\n            listTagVal += textValue;\n          } else {\n            listTagVal += this.buildTextValNode(item, key, '', level);\n          }\n        }\n      }\n      if(this.options.oneListGroup){\n        listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);\n      }\n      val += listTagVal;\n    } else {\n      //nested node\n      if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n        const Ks = Object.keys(jObj[key]);\n        const L = Ks.length;\n        for (let j = 0; j < L; j++) {\n          attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]);\n        }\n      } else {\n        val += this.processTextOrObjNode(jObj[key], key, level, ajPath)\n      }\n    }\n  }\n  return {attrStr: attrStr, val: val};\n};\n\nBuilder.prototype.buildAttrPairStr = function(attrName, val){\n  val = this.options.attributeValueProcessor(attrName, '' + val);\n  val = this.replaceEntitiesValue(val);\n  if (this.options.suppressBooleanAttributes && val === \"true\") {\n    return ' ' + attrName;\n  } else return ' ' + attrName + '=\"' + val + '\"';\n}\n\nfunction processTextOrObjNode (object, key, level, ajPath) {\n  const result = this.j2x(object, level + 1, ajPath.concat(key));\n  if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n    return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n  } else {\n    return this.buildObjectNode(result.val, key, result.attrStr, level);\n  }\n}\n\nBuilder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n  if(val === \"\"){\n    if(key[0] === \"?\") return  this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n    else {\n      return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    }\n  }else{\n\n    let tagEndExp = '' + val + tagEndExp );\n    } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n      return this.indentate(level) + `` + this.newLine;\n    }else {\n      return (\n        this.indentate(level) + '<' + key + attrStr + piClosingChar + this.tagEndChar +\n        val +\n        this.indentate(level) + tagEndExp    );\n    }\n  }\n}\n\nBuilder.prototype.closeTag = function(key){\n  let closeTag = \"\";\n  if(this.options.unpairedTags.indexOf(key) !== -1){ //unpaired\n    if(!this.options.suppressUnpairedNode) closeTag = \"/\"\n  }else if(this.options.suppressEmptyNode){ //empty\n    closeTag = \"/\";\n  }else{\n    closeTag = `>` +  this.newLine;\n  }else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n    return this.indentate(level) + `` +  this.newLine;\n  }else if(key[0] === \"?\") {//PI tag\n    return  this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar; \n  }else{\n    let textValue = this.options.tagValueProcessor(key, val);\n    textValue = this.replaceEntitiesValue(textValue);\n  \n    if( textValue === ''){\n      return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    }else{\n      return this.indentate(level) + '<' + key + attrStr + '>' +\n         textValue +\n        ' 0 && this.options.processEntities){\n    for (let i=0; i 0) {\n        indentation = EOL;\n    }\n    return arrToStr(jArray, options, \"\", indentation);\n}\n\nfunction arrToStr(arr, options, jPath, indentation) {\n    let xmlStr = \"\";\n    let isPreviousElementTag = false;\n\n    for (let i = 0; i < arr.length; i++) {\n        const tagObj = arr[i];\n        const tagName = propName(tagObj);\n        if(tagName === undefined) continue;\n\n        let newJPath = \"\";\n        if (jPath.length === 0) newJPath = tagName\n        else newJPath = `${jPath}.${tagName}`;\n\n        if (tagName === options.textNodeName) {\n            let tagText = tagObj[tagName];\n            if (!isStopNode(newJPath, options)) {\n                tagText = options.tagValueProcessor(tagName, tagText);\n                tagText = replaceEntitiesValue(tagText, options);\n            }\n            if (isPreviousElementTag) {\n                xmlStr += indentation;\n            }\n            xmlStr += tagText;\n            isPreviousElementTag = false;\n            continue;\n        } else if (tagName === options.cdataPropName) {\n            if (isPreviousElementTag) {\n                xmlStr += indentation;\n            }\n            xmlStr += ``;\n            isPreviousElementTag = false;\n            continue;\n        } else if (tagName === options.commentPropName) {\n            xmlStr += indentation + ``;\n            isPreviousElementTag = true;\n            continue;\n        } else if (tagName[0] === \"?\") {\n            const attStr = attr_to_str(tagObj[\":@\"], options);\n            const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n            let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n            piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\"; //remove extra spacing\n            xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr}?>`;\n            isPreviousElementTag = true;\n            continue;\n        }\n        let newIdentation = indentation;\n        if (newIdentation !== \"\") {\n            newIdentation += options.indentBy;\n        }\n        const attStr = attr_to_str(tagObj[\":@\"], options);\n        const tagStart = indentation + `<${tagName}${attStr}`;\n        const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n        if (options.unpairedTags.indexOf(tagName) !== -1) {\n            if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n            else xmlStr += tagStart + \"/>\";\n        } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n            xmlStr += tagStart + \"/>\";\n        } else if (tagValue && tagValue.endsWith(\">\")) {\n            xmlStr += tagStart + `>${tagValue}${indentation}`;\n        } else {\n            xmlStr += tagStart + \">\";\n            if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"`;\n        }\n        isPreviousElementTag = true;\n    }\n\n    return xmlStr;\n}\n\nfunction propName(obj) {\n    const keys = Object.keys(obj);\n    for (let i = 0; i < keys.length; i++) {\n        const key = keys[i];\n        if(!obj.hasOwnProperty(key)) continue;\n        if (key !== \":@\") return key;\n    }\n}\n\nfunction attr_to_str(attrMap, options) {\n    let attrStr = \"\";\n    if (attrMap && !options.ignoreAttributes) {\n        for (let attr in attrMap) {\n            if(!attrMap.hasOwnProperty(attr)) continue;\n            let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n            attrVal = replaceEntitiesValue(attrVal, options);\n            if (attrVal === true && options.suppressBooleanAttributes) {\n                attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n            } else {\n                attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n            }\n        }\n    }\n    return attrStr;\n}\n\nfunction isStopNode(jPath, options) {\n    jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n    let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n    for (let index in options.stopNodes) {\n        if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n    }\n    return false;\n}\n\nfunction replaceEntitiesValue(textValue, options) {\n    if (textValue && textValue.length > 0 && options.processEntities) {\n        for (let i = 0; i < options.entities.length; i++) {\n            const entity = options.entities[i];\n            textValue = textValue.replace(entity.regex, entity.val);\n        }\n    }\n    return textValue;\n}\n","import {isName} from '../util.js';\n\nexport default class DocTypeReader{\n    constructor(processEntities){\n        this.suppressValidationErr = !processEntities;\n    }\n    \n    readDocType(xmlData, i){\n    \n        const entities = {};\n        if( xmlData[i + 3] === 'O' &&\n            xmlData[i + 4] === 'C' &&\n            xmlData[i + 5] === 'T' &&\n            xmlData[i + 6] === 'Y' &&\n            xmlData[i + 7] === 'P' &&\n            xmlData[i + 8] === 'E')\n        {    \n            i = i+9;\n            let angleBracketsCount = 1;\n            let hasBody = false, comment = false;\n            let exp = \"\";\n            for(;i') { //Read tag content\n                    if(comment){\n                        if( xmlData[i - 1] === \"-\" && xmlData[i - 2] === \"-\"){\n                            comment = false;\n                            angleBracketsCount--;\n                        }\n                    }else{\n                        angleBracketsCount--;\n                    }\n                    if (angleBracketsCount === 0) {\n                    break;\n                    }\n                }else if( xmlData[i] === '['){\n                    hasBody = true;\n                }else{\n                    exp += xmlData[i];\n                }\n            }\n            if(angleBracketsCount !== 0){\n                throw new Error(`Unclosed DOCTYPE`);\n            }\n        }else{\n            throw new Error(`Invalid Tag instead of DOCTYPE`);\n        }\n        return {entities, i};\n    }\n    readEntityExp(xmlData, i) {    \n        //External entities are not supported\n        //    \n\n        //Parameter entities are not supported\n        //    \n\n        //Internal entities are supported\n        //    \n\n        // Skip leading whitespace after \n        // \n        // \n        // \n        // \n        \n        // Skip leading whitespace after  {\n    while (index < data.length && /\\s/.test(data[index])) {\n        index++;\n    }\n    return index;\n};\n\n\n\nfunction hasSeq(data, seq,i){\n    for(let j=0;j false,\n    commentPropName: false,\n    unpairedTags: [],\n    processEntities: true,\n    htmlEntities: false,\n    ignoreDeclaration: false,\n    ignorePiTags: false,\n    transformTagName: false,\n    transformAttributeName: false,\n    updateTag: function(tagName, jPath, attrs){\n      return tagName\n    },\n    // skipEmptyListItem: false\n    captureMetaData: false,\n};\n   \nexport const buildOptions = function(options) {\n    return Object.assign({}, defaultOptions, options);\n};\n","'use strict';\n///@ts-check\n\nimport {getAllMatches, isExist} from '../util.js';\nimport xmlNode from './xmlNode.js';\nimport DocTypeReader from './DocTypeReader.js';\nimport toNumber from \"strnum\";\nimport getIgnoreAttributesFn from \"../ignoreAttributes.js\";\n\n// const regx =\n//   '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n//   .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\nexport default class OrderedObjParser{\n  constructor(options){\n    this.options = options;\n    this.currentNode = null;\n    this.tagsNodeStack = [];\n    this.docTypeEntities = {};\n    this.lastEntities = {\n      \"apos\" : { regex: /&(apos|#39|#x27);/g, val : \"'\"},\n      \"gt\" : { regex: /&(gt|#62|#x3E);/g, val : \">\"},\n      \"lt\" : { regex: /&(lt|#60|#x3C);/g, val : \"<\"},\n      \"quot\" : { regex: /&(quot|#34|#x22);/g, val : \"\\\"\"},\n    };\n    this.ampEntity = { regex: /&(amp|#38|#x26);/g, val : \"&\"};\n    this.htmlEntities = {\n      \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n      // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n      // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n      // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n      // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n      // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n      \"cent\" : { regex: /&(cent|#162);/g, val: \"¢\" },\n      \"pound\" : { regex: /&(pound|#163);/g, val: \"£\" },\n      \"yen\" : { regex: /&(yen|#165);/g, val: \"Â¥\" },\n      \"euro\" : { regex: /&(euro|#8364);/g, val: \"€\" },\n      \"copyright\" : { regex: /&(copy|#169);/g, val: \"©\" },\n      \"reg\" : { regex: /&(reg|#174);/g, val: \"®\" },\n      \"inr\" : { regex: /&(inr|#8377);/g, val: \"₹\" },\n      \"num_dec\": { regex: /&#([0-9]{1,7});/g, val : (_, str) => fromCodePoint(str, 10, \"&#\") },\n      \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val : (_, str) => fromCodePoint(str, 16, \"&#x\") },\n    };\n    this.addExternalEntities = addExternalEntities;\n    this.parseXml = parseXml;\n    this.parseTextData = parseTextData;\n    this.resolveNameSpace = resolveNameSpace;\n    this.buildAttributesMap = buildAttributesMap;\n    this.isItStopNode = isItStopNode;\n    this.replaceEntitiesValue = replaceEntitiesValue;\n    this.readStopNodeData = readStopNodeData;\n    this.saveTextToParentTag = saveTextToParentTag;\n    this.addChild = addChild;\n    this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes)\n\n    if(this.options.stopNodes && this.options.stopNodes.length > 0){\n      this.stopNodesExact = new Set();\n      this.stopNodesWildcard = new Set();\n      for(let i = 0; i < this.options.stopNodes.length; i++){\n        const stopNodeExp = this.options.stopNodes[i];\n        if(typeof stopNodeExp !== 'string') continue;\n        if(stopNodeExp.startsWith(\"*.\")){\n          this.stopNodesWildcard.add(stopNodeExp.substring(2));\n        }else{\n          this.stopNodesExact.add(stopNodeExp);\n        }\n      }\n    }\n  }\n\n}\n\nfunction addExternalEntities(externalEntities){\n  const entKeys = Object.keys(externalEntities);\n  for (let i = 0; i < entKeys.length; i++) {\n    const ent = entKeys[i];\n    this.lastEntities[ent] = {\n       regex: new RegExp(\"&\"+ent+\";\",\"g\"),\n       val : externalEntities[ent]\n    }\n  }\n}\n\n/**\n * @param {string} val\n * @param {string} tagName\n * @param {string} jPath\n * @param {boolean} dontTrim\n * @param {boolean} hasAttributes\n * @param {boolean} isLeafNode\n * @param {boolean} escapeEntities\n */\nfunction parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n  if (val !== undefined) {\n    if (this.options.trimValues && !dontTrim) {\n      val = val.trim();\n    }\n    if(val.length > 0){\n      if(!escapeEntities) val = this.replaceEntitiesValue(val);\n      \n      const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n      if(newval === null || newval === undefined){\n        //don't parse\n        return val;\n      }else if(typeof newval !== typeof val || newval !== val){\n        //overwrite\n        return newval;\n      }else if(this.options.trimValues){\n        return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n      }else{\n        const trimmedVal = val.trim();\n        if(trimmedVal === val){\n          return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n        }else{\n          return val;\n        }\n      }\n    }\n  }\n}\n\nfunction resolveNameSpace(tagname) {\n  if (this.options.removeNSPrefix) {\n    const tags = tagname.split(':');\n    const prefix = tagname.charAt(0) === '/' ? '/' : '';\n    if (tags[0] === 'xmlns') {\n      return '';\n    }\n    if (tags.length === 2) {\n      tagname = prefix + tags[1];\n    }\n  }\n  return tagname;\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nfunction buildAttributesMap(attrStr, jPath) {\n  if (this.options.ignoreAttributes !== true && typeof attrStr === 'string') {\n    // attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n    //attrStr = attrStr || attrStr.trim();\n\n    const matches = getAllMatches(attrStr, attrsRegx);\n    const len = matches.length; //don't make it inline\n    const attrs = {};\n    for (let i = 0; i < len; i++) {\n      const attrName = this.resolveNameSpace(matches[i][1]);\n      if (this.ignoreAttributesFn(attrName, jPath)) {\n        continue\n      }\n      let oldVal = matches[i][4];\n      let aName = this.options.attributeNamePrefix + attrName;\n      if (attrName.length) {\n        if (this.options.transformAttributeName) {\n          aName = this.options.transformAttributeName(aName);\n        }\n        if(aName === \"__proto__\") aName  = \"#__proto__\";\n        if (oldVal !== undefined) {\n          if (this.options.trimValues) {\n            oldVal = oldVal.trim();\n          }\n          oldVal = this.replaceEntitiesValue(oldVal);\n          const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n          if(newVal === null || newVal === undefined){\n            //don't parse\n            attrs[aName] = oldVal;\n          }else if(typeof newVal !== typeof oldVal || newVal !== oldVal){\n            //overwrite\n            attrs[aName] = newVal;\n          }else{\n            //parse\n            attrs[aName] = parseValue(\n              oldVal,\n              this.options.parseAttributeValue,\n              this.options.numberParseOptions\n            );\n          }\n        } else if (this.options.allowBooleanAttributes) {\n          attrs[aName] = true;\n        }\n      }\n    }\n    if (!Object.keys(attrs).length) {\n      return;\n    }\n    if (this.options.attributesGroupName) {\n      const attrCollection = {};\n      attrCollection[this.options.attributesGroupName] = attrs;\n      return attrCollection;\n    }\n    return attrs\n  }\n}\n\nconst parseXml = function(xmlData) {\n  xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\"); //TODO: remove this line\n  const xmlObj = new xmlNode('!xml');\n  let currentNode = xmlObj;\n  let textData = \"\";\n  let jPath = \"\";\n  const docTypeReader = new DocTypeReader(this.options.processEntities);\n  for(let i=0; i< xmlData.length; i++){//for each char in XML data\n    const ch = xmlData[i];\n    if(ch === '<'){\n      // const nextIndex = i+1;\n      // const _2ndChar = xmlData[nextIndex];\n      if( xmlData[i+1] === '/') {//Closing Tag\n        const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n        let tagName = xmlData.substring(i+2,closeIndex).trim();\n\n        if(this.options.removeNSPrefix){\n          const colonIndex = tagName.indexOf(\":\");\n          if(colonIndex !== -1){\n            tagName = tagName.substr(colonIndex+1);\n          }\n        }\n\n        if(this.options.transformTagName) {\n          tagName = this.options.transformTagName(tagName);\n        }\n\n        if(currentNode){\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        }\n\n        //check if last tag of nested tag was unpaired tag\n        const lastTagName = jPath.substring(jPath.lastIndexOf(\".\")+1);\n        if(tagName && this.options.unpairedTags.indexOf(tagName) !== -1 ){\n          throw new Error(`Unpaired tag can not be used as closing tag: `);\n        }\n        let propIndex = 0\n        if(lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1 ){\n          propIndex = jPath.lastIndexOf('.', jPath.lastIndexOf('.')-1)\n          this.tagsNodeStack.pop();\n        }else{\n          propIndex = jPath.lastIndexOf(\".\");\n        }\n        jPath = jPath.substring(0, propIndex);\n\n        currentNode = this.tagsNodeStack.pop();//avoid recursion, set the parent tag scope\n        textData = \"\";\n        i = closeIndex;\n      } else if( xmlData[i+1] === '?') {\n\n        let tagData = readTagExp(xmlData,i, false, \"?>\");\n        if(!tagData) throw new Error(\"Pi Tag is not closed.\");\n\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        if( (this.options.ignoreDeclaration && tagData.tagName === \"?xml\") || this.options.ignorePiTags){\n          //do nothing\n        }else{\n  \n          const childNode = new xmlNode(tagData.tagName);\n          childNode.add(this.options.textNodeName, \"\");\n          \n          if(tagData.tagName !== tagData.tagExp && tagData.attrExpPresent){\n            childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath);\n          }\n          this.addChild(currentNode, childNode, jPath, i);\n        }\n\n\n        i = tagData.closeIndex + 1;\n      } else if(xmlData.substr(i + 1, 3) === '!--') {\n        const endIndex = findClosingIndex(xmlData, \"-->\", i+4, \"Comment is not closed.\")\n        if(this.options.commentPropName){\n          const comment = xmlData.substring(i + 4, endIndex - 2);\n\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n          currentNode.add(this.options.commentPropName, [ { [this.options.textNodeName] : comment } ]);\n        }\n        i = endIndex;\n      } else if( xmlData.substr(i + 1, 2) === '!D') {\n        const result = docTypeReader.readDocType(xmlData, i);\n        this.docTypeEntities = result.entities;\n        i = result.i;\n      }else if(xmlData.substr(i + 1, 2) === '![') {\n        const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n        const tagExp = xmlData.substring(i + 9,closeIndex);\n\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n        let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n        if(val == undefined) val = \"\";\n\n        //cdata should be set even if it is 0 length string\n        if(this.options.cdataPropName){\n          currentNode.add(this.options.cdataPropName, [ { [this.options.textNodeName] : tagExp } ]);\n        }else{\n          currentNode.add(this.options.textNodeName, val);\n        }\n        \n        i = closeIndex + 2;\n      }else {//Opening tag\n        let result = readTagExp(xmlData,i, this.options.removeNSPrefix);\n        let tagName= result.tagName;\n        const rawTagName = result.rawTagName;\n        let tagExp = result.tagExp;\n        let attrExpPresent = result.attrExpPresent;\n        let closeIndex = result.closeIndex;\n\n        if (this.options.transformTagName) {\n          //console.log(tagExp, tagName)\n          const newTagName = this.options.transformTagName(tagName);\n          if(tagExp === tagName) {\n            tagExp = newTagName\n          }\n          tagName = newTagName;\n        }\n        \n        //save text as child node\n        if (currentNode && textData) {\n          if(currentNode.tagname !== '!xml'){\n            //when nested tag is found\n            textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n          }\n        }\n\n        //check if last tag was unpaired tag\n        const lastTag = currentNode;\n        if(lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1 ){\n          currentNode = this.tagsNodeStack.pop();\n          jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n        }\n        if(tagName !== xmlObj.tagname){\n          jPath += jPath ? \".\" + tagName : tagName;\n        }\n        const startIndex = i;\n        if (this.isItStopNode(this.stopNodesExact, this.stopNodesWildcard, jPath, tagName)) {\n          let tagContent = \"\";\n          //self-closing tag\n          if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n            if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            }else{\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n            i = result.closeIndex;\n          }\n          //unpaired tag\n          else if(this.options.unpairedTags.indexOf(tagName) !== -1){\n            \n            i = result.closeIndex;\n          }\n          //normal tag\n          else{\n            //read until closing tag is found\n            const result = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n            if(!result) throw new Error(`Unexpected end of ${rawTagName}`);\n            i = result.i;\n            tagContent = result.tagContent;\n          }\n\n          const childNode = new xmlNode(tagName);\n\n          if(tagName !== tagExp && attrExpPresent){\n            childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath\n            );\n          }\n          if(tagContent) {\n            tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n          }\n          \n          jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          childNode.add(this.options.textNodeName, tagContent);\n          \n          this.addChild(currentNode, childNode, jPath, startIndex);\n        }else{\n  //selfClosing tag\n          if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n            if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            }else{\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n            \n            if(this.options.transformTagName) {\n              const newTagName = this.options.transformTagName(tagName);\n              if(tagExp === tagName) {\n                tagExp = newTagName\n              }\n              tagName = newTagName;\n            }\n\n            const childNode = new xmlNode(tagName);\n            if(tagName !== tagExp && attrExpPresent){\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath);\n            }\n            this.addChild(currentNode, childNode, jPath, startIndex);\n            jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          }\n    //opening tag\n          else{\n            const childNode = new xmlNode( tagName);\n            this.tagsNodeStack.push(currentNode);\n            \n            if(tagName !== tagExp && attrExpPresent){\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath);\n            }\n            this.addChild(currentNode, childNode, jPath, startIndex);\n            currentNode = childNode;\n          }\n          textData = \"\";\n          i = closeIndex;\n        }\n      }\n    }else{\n      textData += xmlData[i];\n    }\n  }\n  return xmlObj.child;\n}\n\nfunction addChild(currentNode, childNode, jPath, startIndex){\n  // unset startIndex if not requested\n  if (!this.options.captureMetaData) startIndex = undefined;\n  const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"])\n  if(result === false){\n    //do nothing\n  } else if(typeof result === \"string\"){\n    childNode.tagname = result\n    currentNode.addChild(childNode, startIndex);\n  }else{\n    currentNode.addChild(childNode, startIndex);\n  }\n}\n\nconst replaceEntitiesValue = function(val){\n\n  if(this.options.processEntities){\n    for(let entityName in this.docTypeEntities){\n      const entity = this.docTypeEntities[entityName];\n      val = val.replace( entity.regx, entity.val);\n    }\n    for(let entityName in this.lastEntities){\n      const entity = this.lastEntities[entityName];\n      val = val.replace( entity.regex, entity.val);\n    }\n    if(this.options.htmlEntities){\n      for(let entityName in this.htmlEntities){\n        const entity = this.htmlEntities[entityName];\n        val = val.replace( entity.regex, entity.val);\n      }\n    }\n    val = val.replace( this.ampEntity.regex, this.ampEntity.val);\n  }\n  return val;\n}\nfunction saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n  if (textData) { //store previously collected data as textNode\n    if(isLeafNode === undefined) isLeafNode = currentNode.child.length === 0\n    \n    textData = this.parseTextData(textData,\n      currentNode.tagname,\n      jPath,\n      false,\n      currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n      isLeafNode);\n\n    if (textData !== undefined && textData !== \"\")\n      currentNode.add(this.options.textNodeName, textData);\n    textData = \"\";\n  }\n  return textData;\n}\n\n//TODO: use jPath to simplify the logic\n/**\n * @param {Set} stopNodesExact\n * @param {Set} stopNodesWildcard\n * @param {string} jPath\n * @param {string} currentTagName\n */\nfunction isItStopNode(stopNodesExact, stopNodesWildcard, jPath, currentTagName){\n  if(stopNodesWildcard && stopNodesWildcard.has(currentTagName)) return true;\n  if(stopNodesExact && stopNodesExact.has(jPath)) return true;\n  return false;\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-double quotes situation\n * @param {string} xmlData \n * @param {number} i starting index\n * @returns \n */\nfunction tagExpWithClosingIndex(xmlData, i, closingChar = \">\"){\n  let attrBoundary;\n  let tagExp = \"\";\n  for (let index = i; index < xmlData.length; index++) {\n    let ch = xmlData[index];\n    if (attrBoundary) {\n        if (ch === attrBoundary) attrBoundary = \"\";//reset\n    } else if (ch === '\"' || ch === \"'\") {\n        attrBoundary = ch;\n    } else if (ch === closingChar[0]) {\n      if(closingChar[1]){\n        if(xmlData[index + 1] === closingChar[1]){\n          return {\n            data: tagExp,\n            index: index\n          }\n        }\n      }else{\n        return {\n          data: tagExp,\n          index: index\n        }\n      }\n    } else if (ch === '\\t') {\n      ch = \" \"\n    }\n    tagExp += ch;\n  }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg){\n  const closingIndex = xmlData.indexOf(str, i);\n  if(closingIndex === -1){\n    throw new Error(errMsg)\n  }else{\n    return closingIndex + str.length - 1;\n  }\n}\n\nfunction readTagExp(xmlData,i, removeNSPrefix, closingChar = \">\"){\n  const result = tagExpWithClosingIndex(xmlData, i+1, closingChar);\n  if(!result) return;\n  let tagExp = result.data;\n  const closeIndex = result.index;\n  const separatorIndex = tagExp.search(/\\s/);\n  let tagName = tagExp;\n  let attrExpPresent = true;\n  if(separatorIndex !== -1){//separate tag name and attributes expression\n    tagName = tagExp.substring(0, separatorIndex);\n    tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n  }\n\n  const rawTagName = tagName;\n  if(removeNSPrefix){\n    const colonIndex = tagName.indexOf(\":\");\n    if(colonIndex !== -1){\n      tagName = tagName.substr(colonIndex+1);\n      attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n    }\n  }\n\n  return {\n    tagName: tagName,\n    tagExp: tagExp,\n    closeIndex: closeIndex,\n    attrExpPresent: attrExpPresent,\n    rawTagName: rawTagName,\n  }\n}\n/**\n * find paired tag for a stop node\n * @param {string} xmlData \n * @param {string} tagName \n * @param {number} i \n */\nfunction readStopNodeData(xmlData, tagName, i){\n  const startIndex = i;\n  // Starting at 1 since we already have an open tag\n  let openTagCount = 1;\n\n  for (; i < xmlData.length; i++) {\n    if( xmlData[i] === \"<\"){ \n      if (xmlData[i+1] === \"/\") {//close tag\n          const closeIndex = findClosingIndex(xmlData, \">\", i, `${tagName} is not closed`);\n          let closeTagName = xmlData.substring(i+2,closeIndex).trim();\n          if(closeTagName === tagName){\n            openTagCount--;\n            if (openTagCount === 0) {\n              return {\n                tagContent: xmlData.substring(startIndex, i),\n                i : closeIndex\n              }\n            }\n          }\n          i=closeIndex;\n        } else if(xmlData[i+1] === '?') { \n          const closeIndex = findClosingIndex(xmlData, \"?>\", i+1, \"StopNode is not closed.\")\n          i=closeIndex;\n        } else if(xmlData.substr(i + 1, 3) === '!--') { \n          const closeIndex = findClosingIndex(xmlData, \"-->\", i+3, \"StopNode is not closed.\")\n          i=closeIndex;\n        } else if(xmlData.substr(i + 1, 2) === '![') { \n          const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"StopNode is not closed.\") - 2;\n          i=closeIndex;\n        } else {\n          const tagData = readTagExp(xmlData, i, '>')\n\n          if (tagData) {\n            const openTagName = tagData && tagData.tagName;\n            if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length-1] !== \"/\") {\n              openTagCount++;\n            }\n            i=tagData.closeIndex;\n          }\n        }\n      }\n  }//end for loop\n}\n\nfunction parseValue(val, shouldParse, options) {\n  if (shouldParse && typeof val === 'string') {\n    //console.log(options)\n    const newval = val.trim();\n    if(newval === 'true' ) return true;\n    else if(newval === 'false' ) return false;\n    else return toNumber(val, options);\n  } else {\n    if (isExist(val)) {\n      return val;\n    } else {\n      return '';\n    }\n  }\n}\n\nfunction fromCodePoint(str, base, prefix){\n  const codePoint = Number.parseInt(str, base);\n\n  if (codePoint >= 0 && codePoint <= 0x10FFFF) {\n      return String.fromCodePoint(codePoint);\n  } else {\n      return prefix +str + \";\";\n  }\n}","import { buildOptions} from './OptionsBuilder.js';\nimport OrderedObjParser from './OrderedObjParser.js';\nimport prettify from './node2json.js';\nimport {validate} from \"../validator.js\";\nimport XmlNode from './xmlNode.js';\n\nexport default class XMLParser{\n    \n    constructor(options){\n        this.externalEntities = {};\n        this.options = buildOptions(options);\n        \n    }\n    /**\n     * Parse XML dats to JS object \n     * @param {string|Uint8Array} xmlData \n     * @param {boolean|Object} validationOption \n     */\n    parse(xmlData,validationOption){\n        if(typeof xmlData !== \"string\" && xmlData.toString){\n            xmlData = xmlData.toString();\n        }else if(typeof xmlData !== \"string\"){\n            throw new Error(\"XML data is accepted in String or Bytes[] form.\")\n        }\n        \n        if( validationOption){\n            if(validationOption === true) validationOption = {}; //validate with default options\n            \n            const result = validate(xmlData, validationOption);\n            if (result !== true) {\n              throw Error( `${result.err.msg}:${result.err.line}:${result.err.col}` )\n            }\n          }\n        const orderedObjParser = new OrderedObjParser(this.options);\n        orderedObjParser.addExternalEntities(this.externalEntities);\n        const orderedResult = orderedObjParser.parseXml(xmlData);\n        if(this.options.preserveOrder || orderedResult === undefined) return orderedResult;\n        else return prettify(orderedResult, this.options);\n    }\n\n    /**\n     * Add Entity which is not by default supported by this library\n     * @param {string} key \n     * @param {string} value \n     */\n    addEntity(key, value){\n        if(value.indexOf(\"&\") !== -1){\n            throw new Error(\"Entity value can't have '&'\")\n        }else if(key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1){\n            throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '
'\")\n        }else if(value === \"&\"){\n            throw new Error(\"An entity with value '&' is not permitted\");\n        }else{\n            this.externalEntities[key] = value;\n        }\n    }\n\n    /**\n     * Returns a Symbol that can be used to access the metadata\n     * property on a node.\n     * \n     * If Symbol is not available in the environment, an ordinary property is used\n     * and the name of the property is here returned.\n     * \n     * The XMLMetaData property is only present when `captureMetaData`\n     * is true in the options.\n     */\n    static getMetaDataSymbol() {\n        return XmlNode.getMetaDataSymbol();\n    }\n}\n","'use strict';\n\nimport XmlNode from './xmlNode.js';\n\nconst METADATA_SYMBOL = XmlNode.getMetaDataSymbol();\n\n/**\n * \n * @param {array} node \n * @param {any} options \n * @returns \n */\nexport default function prettify(node, options){\n  return compress( node, options);\n}\n\n/**\n * \n * @param {array} arr \n * @param {object} options \n * @param {string} jPath \n * @returns object\n */\nfunction compress(arr, options, jPath){\n  let text;\n  const compressedObj = {};\n  for (let i = 0; i < arr.length; i++) {\n    const tagObj = arr[i];\n    const property = propName(tagObj);\n    let newJpath = \"\";\n    if(jPath === undefined) newJpath = property;\n    else newJpath = jPath + \".\" + property;\n\n    if(property === options.textNodeName){\n      if(text === undefined) text = tagObj[property];\n      else text += \"\" + tagObj[property];\n    }else if(property === undefined){\n      continue;\n    }else if(tagObj[property]){\n      \n      let val = compress(tagObj[property], options, newJpath);\n      const isLeaf = isLeafTag(val, options);\n      if (tagObj[METADATA_SYMBOL] !== undefined) {\n        val[METADATA_SYMBOL] = tagObj[METADATA_SYMBOL]; // copy over metadata\n      }\n\n      if(tagObj[\":@\"]){\n        assignAttributes( val, tagObj[\":@\"], newJpath, options);\n      }else if(Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode){\n        val = val[options.textNodeName];\n      }else if(Object.keys(val).length === 0){\n        if(options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n        else val = \"\";\n      }\n\n      if(compressedObj[property] !== undefined && compressedObj.hasOwnProperty(property)) {\n        if(!Array.isArray(compressedObj[property])) {\n            compressedObj[property] = [ compressedObj[property] ];\n        }\n        compressedObj[property].push(val);\n      }else{\n        //TODO: if a node is not an array, then check if it should be an array\n        //also determine if it is a leaf node\n        if (options.isArray(property, newJpath, isLeaf )) {\n          compressedObj[property] = [val];\n        }else{\n          compressedObj[property] = val;\n        }\n      }\n    }\n    \n  }\n  // if(text && text.length > 0) compressedObj[options.textNodeName] = text;\n  if(typeof text === \"string\"){\n    if(text.length > 0) compressedObj[options.textNodeName] = text;\n  }else if(text !== undefined) compressedObj[options.textNodeName] = text;\n  return compressedObj;\n}\n\nfunction propName(obj){\n  const keys = Object.keys(obj);\n  for (let i = 0; i < keys.length; i++) {\n    const key = keys[i];\n    if(key !== \":@\") return key;\n  }\n}\n\nfunction assignAttributes(obj, attrMap, jpath, options){\n  if (attrMap) {\n    const keys = Object.keys(attrMap);\n    const len = keys.length; //don't make it inline\n    for (let i = 0; i < len; i++) {\n      const atrrName = keys[i];\n      if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n        obj[atrrName] = [ attrMap[atrrName] ];\n      } else {\n        obj[atrrName] = attrMap[atrrName];\n      }\n    }\n  }\n}\n\nfunction isLeafTag(obj, options){\n  const { textNodeName } = options;\n  const propCount = Object.keys(obj).length;\n  \n  if (propCount === 0) {\n    return true;\n  }\n\n  if (\n    propCount === 1 &&\n    (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)\n  ) {\n    return true;\n  }\n\n  return false;\n}\n","'use strict';\n\nlet METADATA_SYMBOL;\n\nif (typeof Symbol !== \"function\") {\n  METADATA_SYMBOL = \"@@xmlMetadata\";\n} else {\n  METADATA_SYMBOL = Symbol(\"XML Node Metadata\");\n}\n\nexport default class XmlNode{\n  constructor(tagname) {\n    this.tagname = tagname;\n    this.child = []; //nested tags, text, cdata, comments in order\n    this[\":@\"] = {}; //attributes map\n  }\n  add(key,val){\n    // this.child.push( {name : key, val: val, isCdata: isCdata });\n    if(key === \"__proto__\") key = \"#__proto__\";\n    this.child.push( {[key]: val });\n  }\n  addChild(node, startIndex) {\n    if(node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n    if(node[\":@\"] && Object.keys(node[\":@\"]).length > 0){\n      this.child.push( { [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n    }else{\n      this.child.push( { [node.tagname]: node.child });\n    }\n    // if requested, add the startIndex\n    if (startIndex !== undefined) {\n      // Note: for now we just overwrite the metadata. If we had more complex metadata,\n      // we might need to do an object append here:  metadata = { ...metadata, startIndex }\n      this.child[this.child.length - 1][METADATA_SYMBOL] = { startIndex };\n    }\n  }\n  /** symbol used for metadata */\n  static getMetaDataSymbol() {\n    return METADATA_SYMBOL;\n  }\n}\n","export function sequence(...methods) {\n    if (methods.length === 0) {\n        throw new Error(\"Failed creating sequence: No functions provided\");\n    }\n    return function __executeSequence(...args) {\n        let result = args;\n        const _this = this;\n        while (methods.length > 0) {\n            const method = methods.shift();\n            result = [method.apply(_this, result)];\n        }\n        return result[0];\n    };\n}\n","import { sequence } from \"./functions.js\";\nconst HOT_PATCHER_TYPE = \"@@HOTPATCHER\";\nconst NOOP = () => { };\nfunction createNewItem(method) {\n    return {\n        original: method,\n        methods: [method],\n        final: false\n    };\n}\n/**\n * Hot patching manager class\n */\nexport class HotPatcher {\n    constructor() {\n        this._configuration = {\n            registry: {},\n            getEmptyAction: \"null\"\n        };\n        this.__type__ = HOT_PATCHER_TYPE;\n    }\n    /**\n     * Configuration object reference\n     * @readonly\n     */\n    get configuration() {\n        return this._configuration;\n    }\n    /**\n     * The action to take when a non-set method is requested\n     * Possible values: null/throw\n     */\n    get getEmptyAction() {\n        return this.configuration.getEmptyAction;\n    }\n    set getEmptyAction(newAction) {\n        this.configuration.getEmptyAction = newAction;\n    }\n    /**\n     * Control another hot-patcher instance\n     * Force the remote instance to use patched methods from calling instance\n     * @param target The target instance to control\n     * @param allowTargetOverrides Allow the target to override patched methods on\n     * the controller (default is false)\n     * @returns Returns self\n     * @throws {Error} Throws if the target is invalid\n     */\n    control(target, allowTargetOverrides = false) {\n        if (!target || target.__type__ !== HOT_PATCHER_TYPE) {\n            throw new Error(\"Failed taking control of target HotPatcher instance: Invalid type or object\");\n        }\n        Object.keys(target.configuration.registry).forEach(foreignKey => {\n            if (this.configuration.registry.hasOwnProperty(foreignKey)) {\n                if (allowTargetOverrides) {\n                    this.configuration.registry[foreignKey] = Object.assign({}, target.configuration.registry[foreignKey]);\n                }\n            }\n            else {\n                this.configuration.registry[foreignKey] = Object.assign({}, target.configuration.registry[foreignKey]);\n            }\n        });\n        target._configuration = this.configuration;\n        return this;\n    }\n    /**\n     * Execute a patched method\n     * @param key The method key\n     * @param args Arguments to pass to the method (optional)\n     * @see HotPatcher#get\n     * @returns The output of the called method\n     */\n    execute(key, ...args) {\n        const method = this.get(key) || NOOP;\n        return method(...args);\n    }\n    /**\n     * Get a method for a key\n     * @param key The method key\n     * @returns Returns the requested function or null if the function\n     * does not exist and the host is configured to return null (and not throw)\n     * @throws {Error} Throws if the configuration specifies to throw and the method\n     * does not exist\n     * @throws {Error} Throws if the `getEmptyAction` value is invalid\n     */\n    get(key) {\n        const item = this.configuration.registry[key];\n        if (!item) {\n            switch (this.getEmptyAction) {\n                case \"null\":\n                    return null;\n                case \"throw\":\n                    throw new Error(`Failed handling method request: No method provided for override: ${key}`);\n                default:\n                    throw new Error(`Failed handling request which resulted in an empty method: Invalid empty-action specified: ${this.getEmptyAction}`);\n            }\n        }\n        return sequence(...item.methods);\n    }\n    /**\n     * Check if a method has been patched\n     * @param key The function key\n     * @returns True if already patched\n     */\n    isPatched(key) {\n        return !!this.configuration.registry[key];\n    }\n    /**\n     * Patch a method name\n     * @param key The method key to patch\n     * @param method The function to set\n     * @param opts Patch options\n     * @returns Returns self\n     */\n    patch(key, method, opts = {}) {\n        const { chain = false } = opts;\n        if (this.configuration.registry[key] && this.configuration.registry[key].final) {\n            throw new Error(`Failed patching '${key}': Method marked as being final`);\n        }\n        if (typeof method !== \"function\") {\n            throw new Error(`Failed patching '${key}': Provided method is not a function`);\n        }\n        if (chain) {\n            // Add new method to the chain\n            if (!this.configuration.registry[key]) {\n                // New key, create item\n                this.configuration.registry[key] = createNewItem(method);\n            }\n            else {\n                // Existing, push the method\n                this.configuration.registry[key].methods.push(method);\n            }\n        }\n        else {\n            // Replace the original\n            if (this.isPatched(key)) {\n                const { original } = this.configuration.registry[key];\n                this.configuration.registry[key] = Object.assign(createNewItem(method), {\n                    original\n                });\n            }\n            else {\n                this.configuration.registry[key] = createNewItem(method);\n            }\n        }\n        return this;\n    }\n    /**\n     * Patch a method inline, execute it and return the value\n     * Used for patching contents of functions. This method will not apply a patched\n     * function if it has already been patched, allowing for external overrides to\n     * function. It also means that the function is cached so that it is not\n     * instantiated every time the outer function is invoked.\n     * @param key The function key to use\n     * @param method The function to patch (once, only if not patched)\n     * @param args Arguments to pass to the function\n     * @returns The output of the patched function\n     * @example\n     *  function mySpecialFunction(a, b) {\n     *      return hotPatcher.patchInline(\"func\", (a, b) => {\n     *          return a + b;\n     *      }, a, b);\n     *  }\n     */\n    patchInline(key, method, ...args) {\n        if (!this.isPatched(key)) {\n            this.patch(key, method);\n        }\n        return this.execute(key, ...args);\n    }\n    /**\n     * Patch a method (or methods) in sequential-mode\n     * See `patch()` with the option `chain: true`\n     * @see patch\n     * @param key The key to patch\n     * @param methods The methods to patch\n     * @returns Returns self\n     */\n    plugin(key, ...methods) {\n        methods.forEach(method => {\n            this.patch(key, method, { chain: true });\n        });\n        return this;\n    }\n    /**\n     * Restore a patched method if it has been overridden\n     * @param key The method key\n     * @returns Returns self\n     */\n    restore(key) {\n        if (!this.isPatched(key)) {\n            throw new Error(`Failed restoring method: No method present for key: ${key}`);\n        }\n        else if (typeof this.configuration.registry[key].original !== \"function\") {\n            throw new Error(`Failed restoring method: Original method not found or of invalid type for key: ${key}`);\n        }\n        this.configuration.registry[key].methods = [this.configuration.registry[key].original];\n        return this;\n    }\n    /**\n     * Set a method as being final\n     * This sets a method as having been finally overridden. Attempts at overriding\n     * again will fail with an error.\n     * @param key The key to make final\n     * @returns Returns self\n     */\n    setFinal(key) {\n        if (!this.configuration.registry.hasOwnProperty(key)) {\n            throw new Error(`Failed marking '${key}' as final: No method found for key`);\n        }\n        this.configuration.registry[key].final = true;\n        return this;\n    }\n}\n","export function assertError(err) {\n    if (!isError(err)) {\n        throw new Error(\"Parameter was not an error\");\n    }\n}\nexport function isError(err) {\n    return ((!!err &&\n        typeof err === \"object\" &&\n        objectToString(err) === \"[object Error]\") ||\n        err instanceof Error);\n}\nfunction objectToString(obj) {\n    return Object.prototype.toString.call(obj);\n}\n","const NAME = \"Layerr\";\nlet __name = NAME;\nexport function getGlobalName() {\n    return __name;\n}\nexport function setGlobalName(name = null) {\n    __name = name ?? NAME;\n}\n","import { assertError, isError } from \"./error.js\";\nimport { getGlobalName } from \"./global.js\";\nimport { parseArguments } from \"./tools.js\";\nexport class Layerr extends Error {\n    constructor(errorOptionsOrMessage, messageText) {\n        const args = [...arguments];\n        const { options, shortMessage } = parseArguments(args);\n        let message = shortMessage;\n        if (options.cause) {\n            message = `${message}: ${options.cause.message}`;\n        }\n        super(message);\n        this.message = message;\n        if (options.name && typeof options.name === \"string\") {\n            this.name = options.name;\n        }\n        else {\n            this.name = getGlobalName();\n        }\n        if (options.cause) {\n            Object.defineProperty(this, \"_cause\", { value: options.cause });\n        }\n        Object.defineProperty(this, \"_info\", { value: {} });\n        if (options.info && typeof options.info === \"object\") {\n            Object.assign(this._info, options.info);\n        }\n        if (Error.captureStackTrace) {\n            const ctor = options.constructorOpt || this.constructor;\n            Error.captureStackTrace(this, ctor);\n        }\n    }\n    static cause(err) {\n        assertError(err);\n        if (!err._cause)\n            return null;\n        return isError(err._cause)\n            ? err._cause\n            : null;\n    }\n    static fullStack(err) {\n        assertError(err);\n        const cause = Layerr.cause(err);\n        if (cause) {\n            return `${err.stack}\\ncaused by: ${Layerr.fullStack(cause)}`;\n        }\n        return err.stack ?? \"\";\n    }\n    static info(err) {\n        assertError(err);\n        const output = {};\n        const cause = Layerr.cause(err);\n        if (cause) {\n            Object.assign(output, Layerr.info(cause));\n        }\n        if (err._info) {\n            Object.assign(output, err._info);\n        }\n        return output;\n    }\n    toString() {\n        let output = this.name ||\n            this.constructor.name ||\n            this.constructor.prototype.name;\n        if (this.message) {\n            output = `${output}: ${this.message}`;\n        }\n        return output;\n    }\n}\n","import { isError } from \"./error.js\";\nexport function parseArguments(args) {\n    let options, shortMessage = \"\";\n    if (args.length === 0) {\n        options = {};\n    }\n    else if (isError(args[0])) {\n        options = {\n            cause: args[0],\n        };\n        shortMessage = args.slice(1).join(\" \") || \"\";\n    }\n    else if (args[0] && typeof args[0] === \"object\") {\n        options = Object.assign({}, args[0]);\n        shortMessage = args.slice(1).join(\" \") || \"\";\n    }\n    else if (typeof args[0] === \"string\") {\n        options = {};\n        shortMessage = shortMessage = args.join(\" \") || \"\";\n    }\n    else {\n        throw new Error(\"Invalid arguments passed to Layerr\");\n    }\n    return {\n        options,\n        shortMessage,\n    };\n}\n","const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)([0-9]*(\\.[0-9]*)?)$/;\n// const octRegex = /^0x[a-z0-9]+/;\n// const binRegex = /0x[a-z0-9]+/;\n\n \nconst consider = {\n    hex :  true,\n    // oct: false,\n    leadingZeros: true,\n    decimalPoint: \"\\.\",\n    eNotation: true,\n    //skipLike: /regex/\n};\n\nexport default function toNumber(str, options = {}){\n    options = Object.assign({}, consider, options );\n    if(!str || typeof str !== \"string\" ) return str;\n    \n    let trimmedStr  = str.trim();\n    \n    if(options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;\n    else if(str===\"0\") return 0;\n    else if (options.hex && hexRegex.test(trimmedStr)) {\n        return parse_int(trimmedStr, 16);\n    // }else if (options.oct && octRegex.test(str)) {\n    //     return Number.parseInt(val, 8);\n    }else if (trimmedStr.includes('e') || trimmedStr.includes('E')) { //eNotation\n        return resolveEnotation(str,trimmedStr,options);\n    // }else if (options.parseBin && binRegex.test(str)) {\n    //     return Number.parseInt(val, 2);\n    }else{\n        //separate negative sign, leading zeros, and rest number\n        const match = numRegex.exec(trimmedStr);\n        // +00.123 => [ , '+', '00', '.123', ..\n        if(match){\n            const sign = match[1] || \"\";\n            const leadingZeros = match[2];\n            let numTrimmedByZeros = trimZeros(match[3]); //complete num without leading zeros\n            const decimalAdjacentToLeadingZeros = sign ? // 0., -00., 000.\n                str[leadingZeros.length+1] === \".\" \n                : str[leadingZeros.length] === \".\";\n\n            //trim ending zeros for floating number\n            if(!options.leadingZeros //leading zeros are not allowed\n                && (leadingZeros.length > 1 \n                    || (leadingZeros.length === 1 && !decimalAdjacentToLeadingZeros))){\n                // 00, 00.3, +03.24, 03, 03.24\n                return str;\n            }\n            else{//no leading zeros or leading zeros are allowed\n                const num = Number(trimmedStr);\n                const parsedStr = String(num);\n\n                if( num === 0) return num;\n                if(parsedStr.search(/[eE]/) !== -1){ //given number is long and parsed to eNotation\n                    if(options.eNotation) return num;\n                    else return str;\n                }else if(trimmedStr.indexOf(\".\") !== -1){ //floating number\n                    if(parsedStr === \"0\") return num; //0.0\n                    else if(parsedStr === numTrimmedByZeros) return num; //0.456. 0.79000\n                    else if( parsedStr === `${sign}${numTrimmedByZeros}`) return num;\n                    else return str;\n                }\n                \n                let n = leadingZeros? numTrimmedByZeros : trimmedStr;\n                if(leadingZeros){\n                    // -009 => -9\n                    return (n === parsedStr) || (sign+n === parsedStr) ? num : str\n                }else  {\n                    // +9\n                    return (n === parsedStr) || (n === sign+parsedStr) ? num : str\n                }\n            }\n        }else{ //non-numeric string\n            return str;\n        }\n    }\n}\n\nconst eNotationRegx = /^([-+])?(0*)(\\d*(\\.\\d*)?[eE][-\\+]?\\d+)$/;\nfunction resolveEnotation(str,trimmedStr,options){\n    if(!options.eNotation) return str;\n    const notation = trimmedStr.match(eNotationRegx); \n    if(notation){\n        let sign = notation[1] || \"\";\n        const eChar = notation[3].indexOf(\"e\") === -1 ? \"E\" : \"e\";\n        const leadingZeros = notation[2];\n        const eAdjacentToLeadingZeros = sign ? // 0E.\n            str[leadingZeros.length+1] === eChar \n            : str[leadingZeros.length] === eChar;\n\n        if(leadingZeros.length > 1 && eAdjacentToLeadingZeros) return str;\n        else if(leadingZeros.length === 1 \n            && (notation[3].startsWith(`.${eChar}`) || notation[3][0] === eChar)){\n                return Number(trimmedStr);\n        }else if(options.leadingZeros && !eAdjacentToLeadingZeros){ //accept with leading zeros\n            //remove leading 0s\n            trimmedStr = (notation[1] || \"\") + notation[3];\n            return Number(trimmedStr);\n        }else return str;\n    }else{\n        return str;\n    }\n}\n\n/**\n * \n * @param {string} numStr without leading zeros\n * @returns \n */\nfunction trimZeros(numStr){\n    if(numStr && numStr.indexOf(\".\") !== -1){//float\n        numStr = numStr.replace(/0+$/, \"\"); //remove ending zeros\n        if(numStr === \".\")  numStr = \"0\";\n        else if(numStr[0] === \".\")  numStr = \"0\"+numStr;\n        else if(numStr[numStr.length-1] === \".\")  numStr = numStr.substring(0,numStr.length-1);\n        return numStr;\n    }\n    return numStr;\n}\n\nfunction parse_int(numStr, base){\n    //polyfill\n    if(parseInt) return parseInt(numStr, base);\n    else if(Number.parseInt) return Number.parseInt(numStr, base);\n    else if(window && window.parseInt) return window.parseInt(numStr, base);\n    else throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")\n}","function normalize (strArray) {\n  var resultArray = [];\n  if (strArray.length === 0) { return ''; }\n\n  if (typeof strArray[0] !== 'string') {\n    throw new TypeError('Url must be a string. Received ' + strArray[0]);\n  }\n\n  // If the first part is a plain protocol, we combine it with the next part.\n  if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n    var first = strArray.shift();\n    strArray[0] = first + strArray[0];\n  }\n\n  // There must be two or three slashes in the file protocol, two slashes in anything else.\n  if (strArray[0].match(/^file:\\/\\/\\//)) {\n    strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n  } else {\n    strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n  }\n\n  for (var i = 0; i < strArray.length; i++) {\n    var component = strArray[i];\n\n    if (typeof component !== 'string') {\n      throw new TypeError('Url must be a string. Received ' + component);\n    }\n\n    if (component === '') { continue; }\n\n    if (i > 0) {\n      // Removing the starting slashes for each component but the first.\n      component = component.replace(/^[\\/]+/, '');\n    }\n    if (i < strArray.length - 1) {\n      // Removing the ending slashes for each component but the last.\n      component = component.replace(/[\\/]+$/, '');\n    } else {\n      // For the last component we will combine multiple slashes to a single one.\n      component = component.replace(/[\\/]+$/, '/');\n    }\n\n    resultArray.push(component);\n\n  }\n\n  var str = resultArray.join('/');\n  // Each input component is now separated by a single slash except the possible first plain protocol part.\n\n  // remove trailing slash before parameters or hash\n  str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n\n  // replace ? in parameters with &\n  var parts = str.split('?');\n  str = parts.shift() + (parts.length > 0 ? '?': '') + parts.join('&');\n\n  return str;\n}\n\nexport default function urlJoin() {\n  var input;\n\n  if (typeof arguments[0] === 'object') {\n    input = arguments[0];\n  } else {\n    input = [].slice.call(arguments);\n  }\n\n  return normalize(input);\n}\n","import { toBase64 } from \"../tools/encode.js\";\nexport function generateBasicAuthHeader(username, password) {\n    const encoded = toBase64(`${username}:${password}`);\n    return `Basic ${encoded}`;\n}\n","import md5 from \"md5\";\nimport { ha1Compute } from \"../tools/crypto.js\";\nconst NONCE_CHARS = \"abcdef0123456789\";\nconst NONCE_SIZE = 32;\nexport function createDigestContext(username, password, ha1) {\n    return { username, password, ha1, nc: 0, algorithm: \"md5\", hasDigestAuth: false };\n}\nexport function generateDigestAuthHeader(options, digest) {\n    const url = options.url.replace(\"//\", \"\");\n    const uri = url.indexOf(\"/\") == -1 ? \"/\" : url.slice(url.indexOf(\"/\"));\n    const method = options.method ? options.method.toUpperCase() : \"GET\";\n    const qop = /(^|,)\\s*auth\\s*($|,)/.test(digest.qop) ? \"auth\" : false;\n    const ncString = `00000000${digest.nc}`.slice(-8);\n    const ha1 = ha1Compute(digest.algorithm, digest.username, digest.realm, digest.password, digest.nonce, digest.cnonce, digest.ha1);\n    const ha2 = md5(`${method}:${uri}`);\n    const digestResponse = qop\n        ? md5(`${ha1}:${digest.nonce}:${ncString}:${digest.cnonce}:${qop}:${ha2}`)\n        : md5(`${ha1}:${digest.nonce}:${ha2}`);\n    const authValues = {\n        username: digest.username,\n        realm: digest.realm,\n        nonce: digest.nonce,\n        uri,\n        qop,\n        response: digestResponse,\n        nc: ncString,\n        cnonce: digest.cnonce,\n        algorithm: digest.algorithm,\n        opaque: digest.opaque\n    };\n    const authHeader = [];\n    for (const k in authValues) {\n        if (authValues[k]) {\n            if (k === \"qop\" || k === \"nc\" || k === \"algorithm\") {\n                authHeader.push(`${k}=${authValues[k]}`);\n            }\n            else {\n                authHeader.push(`${k}=\"${authValues[k]}\"`);\n            }\n        }\n    }\n    return `Digest ${authHeader.join(\", \")}`;\n}\nfunction makeNonce() {\n    let uid = \"\";\n    for (let i = 0; i < NONCE_SIZE; ++i) {\n        uid = `${uid}${NONCE_CHARS[Math.floor(Math.random() * NONCE_CHARS.length)]}`;\n    }\n    return uid;\n}\nexport function parseDigestAuth(response, _digest) {\n    const isDigest = responseIndicatesDigestAuth(response);\n    if (!isDigest) {\n        return false;\n    }\n    const re = /([a-z0-9_-]+)=(?:\"([^\"]+)\"|([a-z0-9_-]+))/gi;\n    for (;;) {\n        const authHeader = (response.headers && response.headers.get(\"www-authenticate\")) || \"\";\n        const match = re.exec(authHeader);\n        if (!match) {\n            break;\n        }\n        _digest[match[1]] = match[2] || match[3];\n    }\n    _digest.nc += 1;\n    _digest.cnonce = makeNonce();\n    return true;\n}\nexport function responseIndicatesDigestAuth(response) {\n    const authHeader = (response.headers && response.headers.get(\"www-authenticate\")) || \"\";\n    return authHeader.split(/\\s/)[0].toLowerCase() === \"digest\";\n}\n","import { Layerr } from \"layerr\";\nimport { createDigestContext } from \"./digest.js\";\nimport { generateBasicAuthHeader } from \"./basic.js\";\nimport { generateTokenAuthHeader } from \"./oauth.js\";\nimport { AuthType, ErrorCode } from \"../types.js\";\nexport function setupAuth(context, username, password, oauthToken, ha1) {\n    switch (context.authType) {\n        case AuthType.Auto:\n            if (username && password) {\n                context.headers.Authorization = generateBasicAuthHeader(username, password);\n            }\n            break;\n        case AuthType.Digest:\n            context.digest = createDigestContext(username, password, ha1);\n            break;\n        case AuthType.None:\n            // Do nothing\n            break;\n        case AuthType.Password:\n            context.headers.Authorization = generateBasicAuthHeader(username, password);\n            break;\n        case AuthType.Token:\n            context.headers.Authorization = generateTokenAuthHeader(oauthToken);\n            break;\n        default:\n            throw new Layerr({\n                info: {\n                    code: ErrorCode.InvalidAuthType\n                }\n            }, `Invalid auth type: ${context.authType}`);\n    }\n}\n","export function generateTokenAuthHeader(token) {\n    return `${token.token_type} ${token.access_token}`;\n}\n","const hasArrayBuffer = typeof ArrayBuffer === \"function\";\nconst { toString: objToString } = Object.prototype;\n// Taken from: https://github.com/fengyuanchen/is-array-buffer/blob/master/src/index.js\nexport function isArrayBuffer(value) {\n    return (hasArrayBuffer &&\n        (value instanceof ArrayBuffer || objToString.call(value) === \"[object ArrayBuffer]\"));\n}\n","export function isBuffer(value) {\n    return (value != null &&\n        value.constructor != null &&\n        typeof value.constructor.isBuffer === \"function\" &&\n        value.constructor.isBuffer(value));\n}\n","export function isReactNative() {\n    return typeof TARGET === \"string\" && TARGET === \"react-native\";\n}\nexport function isWeb() {\n    return typeof TARGET === \"string\" && TARGET === \"web\";\n}\n","import { HotPatcher } from \"hot-patcher\";\nlet __patcher = null;\nexport function getPatcher() {\n    if (!__patcher) {\n        __patcher = new HotPatcher();\n    }\n    return __patcher;\n}\n","import { extractURLPath } from \"./tools/url.js\";\nimport { setupAuth } from \"./auth/index.js\";\nimport { copyFile } from \"./operations/copyFile.js\";\nimport { createDirectory } from \"./operations/createDirectory.js\";\nimport { createReadStream, createWriteStream } from \"./operations/createStream.js\";\nimport { customRequest } from \"./operations/customRequest.js\";\nimport { deleteFile } from \"./operations/deleteFile.js\";\nimport { exists } from \"./operations/exists.js\";\nimport { getDirectoryContents } from \"./operations/directoryContents.js\";\nimport { getFileContents, getFileDownloadLink } from \"./operations/getFileContents.js\";\nimport { lock, unlock } from \"./operations/lock.js\";\nimport { getQuota } from \"./operations/getQuota.js\";\nimport { getStat } from \"./operations/stat.js\";\nimport { getSearch } from \"./operations/search.js\";\nimport { moveFile } from \"./operations/moveFile.js\";\nimport { getFileUploadLink, putFileContents } from \"./operations/putFileContents.js\";\nimport { partialUpdateFileContents } from \"./operations/partialUpdateFileContents.js\";\nimport { getDAVCompliance } from \"./operations/getDAVCompliance.js\";\nimport { displaynameTagParser } from \"./tools/dav.js\";\nimport { AuthType } from \"./types.js\";\nconst DEFAULT_CONTACT_HREF = \"https://github.com/perry-mitchell/webdav-client/blob/master/LOCK_CONTACT.md\";\nexport function createClient(remoteURL, options = {}) {\n    const { authType: authTypeRaw = null, remoteBasePath, contactHref = DEFAULT_CONTACT_HREF, ha1, headers = {}, httpAgent, httpsAgent, password, token, username, withCredentials } = options;\n    let authType = authTypeRaw;\n    if (!authType) {\n        authType = username || password ? AuthType.Password : AuthType.None;\n    }\n    const context = {\n        authType,\n        remoteBasePath,\n        contactHref,\n        ha1,\n        headers: Object.assign({}, headers),\n        httpAgent,\n        httpsAgent,\n        password,\n        parsing: {\n            attributeNamePrefix: options.attributeNamePrefix ?? \"@\",\n            attributeParsers: [],\n            tagParsers: [displaynameTagParser]\n        },\n        remotePath: extractURLPath(remoteURL),\n        remoteURL,\n        token,\n        username,\n        withCredentials\n    };\n    setupAuth(context, username, password, token, ha1);\n    return {\n        copyFile: (filename, destination, options) => copyFile(context, filename, destination, options),\n        createDirectory: (path, options) => createDirectory(context, path, options),\n        createReadStream: (filename, options) => createReadStream(context, filename, options),\n        createWriteStream: (filename, options, callback) => createWriteStream(context, filename, options, callback),\n        customRequest: (path, requestOptions) => customRequest(context, path, requestOptions),\n        deleteFile: (filename, options) => deleteFile(context, filename, options),\n        exists: (path, options) => exists(context, path, options),\n        getDirectoryContents: (path, options\n        // @ts-ignore\n        ) => getDirectoryContents(context, path, options),\n        getFileContents: (filename, options) => getFileContents(context, filename, options),\n        getFileDownloadLink: (filename) => getFileDownloadLink(context, filename),\n        getFileUploadLink: (filename) => getFileUploadLink(context, filename),\n        getHeaders: () => Object.assign({}, context.headers),\n        getQuota: (options) => getQuota(context, options),\n        lock: (path, options) => lock(context, path, options),\n        moveFile: (filename, destinationFilename, options) => moveFile(context, filename, destinationFilename, options),\n        putFileContents: (filename, data, options) => putFileContents(context, filename, data, options),\n        partialUpdateFileContents: (filePath, start, end, data, options) => partialUpdateFileContents(context, filePath, start, end, data, options),\n        getDAVCompliance: (path) => getDAVCompliance(context, path),\n        search: (path, options) => getSearch(context, path, options),\n        setHeaders: (headers) => {\n            context.headers = Object.assign({}, headers);\n        },\n        stat: (path, options) => getStat(context, path, options),\n        unlock: (path, token, options) => unlock(context, path, token, options),\n        registerAttributeParser: (parser) => {\n            context.parsing.attributeParsers.push(parser);\n        },\n        registerTagParser: (parser) => {\n            context.parsing.tagParsers.push(parser);\n        }\n    };\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function copyFile(context, filename, destination, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filename)),\n        method: \"COPY\",\n        headers: {\n            Destination: joinURL(context.remoteURL, encodePath(destination)),\n            /**\n             * From RFC4918 section 10.6: If the overwrite header is not included in a COPY or MOVE request,\n             * then the resource MUST treat the request as if it has an overwrite header of value \"T\".\n             *\n             * Meaning the overwrite header is always set to \"T\" EXCEPT the option is explicitly set to false.\n             */\n            Overwrite: options.overwrite === false ? \"F\" : \"T\",\n            /**\n             * From RFC4918 section 9.8.3: A client may submit a Depth header on a COPY on a collection with a value of \"0\"\n             * or \"infinity\". The COPY method on a collection without a Depth header MUST act as if\n             * a Depth header with value \"infinity\" was included.\n             */\n            Depth: options.shallow ? \"0\" : \"infinity\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath, getAllDirectories, normalisePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nimport { getStat } from \"./stat.js\";\nexport async function createDirectory(context, dirPath, options = {}) {\n    if (options.recursive === true)\n        return createDirectoryRecursively(context, dirPath, options);\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, ensureCollectionPath(encodePath(dirPath))),\n        method: \"MKCOL\"\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n/**\n * Ensure the path is a proper \"collection\" path by ensuring it has a trailing \"/\".\n * The proper format of collection according to the specification does contain the trailing slash.\n * http://www.webdav.org/specs/rfc4918.html#rfc.section.5.2\n * @param path Path of the collection\n * @return string Path of the collection with appended trailing \"/\" in case the `path` does not have it.\n */\nfunction ensureCollectionPath(path) {\n    if (!path.endsWith(\"/\")) {\n        return path + \"/\";\n    }\n    return path;\n}\nasync function createDirectoryRecursively(context, dirPath, options = {}) {\n    const paths = getAllDirectories(normalisePath(dirPath));\n    paths.sort((a, b) => {\n        if (a.length > b.length) {\n            return 1;\n        }\n        else if (b.length > a.length) {\n            return -1;\n        }\n        return 0;\n    });\n    let creating = false;\n    for (const testPath of paths) {\n        if (creating) {\n            await createDirectory(context, testPath, {\n                ...options,\n                recursive: false\n            });\n            continue;\n        }\n        try {\n            const testStat = (await getStat(context, testPath));\n            if (testStat.type !== \"directory\") {\n                throw new Error(`Path includes a file: ${dirPath}`);\n            }\n        }\n        catch (err) {\n            const error = err;\n            if (error.status === 404) {\n                creating = true;\n                await createDirectory(context, testPath, {\n                    ...options,\n                    recursive: false\n                });\n            }\n            else {\n                throw err;\n            }\n        }\n    }\n}\n","import Stream from \"stream\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nconst NOOP = () => { };\nexport function createReadStream(context, filePath, options = {}) {\n    const PassThroughStream = Stream.PassThrough;\n    const outStream = new PassThroughStream();\n    getFileStream(context, filePath, options)\n        .then(stream => {\n        stream.pipe(outStream);\n    })\n        .catch(err => {\n        outStream.emit(\"error\", err);\n    });\n    return outStream;\n}\nexport function createWriteStream(context, filePath, options = {}, callback = NOOP) {\n    const PassThroughStream = Stream.PassThrough;\n    const writeStream = new PassThroughStream();\n    const headers = {};\n    if (options.overwrite === false) {\n        headers[\"If-None-Match\"] = \"*\";\n    }\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"PUT\",\n        headers,\n        data: writeStream,\n        maxRedirects: 0\n    }, context, options);\n    request(requestOptions, context)\n        .then(response => handleResponseCode(context, response))\n        .then(response => {\n        // Fire callback asynchronously to avoid errors\n        setTimeout(() => {\n            callback(response);\n        }, 0);\n    })\n        .catch(err => {\n        writeStream.emit(\"error\", err);\n    });\n    return writeStream;\n}\nasync function getFileStream(context, filePath, options = {}) {\n    const headers = {};\n    if (typeof options.range === \"object\" && typeof options.range.start === \"number\") {\n        let rangeHeader = `bytes=${options.range.start}-`;\n        if (typeof options.range.end === \"number\") {\n            rangeHeader = `${rangeHeader}${options.range.end}`;\n        }\n        headers.Range = rangeHeader;\n    }\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"GET\",\n        headers\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    if (headers.Range && response.status !== 206) {\n        const responseError = new Error(`Invalid response code for partial request: ${response.status}`);\n        responseError.status = response.status;\n        throw responseError;\n    }\n    if (options.callback) {\n        setTimeout(() => {\n            options.callback(response);\n        }, 0);\n    }\n    // @ts-ignore\n    return response.body;\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function customRequest(context, remotePath, requestOptions) {\n    if (!requestOptions.url) {\n        requestOptions.url = joinURL(context.remoteURL, encodePath(remotePath));\n    }\n    const finalOptions = prepareRequestOptions(requestOptions, context, {});\n    const response = await request(finalOptions, context);\n    handleResponseCode(context, response);\n    return response;\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function deleteFile(context, filename, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filename)),\n        method: \"DELETE\"\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n","import pathPosix from \"path-posix\";\nimport { joinURL, normaliseHREF } from \"../tools/url.js\";\nimport { encodePath, makePathAbsolute, normalisePath } from \"../tools/path.js\";\nimport { parseXML, prepareFileFromProps } from \"../tools/dav.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode, processGlobFilter, processResponsePayload } from \"../response.js\";\nexport async function getDirectoryContents(context, remotePath, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(remotePath), \"/\"),\n        method: \"PROPFIND\",\n        headers: {\n            Accept: \"text/plain,application/xml\",\n            Depth: options.deep ? \"infinity\" : \"1\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseData = await response.text();\n    if (!responseData) {\n        throw new Error(\"Failed parsing directory contents: Empty response\");\n    }\n    const davResp = await parseXML(responseData, context.parsing);\n    const _remotePath = makePathAbsolute(remotePath);\n    const remoteBasePath = makePathAbsolute(context.remoteBasePath || context.remotePath);\n    let files = getDirectoryFiles(davResp, remoteBasePath, _remotePath, options.details, options.includeSelf);\n    if (options.glob) {\n        files = processGlobFilter(files, options.glob);\n    }\n    return processResponsePayload(response, files, options.details);\n}\nfunction getDirectoryFiles(result, serverremoteBasePath, requestPath, isDetailed = false, includeSelf = false) {\n    const serverBase = pathPosix.join(serverremoteBasePath, \"/\");\n    // Extract the response items (directory contents)\n    const { multistatus: { response: responseItems } } = result;\n    // Map all items to a consistent output structure (results)\n    const nodes = responseItems.map(item => {\n        // HREF is the file path (in full) - The href is already XML entities decoded (e.g. foo&bar is reverted to foo&bar)\n        const href = normaliseHREF(item.href);\n        // Each item should contain a stat object\n        const { propstat: { prop: props } } = item;\n        // Process the true full filename (minus the base server path)\n        const filename = serverBase === \"/\"\n            ? decodeURIComponent(normalisePath(href))\n            : normalisePath(pathPosix.relative(decodeURIComponent(serverBase), decodeURIComponent(href)));\n        return prepareFileFromProps(props, filename, isDetailed);\n    });\n    // If specified, also return the current directory\n    if (includeSelf) {\n        return nodes;\n    }\n    // Else, filter out the item pointing to the current directory (not needed)\n    return nodes.filter(item => item.basename &&\n        (item.type === \"file\" || item.filename !== requestPath.replace(/\\/$/, \"\")));\n}\n","import { getStat } from \"./stat.js\";\nexport async function exists(context, remotePath, options = {}) {\n    try {\n        await getStat(context, remotePath, options);\n        return true;\n    }\n    catch (err) {\n        if (err.status === 404) {\n            return false;\n        }\n        throw err;\n    }\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function getDAVCompliance(context, filePath, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"OPTIONS\"\n    }, context, options);\n    const response = await request(requestOptions, context);\n    try {\n        handleResponseCode(context, response);\n    }\n    catch (err) {\n        const error = err;\n        throw error;\n    }\n    const davHeader = response.headers.get(\"DAV\") ?? \"\";\n    const compliance = davHeader.split(\",\").map(item => item.trim());\n    const server = response.headers.get(\"Server\") ?? \"\";\n    return {\n        compliance,\n        server\n    };\n}\n","import { Layerr } from \"layerr\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { fromBase64 } from \"../tools/encode.js\";\nimport { isReactNative, isWeb } from \"../compat/env.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode, processResponsePayload } from \"../response.js\";\nimport { AuthType, ErrorCode } from \"../types.js\";\nconst TRANSFORM_RETAIN_FORMAT = (v) => v;\nexport async function getFileContents(context, filePath, options = {}) {\n    const { format = \"binary\" } = options;\n    if (format !== \"binary\" && format !== \"text\") {\n        throw new Layerr({\n            info: {\n                code: ErrorCode.InvalidOutputFormat\n            }\n        }, `Invalid output format: ${format}`);\n    }\n    return format === \"text\"\n        ? getFileContentsString(context, filePath, options)\n        : getFileContentsBuffer(context, filePath, options);\n}\nasync function getFileContentsBuffer(context, filePath, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"GET\"\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    let body;\n    if (isWeb() || isReactNative()) {\n        body = await response.arrayBuffer();\n    }\n    else {\n        body = Buffer.from(await response.arrayBuffer());\n    }\n    return processResponsePayload(response, body, options.details);\n}\nasync function getFileContentsString(context, filePath, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"GET\",\n        headers: {\n            Accept: \"text/plain\"\n        },\n        transformResponse: [TRANSFORM_RETAIN_FORMAT]\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const body = await response.text();\n    return processResponsePayload(response, body, options.details);\n}\nexport function getFileDownloadLink(context, filePath) {\n    let url = joinURL(context.remoteURL, encodePath(filePath));\n    const protocol = /^https:/i.test(url) ? \"https\" : \"http\";\n    switch (context.authType) {\n        case AuthType.None:\n            // Do nothing\n            break;\n        case AuthType.Password: {\n            const authPart = context.headers.Authorization.replace(/^Basic /i, \"\").trim();\n            const authContents = fromBase64(authPart);\n            url = url.replace(/^https?:\\/\\//, `${protocol}://${authContents}@`);\n            break;\n        }\n        default:\n            throw new Layerr({\n                info: {\n                    code: ErrorCode.LinkUnsupportedAuthType\n                }\n            }, `Unsupported auth type for file link: ${context.authType}`);\n    }\n    return url;\n}\n","import { prepareRequestOptions, request } from \"../request.js\";\nimport { handleResponseCode, processResponsePayload } from \"../response.js\";\nimport { parseXML } from \"../tools/dav.js\";\nimport { joinURL } from \"../tools/url.js\";\nimport { parseQuota } from \"../tools/quota.js\";\nexport async function getQuota(context, options = {}) {\n    const path = options.path || \"/\";\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, path),\n        method: \"PROPFIND\",\n        headers: {\n            Accept: \"text/plain,application/xml\",\n            Depth: \"0\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseData = await response.text();\n    const result = await parseXML(responseData, context.parsing);\n    const quota = parseQuota(result);\n    return processResponsePayload(response, quota, options.details);\n}\n","import nestedProp from \"nested-property\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { generateLockXML, parseGenericResponse } from \"../tools/xml.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { createErrorFromResponse, handleResponseCode } from \"../response.js\";\nconst DEFAULT_TIMEOUT = \"Infinite, Second-4100000000\";\nexport async function lock(context, path, options = {}) {\n    const { refreshToken, timeout = DEFAULT_TIMEOUT } = options;\n    const headers = {\n        Accept: \"text/plain,application/xml\",\n        Timeout: timeout\n    };\n    if (refreshToken) {\n        headers.If = refreshToken;\n    }\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(path)),\n        method: \"LOCK\",\n        headers,\n        data: generateLockXML(context.contactHref)\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseData = await response.text();\n    const lockPayload = parseGenericResponse(responseData);\n    const token = nestedProp.get(lockPayload, \"prop.lockdiscovery.activelock.locktoken.href\");\n    const serverTimeout = nestedProp.get(lockPayload, \"prop.lockdiscovery.activelock.timeout\");\n    if (!token) {\n        const err = createErrorFromResponse(response, \"No lock token received: \");\n        throw err;\n    }\n    return {\n        token,\n        serverTimeout\n    };\n}\nexport async function unlock(context, path, token, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(path)),\n        method: \"UNLOCK\",\n        headers: {\n            \"Lock-Token\": token\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    if (response.status !== 204 && response.status !== 200) {\n        const err = createErrorFromResponse(response);\n        throw err;\n    }\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function moveFile(context, filename, destination, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filename)),\n        method: \"MOVE\",\n        headers: {\n            Destination: joinURL(context.remoteURL, encodePath(destination)),\n            /**\n             * From RFC4918 section 10.6: If the overwrite header is not included in a COPY or MOVE request,\n             * then the resource MUST treat the request as if it has an overwrite header of value \"T\".\n             *\n             * Meaning the overwrite header is always set to \"T\" EXCEPT the option is explicitly set to false.\n             */\n            Overwrite: options.overwrite === false ? \"F\" : \"T\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n","import { Layerr } from \"layerr\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nimport { getDAVCompliance } from \"./getDAVCompliance.js\";\nimport { ErrorCode } from \"../types.js\";\nexport async function partialUpdateFileContents(context, filePath, start, end, data, options = {}) {\n    const compliance = await getDAVCompliance(context, filePath, options);\n    if (compliance.compliance.includes(\"sabredav-partialupdate\")) {\n        return await partialUpdateFileContentsSabredav(context, filePath, start, end, data, options);\n    }\n    if (compliance.server.includes(\"Apache\") &&\n        compliance.compliance.includes(\"\")) {\n        return await partialUpdateFileContentsApache(context, filePath, start, end, data, options);\n    }\n    throw new Layerr({\n        info: {\n            code: ErrorCode.NotSupported\n        }\n    }, \"Not supported\");\n}\nasync function partialUpdateFileContentsSabredav(context, filePath, start, end, data, options = {}) {\n    if (start > end || start < 0) {\n        // Actually, SabreDAV support negative start value,\n        // Do not support here for compatibility with Apache-style way\n        throw new Layerr({\n            info: {\n                code: ErrorCode.InvalidUpdateRange\n            }\n        }, `Invalid update range ${start} for partial update`);\n    }\n    const headers = {\n        \"Content-Type\": \"application/x-sabredav-partialupdate\",\n        \"Content-Length\": `${end - start + 1}`,\n        \"X-Update-Range\": `bytes=${start}-${end}`\n    };\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"PATCH\",\n        headers,\n        data\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\nasync function partialUpdateFileContentsApache(context, filePath, start, end, data, options = {}) {\n    if (start > end || start < 0) {\n        throw new Layerr({\n            info: {\n                code: ErrorCode.InvalidUpdateRange\n            }\n        }, `Invalid update range ${start} for partial update`);\n    }\n    const headers = {\n        \"Content-Type\": \"application/octet-stream\",\n        \"Content-Length\": `${end - start + 1}`,\n        \"Content-Range\": `bytes ${start}-${end}/*`\n    };\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"PUT\",\n        headers,\n        data\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n","import { Layerr } from \"layerr\";\nimport Stream from \"stream\";\nimport { fromBase64 } from \"../tools/encode.js\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { calculateDataLength } from \"../tools/size.js\";\nimport { isReactNative, isWeb } from \"../compat/env.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nimport { AuthType, ErrorCode } from \"../types.js\";\nexport async function putFileContents(context, filePath, data, options = {}) {\n    const { contentLength = true, overwrite = true } = options;\n    const headers = {\n        \"Content-Type\": \"application/octet-stream\"\n    };\n    if (!isWeb() &&\n        !isReactNative() &&\n        typeof Stream !== \"undefined\" &&\n        typeof Stream?.Readable !== \"undefined\" &&\n        data instanceof Stream.Readable) {\n        // Skip, no content-length\n    }\n    else if (contentLength === false) {\n        // Skip, disabled\n    }\n    else if (typeof contentLength === \"number\") {\n        headers[\"Content-Length\"] = `${contentLength}`;\n    }\n    else {\n        headers[\"Content-Length\"] = `${calculateDataLength(data)}`;\n    }\n    if (!overwrite) {\n        headers[\"If-None-Match\"] = \"*\";\n    }\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"PUT\",\n        headers,\n        data\n    }, context, options);\n    const response = await request(requestOptions, context);\n    try {\n        handleResponseCode(context, response);\n    }\n    catch (err) {\n        const error = err;\n        if (error.status === 412 && !overwrite) {\n            return false;\n        }\n        else {\n            throw error;\n        }\n    }\n    return true;\n}\nexport function getFileUploadLink(context, filePath) {\n    let url = `${joinURL(context.remoteURL, encodePath(filePath))}?Content-Type=application/octet-stream`;\n    const protocol = /^https:/i.test(url) ? \"https\" : \"http\";\n    switch (context.authType) {\n        case AuthType.None:\n            // Do nothing\n            break;\n        case AuthType.Password: {\n            const authPart = context.headers.Authorization.replace(/^Basic /i, \"\").trim();\n            const authContents = fromBase64(authPart);\n            url = url.replace(/^https?:\\/\\//, `${protocol}://${authContents}@`);\n            break;\n        }\n        default:\n            throw new Layerr({\n                info: {\n                    code: ErrorCode.LinkUnsupportedAuthType\n                }\n            }, `Unsupported auth type for file link: ${context.authType}`);\n    }\n    return url;\n}\n","import { parseSearch, parseXML } from \"../tools/dav.js\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode, processResponsePayload } from \"../response.js\";\nexport async function getSearch(context, searchArbiter, options = {}) {\n    const { details: isDetailed = false } = options;\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(searchArbiter)),\n        method: \"SEARCH\",\n        headers: {\n            Accept: \"text/plain,application/xml\",\n            // Ensure a Content-Type header is set was this is required by e.g. sabre/dav\n            \"Content-Type\": context.headers[\"Content-Type\"] || \"application/xml; charset=utf-8\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseText = await response.text();\n    const responseData = await parseXML(responseText, context.parsing);\n    const results = parseSearch(responseData, searchArbiter, isDetailed);\n    return processResponsePayload(response, results, isDetailed);\n}\n","import { parseStat, parseXML } from \"../tools/dav.js\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode, processResponsePayload } from \"../response.js\";\nexport async function getStat(context, filename, options = {}) {\n    const { details: isDetailed = false } = options;\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filename)),\n        method: \"PROPFIND\",\n        headers: {\n            Accept: \"text/plain,application/xml\",\n            Depth: \"0\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseData = await response.text();\n    const result = await parseXML(responseData, context.parsing);\n    const stat = parseStat(result, filename, isDetailed);\n    return processResponsePayload(response, stat, isDetailed);\n}\n","import { Agent as HTTPAgent } from \"http\";\nimport { Agent as HTTPSAgent } from \"https\";\nimport { fetch } from \"@buttercup/fetch\";\nimport { getPatcher } from \"./compat/patcher.js\";\nimport { isReactNative, isWeb } from \"./compat/env.js\";\nimport { generateDigestAuthHeader, parseDigestAuth, responseIndicatesDigestAuth } from \"./auth/digest.js\";\nimport { cloneShallow, merge } from \"./tools/merge.js\";\nimport { mergeHeaders } from \"./tools/headers.js\";\nimport { requestDataToFetchBody } from \"./tools/body.js\";\nimport { AuthType } from \"./types.js\";\nimport { setupAuth } from \"./auth/index.js\";\nfunction getFetchOptions(requestOptions) {\n    let headers = {};\n    // Handle standard options\n    const opts = {\n        method: requestOptions.method\n    };\n    if (requestOptions.headers) {\n        headers = mergeHeaders(headers, requestOptions.headers);\n    }\n    if (typeof requestOptions.data !== \"undefined\") {\n        const [body, newHeaders] = requestDataToFetchBody(requestOptions.data);\n        opts.body = body;\n        headers = mergeHeaders(headers, newHeaders);\n    }\n    if (requestOptions.signal) {\n        opts.signal = requestOptions.signal;\n    }\n    if (requestOptions.withCredentials) {\n        opts.credentials = \"include\";\n    }\n    // Check for node-specific options\n    if (!isWeb() && !isReactNative()) {\n        if (requestOptions.httpAgent || requestOptions.httpsAgent) {\n            opts.agent = (parsedURL) => {\n                if (parsedURL.protocol === \"http:\") {\n                    return requestOptions.httpAgent || new HTTPAgent();\n                }\n                return requestOptions.httpsAgent || new HTTPSAgent();\n            };\n        }\n    }\n    // Attach headers\n    opts.headers = headers;\n    return opts;\n}\nexport function prepareRequestOptions(requestOptions, context, userOptions) {\n    const finalOptions = cloneShallow(requestOptions);\n    finalOptions.headers = mergeHeaders(context.headers, finalOptions.headers || {}, userOptions.headers || {});\n    if (typeof userOptions.data !== \"undefined\") {\n        finalOptions.data = userOptions.data;\n    }\n    if (userOptions.signal) {\n        finalOptions.signal = userOptions.signal;\n    }\n    if (context.httpAgent) {\n        finalOptions.httpAgent = context.httpAgent;\n    }\n    if (context.httpsAgent) {\n        finalOptions.httpsAgent = context.httpsAgent;\n    }\n    if (context.digest) {\n        finalOptions._digest = context.digest;\n    }\n    if (typeof context.withCredentials === \"boolean\") {\n        finalOptions.withCredentials = context.withCredentials;\n    }\n    return finalOptions;\n}\nexport async function request(requestOptions, context) {\n    if (context.authType === AuthType.Auto) {\n        return requestAuto(requestOptions, context);\n    }\n    if (requestOptions._digest) {\n        return requestDigest(requestOptions);\n    }\n    return requestStandard(requestOptions);\n}\nasync function requestAuto(requestOptions, context) {\n    const response = await requestStandard(requestOptions);\n    if (response.ok) {\n        context.authType = AuthType.Password;\n        return response;\n    }\n    if (response.status == 401 && responseIndicatesDigestAuth(response)) {\n        context.authType = AuthType.Digest;\n        setupAuth(context, context.username, context.password, undefined, undefined);\n        requestOptions._digest = context.digest;\n        return requestDigest(requestOptions);\n    }\n    return response;\n}\nasync function requestDigest(requestOptions) {\n    // Remove client's digest authentication object from request options\n    const _digest = requestOptions._digest;\n    delete requestOptions._digest;\n    // If client is already using digest authentication, include the digest authorization header\n    if (_digest.hasDigestAuth) {\n        requestOptions = merge(requestOptions, {\n            headers: {\n                Authorization: generateDigestAuthHeader(requestOptions, _digest)\n            }\n        });\n    }\n    // Perform digest request + check\n    const response = await requestStandard(requestOptions);\n    if (response.status == 401) {\n        _digest.hasDigestAuth = parseDigestAuth(response, _digest);\n        if (_digest.hasDigestAuth) {\n            requestOptions = merge(requestOptions, {\n                headers: {\n                    Authorization: generateDigestAuthHeader(requestOptions, _digest)\n                }\n            });\n            const response2 = await requestStandard(requestOptions);\n            if (response2.status == 401) {\n                _digest.hasDigestAuth = false;\n            }\n            else {\n                _digest.nc++;\n            }\n            return response2;\n        }\n    }\n    else {\n        _digest.nc++;\n    }\n    return response;\n}\nfunction requestStandard(requestOptions) {\n    const patcher = getPatcher();\n    return patcher.patchInline(\"request\", (options) => patcher.patchInline(\"fetch\", fetch, options.url, getFetchOptions(options)), requestOptions);\n}\n","import { minimatch } from \"minimatch\";\nimport { convertResponseHeaders } from \"./tools/headers.js\";\nexport function createErrorFromResponse(response, prefix = \"\") {\n    const err = new Error(`${prefix}Invalid response: ${response.status} ${response.statusText}`);\n    err.status = response.status;\n    err.response = response;\n    return err;\n}\nexport function handleResponseCode(context, response) {\n    const { status } = response;\n    if (status === 401 && context.digest)\n        return response;\n    if (status >= 400) {\n        const err = createErrorFromResponse(response);\n        throw err;\n    }\n    return response;\n}\nexport function processGlobFilter(files, glob) {\n    return files.filter(file => minimatch(file.filename, glob, { matchBase: true }));\n}\n/**\n * Process a response payload (eg. from `customRequest`) and\n *  prepare it for further processing. Exposed for custom\n *  request handling.\n * @param response The response for a request\n * @param data The data returned\n * @param isDetailed Whether or not a detailed result is\n *  requested\n * @returns The response data, or a detailed response object\n *  if required\n */\nexport function processResponsePayload(response, data, isDetailed = false) {\n    return isDetailed\n        ? {\n            data,\n            headers: response.headers ? convertResponseHeaders(response.headers) : {},\n            status: response.status,\n            statusText: response.statusText\n        }\n        : data;\n}\n","import Stream from \"stream\";\nimport { isArrayBuffer } from \"../compat/arrayBuffer.js\";\nimport { isBuffer } from \"../compat/buffer.js\";\nimport { isReactNative, isWeb } from \"../compat/env.js\";\nexport function requestDataToFetchBody(data) {\n    if (!isWeb() && !isReactNative() && data instanceof Stream.Readable) {\n        // @ts-ignore\n        return [data, {}];\n    }\n    if (typeof data === \"string\") {\n        return [data, {}];\n    }\n    else if (isBuffer(data)) {\n        return [data, {}];\n    }\n    else if (isArrayBuffer(data)) {\n        return [data, {}];\n    }\n    else if (data && typeof data === \"object\") {\n        return [\n            JSON.stringify(data),\n            {\n                \"content-type\": \"application/json\"\n            }\n        ];\n    }\n    throw new Error(`Unable to convert request body: Unexpected body type: ${typeof data}`);\n}\n","import md5 from \"md5\";\nexport function ha1Compute(algorithm, user, realm, pass, nonce, cnonce, ha1) {\n    const ha1Hash = ha1 || md5(`${user}:${realm}:${pass}`);\n    if (algorithm && algorithm.toLowerCase() === \"md5-sess\") {\n        return md5(`${ha1Hash}:${nonce}:${cnonce}`);\n    }\n    return ha1Hash;\n}\n","import path from \"path-posix\";\nimport { XMLParser } from \"fast-xml-parser\";\nimport nestedProp from \"nested-property\";\nimport { encodePath, normalisePath } from \"./path.js\";\nvar PropertyType;\n(function (PropertyType) {\n    PropertyType[\"Array\"] = \"array\";\n    PropertyType[\"Object\"] = \"object\";\n    PropertyType[\"Original\"] = \"original\";\n})(PropertyType || (PropertyType = {}));\nfunction getParser({ attributeNamePrefix, attributeParsers, tagParsers }) {\n    return new XMLParser({\n        allowBooleanAttributes: true,\n        attributeNamePrefix,\n        textNodeName: \"text\",\n        ignoreAttributes: false,\n        removeNSPrefix: true,\n        numberParseOptions: {\n            hex: true,\n            leadingZeros: false\n        },\n        attributeValueProcessor(_, attrValue, jPath) {\n            for (const processor of attributeParsers) {\n                try {\n                    const value = processor(jPath, attrValue);\n                    if (value !== attrValue) {\n                        return value;\n                    }\n                }\n                catch (error) {\n                    // skipping this invalid parser\n                }\n            }\n            return attrValue;\n        },\n        tagValueProcessor(tagName, tagValue, jPath) {\n            for (const processor of tagParsers) {\n                try {\n                    const value = processor(jPath, tagValue);\n                    if (value !== tagValue) {\n                        return value;\n                    }\n                }\n                catch (error) {\n                    // skipping this invalid parser\n                }\n            }\n            return tagValue;\n        }\n    });\n}\n/**\n * Tag parser for the displayname prop.\n * Ensure that the displayname is not parsed and always handled as is.\n * @param path The jPath of the tag\n * @param value The text value of the tag\n */\nexport function displaynameTagParser(path, value) {\n    if (path.endsWith(\"propstat.prop.displayname\")) {\n        // Do not parse the displayname, because this causes e.g. '2024.10' to result in number 2024.1\n        return;\n    }\n    return value;\n}\nfunction getPropertyOfType(obj, prop, type = PropertyType.Original) {\n    const val = nestedProp.get(obj, prop);\n    if (type === \"array\" && Array.isArray(val) === false) {\n        return [val];\n    }\n    else if (type === \"object\" && Array.isArray(val)) {\n        return val[0];\n    }\n    return val;\n}\nfunction normaliseResponse(response) {\n    const output = Object.assign({}, response);\n    // Only either status OR propstat is allowed\n    if (output.status) {\n        nestedProp.set(output, \"status\", getPropertyOfType(output, \"status\", PropertyType.Object));\n    }\n    else {\n        nestedProp.set(output, \"propstat\", getPropertyOfType(output, \"propstat\", PropertyType.Object));\n        nestedProp.set(output, \"propstat.prop\", getPropertyOfType(output, \"propstat.prop\", PropertyType.Object));\n    }\n    return output;\n}\nfunction normaliseResult(result) {\n    const { multistatus } = result;\n    if (multistatus === \"\") {\n        return {\n            multistatus: {\n                response: []\n            }\n        };\n    }\n    if (!multistatus) {\n        throw new Error(\"Invalid response: No root multistatus found\");\n    }\n    const output = {\n        multistatus: Array.isArray(multistatus) ? multistatus[0] : multistatus\n    };\n    nestedProp.set(output, \"multistatus.response\", getPropertyOfType(output, \"multistatus.response\", PropertyType.Array));\n    nestedProp.set(output, \"multistatus.response\", nestedProp.get(output, \"multistatus.response\").map(response => normaliseResponse(response)));\n    return output;\n}\n/**\n * Parse an XML response from a WebDAV service,\n *  converting it to an internal DAV result\n * @param xml The raw XML string\n * @param context The current client context\n * @returns A parsed and processed DAV result\n */\nexport function parseXML(xml, context) {\n    // backwards compatibility as this method is exported from the package\n    context = context ?? {\n        attributeNamePrefix: \"@\",\n        attributeParsers: [],\n        tagParsers: [displaynameTagParser]\n    };\n    return new Promise(resolve => {\n        const result = getParser(context).parse(xml);\n        resolve(normaliseResult(result));\n    });\n}\n/**\n * Get a file stat result from given DAV properties\n * @param props DAV properties\n * @param filename The filename for the file stat\n * @param isDetailed Whether or not the raw props of the resource should be returned\n * @returns A file stat result\n */\nexport function prepareFileFromProps(props, filename, isDetailed = false) {\n    // Last modified time, raw size, item type and mime\n    const { getlastmodified: lastMod = null, getcontentlength: rawSize = \"0\", resourcetype: resourceType = null, getcontenttype: mimeType = null, getetag: etag = null } = props;\n    const type = resourceType &&\n        typeof resourceType === \"object\" &&\n        typeof resourceType.collection !== \"undefined\"\n        ? \"directory\"\n        : \"file\";\n    const stat = {\n        filename,\n        basename: path.basename(filename),\n        lastmod: lastMod,\n        size: parseInt(rawSize, 10),\n        type,\n        etag: typeof etag === \"string\" ? etag.replace(/\"/g, \"\") : null\n    };\n    if (type === \"file\") {\n        stat.mime = mimeType && typeof mimeType === \"string\" ? mimeType.split(\";\")[0] : \"\";\n    }\n    if (isDetailed) {\n        // The XML parser tries to interpret values, but the display name is required to be a string\n        if (typeof props.displayname !== \"undefined\") {\n            props.displayname = String(props.displayname);\n        }\n        stat.props = props;\n    }\n    return stat;\n}\n/**\n * Parse a DAV result for file stats\n * @param result The resulting DAV response\n * @param filename The filename that was stat'd\n * @param isDetailed Whether or not the raw props of\n *  the resource should be returned\n * @returns A file stat result\n */\nexport function parseStat(result, filename, isDetailed = false) {\n    let responseItem = null;\n    try {\n        // should be a propstat response, if not the if below will throw an error\n        if (result.multistatus.response[0].propstat) {\n            responseItem = result.multistatus.response[0];\n        }\n    }\n    catch (e) {\n        /* ignore */\n    }\n    if (!responseItem) {\n        throw new Error(\"Failed getting item stat: bad response\");\n    }\n    const { propstat: { prop: props, status: statusLine } } = responseItem;\n    // As defined in https://tools.ietf.org/html/rfc2068#section-6.1\n    const [_, statusCodeStr, statusText] = statusLine.split(\" \", 3);\n    const statusCode = parseInt(statusCodeStr, 10);\n    if (statusCode >= 400) {\n        const err = new Error(`Invalid response: ${statusCode} ${statusText}`);\n        err.status = statusCode;\n        throw err;\n    }\n    const filePath = normalisePath(filename);\n    return prepareFileFromProps(props, filePath, isDetailed);\n}\n/**\n * Parse a DAV result for a search request\n *\n * @param result The resulting DAV response\n * @param searchArbiter The collection path that was searched\n * @param isDetailed Whether or not the raw props of the resource should be returned\n */\nexport function parseSearch(result, searchArbiter, isDetailed) {\n    const response = {\n        truncated: false,\n        results: []\n    };\n    response.truncated = result.multistatus.response.some(v => {\n        return ((v.status || v.propstat?.status).split(\" \", 3)?.[1] === \"507\" &&\n            v.href.replace(/\\/$/, \"\").endsWith(encodePath(searchArbiter).replace(/\\/$/, \"\")));\n    });\n    result.multistatus.response.forEach(result => {\n        if (result.propstat === undefined) {\n            return;\n        }\n        const filename = result.href.split(\"/\").map(decodeURIComponent).join(\"/\");\n        response.results.push(prepareFileFromProps(result.propstat.prop, filename, isDetailed));\n    });\n    return response;\n}\n/**\n * Translate a disk quota indicator to a recognised\n *  value (includes \"unlimited\" and \"unknown\")\n * @param value The quota indicator, eg. \"-3\"\n * @returns The value in bytes, or another indicator\n */\nexport function translateDiskSpace(value) {\n    switch (String(value)) {\n        case \"-3\":\n            return \"unlimited\";\n        case \"-2\":\n        /* falls-through */\n        case \"-1\":\n            // -1 is non-computed\n            return \"unknown\";\n        default:\n            return parseInt(String(value), 10);\n    }\n}\n","import base64 from \"base-64\";\nimport { decodeHTML } from \"entities\";\nimport { isWeb } from \"../compat/env.js\";\nexport function decodeHTMLEntities(text) {\n    if (isWeb()) {\n        const txt = document.createElement(\"textarea\");\n        txt.innerHTML = text;\n        return txt.value;\n    }\n    return decodeHTML(text);\n}\nexport function fromBase64(text) {\n    return base64.decode(text);\n}\nexport function toBase64(text) {\n    return base64.encode(text);\n}\n","export function convertResponseHeaders(headers) {\n    const output = {};\n    for (const key of headers.keys()) {\n        output[key] = headers.get(key);\n    }\n    return output;\n}\nexport function mergeHeaders(...headerPayloads) {\n    if (headerPayloads.length === 0)\n        return {};\n    const headerKeys = {};\n    return headerPayloads.reduce((output, headers) => {\n        Object.keys(headers).forEach(header => {\n            const lowerHeader = header.toLowerCase();\n            if (headerKeys.hasOwnProperty(lowerHeader)) {\n                output[headerKeys[lowerHeader]] = headers[header];\n            }\n            else {\n                headerKeys[lowerHeader] = header;\n                output[header] = headers[header];\n            }\n        });\n        return output;\n    }, {});\n}\n","export function cloneShallow(obj) {\n    return isPlainObject(obj)\n        ? Object.assign({}, obj)\n        : Object.setPrototypeOf(Object.assign({}, obj), Object.getPrototypeOf(obj));\n}\nfunction isPlainObject(obj) {\n    if (typeof obj !== \"object\" ||\n        obj === null ||\n        Object.prototype.toString.call(obj) != \"[object Object]\") {\n        // Not an object\n        return false;\n    }\n    if (Object.getPrototypeOf(obj) === null) {\n        return true;\n    }\n    let proto = obj;\n    // Find the prototype\n    while (Object.getPrototypeOf(proto) !== null) {\n        proto = Object.getPrototypeOf(proto);\n    }\n    return Object.getPrototypeOf(obj) === proto;\n}\nexport function merge(...args) {\n    let output = null, items = [...args];\n    while (items.length > 0) {\n        const nextItem = items.shift();\n        if (!output) {\n            output = cloneShallow(nextItem);\n        }\n        else {\n            output = mergeObjects(output, nextItem);\n        }\n    }\n    return output;\n}\nfunction mergeObjects(obj1, obj2) {\n    const output = cloneShallow(obj1);\n    Object.keys(obj2).forEach(key => {\n        if (!output.hasOwnProperty(key)) {\n            output[key] = obj2[key];\n            return;\n        }\n        if (Array.isArray(obj2[key])) {\n            output[key] = Array.isArray(output[key])\n                ? [...output[key], ...obj2[key]]\n                : [...obj2[key]];\n        }\n        else if (typeof obj2[key] === \"object\" && !!obj2[key]) {\n            output[key] =\n                typeof output[key] === \"object\" && !!output[key]\n                    ? mergeObjects(output[key], obj2[key])\n                    : cloneShallow(obj2[key]);\n        }\n        else {\n            output[key] = obj2[key];\n        }\n    });\n    return output;\n}\n","import { Layerr } from \"layerr\";\nimport path from \"path-posix\";\nconst SEP_PATH_POSIX = \"__PATH_SEPARATOR_POSIX__\";\nconst SEP_PATH_WINDOWS = \"__PATH_SEPARATOR_WINDOWS__\";\nexport function encodePath(filePath) {\n    try {\n        const replaced = filePath.replace(/\\//g, SEP_PATH_POSIX).replace(/\\\\\\\\/g, SEP_PATH_WINDOWS);\n        const formatted = encodeURIComponent(replaced);\n        return formatted.split(SEP_PATH_WINDOWS).join(\"\\\\\\\\\").split(SEP_PATH_POSIX).join(\"/\");\n    }\n    catch (err) {\n        throw new Layerr(err, \"Failed encoding path\");\n    }\n}\nexport function getAllDirectories(directory) {\n    if (!directory || directory === \"/\")\n        return [];\n    let currentPath = directory;\n    const output = [];\n    do {\n        output.push(currentPath);\n        currentPath = path.dirname(currentPath);\n    } while (currentPath && currentPath !== \"/\");\n    return output;\n}\nexport function makePathAbsolute(pathStr) {\n    return pathStr.startsWith(\"/\") ? pathStr : \"/\" + pathStr;\n}\nexport function normalisePath(pathStr) {\n    let normalisedPath = pathStr;\n    if (normalisedPath[0] !== \"/\") {\n        normalisedPath = \"/\" + normalisedPath;\n    }\n    if (/^.+\\/$/.test(normalisedPath)) {\n        normalisedPath = normalisedPath.substr(0, normalisedPath.length - 1);\n    }\n    return normalisedPath;\n}\n","import { translateDiskSpace } from \"./dav.js\";\nexport function parseQuota(result) {\n    try {\n        const [responseItem] = result.multistatus.response;\n        const { propstat: { prop: { \"quota-used-bytes\": quotaUsed, \"quota-available-bytes\": quotaAvail } } } = responseItem;\n        return typeof quotaUsed !== \"undefined\" && typeof quotaAvail !== \"undefined\"\n            ? {\n                // As it could be both a string or a number ensure we are working with a number\n                used: parseInt(String(quotaUsed), 10),\n                available: translateDiskSpace(quotaAvail)\n            }\n            : null;\n    }\n    catch (err) {\n        /* ignore */\n    }\n    return null;\n}\n","import { Layerr } from \"layerr\";\nimport { byteLength } from \"byte-length\";\nimport { isArrayBuffer } from \"../compat/arrayBuffer.js\";\nimport { isBuffer } from \"../compat/buffer.js\";\nimport { ErrorCode } from \"../types.js\";\nexport function calculateDataLength(data) {\n    if (isArrayBuffer(data)) {\n        return data.byteLength;\n    }\n    else if (isBuffer(data)) {\n        return data.length;\n    }\n    else if (typeof data === \"string\") {\n        return byteLength(data);\n    }\n    throw new Layerr({\n        info: {\n            code: ErrorCode.DataTypeNoLength\n        }\n    }, \"Cannot calculate data length: Invalid type\");\n}\n","import URL from \"url-parse\";\nimport { Layerr } from \"layerr\";\nimport _joinURL from \"url-join\";\nimport { normalisePath } from \"./path.js\";\nexport function extractURLPath(fullURL) {\n    const url = new URL(fullURL);\n    let urlPath = url.pathname;\n    if (urlPath.length <= 0) {\n        urlPath = \"/\";\n    }\n    return normalisePath(urlPath);\n}\nexport function joinURL(...parts) {\n    return _joinURL(parts.reduce((output, nextPart, partIndex) => {\n        if (partIndex === 0 ||\n            nextPart !== \"/\" ||\n            (nextPart === \"/\" && output[output.length - 1] !== \"/\")) {\n            output.push(nextPart);\n        }\n        return output;\n    }, []));\n}\nexport function normaliseHREF(href) {\n    try {\n        const normalisedHref = href.replace(/^https?:\\/\\/[^\\/]+/, \"\");\n        return normalisedHref;\n    }\n    catch (err) {\n        throw new Layerr(err, \"Failed normalising HREF\");\n    }\n}\n","import { XMLParser, XMLBuilder } from \"fast-xml-parser\";\nexport function generateLockXML(ownerHREF) {\n    return getBuilder().build(namespace({\n        lockinfo: {\n            \"@_xmlns:d\": \"DAV:\",\n            lockscope: {\n                exclusive: {}\n            },\n            locktype: {\n                write: {}\n            },\n            owner: {\n                href: ownerHREF\n            }\n        }\n    }, \"d\"));\n}\nfunction getBuilder() {\n    return new XMLBuilder({\n        attributeNamePrefix: \"@_\",\n        format: true,\n        ignoreAttributes: false,\n        suppressEmptyNode: true\n    });\n}\nfunction getParser() {\n    return new XMLParser({\n        removeNSPrefix: true,\n        parseAttributeValue: true,\n        parseTagValue: true\n    });\n}\nfunction namespace(obj, ns) {\n    const copy = { ...obj };\n    for (const key in copy) {\n        if (!copy.hasOwnProperty(key)) {\n            continue;\n        }\n        if (copy[key] && typeof copy[key] === \"object\" && key.indexOf(\":\") === -1) {\n            copy[`${ns}:${key}`] = namespace(copy[key], ns);\n            delete copy[key];\n        }\n        else if (/^@_/.test(key) === false) {\n            copy[`${ns}:${key}`] = copy[key];\n            delete copy[key];\n        }\n    }\n    return copy;\n}\nexport function parseGenericResponse(xml) {\n    return getParser().parse(xml);\n}\n","export { Request, Response } from \"@buttercup/fetch\";\nexport var AuthType;\n(function (AuthType) {\n    AuthType[\"Auto\"] = \"auto\";\n    AuthType[\"Digest\"] = \"digest\";\n    AuthType[\"None\"] = \"none\";\n    AuthType[\"Password\"] = \"password\";\n    AuthType[\"Token\"] = \"token\";\n})(AuthType || (AuthType = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n    ErrorCode[\"DataTypeNoLength\"] = \"data-type-no-length\";\n    ErrorCode[\"InvalidAuthType\"] = \"invalid-auth-type\";\n    ErrorCode[\"InvalidOutputFormat\"] = \"invalid-output-format\";\n    ErrorCode[\"LinkUnsupportedAuthType\"] = \"link-unsupported-auth\";\n    ErrorCode[\"InvalidUpdateRange\"] = \"invalid-update-range\";\n    ErrorCode[\"NotSupported\"] = \"not-supported\";\n})(ErrorCode || (ErrorCode = {}));\n","// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nconst decodeMap = new Map([\n    [0, 65533],\n    // C1 Unicode control character reference replacements\n    [128, 8364],\n    [130, 8218],\n    [131, 402],\n    [132, 8222],\n    [133, 8230],\n    [134, 8224],\n    [135, 8225],\n    [136, 710],\n    [137, 8240],\n    [138, 352],\n    [139, 8249],\n    [140, 338],\n    [142, 381],\n    [145, 8216],\n    [146, 8217],\n    [147, 8220],\n    [148, 8221],\n    [149, 8226],\n    [150, 8211],\n    [151, 8212],\n    [152, 732],\n    [153, 8482],\n    [154, 353],\n    [155, 8250],\n    [156, 339],\n    [158, 382],\n    [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexport const fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n    let output = \"\";\n    if (codePoint > 65535) {\n        codePoint -= 65536;\n        output += String.fromCharCode(((codePoint >>> 10) & 1023) | 55296);\n        codePoint = 56320 | (codePoint & 1023);\n    }\n    output += String.fromCharCode(codePoint);\n    return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nexport function replaceCodePoint(codePoint) {\n    var _a;\n    if ((codePoint >= 55296 && codePoint <= 57343) ||\n        codePoint > 1114111) {\n        return 65533;\n    }\n    return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nexport function decodeCodePoint(codePoint) {\n    return fromCodePoint(replaceCodePoint(codePoint));\n}\n//# sourceMappingURL=decode-codepoint.js.map","import { htmlDecodeTree } from \"./generated/decode-data-html.js\";\nimport { xmlDecodeTree } from \"./generated/decode-data-xml.js\";\nimport { replaceCodePoint, fromCodePoint } from \"./decode-codepoint.js\";\nvar CharCodes;\n(function (CharCodes) {\n    CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n    CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n    CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n    CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n    CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n    CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n    CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n    CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n    CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n    CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n    CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n    CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 32;\nexport var BinTrieFlags;\n(function (BinTrieFlags) {\n    BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n    BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n    BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags || (BinTrieFlags = {}));\nfunction isNumber(code) {\n    return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n    return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n        (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n    return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n        (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n        isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n    return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n    EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n    EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n    EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n    EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n    EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nexport var DecodingMode;\n(function (DecodingMode) {\n    /** Entities in text nodes that can end with any character. */\n    DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n    /** Only allow entities terminated with a semicolon. */\n    DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n    /** Entities in attributes have limitations on ending characters. */\n    DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode || (DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nexport class EntityDecoder {\n    constructor(\n    /** The tree used to decode entities. */\n    decodeTree, \n    /**\n     * The function that is called when a codepoint is decoded.\n     *\n     * For multi-byte named entities, this will be called multiple times,\n     * with the second codepoint, and the same `consumed` value.\n     *\n     * @param codepoint The decoded codepoint.\n     * @param consumed The number of bytes consumed by the decoder.\n     */\n    emitCodePoint, \n    /** An object that is used to produce errors. */\n    errors) {\n        this.decodeTree = decodeTree;\n        this.emitCodePoint = emitCodePoint;\n        this.errors = errors;\n        /** The current state of the decoder. */\n        this.state = EntityDecoderState.EntityStart;\n        /** Characters that were consumed while parsing an entity. */\n        this.consumed = 1;\n        /**\n         * The result of the entity.\n         *\n         * Either the result index of a numeric entity, or the codepoint of a\n         * numeric entity.\n         */\n        this.result = 0;\n        /** The current index in the decode tree. */\n        this.treeIndex = 0;\n        /** The number of characters that were consumed in excess. */\n        this.excess = 1;\n        /** The mode in which the decoder is operating. */\n        this.decodeMode = DecodingMode.Strict;\n    }\n    /** Resets the instance to make it reusable. */\n    startEntity(decodeMode) {\n        this.decodeMode = decodeMode;\n        this.state = EntityDecoderState.EntityStart;\n        this.result = 0;\n        this.treeIndex = 0;\n        this.excess = 1;\n        this.consumed = 1;\n    }\n    /**\n     * Write an entity to the decoder. This can be called multiple times with partial entities.\n     * If the entity is incomplete, the decoder will return -1.\n     *\n     * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n     * entity is incomplete, and resume when the next string is written.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    write(input, offset) {\n        switch (this.state) {\n            case EntityDecoderState.EntityStart: {\n                if (input.charCodeAt(offset) === CharCodes.NUM) {\n                    this.state = EntityDecoderState.NumericStart;\n                    this.consumed += 1;\n                    return this.stateNumericStart(input, offset + 1);\n                }\n                this.state = EntityDecoderState.NamedEntity;\n                return this.stateNamedEntity(input, offset);\n            }\n            case EntityDecoderState.NumericStart: {\n                return this.stateNumericStart(input, offset);\n            }\n            case EntityDecoderState.NumericDecimal: {\n                return this.stateNumericDecimal(input, offset);\n            }\n            case EntityDecoderState.NumericHex: {\n                return this.stateNumericHex(input, offset);\n            }\n            case EntityDecoderState.NamedEntity: {\n                return this.stateNamedEntity(input, offset);\n            }\n        }\n    }\n    /**\n     * Switches between the numeric decimal and hexadecimal states.\n     *\n     * Equivalent to the `Numeric character reference state` in the HTML spec.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    stateNumericStart(input, offset) {\n        if (offset >= input.length) {\n            return -1;\n        }\n        if ((input.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n            this.state = EntityDecoderState.NumericHex;\n            this.consumed += 1;\n            return this.stateNumericHex(input, offset + 1);\n        }\n        this.state = EntityDecoderState.NumericDecimal;\n        return this.stateNumericDecimal(input, offset);\n    }\n    addToNumericResult(input, start, end, base) {\n        if (start !== end) {\n            const digitCount = end - start;\n            this.result =\n                this.result * Math.pow(base, digitCount) +\n                    Number.parseInt(input.substr(start, digitCount), base);\n            this.consumed += digitCount;\n        }\n    }\n    /**\n     * Parses a hexadecimal numeric entity.\n     *\n     * Equivalent to the `Hexademical character reference state` in the HTML spec.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    stateNumericHex(input, offset) {\n        const startIndex = offset;\n        while (offset < input.length) {\n            const char = input.charCodeAt(offset);\n            if (isNumber(char) || isHexadecimalCharacter(char)) {\n                offset += 1;\n            }\n            else {\n                this.addToNumericResult(input, startIndex, offset, 16);\n                return this.emitNumericEntity(char, 3);\n            }\n        }\n        this.addToNumericResult(input, startIndex, offset, 16);\n        return -1;\n    }\n    /**\n     * Parses a decimal numeric entity.\n     *\n     * Equivalent to the `Decimal character reference state` in the HTML spec.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    stateNumericDecimal(input, offset) {\n        const startIndex = offset;\n        while (offset < input.length) {\n            const char = input.charCodeAt(offset);\n            if (isNumber(char)) {\n                offset += 1;\n            }\n            else {\n                this.addToNumericResult(input, startIndex, offset, 10);\n                return this.emitNumericEntity(char, 2);\n            }\n        }\n        this.addToNumericResult(input, startIndex, offset, 10);\n        return -1;\n    }\n    /**\n     * Validate and emit a numeric entity.\n     *\n     * Implements the logic from the `Hexademical character reference start\n     * state` and `Numeric character reference end state` in the HTML spec.\n     *\n     * @param lastCp The last code point of the entity. Used to see if the\n     *               entity was terminated with a semicolon.\n     * @param expectedLength The minimum number of characters that should be\n     *                       consumed. Used to validate that at least one digit\n     *                       was consumed.\n     * @returns The number of characters that were consumed.\n     */\n    emitNumericEntity(lastCp, expectedLength) {\n        var _a;\n        // Ensure we consumed at least one digit.\n        if (this.consumed <= expectedLength) {\n            (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n            return 0;\n        }\n        // Figure out if this is a legit end of the entity\n        if (lastCp === CharCodes.SEMI) {\n            this.consumed += 1;\n        }\n        else if (this.decodeMode === DecodingMode.Strict) {\n            return 0;\n        }\n        this.emitCodePoint(replaceCodePoint(this.result), this.consumed);\n        if (this.errors) {\n            if (lastCp !== CharCodes.SEMI) {\n                this.errors.missingSemicolonAfterCharacterReference();\n            }\n            this.errors.validateNumericCharacterReference(this.result);\n        }\n        return this.consumed;\n    }\n    /**\n     * Parses a named entity.\n     *\n     * Equivalent to the `Named character reference state` in the HTML spec.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    stateNamedEntity(input, offset) {\n        const { decodeTree } = this;\n        let current = decodeTree[this.treeIndex];\n        // The mask is the number of bytes of the value, including the current byte.\n        let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n        for (; offset < input.length; offset++, this.excess++) {\n            const char = input.charCodeAt(offset);\n            this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n            if (this.treeIndex < 0) {\n                return this.result === 0 ||\n                    // If we are parsing an attribute\n                    (this.decodeMode === DecodingMode.Attribute &&\n                        // We shouldn't have consumed any characters after the entity,\n                        (valueLength === 0 ||\n                            // And there should be no invalid characters.\n                            isEntityInAttributeInvalidEnd(char)))\n                    ? 0\n                    : this.emitNotTerminatedNamedEntity();\n            }\n            current = decodeTree[this.treeIndex];\n            valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n            // If the branch is a value, store it and continue\n            if (valueLength !== 0) {\n                // If the entity is terminated by a semicolon, we are done.\n                if (char === CharCodes.SEMI) {\n                    return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n                }\n                // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n                if (this.decodeMode !== DecodingMode.Strict) {\n                    this.result = this.treeIndex;\n                    this.consumed += this.excess;\n                    this.excess = 0;\n                }\n            }\n        }\n        return -1;\n    }\n    /**\n     * Emit a named entity that was not terminated with a semicolon.\n     *\n     * @returns The number of characters consumed.\n     */\n    emitNotTerminatedNamedEntity() {\n        var _a;\n        const { result, decodeTree } = this;\n        const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n        this.emitNamedEntityData(result, valueLength, this.consumed);\n        (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n        return this.consumed;\n    }\n    /**\n     * Emit a named entity.\n     *\n     * @param result The index of the entity in the decode tree.\n     * @param valueLength The number of bytes in the entity.\n     * @param consumed The number of characters consumed.\n     *\n     * @returns The number of characters consumed.\n     */\n    emitNamedEntityData(result, valueLength, consumed) {\n        const { decodeTree } = this;\n        this.emitCodePoint(valueLength === 1\n            ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n            : decodeTree[result + 1], consumed);\n        if (valueLength === 3) {\n            // For multi-byte values, we need to emit the second byte.\n            this.emitCodePoint(decodeTree[result + 2], consumed);\n        }\n        return consumed;\n    }\n    /**\n     * Signal to the parser that the end of the input was reached.\n     *\n     * Remaining data will be emitted and relevant errors will be produced.\n     *\n     * @returns The number of characters consumed.\n     */\n    end() {\n        var _a;\n        switch (this.state) {\n            case EntityDecoderState.NamedEntity: {\n                // Emit a named entity if we have one.\n                return this.result !== 0 &&\n                    (this.decodeMode !== DecodingMode.Attribute ||\n                        this.result === this.treeIndex)\n                    ? this.emitNotTerminatedNamedEntity()\n                    : 0;\n            }\n            // Otherwise, emit a numeric entity if we have one.\n            case EntityDecoderState.NumericDecimal: {\n                return this.emitNumericEntity(0, 2);\n            }\n            case EntityDecoderState.NumericHex: {\n                return this.emitNumericEntity(0, 3);\n            }\n            case EntityDecoderState.NumericStart: {\n                (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n                return 0;\n            }\n            case EntityDecoderState.EntityStart: {\n                // Return 0 if we have no entity.\n                return 0;\n            }\n        }\n    }\n}\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n    let returnValue = \"\";\n    const decoder = new EntityDecoder(decodeTree, (data) => (returnValue += fromCodePoint(data)));\n    return function decodeWithTrie(input, decodeMode) {\n        let lastIndex = 0;\n        let offset = 0;\n        while ((offset = input.indexOf(\"&\", offset)) >= 0) {\n            returnValue += input.slice(lastIndex, offset);\n            decoder.startEntity(decodeMode);\n            const length = decoder.write(input, \n            // Skip the \"&\"\n            offset + 1);\n            if (length < 0) {\n                lastIndex = offset + decoder.end();\n                break;\n            }\n            lastIndex = offset + length;\n            // If `length` is 0, skip the current `&` and continue.\n            offset = length === 0 ? lastIndex + 1 : lastIndex;\n        }\n        const result = returnValue + input.slice(lastIndex);\n        // Make sure we don't keep a reference to the final string.\n        returnValue = \"\";\n        return result;\n    };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nexport function determineBranch(decodeTree, current, nodeIndex, char) {\n    const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n    const jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n    // Case 1: Single branch encoded in jump offset\n    if (branchCount === 0) {\n        return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1;\n    }\n    // Case 2: Multiple branches encoded in jump table\n    if (jumpOffset) {\n        const value = char - jumpOffset;\n        return value < 0 || value >= branchCount\n            ? -1\n            : decodeTree[nodeIndex + value] - 1;\n    }\n    // Case 3: Multiple branches encoded in dictionary\n    // Binary search for the character.\n    let lo = nodeIndex;\n    let hi = lo + branchCount - 1;\n    while (lo <= hi) {\n        const mid = (lo + hi) >>> 1;\n        const midValue = decodeTree[mid];\n        if (midValue < char) {\n            lo = mid + 1;\n        }\n        else if (midValue > char) {\n            hi = mid - 1;\n        }\n        else {\n            return decodeTree[mid + branchCount];\n        }\n    }\n    return -1;\n}\nconst htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);\nconst xmlDecoder = /* #__PURE__ */ getDecoder(xmlDecodeTree);\n/**\n * Decodes an HTML string.\n *\n * @param htmlString The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nexport function decodeHTML(htmlString, mode = DecodingMode.Legacy) {\n    return htmlDecoder(htmlString, mode);\n}\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param htmlAttribute The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLAttribute(htmlAttribute) {\n    return htmlDecoder(htmlAttribute, DecodingMode.Attribute);\n}\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param htmlString The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLStrict(htmlString) {\n    return htmlDecoder(htmlString, DecodingMode.Strict);\n}\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param xmlString The string to decode.\n * @returns The decoded string.\n */\nexport function decodeXML(xmlString) {\n    return xmlDecoder(xmlString, DecodingMode.Strict);\n}\n// Re-export for use by eg. htmlparser2\nexport { htmlDecodeTree } from \"./generated/decode-data-html.js\";\nexport { xmlDecodeTree } from \"./generated/decode-data-xml.js\";\nexport { decodeCodePoint, replaceCodePoint, fromCodePoint, } from \"./decode-codepoint.js\";\n//# sourceMappingURL=decode.js.map","export const xmlReplacer = /[\"$&'<>\\u0080-\\uFFFF]/g;\nconst xmlCodeMap = new Map([\n    [34, \""\"],\n    [38, \"&\"],\n    [39, \"'\"],\n    [60, \"<\"],\n    [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexport const getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt == null\n    ? (c, index) => (c.charCodeAt(index) & 64512) === 55296\n        ? (c.charCodeAt(index) - 55296) * 1024 +\n            c.charCodeAt(index + 1) -\n            56320 +\n            65536\n        : c.charCodeAt(index)\n    : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n        (input, index) => input.codePointAt(index);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexport function encodeXML(input) {\n    let returnValue = \"\";\n    let lastIndex = 0;\n    let match;\n    while ((match = xmlReplacer.exec(input)) !== null) {\n        const { index } = match;\n        const char = input.charCodeAt(index);\n        const next = xmlCodeMap.get(char);\n        if (next === undefined) {\n            returnValue += `${input.substring(lastIndex, index)}&#x${getCodePoint(input, index).toString(16)};`;\n            // Increase by 1 if we have a surrogate pair\n            lastIndex = xmlReplacer.lastIndex += Number((char & 64512) === 55296);\n        }\n        else {\n            returnValue += input.substring(lastIndex, index) + next;\n            lastIndex = index + 1;\n        }\n    }\n    return returnValue + input.substr(lastIndex);\n}\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexport const escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n    return function escape(data) {\n        let match;\n        let lastIndex = 0;\n        let result = \"\";\n        while ((match = regex.exec(data))) {\n            if (lastIndex !== match.index) {\n                result += data.substring(lastIndex, match.index);\n            }\n            // We know that this character will be in the map.\n            result += map.get(match[0].charCodeAt(0));\n            // Every match will be of length 1\n            lastIndex = match.index + 1;\n        }\n        return result + data.substring(lastIndex);\n    };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexport const escapeUTF8 = /* #__PURE__ */ getEscaper(/[\"&'<>]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeAttribute = \n/* #__PURE__ */ getEscaper(/[\"&\\u00A0]/g, new Map([\n    [34, \""\"],\n    [38, \"&\"],\n    [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeText = /* #__PURE__ */ getEscaper(/[&<>\\u00A0]/g, new Map([\n    [38, \"&\"],\n    [60, \"<\"],\n    [62, \">\"],\n    [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","import { decodeXML, decodeHTML, DecodingMode } from \"./decode.js\";\nimport { encodeHTML, encodeNonAsciiHTML } from \"./encode.js\";\nimport { encodeXML, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\n/** The level of entities to support. */\nexport var EntityLevel;\n(function (EntityLevel) {\n    /** Support only XML entities. */\n    EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n    /** Support HTML entities, which are a superset of XML entities. */\n    EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel || (EntityLevel = {}));\nexport var EncodingMode;\n(function (EncodingMode) {\n    /**\n     * The output is UTF-8 encoded. Only characters that need escaping within\n     * XML will be escaped.\n     */\n    EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n    /**\n     * The output consists only of ASCII characters. Characters that need\n     * escaping within HTML, and characters that aren't ASCII characters will\n     * be escaped.\n     */\n    EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n    /**\n     * Encode all characters that have an equivalent entity, as well as all\n     * characters that are not ASCII characters.\n     */\n    EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n    /**\n     * Encode all characters that have to be escaped in HTML attributes,\n     * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n     */\n    EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n    /**\n     * Encode all characters that have to be escaped in HTML text,\n     * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n     */\n    EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode || (EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param input String to decode.\n * @param options Decoding options.\n */\nexport function decode(input, options = EntityLevel.XML) {\n    const level = typeof options === \"number\" ? options : options.level;\n    if (level === EntityLevel.HTML) {\n        const mode = typeof options === \"object\" ? options.mode : undefined;\n        return decodeHTML(input, mode);\n    }\n    return decodeXML(input);\n}\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param input String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nexport function decodeStrict(input, options = EntityLevel.XML) {\n    var _a;\n    const normalizedOptions = typeof options === \"number\" ? { level: options } : options;\n    (_a = normalizedOptions.mode) !== null && _a !== void 0 ? _a : (normalizedOptions.mode = DecodingMode.Strict);\n    return decode(input, normalizedOptions);\n}\n/**\n * Encodes a string with entities.\n *\n * @param input String to encode.\n * @param options Encoding options.\n */\nexport function encode(input, options = EntityLevel.XML) {\n    const { mode = EncodingMode.Extensive, level = EntityLevel.XML } = typeof options === \"number\" ? { level: options } : options;\n    switch (mode) {\n        case EncodingMode.UTF8: {\n            return escapeUTF8(input);\n        }\n        case EncodingMode.Attribute: {\n            return escapeAttribute(input);\n        }\n        case EncodingMode.Text: {\n            return escapeText(input);\n        }\n        case EncodingMode.ASCII: {\n            return level === EntityLevel.HTML\n                ? encodeNonAsciiHTML(input)\n                : encodeXML(input);\n        }\n        // eslint-disable-next-line unicorn/no-useless-switch-case\n        case EncodingMode.Extensive:\n        default: {\n            return level === EntityLevel.HTML\n                ? encodeHTML(input)\n                : encodeXML(input);\n        }\n    }\n}\nexport { encodeXML, escape, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\nexport { encodeHTML, encodeNonAsciiHTML, \n// Legacy aliases (deprecated)\nencodeHTML as encodeHTML4, encodeHTML as encodeHTML5, } from \"./encode.js\";\nexport { EntityDecoder, DecodingMode, decodeXML, decodeHTML, decodeHTMLStrict, decodeHTMLAttribute, \n// Legacy aliases (deprecated)\ndecodeHTML as decodeHTML4, decodeHTML as decodeHTML5, decodeHTMLStrict as decodeHTML4Strict, decodeHTMLStrict as decodeHTML5Strict, decodeXML as decodeXMLStrict, } from \"./decode.js\";\n//# sourceMappingURL=index.js.map","const MAX_PATTERN_LENGTH = 1024 * 64;\nexport const assertValidPattern = (pattern) => {\n    if (typeof pattern !== 'string') {\n        throw new TypeError('invalid pattern');\n    }\n    if (pattern.length > MAX_PATTERN_LENGTH) {\n        throw new TypeError('pattern is too long');\n    }\n};\n//# sourceMappingURL=assert-valid-pattern.js.map","// parse a single path portion\nimport { parseClass } from './brace-expressions.js';\nimport { unescape } from './unescape.js';\nconst types = new Set(['!', '?', '+', '*', '@']);\nconst isExtglobType = (c) => types.has(c);\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))';\nconst startNoDot = '(?!\\\\.)';\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.']);\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.']);\nconst reSpecials = new Set('().*{}+?[]^$\\\\!');\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// any single thing other than /\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?';\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\nexport class AST {\n    type;\n    #root;\n    #hasMagic;\n    #uflag = false;\n    #parts = [];\n    #parent;\n    #parentIndex;\n    #negs;\n    #filledNegs = false;\n    #options;\n    #toString;\n    // set to true if it's an extglob with no children\n    // (which really means one child of '')\n    #emptyExt = false;\n    constructor(type, parent, options = {}) {\n        this.type = type;\n        // extglobs are inherently magical\n        if (type)\n            this.#hasMagic = true;\n        this.#parent = parent;\n        this.#root = this.#parent ? this.#parent.#root : this;\n        this.#options = this.#root === this ? options : this.#root.#options;\n        this.#negs = this.#root === this ? [] : this.#root.#negs;\n        if (type === '!' && !this.#root.#filledNegs)\n            this.#negs.push(this);\n        this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0;\n    }\n    get hasMagic() {\n        /* c8 ignore start */\n        if (this.#hasMagic !== undefined)\n            return this.#hasMagic;\n        /* c8 ignore stop */\n        for (const p of this.#parts) {\n            if (typeof p === 'string')\n                continue;\n            if (p.type || p.hasMagic)\n                return (this.#hasMagic = true);\n        }\n        // note: will be undefined until we generate the regexp src and find out\n        return this.#hasMagic;\n    }\n    // reconstructs the pattern\n    toString() {\n        if (this.#toString !== undefined)\n            return this.#toString;\n        if (!this.type) {\n            return (this.#toString = this.#parts.map(p => String(p)).join(''));\n        }\n        else {\n            return (this.#toString =\n                this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')');\n        }\n    }\n    #fillNegs() {\n        /* c8 ignore start */\n        if (this !== this.#root)\n            throw new Error('should only call on root');\n        if (this.#filledNegs)\n            return this;\n        /* c8 ignore stop */\n        // call toString() once to fill this out\n        this.toString();\n        this.#filledNegs = true;\n        let n;\n        while ((n = this.#negs.pop())) {\n            if (n.type !== '!')\n                continue;\n            // walk up the tree, appending everthing that comes AFTER parentIndex\n            let p = n;\n            let pp = p.#parent;\n            while (pp) {\n                for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) {\n                    for (const part of n.#parts) {\n                        /* c8 ignore start */\n                        if (typeof part === 'string') {\n                            throw new Error('string part in extglob AST??');\n                        }\n                        /* c8 ignore stop */\n                        part.copyIn(pp.#parts[i]);\n                    }\n                }\n                p = pp;\n                pp = p.#parent;\n            }\n        }\n        return this;\n    }\n    push(...parts) {\n        for (const p of parts) {\n            if (p === '')\n                continue;\n            /* c8 ignore start */\n            if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {\n                throw new Error('invalid part: ' + p);\n            }\n            /* c8 ignore stop */\n            this.#parts.push(p);\n        }\n    }\n    toJSON() {\n        const ret = this.type === null\n            ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))\n            : [this.type, ...this.#parts.map(p => p.toJSON())];\n        if (this.isStart() && !this.type)\n            ret.unshift([]);\n        if (this.isEnd() &&\n            (this === this.#root ||\n                (this.#root.#filledNegs && this.#parent?.type === '!'))) {\n            ret.push({});\n        }\n        return ret;\n    }\n    isStart() {\n        if (this.#root === this)\n            return true;\n        // if (this.type) return !!this.#parent?.isStart()\n        if (!this.#parent?.isStart())\n            return false;\n        if (this.#parentIndex === 0)\n            return true;\n        // if everything AHEAD of this is a negation, then it's still the \"start\"\n        const p = this.#parent;\n        for (let i = 0; i < this.#parentIndex; i++) {\n            const pp = p.#parts[i];\n            if (!(pp instanceof AST && pp.type === '!')) {\n                return false;\n            }\n        }\n        return true;\n    }\n    isEnd() {\n        if (this.#root === this)\n            return true;\n        if (this.#parent?.type === '!')\n            return true;\n        if (!this.#parent?.isEnd())\n            return false;\n        if (!this.type)\n            return this.#parent?.isEnd();\n        // if not root, it'll always have a parent\n        /* c8 ignore start */\n        const pl = this.#parent ? this.#parent.#parts.length : 0;\n        /* c8 ignore stop */\n        return this.#parentIndex === pl - 1;\n    }\n    copyIn(part) {\n        if (typeof part === 'string')\n            this.push(part);\n        else\n            this.push(part.clone(this));\n    }\n    clone(parent) {\n        const c = new AST(this.type, parent);\n        for (const p of this.#parts) {\n            c.copyIn(p);\n        }\n        return c;\n    }\n    static #parseAST(str, ast, pos, opt) {\n        let escaping = false;\n        let inBrace = false;\n        let braceStart = -1;\n        let braceNeg = false;\n        if (ast.type === null) {\n            // outside of a extglob, append until we find a start\n            let i = pos;\n            let acc = '';\n            while (i < str.length) {\n                const c = str.charAt(i++);\n                // still accumulate escapes at this point, but we do ignore\n                // starts that are escaped\n                if (escaping || c === '\\\\') {\n                    escaping = !escaping;\n                    acc += c;\n                    continue;\n                }\n                if (inBrace) {\n                    if (i === braceStart + 1) {\n                        if (c === '^' || c === '!') {\n                            braceNeg = true;\n                        }\n                    }\n                    else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n                        inBrace = false;\n                    }\n                    acc += c;\n                    continue;\n                }\n                else if (c === '[') {\n                    inBrace = true;\n                    braceStart = i;\n                    braceNeg = false;\n                    acc += c;\n                    continue;\n                }\n                if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') {\n                    ast.push(acc);\n                    acc = '';\n                    const ext = new AST(c, ast);\n                    i = AST.#parseAST(str, ext, i, opt);\n                    ast.push(ext);\n                    continue;\n                }\n                acc += c;\n            }\n            ast.push(acc);\n            return i;\n        }\n        // some kind of extglob, pos is at the (\n        // find the next | or )\n        let i = pos + 1;\n        let part = new AST(null, ast);\n        const parts = [];\n        let acc = '';\n        while (i < str.length) {\n            const c = str.charAt(i++);\n            // still accumulate escapes at this point, but we do ignore\n            // starts that are escaped\n            if (escaping || c === '\\\\') {\n                escaping = !escaping;\n                acc += c;\n                continue;\n            }\n            if (inBrace) {\n                if (i === braceStart + 1) {\n                    if (c === '^' || c === '!') {\n                        braceNeg = true;\n                    }\n                }\n                else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n                    inBrace = false;\n                }\n                acc += c;\n                continue;\n            }\n            else if (c === '[') {\n                inBrace = true;\n                braceStart = i;\n                braceNeg = false;\n                acc += c;\n                continue;\n            }\n            if (isExtglobType(c) && str.charAt(i) === '(') {\n                part.push(acc);\n                acc = '';\n                const ext = new AST(c, part);\n                part.push(ext);\n                i = AST.#parseAST(str, ext, i, opt);\n                continue;\n            }\n            if (c === '|') {\n                part.push(acc);\n                acc = '';\n                parts.push(part);\n                part = new AST(null, ast);\n                continue;\n            }\n            if (c === ')') {\n                if (acc === '' && ast.#parts.length === 0) {\n                    ast.#emptyExt = true;\n                }\n                part.push(acc);\n                acc = '';\n                ast.push(...parts, part);\n                return i;\n            }\n            acc += c;\n        }\n        // unfinished extglob\n        // if we got here, it was a malformed extglob! not an extglob, but\n        // maybe something else in there.\n        ast.type = null;\n        ast.#hasMagic = undefined;\n        ast.#parts = [str.substring(pos - 1)];\n        return i;\n    }\n    static fromGlob(pattern, options = {}) {\n        const ast = new AST(null, undefined, options);\n        AST.#parseAST(pattern, ast, 0, options);\n        return ast;\n    }\n    // returns the regular expression if there's magic, or the unescaped\n    // string if not.\n    toMMPattern() {\n        // should only be called on root\n        /* c8 ignore start */\n        if (this !== this.#root)\n            return this.#root.toMMPattern();\n        /* c8 ignore stop */\n        const glob = this.toString();\n        const [re, body, hasMagic, uflag] = this.toRegExpSource();\n        // if we're in nocase mode, and not nocaseMagicOnly, then we do\n        // still need a regular expression if we have to case-insensitively\n        // match capital/lowercase characters.\n        const anyMagic = hasMagic ||\n            this.#hasMagic ||\n            (this.#options.nocase &&\n                !this.#options.nocaseMagicOnly &&\n                glob.toUpperCase() !== glob.toLowerCase());\n        if (!anyMagic) {\n            return body;\n        }\n        const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '');\n        return Object.assign(new RegExp(`^${re}$`, flags), {\n            _src: re,\n            _glob: glob,\n        });\n    }\n    get options() {\n        return this.#options;\n    }\n    // returns the string match, the regexp source, whether there's magic\n    // in the regexp (so a regular expression is required) and whether or\n    // not the uflag is needed for the regular expression (for posix classes)\n    // TODO: instead of injecting the start/end at this point, just return\n    // the BODY of the regexp, along with the start/end portions suitable\n    // for binding the start/end in either a joined full-path makeRe context\n    // (where we bind to (^|/), or a standalone matchPart context (where\n    // we bind to ^, and not /).  Otherwise slashes get duped!\n    //\n    // In part-matching mode, the start is:\n    // - if not isStart: nothing\n    // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n    // - if dots allowed or not possible: ^\n    // - if dots possible and not allowed: ^(?!\\.)\n    // end is:\n    // - if not isEnd(): nothing\n    // - else: $\n    //\n    // In full-path matching mode, we put the slash at the START of the\n    // pattern, so start is:\n    // - if first pattern: same as part-matching mode\n    // - if not isStart(): nothing\n    // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n    // - if dots allowed or not possible: /\n    // - if dots possible and not allowed: /(?!\\.)\n    // end is:\n    // - if last pattern, same as part-matching mode\n    // - else nothing\n    //\n    // Always put the (?:$|/) on negated tails, though, because that has to be\n    // there to bind the end of the negated pattern portion, and it's easier to\n    // just stick it in now rather than try to inject it later in the middle of\n    // the pattern.\n    //\n    // We can just always return the same end, and leave it up to the caller\n    // to know whether it's going to be used joined or in parts.\n    // And, if the start is adjusted slightly, can do the same there:\n    // - if not isStart: nothing\n    // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n    // - if dots allowed or not possible: (?:/|^)\n    // - if dots possible and not allowed: (?:/|^)(?!\\.)\n    //\n    // But it's better to have a simpler binding without a conditional, for\n    // performance, so probably better to return both start options.\n    //\n    // Then the caller just ignores the end if it's not the first pattern,\n    // and the start always gets applied.\n    //\n    // But that's always going to be $ if it's the ending pattern, or nothing,\n    // so the caller can just attach $ at the end of the pattern when building.\n    //\n    // So the todo is:\n    // - better detect what kind of start is needed\n    // - return both flavors of starting pattern\n    // - attach $ at the end of the pattern when creating the actual RegExp\n    //\n    // Ah, but wait, no, that all only applies to the root when the first pattern\n    // is not an extglob. If the first pattern IS an extglob, then we need all\n    // that dot prevention biz to live in the extglob portions, because eg\n    // +(*|.x*) can match .xy but not .yx.\n    //\n    // So, return the two flavors if it's #root and the first child is not an\n    // AST, otherwise leave it to the child AST to handle it, and there,\n    // use the (?:^|/) style of start binding.\n    //\n    // Even simplified further:\n    // - Since the start for a join is eg /(?!\\.) and the start for a part\n    // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n    // or start or whatever) and prepend ^ or / at the Regexp construction.\n    toRegExpSource(allowDot) {\n        const dot = allowDot ?? !!this.#options.dot;\n        if (this.#root === this)\n            this.#fillNegs();\n        if (!this.type) {\n            const noEmpty = this.isStart() && this.isEnd();\n            const src = this.#parts\n                .map(p => {\n                const [re, _, hasMagic, uflag] = typeof p === 'string'\n                    ? AST.#parseGlob(p, this.#hasMagic, noEmpty)\n                    : p.toRegExpSource(allowDot);\n                this.#hasMagic = this.#hasMagic || hasMagic;\n                this.#uflag = this.#uflag || uflag;\n                return re;\n            })\n                .join('');\n            let start = '';\n            if (this.isStart()) {\n                if (typeof this.#parts[0] === 'string') {\n                    // this is the string that will match the start of the pattern,\n                    // so we need to protect against dots and such.\n                    // '.' and '..' cannot match unless the pattern is that exactly,\n                    // even if it starts with . or dot:true is set.\n                    const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]);\n                    if (!dotTravAllowed) {\n                        const aps = addPatternStart;\n                        // check if we have a possibility of matching . or ..,\n                        // and prevent that.\n                        const needNoTrav = \n                        // dots are allowed, and the pattern starts with [ or .\n                        (dot && aps.has(src.charAt(0))) ||\n                            // the pattern starts with \\., and then [ or .\n                            (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n                            // the pattern starts with \\.\\., and then [ or .\n                            (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)));\n                        // no need to prevent dots if it can't match a dot, or if a\n                        // sub-pattern will be preventing it anyway.\n                        const needNoDot = !dot && !allowDot && aps.has(src.charAt(0));\n                        start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : '';\n                    }\n                }\n            }\n            // append the \"end of path portion\" pattern to negation tails\n            let end = '';\n            if (this.isEnd() &&\n                this.#root.#filledNegs &&\n                this.#parent?.type === '!') {\n                end = '(?:$|\\\\/)';\n            }\n            const final = start + src + end;\n            return [\n                final,\n                unescape(src),\n                (this.#hasMagic = !!this.#hasMagic),\n                this.#uflag,\n            ];\n        }\n        // We need to calculate the body *twice* if it's a repeat pattern\n        // at the start, once in nodot mode, then again in dot mode, so a\n        // pattern like *(?) can match 'x.y'\n        const repeated = this.type === '*' || this.type === '+';\n        // some kind of extglob\n        const start = this.type === '!' ? '(?:(?!(?:' : '(?:';\n        let body = this.#partsToRegExp(dot);\n        if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n            // invalid extglob, has to at least be *something* present, if it's\n            // the entire path portion.\n            const s = this.toString();\n            this.#parts = [s];\n            this.type = null;\n            this.#hasMagic = undefined;\n            return [s, unescape(this.toString()), false, false];\n        }\n        // XXX abstract out this map method\n        let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot\n            ? ''\n            : this.#partsToRegExp(true);\n        if (bodyDotAllowed === body) {\n            bodyDotAllowed = '';\n        }\n        if (bodyDotAllowed) {\n            body = `(?:${body})(?:${bodyDotAllowed})*?`;\n        }\n        // an empty !() is exactly equivalent to a starNoEmpty\n        let final = '';\n        if (this.type === '!' && this.#emptyExt) {\n            final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty;\n        }\n        else {\n            const close = this.type === '!'\n                ? // !() must match something,but !(x) can match ''\n                    '))' +\n                        (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n                        star +\n                        ')'\n                : this.type === '@'\n                    ? ')'\n                    : this.type === '?'\n                        ? ')?'\n                        : this.type === '+' && bodyDotAllowed\n                            ? ')'\n                            : this.type === '*' && bodyDotAllowed\n                                ? `)?`\n                                : `)${this.type}`;\n            final = start + body + close;\n        }\n        return [\n            final,\n            unescape(body),\n            (this.#hasMagic = !!this.#hasMagic),\n            this.#uflag,\n        ];\n    }\n    #partsToRegExp(dot) {\n        return this.#parts\n            .map(p => {\n            // extglob ASTs should only contain parent ASTs\n            /* c8 ignore start */\n            if (typeof p === 'string') {\n                throw new Error('string type in extglob ast??');\n            }\n            /* c8 ignore stop */\n            // can ignore hasMagic, because extglobs are already always magic\n            const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot);\n            this.#uflag = this.#uflag || uflag;\n            return re;\n        })\n            .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n            .join('|');\n    }\n    static #parseGlob(glob, hasMagic, noEmpty = false) {\n        let escaping = false;\n        let re = '';\n        let uflag = false;\n        for (let i = 0; i < glob.length; i++) {\n            const c = glob.charAt(i);\n            if (escaping) {\n                escaping = false;\n                re += (reSpecials.has(c) ? '\\\\' : '') + c;\n                continue;\n            }\n            if (c === '\\\\') {\n                if (i === glob.length - 1) {\n                    re += '\\\\\\\\';\n                }\n                else {\n                    escaping = true;\n                }\n                continue;\n            }\n            if (c === '[') {\n                const [src, needUflag, consumed, magic] = parseClass(glob, i);\n                if (consumed) {\n                    re += src;\n                    uflag = uflag || needUflag;\n                    i += consumed - 1;\n                    hasMagic = hasMagic || magic;\n                    continue;\n                }\n            }\n            if (c === '*') {\n                if (noEmpty && glob === '*')\n                    re += starNoEmpty;\n                else\n                    re += star;\n                hasMagic = true;\n                continue;\n            }\n            if (c === '?') {\n                re += qmark;\n                hasMagic = true;\n                continue;\n            }\n            re += regExpEscape(c);\n        }\n        return [re, unescape(glob), !!hasMagic, uflag];\n    }\n}\n//# sourceMappingURL=ast.js.map","// translate the various posix character classes into unicode properties\n// this works across all unicode locales\n// { : [, /u flag required, negated]\nconst posixClasses = {\n    '[:alnum:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}', true],\n    '[:alpha:]': ['\\\\p{L}\\\\p{Nl}', true],\n    '[:ascii:]': ['\\\\x' + '00-\\\\x' + '7f', false],\n    '[:blank:]': ['\\\\p{Zs}\\\\t', true],\n    '[:cntrl:]': ['\\\\p{Cc}', true],\n    '[:digit:]': ['\\\\p{Nd}', true],\n    '[:graph:]': ['\\\\p{Z}\\\\p{C}', true, true],\n    '[:lower:]': ['\\\\p{Ll}', true],\n    '[:print:]': ['\\\\p{C}', true],\n    '[:punct:]': ['\\\\p{P}', true],\n    '[:space:]': ['\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f', true],\n    '[:upper:]': ['\\\\p{Lu}', true],\n    '[:word:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}', true],\n    '[:xdigit:]': ['A-Fa-f0-9', false],\n};\n// only need to escape a few things inside of brace expressions\n// escapes: [ \\ ] -\nconst braceEscape = (s) => s.replace(/[[\\]\\\\-]/g, '\\\\$&');\n// escape all regexp magic characters\nconst regexpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// everything has already been escaped, we just have to join\nconst rangesToString = (ranges) => ranges.join('');\n// takes a glob string at a posix brace expression, and returns\n// an equivalent regular expression source, and boolean indicating\n// whether the /u flag needs to be applied, and the number of chars\n// consumed to parse the character class.\n// This also removes out of order ranges, and returns ($.) if the\n// entire class just no good.\nexport const parseClass = (glob, position) => {\n    const pos = position;\n    /* c8 ignore start */\n    if (glob.charAt(pos) !== '[') {\n        throw new Error('not in a brace expression');\n    }\n    /* c8 ignore stop */\n    const ranges = [];\n    const negs = [];\n    let i = pos + 1;\n    let sawStart = false;\n    let uflag = false;\n    let escaping = false;\n    let negate = false;\n    let endPos = pos;\n    let rangeStart = '';\n    WHILE: while (i < glob.length) {\n        const c = glob.charAt(i);\n        if ((c === '!' || c === '^') && i === pos + 1) {\n            negate = true;\n            i++;\n            continue;\n        }\n        if (c === ']' && sawStart && !escaping) {\n            endPos = i + 1;\n            break;\n        }\n        sawStart = true;\n        if (c === '\\\\') {\n            if (!escaping) {\n                escaping = true;\n                i++;\n                continue;\n            }\n            // escaped \\ char, fall through and treat like normal char\n        }\n        if (c === '[' && !escaping) {\n            // either a posix class, a collation equivalent, or just a [\n            for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {\n                if (glob.startsWith(cls, i)) {\n                    // invalid, [a-[] is fine, but not [a-[:alpha]]\n                    if (rangeStart) {\n                        return ['$.', false, glob.length - pos, true];\n                    }\n                    i += cls.length;\n                    if (neg)\n                        negs.push(unip);\n                    else\n                        ranges.push(unip);\n                    uflag = uflag || u;\n                    continue WHILE;\n                }\n            }\n        }\n        // now it's just a normal character, effectively\n        escaping = false;\n        if (rangeStart) {\n            // throw this range away if it's not valid, but others\n            // can still match.\n            if (c > rangeStart) {\n                ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c));\n            }\n            else if (c === rangeStart) {\n                ranges.push(braceEscape(c));\n            }\n            rangeStart = '';\n            i++;\n            continue;\n        }\n        // now might be the start of a range.\n        // can be either c-d or c-] or c] or c] at this point\n        if (glob.startsWith('-]', i + 1)) {\n            ranges.push(braceEscape(c + '-'));\n            i += 2;\n            continue;\n        }\n        if (glob.startsWith('-', i + 1)) {\n            rangeStart = c;\n            i += 2;\n            continue;\n        }\n        // not the start of a range, just a single character\n        ranges.push(braceEscape(c));\n        i++;\n    }\n    if (endPos < i) {\n        // didn't see the end of the class, not a valid class,\n        // but might still be valid as a literal match.\n        return ['', false, 0, false];\n    }\n    // if we got no ranges and no negates, then we have a range that\n    // cannot possibly match anything, and that poisons the whole glob\n    if (!ranges.length && !negs.length) {\n        return ['$.', false, glob.length - pos, true];\n    }\n    // if we got one positive range, and it's a single character, then that's\n    // not actually a magic pattern, it's just that one literal character.\n    // we should not treat that as \"magic\", we should just return the literal\n    // character. [_] is a perfectly valid way to escape glob magic chars.\n    if (negs.length === 0 &&\n        ranges.length === 1 &&\n        /^\\\\?.$/.test(ranges[0]) &&\n        !negate) {\n        const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0];\n        return [regexpEscape(r), false, endPos - pos, false];\n    }\n    const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']';\n    const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']';\n    const comb = ranges.length && negs.length\n        ? '(' + sranges + '|' + snegs + ')'\n        : ranges.length\n            ? sranges\n            : snegs;\n    return [comb, uflag, endPos - pos, true];\n};\n//# sourceMappingURL=brace-expressions.js.map","/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character.  In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n */\nexport const escape = (s, { windowsPathsNoEscape = false, } = {}) => {\n    // don't need to escape +@! because we escape the parens\n    // that make those magic, and escaping ! as [!] isn't valid,\n    // because [!]] is a valid glob class meaning not ']'.\n    return windowsPathsNoEscape\n        ? s.replace(/[?*()[\\]]/g, '[$&]')\n        : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&');\n};\n//# sourceMappingURL=escape.js.map","import expand from 'brace-expansion';\nimport { assertValidPattern } from './assert-valid-pattern.js';\nimport { AST } from './ast.js';\nimport { escape } from './escape.js';\nimport { unescape } from './unescape.js';\nexport const minimatch = (p, pattern, options = {}) => {\n    assertValidPattern(pattern);\n    // shortcut: comments match nothing.\n    if (!options.nocomment && pattern.charAt(0) === '#') {\n        return false;\n    }\n    return new Minimatch(pattern, options).match(p);\n};\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/;\nconst starDotExtTest = (ext) => (f) => !f.startsWith('.') && f.endsWith(ext);\nconst starDotExtTestDot = (ext) => (f) => f.endsWith(ext);\nconst starDotExtTestNocase = (ext) => {\n    ext = ext.toLowerCase();\n    return (f) => !f.startsWith('.') && f.toLowerCase().endsWith(ext);\n};\nconst starDotExtTestNocaseDot = (ext) => {\n    ext = ext.toLowerCase();\n    return (f) => f.toLowerCase().endsWith(ext);\n};\nconst starDotStarRE = /^\\*+\\.\\*+$/;\nconst starDotStarTest = (f) => !f.startsWith('.') && f.includes('.');\nconst starDotStarTestDot = (f) => f !== '.' && f !== '..' && f.includes('.');\nconst dotStarRE = /^\\.\\*+$/;\nconst dotStarTest = (f) => f !== '.' && f !== '..' && f.startsWith('.');\nconst starRE = /^\\*+$/;\nconst starTest = (f) => f.length !== 0 && !f.startsWith('.');\nconst starTestDot = (f) => f.length !== 0 && f !== '.' && f !== '..';\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/;\nconst qmarksTestNocase = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExt([$0]);\n    if (!ext)\n        return noext;\n    ext = ext.toLowerCase();\n    return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestNocaseDot = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExtDot([$0]);\n    if (!ext)\n        return noext;\n    ext = ext.toLowerCase();\n    return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestDot = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExtDot([$0]);\n    return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTest = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExt([$0]);\n    return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTestNoExt = ([$0]) => {\n    const len = $0.length;\n    return (f) => f.length === len && !f.startsWith('.');\n};\nconst qmarksTestNoExtDot = ([$0]) => {\n    const len = $0.length;\n    return (f) => f.length === len && f !== '.' && f !== '..';\n};\n/* c8 ignore start */\nconst defaultPlatform = (typeof process === 'object' && process\n    ? (typeof process.env === 'object' &&\n        process.env &&\n        process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n        process.platform\n    : 'posix');\nconst path = {\n    win32: { sep: '\\\\' },\n    posix: { sep: '/' },\n};\n/* c8 ignore stop */\nexport const sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep;\nminimatch.sep = sep;\nexport const GLOBSTAR = Symbol('globstar **');\nminimatch.GLOBSTAR = GLOBSTAR;\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// ** when dots are allowed.  Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?';\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?';\nexport const filter = (pattern, options = {}) => (p) => minimatch(p, pattern, options);\nminimatch.filter = filter;\nconst ext = (a, b = {}) => Object.assign({}, a, b);\nexport const defaults = (def) => {\n    if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n        return minimatch;\n    }\n    const orig = minimatch;\n    const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options));\n    return Object.assign(m, {\n        Minimatch: class Minimatch extends orig.Minimatch {\n            constructor(pattern, options = {}) {\n                super(pattern, ext(def, options));\n            }\n            static defaults(options) {\n                return orig.defaults(ext(def, options)).Minimatch;\n            }\n        },\n        AST: class AST extends orig.AST {\n            /* c8 ignore start */\n            constructor(type, parent, options = {}) {\n                super(type, parent, ext(def, options));\n            }\n            /* c8 ignore stop */\n            static fromGlob(pattern, options = {}) {\n                return orig.AST.fromGlob(pattern, ext(def, options));\n            }\n        },\n        unescape: (s, options = {}) => orig.unescape(s, ext(def, options)),\n        escape: (s, options = {}) => orig.escape(s, ext(def, options)),\n        filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)),\n        defaults: (options) => orig.defaults(ext(def, options)),\n        makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)),\n        braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)),\n        match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)),\n        sep: orig.sep,\n        GLOBSTAR: GLOBSTAR,\n    });\n};\nminimatch.defaults = defaults;\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nexport const braceExpand = (pattern, options = {}) => {\n    assertValidPattern(pattern);\n    // Thanks to Yeting Li  for\n    // improving this regexp to avoid a ReDOS vulnerability.\n    if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n        // shortcut. no need to expand.\n        return [pattern];\n    }\n    return expand(pattern);\n};\nminimatch.braceExpand = braceExpand;\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion.  Otherwise, any series\n// of * is equivalent to a single *.  Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nexport const makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe();\nminimatch.makeRe = makeRe;\nexport const match = (list, pattern, options = {}) => {\n    const mm = new Minimatch(pattern, options);\n    list = list.filter(f => mm.match(f));\n    if (mm.options.nonull && !list.length) {\n        list.push(pattern);\n    }\n    return list;\n};\nminimatch.match = match;\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/;\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\nexport class Minimatch {\n    options;\n    set;\n    pattern;\n    windowsPathsNoEscape;\n    nonegate;\n    negate;\n    comment;\n    empty;\n    preserveMultipleSlashes;\n    partial;\n    globSet;\n    globParts;\n    nocase;\n    isWindows;\n    platform;\n    windowsNoMagicRoot;\n    regexp;\n    constructor(pattern, options = {}) {\n        assertValidPattern(pattern);\n        options = options || {};\n        this.options = options;\n        this.pattern = pattern;\n        this.platform = options.platform || defaultPlatform;\n        this.isWindows = this.platform === 'win32';\n        this.windowsPathsNoEscape =\n            !!options.windowsPathsNoEscape || options.allowWindowsEscape === false;\n        if (this.windowsPathsNoEscape) {\n            this.pattern = this.pattern.replace(/\\\\/g, '/');\n        }\n        this.preserveMultipleSlashes = !!options.preserveMultipleSlashes;\n        this.regexp = null;\n        this.negate = false;\n        this.nonegate = !!options.nonegate;\n        this.comment = false;\n        this.empty = false;\n        this.partial = !!options.partial;\n        this.nocase = !!this.options.nocase;\n        this.windowsNoMagicRoot =\n            options.windowsNoMagicRoot !== undefined\n                ? options.windowsNoMagicRoot\n                : !!(this.isWindows && this.nocase);\n        this.globSet = [];\n        this.globParts = [];\n        this.set = [];\n        // make the set of regexps etc.\n        this.make();\n    }\n    hasMagic() {\n        if (this.options.magicalBraces && this.set.length > 1) {\n            return true;\n        }\n        for (const pattern of this.set) {\n            for (const part of pattern) {\n                if (typeof part !== 'string')\n                    return true;\n            }\n        }\n        return false;\n    }\n    debug(..._) { }\n    make() {\n        const pattern = this.pattern;\n        const options = this.options;\n        // empty patterns and comments match nothing.\n        if (!options.nocomment && pattern.charAt(0) === '#') {\n            this.comment = true;\n            return;\n        }\n        if (!pattern) {\n            this.empty = true;\n            return;\n        }\n        // step 1: figure out negation, etc.\n        this.parseNegate();\n        // step 2: expand braces\n        this.globSet = [...new Set(this.braceExpand())];\n        if (options.debug) {\n            this.debug = (...args) => console.error(...args);\n        }\n        this.debug(this.pattern, this.globSet);\n        // step 3: now we have a set, so turn each one into a series of\n        // path-portion matching patterns.\n        // These will be regexps, except in the case of \"**\", which is\n        // set to the GLOBSTAR object for globstar behavior,\n        // and will not contain any / characters\n        //\n        // First, we preprocess to make the glob pattern sets a bit simpler\n        // and deduped.  There are some perf-killing patterns that can cause\n        // problems with a glob walk, but we can simplify them down a bit.\n        const rawGlobParts = this.globSet.map(s => this.slashSplit(s));\n        this.globParts = this.preprocess(rawGlobParts);\n        this.debug(this.pattern, this.globParts);\n        // glob --> regexps\n        let set = this.globParts.map((s, _, __) => {\n            if (this.isWindows && this.windowsNoMagicRoot) {\n                // check if it's a drive or unc path.\n                const isUNC = s[0] === '' &&\n                    s[1] === '' &&\n                    (s[2] === '?' || !globMagic.test(s[2])) &&\n                    !globMagic.test(s[3]);\n                const isDrive = /^[a-z]:/i.test(s[0]);\n                if (isUNC) {\n                    return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))];\n                }\n                else if (isDrive) {\n                    return [s[0], ...s.slice(1).map(ss => this.parse(ss))];\n                }\n            }\n            return s.map(ss => this.parse(ss));\n        });\n        this.debug(this.pattern, set);\n        // filter out everything that didn't compile properly.\n        this.set = set.filter(s => s.indexOf(false) === -1);\n        // do not treat the ? in UNC paths as magic\n        if (this.isWindows) {\n            for (let i = 0; i < this.set.length; i++) {\n                const p = this.set[i];\n                if (p[0] === '' &&\n                    p[1] === '' &&\n                    this.globParts[i][2] === '?' &&\n                    typeof p[3] === 'string' &&\n                    /^[a-z]:$/i.test(p[3])) {\n                    p[2] = '?';\n                }\n            }\n        }\n        this.debug(this.pattern, this.set);\n    }\n    // various transforms to equivalent pattern sets that are\n    // faster to process in a filesystem walk.  The goal is to\n    // eliminate what we can, and push all ** patterns as far\n    // to the right as possible, even if it increases the number\n    // of patterns that we have to process.\n    preprocess(globParts) {\n        // if we're not in globstar mode, then turn all ** into *\n        if (this.options.noglobstar) {\n            for (let i = 0; i < globParts.length; i++) {\n                for (let j = 0; j < globParts[i].length; j++) {\n                    if (globParts[i][j] === '**') {\n                        globParts[i][j] = '*';\n                    }\n                }\n            }\n        }\n        const { optimizationLevel = 1 } = this.options;\n        if (optimizationLevel >= 2) {\n            // aggressive optimization for the purpose of fs walking\n            globParts = this.firstPhasePreProcess(globParts);\n            globParts = this.secondPhasePreProcess(globParts);\n        }\n        else if (optimizationLevel >= 1) {\n            // just basic optimizations to remove some .. parts\n            globParts = this.levelOneOptimize(globParts);\n        }\n        else {\n            // just collapse multiple ** portions into one\n            globParts = this.adjascentGlobstarOptimize(globParts);\n        }\n        return globParts;\n    }\n    // just get rid of adjascent ** portions\n    adjascentGlobstarOptimize(globParts) {\n        return globParts.map(parts => {\n            let gs = -1;\n            while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n                let i = gs;\n                while (parts[i + 1] === '**') {\n                    i++;\n                }\n                if (i !== gs) {\n                    parts.splice(gs, i - gs);\n                }\n            }\n            return parts;\n        });\n    }\n    // get rid of adjascent ** and resolve .. portions\n    levelOneOptimize(globParts) {\n        return globParts.map(parts => {\n            parts = parts.reduce((set, part) => {\n                const prev = set[set.length - 1];\n                if (part === '**' && prev === '**') {\n                    return set;\n                }\n                if (part === '..') {\n                    if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n                        set.pop();\n                        return set;\n                    }\n                }\n                set.push(part);\n                return set;\n            }, []);\n            return parts.length === 0 ? [''] : parts;\n        });\n    }\n    levelTwoFileOptimize(parts) {\n        if (!Array.isArray(parts)) {\n            parts = this.slashSplit(parts);\n        }\n        let didSomething = false;\n        do {\n            didSomething = false;\n            // 
// -> 
/\n            if (!this.preserveMultipleSlashes) {\n                for (let i = 1; i < parts.length - 1; i++) {\n                    const p = parts[i];\n                    // don't squeeze out UNC patterns\n                    if (i === 1 && p === '' && parts[0] === '')\n                        continue;\n                    if (p === '.' || p === '') {\n                        didSomething = true;\n                        parts.splice(i, 1);\n                        i--;\n                    }\n                }\n                if (parts[0] === '.' &&\n                    parts.length === 2 &&\n                    (parts[1] === '.' || parts[1] === '')) {\n                    didSomething = true;\n                    parts.pop();\n                }\n            }\n            // 
/

/../ ->

/\n            let dd = 0;\n            while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                const p = parts[dd - 1];\n                if (p && p !== '.' && p !== '..' && p !== '**') {\n                    didSomething = true;\n                    parts.splice(dd - 1, 2);\n                    dd -= 2;\n                }\n            }\n        } while (didSomething);\n        return parts.length === 0 ? [''] : parts;\n    }\n    // First phase: single-pattern processing\n    // 
 is 1 or more portions\n    //  is 1 or more portions\n    // 

is any portion other than ., .., '', or **\n // is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n //

// -> 
/\n    // 
/

/../ ->

/\n    // **/**/ -> **/\n    //\n    // **/*/ -> */**/ <== not valid because ** doesn't follow\n    // this WOULD be allowed if ** did follow symlinks, or * didn't\n    firstPhasePreProcess(globParts) {\n        let didSomething = false;\n        do {\n            didSomething = false;\n            // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n for (let parts of globParts) {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let gss = gs;\n while (parts[gss + 1] === '**') {\n //

/**/**/ -> 
/**/\n                        gss++;\n                    }\n                    // eg, if gs is 2 and gss is 4, that means we have 3 **\n                    // parts, and can remove 2 of them.\n                    if (gss > gs) {\n                        parts.splice(gs + 1, gss - gs);\n                    }\n                    let next = parts[gs + 1];\n                    const p = parts[gs + 2];\n                    const p2 = parts[gs + 3];\n                    if (next !== '..')\n                        continue;\n                    if (!p ||\n                        p === '.' ||\n                        p === '..' ||\n                        !p2 ||\n                        p2 === '.' ||\n                        p2 === '..') {\n                        continue;\n                    }\n                    didSomething = true;\n                    // edit parts in place, and push the new one\n                    parts.splice(gs, 1);\n                    const other = parts.slice(0);\n                    other[gs] = '**';\n                    globParts.push(other);\n                    gs--;\n                }\n                // 
// -> 
/\n                if (!this.preserveMultipleSlashes) {\n                    for (let i = 1; i < parts.length - 1; i++) {\n                        const p = parts[i];\n                        // don't squeeze out UNC patterns\n                        if (i === 1 && p === '' && parts[0] === '')\n                            continue;\n                        if (p === '.' || p === '') {\n                            didSomething = true;\n                            parts.splice(i, 1);\n                            i--;\n                        }\n                    }\n                    if (parts[0] === '.' &&\n                        parts.length === 2 &&\n                        (parts[1] === '.' || parts[1] === '')) {\n                        didSomething = true;\n                        parts.pop();\n                    }\n                }\n                // 
/

/../ ->

/\n                let dd = 0;\n                while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                    const p = parts[dd - 1];\n                    if (p && p !== '.' && p !== '..' && p !== '**') {\n                        didSomething = true;\n                        const needDot = dd === 1 && parts[dd + 1] === '**';\n                        const splin = needDot ? ['.'] : [];\n                        parts.splice(dd - 1, 2, ...splin);\n                        if (parts.length === 0)\n                            parts.push('');\n                        dd -= 2;\n                    }\n                }\n            }\n        } while (didSomething);\n        return globParts;\n    }\n    // second phase: multi-pattern dedupes\n    // {
/*/,
/

/} ->

/*/\n    // {
/,
/} -> 
/\n    // {
/**/,
/} -> 
/**/\n    //\n    // {
/**/,
/**/

/} ->

/**/\n    // ^-- not valid because ** doens't follow symlinks\n    secondPhasePreProcess(globParts) {\n        for (let i = 0; i < globParts.length - 1; i++) {\n            for (let j = i + 1; j < globParts.length; j++) {\n                const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);\n                if (matched) {\n                    globParts[i] = [];\n                    globParts[j] = matched;\n                    break;\n                }\n            }\n        }\n        return globParts.filter(gs => gs.length);\n    }\n    partsMatch(a, b, emptyGSMatch = false) {\n        let ai = 0;\n        let bi = 0;\n        let result = [];\n        let which = '';\n        while (ai < a.length && bi < b.length) {\n            if (a[ai] === b[bi]) {\n                result.push(which === 'b' ? b[bi] : a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n                result.push(a[ai]);\n                ai++;\n            }\n            else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n                result.push(b[bi]);\n                bi++;\n            }\n            else if (a[ai] === '*' &&\n                b[bi] &&\n                (this.options.dot || !b[bi].startsWith('.')) &&\n                b[bi] !== '**') {\n                if (which === 'b')\n                    return false;\n                which = 'a';\n                result.push(a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (b[bi] === '*' &&\n                a[ai] &&\n                (this.options.dot || !a[ai].startsWith('.')) &&\n                a[ai] !== '**') {\n                if (which === 'a')\n                    return false;\n                which = 'b';\n                result.push(b[bi]);\n                ai++;\n                bi++;\n            }\n            else {\n                return false;\n            }\n        }\n        // if we fall out of the loop, it means they two are identical\n        // as long as their lengths match\n        return a.length === b.length && result;\n    }\n    parseNegate() {\n        if (this.nonegate)\n            return;\n        const pattern = this.pattern;\n        let negate = false;\n        let negateOffset = 0;\n        for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n            negate = !negate;\n            negateOffset++;\n        }\n        if (negateOffset)\n            this.pattern = pattern.slice(negateOffset);\n        this.negate = negate;\n    }\n    // set partial to true to test if, for example,\n    // \"/a/b\" matches the start of \"/*/b/*/d\"\n    // Partial means, if you run out of file before you run\n    // out of pattern, then that's fine, as long as all\n    // the parts match.\n    matchOne(file, pattern, partial = false) {\n        const options = this.options;\n        // UNC paths like //?/X:/... can match X:/... and vice versa\n        // Drive letters in absolute drive or unc paths are always compared\n        // case-insensitively.\n        if (this.isWindows) {\n            const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0]);\n            const fileUNC = !fileDrive &&\n                file[0] === '' &&\n                file[1] === '' &&\n                file[2] === '?' &&\n                /^[a-z]:$/i.test(file[3]);\n            const patternDrive = typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0]);\n            const patternUNC = !patternDrive &&\n                pattern[0] === '' &&\n                pattern[1] === '' &&\n                pattern[2] === '?' &&\n                typeof pattern[3] === 'string' &&\n                /^[a-z]:$/i.test(pattern[3]);\n            const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined;\n            const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined;\n            if (typeof fdi === 'number' && typeof pdi === 'number') {\n                const [fd, pd] = [file[fdi], pattern[pdi]];\n                if (fd.toLowerCase() === pd.toLowerCase()) {\n                    pattern[pdi] = fd;\n                    if (pdi > fdi) {\n                        pattern = pattern.slice(pdi);\n                    }\n                    else if (fdi > pdi) {\n                        file = file.slice(fdi);\n                    }\n                }\n            }\n        }\n        // resolve and reduce . and .. portions in the file as well.\n        // dont' need to do the second phase, because it's only one string[]\n        const { optimizationLevel = 1 } = this.options;\n        if (optimizationLevel >= 2) {\n            file = this.levelTwoFileOptimize(file);\n        }\n        this.debug('matchOne', this, { file, pattern });\n        this.debug('matchOne', file.length, pattern.length);\n        for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {\n            this.debug('matchOne loop');\n            var p = pattern[pi];\n            var f = file[fi];\n            this.debug(pattern, p, f);\n            // should be impossible.\n            // some invalid regexp stuff in the set.\n            /* c8 ignore start */\n            if (p === false) {\n                return false;\n            }\n            /* c8 ignore stop */\n            if (p === GLOBSTAR) {\n                this.debug('GLOBSTAR', [pattern, p, f]);\n                // \"**\"\n                // a/**/b/**/c would match the following:\n                // a/b/x/y/z/c\n                // a/x/y/z/b/c\n                // a/b/x/b/x/c\n                // a/b/c\n                // To do this, take the rest of the pattern after\n                // the **, and see if it would match the file remainder.\n                // If so, return success.\n                // If not, the ** \"swallows\" a segment, and try again.\n                // This is recursively awful.\n                //\n                // a/**/b/**/c matching a/b/x/y/z/c\n                // - a matches a\n                // - doublestar\n                //   - matchOne(b/x/y/z/c, b/**/c)\n                //     - b matches b\n                //     - doublestar\n                //       - matchOne(x/y/z/c, c) -> no\n                //       - matchOne(y/z/c, c) -> no\n                //       - matchOne(z/c, c) -> no\n                //       - matchOne(c, c) yes, hit\n                var fr = fi;\n                var pr = pi + 1;\n                if (pr === pl) {\n                    this.debug('** at the end');\n                    // a ** at the end will just swallow the rest.\n                    // We have found a match.\n                    // however, it will not swallow /.x, unless\n                    // options.dot is set.\n                    // . and .. are *never* matched by **, for explosively\n                    // exponential reasons.\n                    for (; fi < fl; fi++) {\n                        if (file[fi] === '.' ||\n                            file[fi] === '..' ||\n                            (!options.dot && file[fi].charAt(0) === '.'))\n                            return false;\n                    }\n                    return true;\n                }\n                // ok, let's see if we can swallow whatever we can.\n                while (fr < fl) {\n                    var swallowee = file[fr];\n                    this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee);\n                    // XXX remove this slice.  Just pass the start index.\n                    if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n                        this.debug('globstar found match!', fr, fl, swallowee);\n                        // found a match.\n                        return true;\n                    }\n                    else {\n                        // can't swallow \".\" or \"..\" ever.\n                        // can only swallow \".foo\" when explicitly asked.\n                        if (swallowee === '.' ||\n                            swallowee === '..' ||\n                            (!options.dot && swallowee.charAt(0) === '.')) {\n                            this.debug('dot detected!', file, fr, pattern, pr);\n                            break;\n                        }\n                        // ** swallows a segment, and continue.\n                        this.debug('globstar swallow a segment, and continue');\n                        fr++;\n                    }\n                }\n                // no match was found.\n                // However, in partial mode, we can't say this is necessarily over.\n                /* c8 ignore start */\n                if (partial) {\n                    // ran out of file\n                    this.debug('\\n>>> no match, partial?', file, fr, pattern, pr);\n                    if (fr === fl) {\n                        return true;\n                    }\n                }\n                /* c8 ignore stop */\n                return false;\n            }\n            // something other than **\n            // non-magic patterns just have to match exactly\n            // patterns with magic have been turned into regexps.\n            let hit;\n            if (typeof p === 'string') {\n                hit = f === p;\n                this.debug('string match', p, f, hit);\n            }\n            else {\n                hit = p.test(f);\n                this.debug('pattern match', p, f, hit);\n            }\n            if (!hit)\n                return false;\n        }\n        // Note: ending in / means that we'll get a final \"\"\n        // at the end of the pattern.  This can only match a\n        // corresponding \"\" at the end of the file.\n        // If the file ends in /, then it can only match a\n        // a pattern that ends in /, unless the pattern just\n        // doesn't have any more for it. But, a/b/ should *not*\n        // match \"a/b/*\", even though \"\" matches against the\n        // [^/]*? pattern, except in partial mode, where it might\n        // simply not be reached yet.\n        // However, a/b/ should still satisfy a/*\n        // now either we fell off the end of the pattern, or we're done.\n        if (fi === fl && pi === pl) {\n            // ran out of pattern and filename at the same time.\n            // an exact hit!\n            return true;\n        }\n        else if (fi === fl) {\n            // ran out of file, but still had pattern left.\n            // this is ok if we're doing the match as part of\n            // a glob fs traversal.\n            return partial;\n        }\n        else if (pi === pl) {\n            // ran out of pattern, still have file left.\n            // this is only acceptable if we're on the very last\n            // empty segment of a file with a trailing slash.\n            // a/* should match a/b/\n            return fi === fl - 1 && file[fi] === '';\n            /* c8 ignore start */\n        }\n        else {\n            // should be unreachable.\n            throw new Error('wtf?');\n        }\n        /* c8 ignore stop */\n    }\n    braceExpand() {\n        return braceExpand(this.pattern, this.options);\n    }\n    parse(pattern) {\n        assertValidPattern(pattern);\n        const options = this.options;\n        // shortcuts\n        if (pattern === '**')\n            return GLOBSTAR;\n        if (pattern === '')\n            return '';\n        // far and away, the most common glob pattern parts are\n        // *, *.*, and *.  Add a fast check method for those.\n        let m;\n        let fastTest = null;\n        if ((m = pattern.match(starRE))) {\n            fastTest = options.dot ? starTestDot : starTest;\n        }\n        else if ((m = pattern.match(starDotExtRE))) {\n            fastTest = (options.nocase\n                ? options.dot\n                    ? starDotExtTestNocaseDot\n                    : starDotExtTestNocase\n                : options.dot\n                    ? starDotExtTestDot\n                    : starDotExtTest)(m[1]);\n        }\n        else if ((m = pattern.match(qmarksRE))) {\n            fastTest = (options.nocase\n                ? options.dot\n                    ? qmarksTestNocaseDot\n                    : qmarksTestNocase\n                : options.dot\n                    ? qmarksTestDot\n                    : qmarksTest)(m);\n        }\n        else if ((m = pattern.match(starDotStarRE))) {\n            fastTest = options.dot ? starDotStarTestDot : starDotStarTest;\n        }\n        else if ((m = pattern.match(dotStarRE))) {\n            fastTest = dotStarTest;\n        }\n        const re = AST.fromGlob(pattern, this.options).toMMPattern();\n        if (fastTest && typeof re === 'object') {\n            // Avoids overriding in frozen environments\n            Reflect.defineProperty(re, 'test', { value: fastTest });\n        }\n        return re;\n    }\n    makeRe() {\n        if (this.regexp || this.regexp === false)\n            return this.regexp;\n        // at this point, this.set is a 2d array of partial\n        // pattern strings, or \"**\".\n        //\n        // It's better to use .match().  This function shouldn't\n        // be used, really, but it's pretty convenient sometimes,\n        // when you just want to work with a regex.\n        const set = this.set;\n        if (!set.length) {\n            this.regexp = false;\n            return this.regexp;\n        }\n        const options = this.options;\n        const twoStar = options.noglobstar\n            ? star\n            : options.dot\n                ? twoStarDot\n                : twoStarNoDot;\n        const flags = new Set(options.nocase ? ['i'] : []);\n        // regexpify non-globstar patterns\n        // if ** is only item, then we just do one twoStar\n        // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n        // if ** is last, append (\\/twoStar|) to previous\n        // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n        // then filter out GLOBSTAR symbols\n        let re = set\n            .map(pattern => {\n            const pp = pattern.map(p => {\n                if (p instanceof RegExp) {\n                    for (const f of p.flags.split(''))\n                        flags.add(f);\n                }\n                return typeof p === 'string'\n                    ? regExpEscape(p)\n                    : p === GLOBSTAR\n                        ? GLOBSTAR\n                        : p._src;\n            });\n            pp.forEach((p, i) => {\n                const next = pp[i + 1];\n                const prev = pp[i - 1];\n                if (p !== GLOBSTAR || prev === GLOBSTAR) {\n                    return;\n                }\n                if (prev === undefined) {\n                    if (next !== undefined && next !== GLOBSTAR) {\n                        pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next;\n                    }\n                    else {\n                        pp[i] = twoStar;\n                    }\n                }\n                else if (next === undefined) {\n                    pp[i - 1] = prev + '(?:\\\\/|' + twoStar + ')?';\n                }\n                else if (next !== GLOBSTAR) {\n                    pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next;\n                    pp[i + 1] = GLOBSTAR;\n                }\n            });\n            return pp.filter(p => p !== GLOBSTAR).join('/');\n        })\n            .join('|');\n        // need to wrap in parens if we had more than one thing with |,\n        // otherwise only the first will be anchored to ^ and the last to $\n        const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', ''];\n        // must match entire pattern\n        // ending in a * or ** will make it less strict.\n        re = '^' + open + re + close + '$';\n        // can match anything, as long as it's not this.\n        if (this.negate)\n            re = '^(?!' + re + ').+$';\n        try {\n            this.regexp = new RegExp(re, [...flags].join(''));\n            /* c8 ignore start */\n        }\n        catch (ex) {\n            // should be impossible\n            this.regexp = false;\n        }\n        /* c8 ignore stop */\n        return this.regexp;\n    }\n    slashSplit(p) {\n        // if p starts with // on windows, we preserve that\n        // so that UNC paths aren't broken.  Otherwise, any number of\n        // / characters are coalesced into one, unless\n        // preserveMultipleSlashes is set to true.\n        if (this.preserveMultipleSlashes) {\n            return p.split('/');\n        }\n        else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n            // add an extra '' for the one we lose\n            return ['', ...p.split(/\\/+/)];\n        }\n        else {\n            return p.split(/\\/+/);\n        }\n    }\n    match(f, partial = this.partial) {\n        this.debug('match', f, this.pattern);\n        // short-circuit in the case of busted things.\n        // comments, etc.\n        if (this.comment) {\n            return false;\n        }\n        if (this.empty) {\n            return f === '';\n        }\n        if (f === '/' && partial) {\n            return true;\n        }\n        const options = this.options;\n        // windows: need to use /, not \\\n        if (this.isWindows) {\n            f = f.split('\\\\').join('/');\n        }\n        // treat the test path as a set of pathparts.\n        const ff = this.slashSplit(f);\n        this.debug(this.pattern, 'split', ff);\n        // just ONE of the pattern sets in this.set needs to match\n        // in order for it to be valid.  If negating, then just one\n        // match means that we have failed.\n        // Either way, return on the first hit.\n        const set = this.set;\n        this.debug(this.pattern, 'set', set);\n        // Find the basename of the path by looking for the last non-empty segment\n        let filename = ff[ff.length - 1];\n        if (!filename) {\n            for (let i = ff.length - 2; !filename && i >= 0; i--) {\n                filename = ff[i];\n            }\n        }\n        for (let i = 0; i < set.length; i++) {\n            const pattern = set[i];\n            let file = ff;\n            if (options.matchBase && pattern.length === 1) {\n                file = [filename];\n            }\n            const hit = this.matchOne(file, pattern, partial);\n            if (hit) {\n                if (options.flipNegate) {\n                    return true;\n                }\n                return !this.negate;\n            }\n        }\n        // didn't get any hits.  this is success if it's a negative\n        // pattern, failure otherwise.\n        if (options.flipNegate) {\n            return false;\n        }\n        return this.negate;\n    }\n    static defaults(def) {\n        return minimatch.defaults(def).Minimatch;\n    }\n}\n/* c8 ignore start */\nexport { AST } from './ast.js';\nexport { escape } from './escape.js';\nexport { unescape } from './unescape.js';\n/* c8 ignore stop */\nminimatch.AST = AST;\nminimatch.Minimatch = Minimatch;\nminimatch.escape = escape;\nminimatch.unescape = unescape;\n//# sourceMappingURL=index.js.map","/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link windowsPathsNoEscape} option is used, then square-brace\n * escapes are removed, but not backslash escapes.  For example, it will turn\n * the string `'[*]'` into `*`, but it will not turn `'\\\\*'` into `'*'`,\n * becuase `\\` is a path separator in `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both brace escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n */\nexport const unescape = (s, { windowsPathsNoEscape = false, } = {}) => {\n    return windowsPathsNoEscape\n        ? s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n        : s.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2').replace(/\\\\([^\\/])/g, '$1');\n};\n//# sourceMappingURL=unescape.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"1140\":\"490e17ed9c8948d5a9e8\",\"2221\":\"428c2ff62c4b8b3c97fc\",\"3556\":\"57d00a12b4953e229068\",\"4508\":\"04b1afd183e5ecdd9cae\",\"4906\":\"75718b28aced26adc4af\",\"5448\":\"71cfe268d6f1213c4735\",\"5528\":\"1445efe9cbaf4e4cbcb8\",\"5862\":\"580b9c2e231a9169a12f\",\"6015\":\"ebcb6885c1fc8c461988\",\"7039\":\"be7eefcb933f99fc5b1f\",\"7859\":\"740587c0c8c350dad157\",\"7910\":\"de857920f8beb5205bbc\",\"8124\":\"75a422293ae2add34a10\",\"8815\":\"9a5c507c75429c9c04e4\"}[chunkId] + \"\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2122;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2122: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(80609)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","getLoggerBuilder","setApp","detectUser","build","client","createClient","getRootPath","setHeaders","token","requesttoken","onRequestTokenUpdate","getRequestToken","generateRemoteUrl","ActivityTabPluginView","ActivityTabPluginInstance","Vue","use","PiniaVuePlugin","__webpack_nonce__","getCSPNonce","tagName","loadState","undefined","window","OCA","Activity","registerSidebarAction","addEventListener","mount","async","el","node","reload","pinia","createPinia","default","ActivityCommentAction","extend","propsData","reloadCallback","resourceId","fileid","logger","info","unmount","$destroy","registerSidebarEntries","limit","offset","data","comments","getComments","resourceType","debug","CommentView","CommentsViewObject","map","comment","_CommentsViewInstance","timestamp","moment","props","creationDateTime","toDate","getTime","element","this","registerSidebarFilter","activity","type","registerSidebarTab","id","displayName","t","iconSvgInline","order","onInit","FilesSidebarTab","mixin","webComponent","wrap","Object","defineProperty","prototype","value","get","customElements","define","DEFAULT_LIMIT","options","resourcePath","join","datetime","toISOString","response","customRequest","method","responseData","text","stat","result","isDetailed","multistatus","responseItems","item","propstat","prop","prepareFileFromProps","toString","getDirectoryFiles","parseXML","processResponsePayload","balanced","a","b","str","RegExp","maybeMatch","r","range","start","end","pre","slice","body","length","post","reg","m","match","begs","beg","left","right","ai","indexOf","bi","i","push","pop","module","exports","freeGlobal","global","InvalidCharacterError","message","Error","name","error","TABLE","REGEX_SPACE_CHARACTERS","base64","input","String","test","c","buffer","padding","output","position","charCodeAt","charAt","replace","bitStorage","bitCounter","fromCharCode","substr","expand","split","escSlash","escOpen","escClose","escComma","escPeriod","escapeBraces","unescapeBraces","Math","random","numeric","parseInt","parseCommaParts","parts","p","postParts","shift","apply","embrace","isPadded","lte","y","gte","isTop","expansions","k","expansion","n","N","isNumericSequence","isAlphaSequence","isSequence","isOptions","x","width","max","incr","abs","pad","some","need","z","Array","j","len","code","bind","$apply","$call","$reflectApply","call","actualApply","arguments","Function","$TypeError","$actualApply","args","Reflect","setFunctionLength","$defineProperty","callBindBasic","applyBind","originalFunction","func","adjustedLength","GetIntrinsic","$indexOf","allowMissing","intrinsic","$SyntaxError","gopd","obj","property","nonEnumerable","nonWritable","nonConfigurable","loose","desc","configurable","enumerable","writable","hasProtoAccessor","callBind","gOPD","__proto__","e","$Object","$getPrototypeOf","getPrototypeOf","EvalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError","isCallable","toStr","hasOwnProperty","list","iterator","thisArg","receiver","array","forEachArray","string","forEachString","object","forEachObject","concatty","arr","that","target","bound","arrLike","slicy","boundLength","boundArgs","joiny","Empty","implementation","cached","$Error","$EvalError","$RangeError","$ReferenceError","$URIError","floor","min","pow","round","sign","$Function","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","getProto","$ObjectGPO","$ReflectGPO","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","ArrayBuffer","Symbol","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","Date","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","Float16Array","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","JSON","Map","Number","parseFloat","Promise","Proxy","Set","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","WeakRef","WeakSet","errorProto","doEval","fn","gen","LEGACY_ALIASES","hasOwn","$concat","concat","$spliceApply","splice","$replace","$strSlice","$exec","exec","rePropName","reEscapeChar","getBaseIntrinsic","alias","intrinsicName","first","last","number","quote","subString","stringToPath","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","reflectGetProto","originalGetProto","getDunderProto","O","getOwnPropertyDescriptor","hasPropertyDescriptors","hasArrayLengthDefineBug","origSymbol","hasSymbolSham","getOwnPropertySymbols","sym","symObj","_","keys","getOwnPropertyNames","syms","propertyIsEnumerable","descriptor","toStringTag","$hasOwn","http","url","https","key","validateParams","params","parse","protocol","request","cb","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","badArrayLike","isCallableMarker","fnToStr","reflectApply","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","isIE68","isDDA","document","all","strClass","isFnRegex","safeRegexTest","getGeneratorFunction","GeneratorFunction","isRegexMarker","throwRegexMarker","badStringifier","valueOf","toPrimitive","whichTypedArray","$isNaN","_typeof","constructor","_wrapNativeSuper","Class","_cache","has","set","Wrapper","_construct","_getPrototypeOf","create","_setPrototypeOf","Parent","construct","sham","_isNativeReflectConstruct","instance","o","setPrototypeOf","ObjectPrototypeMutationError","_Error","_this","Constructor","_classCallCheck","self","_assertThisInitialized","_possibleConstructorReturn","subClass","superClass","_inherits","traverse","path","callback","segments","_loop","idx","currentSegment","v","isArray","index","remainingSegments","pathToHere","_ret","isLastSegment","currentObject","currentProperty","nextPropIsNumber","isInteger","nextPropIsArrayWildcard","err","own","isIn","objectInPath","pathExists","validPath","hasMap","mapSizeDescriptor","mapSize","mapForEach","forEach","hasSet","setSizeDescriptor","setSize","setForEach","weakMapHas","weakSetHas","weakRefDeref","deref","booleanValueOf","objectToString","functionToString","$match","$slice","$toUpperCase","toUpperCase","$toLowerCase","toLowerCase","$test","$join","$arrSlice","$floor","bigIntValueOf","gOPS","symToString","hasShammedSymbols","isEnumerable","gPO","addNumericSeparator","num","Infinity","sepRegex","int","intStr","dec","utilInspect","inspectCustom","custom","inspectSymbol","isSymbol","quotes","single","quoteREs","wrapQuotes","s","defaultStyle","opts","style","quoteStyle","quoteChar","canTrustToString","isRegExp","inspect_","depth","seen","maxStringLength","customInspect","indent","numericSeparator","inspectString","bigIntStr","maxDepth","baseIndent","base","prev","getIndent","inspect","from","noIndent","newOpts","f","nameOf","arrObjKeys","symString","markBoxed","HTMLElement","nodeName","getAttribute","attrs","attributes","childNodes","xs","singleLineValues","indentedJoin","isError","cause","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","isBigInt","isBoolean","isString","globalThis","isDate","ys","isPlainObject","protoTag","stringTag","tag","l","remaining","trailer","quoteRE","lastIndex","lowbyte","size","entries","lineJoiner","isArr","symMap","util","normalizeArray","allowAboveRoot","res","splitPathRe","posix","posixSplitPath","filename","resolve","resolvedPath","resolvedAbsolute","process","cwd","normalize","isAbsolute","trailingSlash","segment","relative","to","trim","fromParts","toParts","samePartsLength","outputParts","_makeLong","dirname","root","dir","basename","ext","extname","format","pathObject","isObject","sep","pathString","allParts","delimiter","nodeType","punycode","maxInt","regexPunycode","regexNonASCII","regexSeparators","errors","stringFromCharCode","mapDomain","ucs2decode","extra","counter","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","baseMinusTMin","decode","out","basic","oldi","w","baseMinusT","inputLength","bias","lastIndexOf","encode","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","percentTwenties","Format","formatters","RFC1738","RFC3986","stringify","formats","utils","defaults","allowDots","allowEmptyArrays","allowPrototypes","allowSparse","arrayLimit","charset","charsetSentinel","comma","decodeDotInKeys","decoder","duplicates","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictDepth","strictNullHandling","throwOnLimitExceeded","$0","numberStr","parseArrayValue","val","currentArrayLength","parseKeys","givenKey","valuesParsed","child","parent","segmentContent","splitKeyIntoSegments","chain","parentKey","leaf","isOverflow","combine","cleanRoot","decodedRoot","isValidArrayIndex","markOverflow","parseObject","normalizeParseOptions","tempObj","cleanStr","skipIndex","bracketEqualsPos","pos","maybeMap","encodedVal","existing","parseValues","newObj","merge","compact","getSideChannel","arrayPrefixGenerators","brackets","prefix","indices","repeat","pushToArray","valueOrArray","toISO","defaultFormat","addQueryPrefix","arrayFormat","commaRoundTrip","encodeDotInKeys","encoder","encodeValuesOnly","filter","formatter","serializeDate","date","skipNulls","sentinel","generateArrayPrefix","sort","sideChannel","tmpSc","step","findFlag","isBuffer","objKeys","values","encodedPrefix","adjustedPrefix","encodedKey","keyPrefix","valueSideChannel","normalizeStringifyOptions","joined","overflowChannel","maxIndex","getMaxIndex","setMaxIndex","hexTable","arrayToObject","source","assign","reduce","acc","newIndex","queue","refs","compacted","compactQueue","defaultDecoder","strWithoutPlus","unescape","defaultEncoder","kind","escape","mapped","nextIndex","sourceKeys","combined","mergeTarget","targetItem","keyNum","pairs","query","parser","port","isRegex","regex","hasDescriptors","functionLengthIsConfigurable","functionLengthIsWritable","listGetNode","isDelete","curr","next","$o","channel","assert","deletedNode","objects","listDelete","listGet","listHas","listSet","$Map","$mapGet","$mapSet","$mapHas","$mapDelete","$mapSize","$m","getSideChannelMap","$WeakMap","$weakMapGet","$weakMapSet","$weakMapHas","$weakMapDelete","$wm","getSideChannelList","makeChannel","$channelData","ClientRequest","statusCodes","defaultProtocol","location","search","host","hostname","headers","req","on","IncomingMessage","Agent","defaultMaxSockets","globalAgent","STATUS_CODES","METHODS","xhr","getXHR","XMLHttpRequest","open","XDomainRequest","checkTypeSupport","responseType","isFunction","fetch","ReadableStream","writableStream","WritableStream","abortController","AbortController","arraybuffer","msstream","mozchunkedarraybuffer","overrideMimeType","capability","inherits","stream","rStates","readyStates","preferBinary","Writable","_opts","_body","_headers","auth","setHeader","Buffer","useFetch","mode","_mode","decideMode","_fetchTimer","_socketTimeout","_socketTimer","_onFinish","lowerName","unsafeHeaders","getHeader","header","removeHeader","_destroyed","timeout","setTimeout","headersObj","Blob","headersList","keyName","signal","controller","_fetchAbortController","requestTimeout","emit","abort","credentials","withCredentials","then","_fetchResponse","_resetTimers","_connect","reason","_xhr","nextTick","ontimeout","setRequestHeader","_response","onreadystatechange","readyState","LOADING","DONE","_onXHRProgress","onprogress","onerror","send","status","statusValid","_write","chunk","encoding","done","clearTimeout","destroy","once","flushHeaders","setNoDelay","setSocketKeepAlive","UNSENT","OPENED","HEADERS_RECEIVED","resetTimers","Readable","rawHeaders","trailers","rawTrailers","statusCode","statusMessage","statusText","write","reject","_resumeFetch","close","pipeTo","catch","reader","getReader","read","_pos","responseURL","getAllResponseHeaders","matches","_charset","mimeType","charsetMatch","_read","responseText","newData","alloc","MSStreamReader","byteLength","onload","readAsArrayBuffer","codes","createErrorType","Base","NodeError","_Base","arg1","arg2","arg3","getMessage","oneOf","expected","thing","actual","determiner","msg","this_len","substring","endsWith","arg","objectKeys","Duplex","allowHalfOpen","readable","onend","_writableState","ended","onEndNT","highWaterMark","getBuffer","_readableState","destroyed","PassThrough","Transform","_transform","ReadableState","EElistenerCount","emitter","listeners","Stream","OurUint8Array","debugUtil","debuglog","StringDecoder","createReadableStreamAsyncIterator","BufferList","destroyImpl","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","isDuplex","objectMode","readableObjectMode","pipes","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","defaultEncoding","awaitDrain","readingMore","_destroy","readableAddChunk","addToFront","skipChunkCheck","er","state","emitReadable","emitReadable_","onEofChunk","chunkInvalid","_uint8ArrayToBuffer","addChunk","maybeReadMore","unshift","_undestroy","undestroy","isPaused","setEncoding","enc","head","content","clear","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","listenerCount","resume","nReadingNextTick","resume_","fromList","ret","consume","endReadable","endReadableNT","wState","finished","nOrig","doRead","pipe","dest","pipeOpts","src","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","removeListener","onclose","onfinish","ondrain","ondata","cleanedUp","needDrain","pipeOnDrain","pause","event","prependListener","_events","dests","ev","addListener","removeAllListeners","asyncIterator","_fromList","iterable","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writecb","writechunk","rs","needTransform","writeencoding","transform","flush","_flush","prefinish","err2","CorkedRequest","entry","finish","corkReq","pendingcb","onCorkedFinish","corkedRequestsFree","WritableState","realHasInstance","internalUtil","deprecate","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","finalCalled","ending","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","writev","_writev","final","_final","doWrite","onwriteDrain","holder","count","allBuffers","isBuf","callFinal","rState","current","hasInstance","writeAfterEnd","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_Object$setPrototypeO","_defineProperty","prim","hint","_toPrimitive","_toPropertyKey","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","promise","lastPromise","wrapForNext","_this2","_Object$create","ownKeys","enumerableOnly","symbols","_objectSpread","getOwnPropertyDescriptors","defineProperties","_defineProperties","copyBuffer","copy","tail","protoProps","allocUnsafe","hasStrings","_getString","_getBuffer","nb","buf","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","ERR_STREAM_PREMATURE_CLOSE","noop","eos","called","_len","_key","onlegacyfinish","writableEnded","readableEnded","onrequest","isRequest","ERR_MISSING_ARGS","streams","popCallback","destroys","closed","destroyer","ERR_INVALID_OPT_VALUE","duplexKey","hwm","highWaterMarkFrom","pipeline","required","qs","controlOrWhitespace","CRHTLF","slashes","protocolre","windowsDriveLetter","trimLeft","rules","address","isSpecial","NaN","ignore","hash","lolcation","loc","finaldestination","Url","pathname","href","scheme","extractProtocol","rest","forwardSlashes","otherSlashes","slashesCount","extracted","instruction","instructions","up","username","password","origin","char","ins","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","hostlessProtocol","slashedProtocol","ftp","gopher","file","querystring","urlParse","parseQueryString","slashesDenoteHost","u","queryIndex","splitter","uSplit","simplePath","proto","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","toASCII","h","ae","esc","qm","resolveObject","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","fill","readUInt8","isArgumentsObject","isGeneratorFunction","isTypedArray","uncurryThis","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","isArrayBuffer","working","isDataViewToString","isDataView","isPromise","isArrayBufferView","isView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isFloat32Array","isFloat64Array","isBigInt64Array","isBigUint64Array","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","isBoxedPrimitive","isAnyArrayBuffer","descriptors","formatRegExp","isNull","noDeprecation","warned","throwDeprecation","traceDeprecation","console","trace","debugs","debugEnvRegex","env","NODE_DEBUG","debugEnv","ctx","stylize","stylizeNoColor","colors","showHidden","_extend","isUndefined","stylizeWithColor","formatValue","styleType","styles","recurseTimes","primitive","simple","formatPrimitive","visibleKeys","arrayToHash","formatError","braces","toUTCString","formatProperty","formatArray","cur","reduceToSingleString","line","ar","re","d","pid","types","isNullOrUndefined","isNativeError","isPrimitive","months","log","time","getHours","getMinutes","getSeconds","getDate","getMonth","add","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","original","promiseResolve","promiseReject","callbackify","callbackified","maybeCb","rej","availableTypedArrays","g","typedArrays","cache","typedArray","superProto","found","getter","trySlices","tryTypedArrays","possibleNames","WorkerGlobalScope","Headers","Request","Response","getIgnoreAttributesFn","ignoreAttributes","attrName","pattern","nameStartChar","regexName","getAllMatches","allmatches","startIndex","isName","isExist","defaultOptions","allowBooleanAttributes","unpairedTags","validate","xmlData","tags","tagFound","reachedRoot","readPI","isWhiteSpace","getErrorObject","getLineNumberForPosition","tagStartPos","readCommentAndCDATA","closingTag","validateTagName","readAttributeStr","attrStr","attrStrStart","isValid","validateAttributeString","tagClosed","otg","openPos","col","afterAmp","validateAmpersand","tagname","angleBracketsCount","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","validateAttrName","validateNumberAmpersand","lineNumber","lines","attributeNamePrefix","attributesGroupName","textNodeName","cdataPropName","indentBy","suppressEmptyNode","suppressUnpairedNode","suppressBooleanAttributes","tagValueProcessor","attributeValueProcessor","preserveOrder","commentPropName","entities","processEntities","stopNodes","oneListGroup","Builder","isAttribute","ignoreAttributesFn","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","level","ajPath","j2x","buildTextValNode","buildObjectNode","startsWith","jObj","arrayNodeName","jPath","attr","buildAttrPairStr","newval","replaceEntitiesValue","arrLen","listTagVal","listTagAttr","textValue","Ks","L","closeTag","tagEndExp","piClosingChar","entity","toXml","jArray","indentation","arrToStr","xmlStr","isPreviousElementTag","tagObj","propName","newJPath","tagText","isStopNode","attStr","attr_to_str","tempInd","piTextNodeName","newIdentation","tagStart","tagValue","includes","attrMap","attrVal","DocTypeReader","suppressValidationErr","readDocType","hasBody","exp","hasSeq","entityName","readEntityExp","regx","readElementExp","readNotationExp","skipWhitespace","validateEntityName","entityValue","readIdentifierVal","notationName","identifierType","publicIdentifier","systemIdentifier","identifierVal","elementName","contentModel","readAttlistExp","attributeName","attributeType","allowedNotations","notation","validTypes","defaultValue","seq","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","numberParseOptions","hex","leadingZeros","eNotation","alwaysCreateTextNode","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","captureMetaData","buildOptions","OrderedObjParser","currentNode","tagsNodeStack","docTypeEntities","lastEntities","ampEntity","fromCodePoint","addExternalEntities","parseXml","parseTextData","resolveNameSpace","buildAttributesMap","isItStopNode","readStopNodeData","saveTextToParentTag","addChild","stopNodesExact","stopNodesWildcard","stopNodeExp","externalEntities","entKeys","ent","dontTrim","hasAttributes","isLeafNode","escapeEntities","parseValue","attrsRegx","oldVal","aName","newVal","attrCollection","xmlObj","textData","docTypeReader","closeIndex","findClosingIndex","colonIndex","lastTagName","propIndex","tagData","readTagExp","childNode","tagExp","attrExpPresent","endIndex","rawTagName","newTagName","lastTag","tagContent","currentTagName","errMsg","closingIndex","closingChar","attrBoundary","ch","tagExpWithClosingIndex","separatorIndex","trimStart","openTagCount","shouldParse","XMLParser","validationOption","orderedObjParser","orderedResult","addEntity","getMetaDataSymbol","METADATA_SYMBOL","prettify","compress","compressedObj","newJpath","isLeaf","isLeafTag","assignAttributes","jpath","atrrName","propCount","XmlNode","sequence","methods","HOT_PATCHER_TYPE","NOOP","createNewItem","HotPatcher","_configuration","registry","getEmptyAction","__type__","configuration","newAction","control","allowTargetOverrides","foreignKey","execute","isPatched","patch","patchInline","plugin","restore","setFinal","assertError","getGlobalName","Layerr","errorOptionsOrMessage","messageText","shortMessage","super","_info","captureStackTrace","ctor","constructorOpt","_cause","fullStack","stack","parseArguments","hexRegex","numRegex","consider","decimalPoint","toNumber","trimmedStr","skipLike","numStr","parse_int","eNotationRegx","eChar","eAdjacentToLeadingZeros","resolveEnotation","numTrimmedByZeros","decimalAdjacentToLeadingZeros","parsedStr","urlJoin","strArray","resultArray","component","generateBasicAuthHeader","createDigestContext","ha1","nc","algorithm","hasDigestAuth","generateDigestAuthHeader","digest","uri","qop","ncString","realm","nonce","cnonce","ha2","digestResponse","authValues","opaque","authHeader","parseDigestAuth","_digest","responseIndicatesDigestAuth","uid","NONCE_CHARS","makeNonce","setupAuth","context","oauthToken","authType","Auto","Authorization","Digest","None","Password","Token","InvalidAuthType","generateTokenAuthHeader","token_type","access_token","hasArrayBuffer","objToString","isReactNative","TARGET","isWeb","__patcher","getPatcher","DEFAULT_CONTACT_HREF","remoteURL","authTypeRaw","remoteBasePath","contactHref","httpAgent","httpsAgent","parsing","attributeParsers","tagParsers","remotePath","copyFile","destination","createDirectory","createReadStream","createWriteStream","requestOptions","deleteFile","exists","getDirectoryContents","getFileContents","getFileDownloadLink","getFileUploadLink","getHeaders","getQuota","lock","moveFile","destinationFilename","putFileContents","partialUpdateFileContents","filePath","getDAVCompliance","unlock","registerAttributeParser","registerTagParser","Destination","Overwrite","overwrite","Depth","shallow","dirPath","recursive","paths","creating","testPath","createDirectoryRecursively","outStream","PassThroughStream","rangeHeader","Range","responseError","getFileStream","writeStream","maxRedirects","finalOptions","Accept","deep","davResp","_remotePath","files","serverremoteBasePath","requestPath","includeSelf","serverBase","nodes","details","glob","compliance","server","TRANSFORM_RETAIN_FORMAT","InvalidOutputFormat","transformResponse","getFileContentsString","arrayBuffer","getFileContentsBuffer","authPart","authContents","LinkUnsupportedAuthType","quota","DEFAULT_TIMEOUT","refreshToken","Timeout","If","lockPayload","serverTimeout","InvalidUpdateRange","partialUpdateFileContentsSabredav","partialUpdateFileContentsApache","NotSupported","contentLength","getSearch","searchArbiter","results","getStat","prepareRequestOptions","userOptions","requestStandard","ok","requestDigest","requestAuto","response2","patcher","newHeaders","agent","parsedURL","getFetchOptions","createErrorFromResponse","handleResponseCode","processGlobFilter","matchBase","requestDataToFetchBody","ha1Compute","user","pass","ha1Hash","PropertyType","displaynameTagParser","getPropertyOfType","Original","xml","normaliseResponse","normaliseResult","attrValue","processor","getParser","getlastmodified","lastMod","getcontentlength","rawSize","resourcetype","getcontenttype","getetag","etag","collection","lastmod","mime","displayname","parseStat","responseItem","statusLine","statusCodeStr","parseSearch","truncated","translateDiskSpace","fromBase64","toBase64","convertResponseHeaders","mergeHeaders","headerPayloads","headerKeys","lowerHeader","cloneShallow","items","nextItem","mergeObjects","obj1","obj2","SEP_PATH_POSIX","SEP_PATH_WINDOWS","encodePath","replaced","getAllDirectories","directory","currentPath","makePathAbsolute","pathStr","normalisePath","normalisedPath","parseQuota","quotaUsed","quotaAvail","used","available","calculateDataLength","DataTypeNoLength","extractURLPath","fullURL","urlPath","joinURL","nextPart","partIndex","normaliseHREF","generateLockXML","ownerHREF","namespace","lockinfo","lockscope","exclusive","locktype","owner","ns","parseGenericResponse","AuthType","ErrorCode","CharCodes","BinTrieFlags","EntityDecoderState","DecodingMode","codePointAt","EntityLevel","EncodingMode","assertValidPattern","isExtglobType","startNoDot","addPatternStart","justDots","reSpecials","regExpEscape","qmark","star","starNoEmpty","AST","hasMagic","pp","copyIn","toJSON","isStart","isEnd","pl","clone","ast","opt","escaping","inBrace","braceStart","braceNeg","noext","fromGlob","toMMPattern","uflag","toRegExpSource","nocase","nocaseMagicOnly","flags","_src","_glob","allowDot","dot","noEmpty","aps","needNoTrav","needNoDot","repeated","bodyDotAllowed","_hasMagic","needUflag","consumed","magic","posixClasses","braceEscape","rangesToString","ranges","parseClass","negs","sawStart","negate","endPos","rangeStart","WHILE","cls","unip","neg","sranges","snegs","windowsPathsNoEscape","minimatch","nocomment","Minimatch","starDotExtRE","starDotExtTest","starDotExtTestDot","starDotExtTestNocase","starDotExtTestNocaseDot","starDotStarRE","starDotStarTest","starDotStarTestDot","dotStarRE","dotStarTest","starRE","starTest","starTestDot","qmarksRE","qmarksTestNocase","qmarksTestNoExt","qmarksTestNocaseDot","qmarksTestNoExtDot","qmarksTestDot","qmarksTest","defaultPlatform","__MINIMATCH_TESTING_PLATFORM__","platform","GLOBSTAR","def","orig","makeRe","braceExpand","nobrace","mm","nonull","globMagic","nonegate","empty","preserveMultipleSlashes","partial","globSet","globParts","isWindows","windowsNoMagicRoot","regexp","allowWindowsEscape","make","magicalBraces","parseNegate","rawGlobParts","slashSplit","preprocess","__","isUNC","isDrive","ss","noglobstar","optimizationLevel","firstPhasePreProcess","secondPhasePreProcess","levelOneOptimize","adjascentGlobstarOptimize","gs","levelTwoFileOptimize","didSomething","dd","gss","p2","other","splin","matched","partsMatch","emptyGSMatch","which","negateOffset","matchOne","fileDrive","fileUNC","patternDrive","fdi","pdi","fd","pd","fi","pi","fl","fr","pr","swallowee","hit","fastTest","twoStar","ex","ff","flipNegate","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","fulfilled","every","__esModule","definition","chunkId","promises","script","needAttach","scripts","getElementsByTagName","createElement","setAttribute","onScriptComplete","doneFns","parentNode","removeChild","appendChild","nmd","children","scriptUrl","importScripts","currentScript","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"file":"comments-comments-tab.js?v=ff467df9b7cde10b80ef","mappings":"UAAIA,ECAAC,EACAC,E,8CCMJ,SAAeC,E,SAAAA,MACbC,OAAO,YACPC,aACAC,O,kFCAF,MAAMC,GAASC,EAAAA,EAAAA,KAAaC,EAAAA,EAAAA,MAM5B,SAASC,EAAWC,GACnBJ,EAAOG,WAAW,CAEjB,mBAAoB,iBAEpBE,aAAcD,GAAS,IAEzB,EAGAE,EAAAA,EAAAA,IAAqBH,GACrBA,GAAWI,EAAAA,EAAAA,OAEX,S,4DCnBA,SAASL,IACR,OAAOM,EAAAA,EAAAA,IAAkB,eAC1B,C,mICFA,IAAIC,EACAC,EAFJC,EAAAA,GAAIC,IAAIC,EAAAA,I,eCIRC,EAAAA,IAAoBC,EAAAA,EAAAA,MACpB,MAAMC,EAAU,8BCLLC,EAAAA,EAAAA,GAAU,WAAY,mBAAmB,SAA0DC,IAAhDC,OAAOC,KAAKC,UAAUC,sBDQhFH,OAAOI,iBAAiB,mBAAoB,WDD5CJ,OAAOC,IAAIC,SAASC,sBAAsB,CACtCE,MAAOC,MAAOC,GAAMC,OAAMC,aACtB,MAAMC,GAAQC,EAAAA,EAAAA,MACd,IAAKrB,EAAuB,CACxB,MAAQsB,QAASC,SAAgC,mEAEjDvB,EAAwBE,EAAAA,GAAIsB,OAAOD,EACvC,CACAtB,EAA4B,IAAID,EAAsB,CAClDiB,KACAG,QACAK,UAAW,CACPC,eAAgBP,EAChBQ,WAAYT,EAAKU,UAGzBC,EAAAA,EAAOC,KAAK,qDAAsD,CAAEZ,UAExEa,QAASA,KAED9B,GACAA,EAA0B+B,cAItCtB,OAAOC,IAAIC,SAASqB,uBAAuBjB,OAASE,OAAMgB,QAAOC,aAC7D,MAAQC,KAAMC,SAAmBC,EAAAA,EAAAA,GAAY,CAAEC,aAAc,QAASZ,WAAYT,EAAKU,QAAU,CAC7FM,QACAC,OAAQA,GAAU,IAEtBN,EAAAA,EAAOW,MAAM,kBAAmB,CAAEtB,OAAMmB,aACxC,MAAQf,QAASmB,SAAsB,mEAEjCC,EAAqBxC,EAAAA,GAAIsB,OAAOiB,GACtC,OAAOJ,EAASM,IAAKC,IAAO,CACxBC,2BAAuBpC,EACvBqC,WAAWC,EAAAA,EAAAA,GAAOH,EAAQI,OAAOC,kBAAkBC,SAASC,UAC5DpC,KAAAA,CAAMqC,GAAS,OAAEjC,IACbkC,KAAKR,sBAAwB,IAAIH,EAAmB,CAChDzB,GAAImC,EACJ3B,UAAW,CACPmB,UACAjB,WAAYT,EAAKU,OACjBF,eAAgBP,IAG5B,EACAY,OAAAA,GACIsB,KAAKR,uBAAuBb,UAChC,OAGRtB,OAAOC,IAAIC,SAAS0C,sBAAuBC,GAA+B,aAAlBA,EAASC,MACjE3B,EAAAA,EAAOC,KAAK,yDClDZ,IAGA2B,EAAAA,EAAAA,IAAmB,CACfC,GAAI,WACJC,aAAaC,EAAAA,EAAAA,GAAE,WAAY,YAC3BC,c,+NACAC,MAAO,GACPvD,UACA,YAAMwD,GACF,MAAQzC,QAAS0C,SAA0B,mEAC3C9D,EAAAA,GAAIC,IAAIC,EAAAA,IACRF,EAAAA,GAAI+D,MAAM,CAAE7C,OAAOC,EAAAA,EAAAA,QACnB,MAAM6C,GAAeC,EAAAA,EAAAA,GAAKjE,EAAAA,GAAK8D,GAE/BI,OAAOC,eAAeH,EAAaI,UAAW,eAAgB,CAC1DC,KAAAA,GAAU,OAAOlB,IAAM,IAE3Be,OAAOC,eAAeH,EAAaI,UAAW,aAAc,CACxDE,GAAAA,GAAQ,OAAOnB,IAAM,IAEzB3C,OAAO+D,eAAeC,OAAOnE,EAAS2D,EAC1C,G,mGEjCD,MAAMS,EAAgB,GAatB3D,eAAesB,GAAY,aAAEC,EAAY,WAAEZ,GAAciD,GAC5D,MAAMC,EAAe,CAAC,GAAItC,EAAcZ,GAAYmD,KAAK,KACnDC,EAAWH,EAAQG,SAAW,gBAAgBH,EAAQG,SAASC,8BAAgC,GAC/FC,QAAiB1F,EAAAA,EAAO2F,cAAcL,EAAc,CACtDM,OAAQ,SACR/C,KAAM,sPAMEwC,EAAQ1C,OAASyC,oCAChBC,EAAQzC,QAAU,0BAC7B4C,oCAEKH,IAEDQ,QAAqBH,EAASI,OAE9BC,EAUV,SAA2BC,EAAQC,GAAa,GAE5C,MAAQC,aAAeR,SAAUS,IAAqBH,EAEtD,OAAOG,EAAc/C,IAAKgD,IAEtB,MAAM3C,EAAQ2C,EAAKC,SAASC,KAC5B,OAAOC,EAAAA,EAAAA,IAAqB9C,EAAOA,EAAMU,GAAGqC,WAAYP,IAEhE,CAnBiBQ,OADQC,EAAAA,EAAAA,IAASb,IACS,GAEvC,OAAOc,EAAAA,EAAAA,IAAuBjB,EAAUK,GAAM,EAClD,C,uBCzCA,SAASa,EAASC,EAAGC,EAAGC,GAClBF,aAAaG,SAAQH,EAAII,EAAWJ,EAAGE,IACvCD,aAAaE,SAAQF,EAAIG,EAAWH,EAAGC,IAE3C,IAAIG,EAAIC,EAAMN,EAAGC,EAAGC,GAEpB,OAAOG,GAAK,CACVE,MAAOF,EAAE,GACTG,IAAKH,EAAE,GACPI,IAAKP,EAAIQ,MAAM,EAAGL,EAAE,IACpBM,KAAMT,EAAIQ,MAAML,EAAE,GAAKL,EAAEY,OAAQP,EAAE,IACnCQ,KAAMX,EAAIQ,MAAML,EAAE,GAAKJ,EAAEW,QAE7B,CAEA,SAASR,EAAWU,EAAKZ,GACvB,IAAIa,EAAIb,EAAIc,MAAMF,GAClB,OAAOC,EAAIA,EAAE,GAAK,IACpB,CAGA,SAAST,EAAMN,EAAGC,EAAGC,GACnB,IAAIe,EAAMC,EAAKC,EAAMC,EAAOjC,EACxBkC,EAAKnB,EAAIoB,QAAQtB,GACjBuB,EAAKrB,EAAIoB,QAAQrB,EAAGoB,EAAK,GACzBG,EAAIH,EAER,GAAIA,GAAM,GAAKE,EAAK,EAAG,CACrB,GAAGvB,IAAIC,EACL,MAAO,CAACoB,EAAIE,GAKd,IAHAN,EAAO,GACPE,EAAOjB,EAAIU,OAEJY,GAAK,IAAMrC,GACZqC,GAAKH,GACPJ,EAAKQ,KAAKD,GACVH,EAAKnB,EAAIoB,QAAQtB,EAAGwB,EAAI,IACA,GAAfP,EAAKL,OACdzB,EAAS,CAAE8B,EAAKS,MAAOH,KAEvBL,EAAMD,EAAKS,OACDP,IACRA,EAAOD,EACPE,EAAQG,GAGVA,EAAKrB,EAAIoB,QAAQrB,EAAGuB,EAAI,IAG1BA,EAAIH,EAAKE,GAAMF,GAAM,EAAIA,EAAKE,EAG5BN,EAAKL,SACPzB,EAAS,CAAEgC,EAAMC,GAErB,CAEA,OAAOjC,CACT,CA5DAwC,EAAOC,QAAU7B,EAqBjBA,EAASO,MAAQA,C,eCtBjB,M,WACE,WAGD,IAQIuB,GAL0CF,GAC7CA,EAAOC,QAI0B,iBAAV,YAAsB,YAC1CC,EAAWC,SAAWD,GAAcA,EAAWvH,OAMnD,IAAIyH,EAAwB,SAASC,GACpC/E,KAAK+E,QAAUA,CAChB,GACAD,EAAsB7D,UAAY,IAAI+D,OACNC,KAAO,wBAEvC,IAAIC,EAAQ,SAASH,GAGpB,MAAM,IAAID,EAAsBC,EACjC,EAEII,EAAQ,mEAERC,EAAyB,eAsGzBC,EAAS,CACZ,OA3DY,SAASC,GACrBA,EAAQC,OAAOD,GACX,aAAaE,KAAKF,IAGrBJ,EACC,6EAcF,IAVA,IAGInC,EACAC,EACAyC,EACAC,EANAC,EAAUL,EAAM3B,OAAS,EACzBiC,EAAS,GACTC,GAAY,EAMZlC,EAAS2B,EAAM3B,OAASgC,IAEnBE,EAAWlC,GAEnBZ,EAAIuC,EAAMQ,WAAWD,IAAa,GAClC7C,EAAIsC,EAAMQ,aAAaD,IAAa,EACpCJ,EAAIH,EAAMQ,aAAaD,GAIvBD,GACCT,EAAMY,QAJPL,EAAS3C,EAAIC,EAAIyC,IAIO,GAAK,IAC5BN,EAAMY,OAAOL,GAAU,GAAK,IAC5BP,EAAMY,OAAOL,GAAU,EAAI,IAC3BP,EAAMY,OAAgB,GAATL,GAuBf,OAnBe,GAAXC,GACH5C,EAAIuC,EAAMQ,WAAWD,IAAa,EAClC7C,EAAIsC,EAAMQ,aAAaD,GAEvBD,GACCT,EAAMY,QAFPL,EAAS3C,EAAIC,IAEW,IACvBmC,EAAMY,OAAQL,GAAU,EAAK,IAC7BP,EAAMY,OAAQL,GAAU,EAAK,IAC7B,KAEoB,GAAXC,IACVD,EAASJ,EAAMQ,WAAWD,GAC1BD,GACCT,EAAMY,OAAOL,GAAU,GACvBP,EAAMY,OAAQL,GAAU,EAAK,IAC7B,MAIKE,CACR,EAIC,OAlGY,SAASN,GAGrB,IAAI3B,GAFJ2B,EAAQC,OAAOD,GACbU,QAAQZ,EAAwB,KACfzB,OACfA,EAAS,GAAK,IAEjBA,GADA2B,EAAQA,EAAMU,QAAQ,OAAQ,KACfrC,SAGfA,EAAS,GAAK,GAEd,iBAAiB6B,KAAKF,KAEtBJ,EACC,yEAQF,IALA,IACIe,EACAP,EAFAQ,EAAa,EAGbN,EAAS,GACTC,GAAY,IACPA,EAAWlC,GACnB+B,EAASP,EAAMd,QAAQiB,EAAMS,OAAOF,IACpCI,EAAaC,EAAa,EAAiB,GAAbD,EAAkBP,EAASA,EAErDQ,IAAe,IAElBN,GAAUL,OAAOY,aAChB,IAAOF,KAAgB,EAAIC,EAAa,KAI3C,OAAON,CACR,EAiEC,QAAW,cAYV,KAFD,aACC,OAAOP,CACP,+BAaH,CAlKC,E,eCDD,IAAIvC,EAAW,EAAQ,MAEvB4B,EAAOC,QA6DP,SAAmB1B,GACjB,OAAKA,GASoB,OAArBA,EAAImD,OAAO,EAAG,KAChBnD,EAAM,SAAWA,EAAImD,OAAO,IAGvBC,EA7DT,SAAsBpD,GACpB,OAAOA,EAAIqD,MAAM,QAAQ7E,KAAK8E,GACnBD,MAAM,OAAO7E,KAAK+E,GAClBF,MAAM,OAAO7E,KAAKgF,GAClBH,MAAM,OAAO7E,KAAKiF,GAClBJ,MAAM,OAAO7E,KAAKkF,EAC/B,CAuDgBC,CAAa3D,IAAM,GAAM3D,IAAIuH,IAZlC,EAaX,EA1EA,IAAIN,EAAW,UAAUO,KAAKC,SAAS,KACnCP,EAAU,SAASM,KAAKC,SAAS,KACjCN,EAAW,UAAUK,KAAKC,SAAS,KACnCL,EAAW,UAAUI,KAAKC,SAAS,KACnCJ,EAAY,WAAWG,KAAKC,SAAS,KAEzC,SAASC,EAAQ/D,GACf,OAAOgE,SAAShE,EAAK,KAAOA,EACxBgE,SAAShE,EAAK,IACdA,EAAI6C,WAAW,EACrB,CAUA,SAASe,EAAe5D,GACtB,OAAOA,EAAIqD,MAAMC,GAAU9E,KAAK,MACrB6E,MAAME,GAAS/E,KAAK,KACpB6E,MAAMG,GAAUhF,KAAK,KACrB6E,MAAMI,GAAUjF,KAAK,KACrB6E,MAAMK,GAAWlF,KAAK,IACnC,CAMA,SAASyF,EAAgBjE,GACvB,IAAKA,EACH,MAAO,CAAC,IAEV,IAAIkE,EAAQ,GACRrD,EAAIhB,EAAS,IAAK,IAAKG,GAE3B,IAAKa,EACH,OAAOb,EAAIqD,MAAM,KAEnB,IAAI9C,EAAMM,EAAEN,IACRE,EAAOI,EAAEJ,KACTE,EAAOE,EAAEF,KACTwD,EAAI5D,EAAI8C,MAAM,KAElBc,EAAEA,EAAEzD,OAAO,IAAM,IAAMD,EAAO,IAC9B,IAAI2D,EAAYH,EAAgBtD,GAQhC,OAPIA,EAAKD,SACPyD,EAAEA,EAAEzD,OAAO,IAAM0D,EAAUC,QAC3BF,EAAE5C,KAAK+C,MAAMH,EAAGC,IAGlBF,EAAM3C,KAAK+C,MAAMJ,EAAOC,GAEjBD,CACT,CAmBA,SAASK,EAAQvE,GACf,MAAO,IAAMA,EAAM,GACrB,CACA,SAASwE,EAAS7J,GAChB,MAAO,SAAS4H,KAAK5H,EACvB,CAEA,SAAS8J,EAAInD,EAAGoD,GACd,OAAOpD,GAAKoD,CACd,CACA,SAASC,EAAIrD,EAAGoD,GACd,OAAOpD,GAAKoD,CACd,CAEA,SAAStB,EAAOpD,EAAK4E,GACnB,IAAIC,EAAa,GAEbhE,EAAIhB,EAAS,IAAK,IAAKG,GAC3B,IAAKa,EAAG,MAAO,CAACb,GAGhB,IAAIO,EAAMM,EAAEN,IACRI,EAAOE,EAAEF,KAAKD,OACd0C,EAAOvC,EAAEF,MAAM,GACf,CAAC,IAEL,GAAI,MAAM4B,KAAK1B,EAAEN,KACf,IAAK,IAAIuE,EAAI,EAAGA,EAAInE,EAAKD,OAAQoE,IAAK,CACpC,IAAIC,EAAYxE,EAAK,IAAMM,EAAEJ,KAAO,IAAME,EAAKmE,GAC/CD,EAAWtD,KAAKwD,EAClB,KACK,CACL,IAaIC,EAkBAC,EA/BAC,EAAoB,iCAAiC3C,KAAK1B,EAAEJ,MAC5D0E,EAAkB,uCAAuC5C,KAAK1B,EAAEJ,MAChE2E,EAAaF,GAAqBC,EAClCE,EAAYxE,EAAEJ,KAAKW,QAAQ,MAAQ,EACvC,IAAKgE,IAAeC,EAElB,OAAIxE,EAAEF,KAAKG,MAAM,cAERsC,EADPpD,EAAMa,EAAEN,IAAM,IAAMM,EAAEJ,KAAO+C,EAAW3C,EAAEF,MAGrC,CAACX,GAIV,GAAIoF,EACFJ,EAAInE,EAAEJ,KAAK4C,MAAM,aAGjB,GAAiB,KADjB2B,EAAIf,EAAgBpD,EAAEJ,OAChBC,QAGa,KADjBsE,EAAI5B,EAAO4B,EAAE,IAAI,GAAO3I,IAAIkI,IACtB7D,OACJ,OAAOC,EAAKtE,IAAI,SAAS8H,GACvB,OAAOtD,EAAEN,IAAMyE,EAAE,GAAKb,CACxB,GASN,GAAIiB,EAAY,CACd,IAAIE,EAAIvB,EAAQiB,EAAE,IACdN,EAAIX,EAAQiB,EAAE,IACdO,EAAQ1B,KAAK2B,IAAIR,EAAE,GAAGtE,OAAQsE,EAAE,GAAGtE,QACnC+E,EAAmB,GAAZT,EAAEtE,OACTmD,KAAK6B,IAAI3B,EAAQiB,EAAE,KACnB,EACAzC,EAAOkC,EACGC,EAAIY,IAEhBG,IAAS,EACTlD,EAAOoC,GAET,IAAIgB,EAAMX,EAAEY,KAAKpB,GAEjBS,EAAI,GAEJ,IAAK,IAAI3D,EAAIgE,EAAG/C,EAAKjB,EAAGoD,GAAIpD,GAAKmE,EAAM,CACrC,IAAIjD,EACJ,GAAI2C,EAEQ,QADV3C,EAAIF,OAAOY,aAAa5B,MAEtBkB,EAAI,SAGN,GADAA,EAAIF,OAAOhB,GACPqE,EAAK,CACP,IAAIE,EAAON,EAAQ/C,EAAE9B,OACrB,GAAImF,EAAO,EAAG,CACZ,IAAIC,EAAI,IAAIC,MAAMF,EAAO,GAAGrH,KAAK,KAE/BgE,EADElB,EAAI,EACF,IAAMwE,EAAItD,EAAEhC,MAAM,GAElBsF,EAAItD,CACZ,CACF,CAEFyC,EAAE1D,KAAKiB,EACT,CACF,KAAO,CACLyC,EAAI,GAEJ,IAAK,IAAIe,EAAI,EAAGA,EAAIhB,EAAEtE,OAAQsF,IAC5Bf,EAAE1D,KAAK+C,MAAMW,EAAG7B,EAAO4B,EAAEgB,IAAI,GAEjC,CAEA,IAASA,EAAI,EAAGA,EAAIf,EAAEvE,OAAQsF,IAC5B,IAASlB,EAAI,EAAGA,EAAInE,EAAKD,OAAQoE,IAC3BC,EAAYxE,EAAM0E,EAAEe,GAAKrF,EAAKmE,KAC7BF,GAASQ,GAAcL,IAC1BF,EAAWtD,KAAKwD,EAGxB,CAEA,OAAOF,CACT,C,WCzMApD,EAAOC,QAAU,CACf,IAAO,WACP,IAAO,sBACP,IAAO,aACP,IAAO,KACP,IAAO,UACP,IAAO,WACP,IAAO,gCACP,IAAO,aACP,IAAO,gBACP,IAAO,kBACP,IAAO,eACP,IAAO,mBACP,IAAO,UACP,IAAO,mBACP,IAAO,oBACP,IAAO,QACP,IAAO,YACP,IAAO,eACP,IAAO,YACP,IAAO,qBACP,IAAO,qBACP,IAAO,cACP,IAAO,eACP,IAAO,mBACP,IAAO,YACP,IAAO,YACP,IAAO,qBACP,IAAO,iBACP,IAAO,gCACP,IAAO,kBACP,IAAO,WACP,IAAO,OACP,IAAO,kBACP,IAAO,sBACP,IAAO,oBACP,IAAO,eACP,IAAO,yBACP,IAAO,wBACP,IAAO,qBACP,IAAO,eACP,IAAO,sBACP,IAAO,uBACP,IAAO,SACP,IAAO,oBACP,IAAO,uBACP,IAAO,mBACP,IAAO,wBACP,IAAO,oBACP,IAAO,kCACP,IAAO,gCACP,IAAO,wBACP,IAAO,kBACP,IAAO,cACP,IAAO,sBACP,IAAO,kBACP,IAAO,6BACP,IAAO,0BACP,IAAO,uBACP,IAAO,gBACP,IAAO,2BACP,IAAO,eACP,IAAO,kC,0BCrCTA,EAAQ,EApBR,SAAoB1B,GAChB,IAAKA,EACD,OAAO,EAIX,IADA,IAAIiG,GADJjG,EAAMA,EAAIP,YACIiB,OACLY,EAAItB,EAAIU,OAAQY,KAAM,CAC3B,IAAI4E,EAAOlG,EAAI6C,WAAWvB,GACtB,OAAU4E,GAAQA,GAAQ,OAC1B5E,IAEA,IAAO4E,GAAQA,GAAQ,KACvBD,IAEK,KAAQC,GAAQA,GAAQ,QAC7BD,GAAO,EAEf,CACA,OAAOA,CACX,C,4BCtBA,IAAIE,EAAO,EAAQ,OAEfC,EAAS,EAAQ,OACjBC,EAAQ,EAAQ,OAChBC,EAAgB,EAAQ,OAG5B7E,EAAOC,QAAU4E,GAAiBH,EAAKI,KAAKF,EAAOD,E,4BCPnD,IAAID,EAAO,EAAQ,OACfC,EAAS,EAAQ,OACjBI,EAAc,EAAQ,OAG1B/E,EAAOC,QAAU,WAChB,OAAO8E,EAAYL,EAAMC,EAAQK,UAClC,C,wBCNAhF,EAAOC,QAAUgF,SAAS1I,UAAUsG,K,wBCApC7C,EAAOC,QAAUgF,SAAS1I,UAAUuI,I,4BCDpC,IAAIJ,EAAO,EAAQ,OACfQ,EAAa,EAAQ,OAErBN,EAAQ,EAAQ,OAChBO,EAAe,EAAQ,OAG3BnF,EAAOC,QAAU,SAAuBmF,GACvC,GAAIA,EAAKnG,OAAS,GAAwB,mBAAZmG,EAAK,GAClC,MAAM,IAAIF,EAAW,0BAEtB,OAAOC,EAAaT,EAAME,EAAOQ,EAClC,C,wBCXApF,EAAOC,QAA6B,oBAAZoF,SAA2BA,SAAWA,QAAQxC,K,4BCDtE,IAAIyC,EAAoB,EAAQ,OAE5BC,EAAkB,EAAQ,OAE1BC,EAAgB,EAAQ,OACxBC,EAAY,EAAQ,OAExBzF,EAAOC,QAAU,SAAkByF,GAClC,IAAIC,EAAOH,EAAcR,WACrBY,EAAiBF,EAAiBzG,QAAU+F,UAAU/F,OAAS,GACnE,OAAOqG,EACNK,EACA,GAAKC,EAAiB,EAAIA,EAAiB,IAC3C,EAEF,EAEIL,EACHA,EAAgBvF,EAAOC,QAAS,QAAS,CAAEzD,MAAOiJ,IAElDzF,EAAOC,QAAQ4C,MAAQ4C,C,4BCpBxB,IAAII,EAAe,EAAQ,OAEvBL,EAAgB,EAAQ,OAGxBM,EAAWN,EAAc,CAACK,EAAa,gCAG3C7F,EAAOC,QAAU,SAA4BM,EAAMwF,GAGlD,IAAIC,EAA2EH,EAAatF,IAAQwF,GACpG,MAAyB,mBAAdC,GAA4BF,EAASvF,EAAM,gBAAkB,EAChEiF,EAAmC,CAAEQ,IAEtCA,CACR,C,4BChBA,IAAIT,EAAkB,EAAQ,OAE1BU,EAAe,EAAQ,OACvBf,EAAa,EAAQ,OAErBgB,EAAO,EAAQ,OAGnBlG,EAAOC,QAAU,SAChBkG,EACAC,EACA5J,GAEA,IAAK2J,GAAuB,iBAARA,GAAmC,mBAARA,EAC9C,MAAM,IAAIjB,EAAW,0CAEtB,GAAwB,iBAAbkB,GAA6C,iBAAbA,EAC1C,MAAM,IAAIlB,EAAW,4CAEtB,GAAIF,UAAU/F,OAAS,GAA6B,kBAAjB+F,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAIE,EAAW,2DAEtB,GAAIF,UAAU/F,OAAS,GAA6B,kBAAjB+F,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAIE,EAAW,yDAEtB,GAAIF,UAAU/F,OAAS,GAA6B,kBAAjB+F,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAIE,EAAW,6DAEtB,GAAIF,UAAU/F,OAAS,GAA6B,kBAAjB+F,UAAU,GAC5C,MAAM,IAAIE,EAAW,2CAGtB,IAAImB,EAAgBrB,UAAU/F,OAAS,EAAI+F,UAAU,GAAK,KACtDsB,EAActB,UAAU/F,OAAS,EAAI+F,UAAU,GAAK,KACpDuB,EAAkBvB,UAAU/F,OAAS,EAAI+F,UAAU,GAAK,KACxDwB,EAAQxB,UAAU/F,OAAS,GAAI+F,UAAU,GAGzCyB,IAASP,GAAQA,EAAKC,EAAKC,GAE/B,GAAIb,EACHA,EAAgBY,EAAKC,EAAU,CAC9BM,aAAkC,OAApBH,GAA4BE,EAAOA,EAAKC,cAAgBH,EACtEI,WAA8B,OAAlBN,GAA0BI,EAAOA,EAAKE,YAAcN,EAChE7J,MAAOA,EACPoK,SAA0B,OAAhBN,GAAwBG,EAAOA,EAAKG,UAAYN,QAErD,KAAIE,IAAWH,GAAkBC,GAAgBC,GAIvD,MAAM,IAAIN,EAAa,+GAFvBE,EAAIC,GAAY5J,CAGjB,CACD,C,2BCrDA,IAGIqK,EAHAC,EAAW,EAAQ,OACnBC,EAAO,EAAQ,OAGnB,IAECF,EAAyE,GAAKG,YAAc1C,MAAM/H,SACnG,CAAE,MAAO0K,GACR,IAAKA,GAAkB,iBAANA,KAAoB,SAAUA,IAAiB,qBAAXA,EAAExC,KACtD,MAAMwC,CAER,CAGA,IAAIR,IAASI,GAAoBE,GAAQA,EAAK1K,OAAOE,UAAwD,aAEzG2K,EAAU7K,OACV8K,EAAkBD,EAAQE,eAG9BpH,EAAOC,QAAUwG,GAA4B,mBAAbA,EAAKhK,IAClCqK,EAAS,CAACL,EAAKhK,MACY,mBAApB0K,GACyB,SAAmB3K,GAEnD,OAAO2K,EAAyB,MAAT3K,EAAgBA,EAAQ0K,EAAQ1K,GACxD,C,wBCzBF,IAAI+I,EAAkBlJ,OAAOC,iBAAkB,EAC/C,GAAIiJ,EACH,IACCA,EAAgB,CAAC,EAAG,IAAK,CAAE/I,MAAO,GACnC,CAAE,MAAOyK,GAER1B,GAAkB,CACnB,CAGDvF,EAAOC,QAAUsF,C,wBCVjBvF,EAAOC,QAAUoH,S,wBCAjBrH,EAAOC,QAAUK,K,wBCAjBN,EAAOC,QAAUqH,U,wBCAjBtH,EAAOC,QAAUsH,c,wBCAjBvH,EAAOC,QAAUuH,W,wBCAjBxH,EAAOC,QAAUwH,S,wBCAjBzH,EAAOC,QAAUyH,Q,wBCAjB1H,EAAOC,QAAU5D,M,4BCDjB,IAAIsL,EAAa,EAAQ,OAErBC,EAAQvL,OAAOE,UAAUyB,SACzB6J,EAAiBxL,OAAOE,UAAUsL,eA8CtC7H,EAAOC,QAAU,SAAiB6H,EAAMC,EAAUC,GAC9C,IAAKL,EAAWI,GACZ,MAAM,IAAIN,UAAU,+BAGxB,IAAIQ,EAVSpE,EAWTmB,UAAU/F,QAAU,IACpBgJ,EAAWD,GAZFnE,EAeDiE,EAda,mBAAlBF,EAAM9C,KAAKjB,GAvCH,SAAsBqE,EAAOH,EAAUE,GACtD,IAAK,IAAIpI,EAAI,EAAG2E,EAAM0D,EAAMjJ,OAAQY,EAAI2E,EAAK3E,IACrCgI,EAAe/C,KAAKoD,EAAOrI,KACX,MAAZoI,EACAF,EAASG,EAAMrI,GAAIA,EAAGqI,GAEtBH,EAASjD,KAAKmD,EAAUC,EAAMrI,GAAIA,EAAGqI,GAIrD,CA4CQC,CAAaL,EAAMC,EAAUE,GACN,iBAATH,EA1CF,SAAuBM,EAAQL,EAAUE,GACzD,IAAK,IAAIpI,EAAI,EAAG2E,EAAM4D,EAAOnJ,OAAQY,EAAI2E,EAAK3E,IAE1B,MAAZoI,EACAF,EAASK,EAAO/G,OAAOxB,GAAIA,EAAGuI,GAE9BL,EAASjD,KAAKmD,EAAUG,EAAO/G,OAAOxB,GAAIA,EAAGuI,EAGzD,CAkCQC,CAAcP,EAAMC,EAAUE,GA/BlB,SAAuBK,EAAQP,EAAUE,GACzD,IAAK,IAAI5E,KAAKiF,EACNT,EAAe/C,KAAKwD,EAAQjF,KACZ,MAAZ4E,EACAF,EAASO,EAAOjF,GAAIA,EAAGiF,GAEvBP,EAASjD,KAAKmD,EAAUK,EAAOjF,GAAIA,EAAGiF,GAItD,CAuBQC,CAAcT,EAAMC,EAAUE,EAEtC,C,wBChEA,IACIL,EAAQvL,OAAOE,UAAUyB,SACzB+F,EAAM3B,KAAK2B,IAGXyE,EAAW,SAAkBnK,EAAGC,GAGhC,IAFA,IAAImK,EAAM,GAED5I,EAAI,EAAGA,EAAIxB,EAAEY,OAAQY,GAAK,EAC/B4I,EAAI5I,GAAKxB,EAAEwB,GAEf,IAAK,IAAI0E,EAAI,EAAGA,EAAIjG,EAAEW,OAAQsF,GAAK,EAC/BkE,EAAIlE,EAAIlG,EAAEY,QAAUX,EAAEiG,GAG1B,OAAOkE,CACX,EAqBAzI,EAAOC,QAAU,SAAcyI,GAC3B,IAAIC,EAASrN,KACb,GAAsB,mBAAXqN,GApCA,sBAoCyBf,EAAM/E,MAAM8F,GAC5C,MAAM,IAAIlB,UAxCE,kDAwCwBkB,GAyBxC,IAvBA,IAEIC,EAFAxD,EAxBI,SAAeyD,GAEvB,IADA,IAAIJ,EAAM,GACD5I,EAsBmB,EAtBF0E,EAAI,EAAG1E,EAAIgJ,EAAQ5J,OAAQY,GAAK,EAAG0E,GAAK,EAC9DkE,EAAIlE,GAAKsE,EAAQhJ,GAErB,OAAO4I,CACX,CAkBeK,CAAM9D,WAqBb+D,EAAchF,EAAI,EAAG4E,EAAO1J,OAASmG,EAAKnG,QAC1C+J,EAAY,GACPnJ,EAAI,EAAGA,EAAIkJ,EAAalJ,IAC7BmJ,EAAUnJ,GAAK,IAAMA,EAKzB,GAFA+I,EAAQ3D,SAAS,SAAU,oBA3CnB,SAAUwD,GAElB,IADA,IAAIlK,EAAM,GACDsB,EAAI,EAAGA,EAAI4I,EAAIxJ,OAAQY,GAAK,EACjCtB,GAAOkK,EAAI5I,GACPA,EAAI,EAAI4I,EAAIxJ,SACZV,GAsC0D,KAnClE,OAAOA,CACX,CAkCqD0K,CAAMD,GAAkB,4CAAjE/D,CAxBK,WACT,GAAI3J,gBAAgBsN,EAAO,CACvB,IAAIpL,EAASmL,EAAO9F,MAChBvH,KACAkN,EAASpD,EAAMJ,YAEnB,OAAI3I,OAAOmB,KAAYA,EACZA,EAEJlC,IACX,CACA,OAAOqN,EAAO9F,MACV6F,EACAF,EAASpD,EAAMJ,WAGvB,GAUI2D,EAAOpM,UAAW,CAClB,IAAI2M,EAAQ,WAAkB,EAC9BA,EAAM3M,UAAYoM,EAAOpM,UACzBqM,EAAMrM,UAAY,IAAI2M,EACtBA,EAAM3M,UAAY,IACtB,CAEA,OAAOqM,CACX,C,4BCjFA,IAAIO,EAAiB,EAAQ,OAE7BnJ,EAAOC,QAAUgF,SAAS1I,UAAUmI,MAAQyE,C,uBCD5C,MAAMC,EAAsD,YAAc,EAAa,YAGvFpJ,EAAOC,QAAU,IAAMmJ,C,4BCJvB,IAAI1Q,EAEAwO,EAAU,EAAQ,OAElBmC,EAAS,EAAQ,OACjBC,EAAa,EAAQ,OACrBC,EAAc,EAAQ,OACtBC,EAAkB,EAAQ,OAC1BvD,EAAe,EAAQ,OACvBf,EAAa,EAAQ,OACrBuE,EAAY,EAAQ,OAEpBxF,EAAM,EAAQ,OACdyF,EAAQ,EAAQ,OAChB3F,EAAM,EAAQ,MACd4F,EAAM,EAAQ,OACdC,EAAM,EAAQ,OACdC,EAAQ,EAAQ,OAChBC,EAAO,EAAQ,OAEfC,EAAY9E,SAGZ+E,EAAwB,SAAUC,GACrC,IACC,OAAOF,EAAU,yBAA2BE,EAAmB,iBAAxDF,EACR,CAAE,MAAO9C,GAAI,CACd,EAEIiD,EAAQ,EAAQ,OAChB3E,EAAkB,EAAQ,OAE1B4E,EAAiB,WACpB,MAAM,IAAIjF,CACX,EACIkF,EAAiBF,EACjB,WACF,IAGC,OAAOC,CACR,CAAE,MAAOE,GACR,IAEC,OAAOH,EAAMlF,UAAW,UAAUvI,GACnC,CAAE,MAAO6N,GACR,OAAOH,CACR,CACD,CACD,CAbE,GAcAA,EAECI,EAAa,EAAQ,MAAR,GAEbC,EAAW,EAAQ,OACnBC,EAAa,EAAQ,OACrBC,EAAc,EAAQ,OAEtB/F,EAAS,EAAQ,OACjBC,EAAQ,EAAQ,OAEhB+F,EAAY,CAAC,EAEbC,EAAmC,oBAAfC,YAA+BL,EAAuBA,EAASK,YAArBnS,EAE9DoS,EAAa,CAChB9D,UAAW,KACX,mBAA8C,oBAAnB+D,eAAiCrS,EAAYqS,eACxE,UAAWzG,MACX,gBAAwC,oBAAhB0G,YAA8BtS,EAAYsS,YAClE,2BAA4BT,GAAcC,EAAWA,EAAS,GAAGS,OAAOlD,aAAerP,EACvF,mCAAoCA,EACpC,kBAAmBiS,EACnB,mBAAoBA,EACpB,2BAA4BA,EAC5B,2BAA4BA,EAC5B,YAAgC,oBAAZO,QAA0BxS,EAAYwS,QAC1D,WAA8B,oBAAXC,OAAyBzS,EAAYyS,OACxD,kBAA4C,oBAAlBC,cAAgC1S,EAAY0S,cACtE,mBAA8C,oBAAnBC,eAAiC3S,EAAY2S,eACxE,YAAaC,QACb,aAAkC,oBAAbC,SAA2B7S,EAAY6S,SAC5D,SAAUC,KACV,cAAeC,UACf,uBAAwBC,mBACxB,cAAeC,UACf,uBAAwBC,mBACxB,UAAWvC,EACX,SAAUwC,KACV,cAAevC,EACf,iBAA0C,oBAAjBwC,aAA+BpT,EAAYoT,aACpE,iBAA0C,oBAAjBC,aAA+BrT,EAAYqT,aACpE,iBAA0C,oBAAjBC,aAA+BtT,EAAYsT,aACpE,yBAA0D,oBAAzBC,qBAAuCvT,EAAYuT,qBACpF,aAAclC,EACd,sBAAuBY,EACvB,cAAoC,oBAAduB,UAA4BxT,EAAYwT,UAC9D,eAAsC,oBAAfC,WAA6BzT,EAAYyT,WAChE,eAAsC,oBAAfC,WAA6B1T,EAAY0T,WAChE,aAAcC,SACd,UAAWC,MACX,sBAAuB/B,GAAcC,EAAWA,EAASA,EAAS,GAAGS,OAAOlD,cAAgBrP,EAC5F,SAA0B,iBAAT6T,KAAoBA,KAAO7T,EAC5C,QAAwB,oBAAR8T,IAAsB9T,EAAY8T,IAClD,yBAAyC,oBAARA,KAAwBjC,GAAeC,EAAuBA,GAAS,IAAIgC,KAAMvB,OAAOlD,aAAtCrP,EACnF,SAAU0J,KACV,WAAYqK,OACZ,WAAYvF,EACZ,oCAAqCgD,EACrC,eAAgBwC,WAChB,aAAcnK,SACd,YAAgC,oBAAZoK,QAA0BjU,EAAYiU,QAC1D,UAA4B,oBAAVC,MAAwBlU,EAAYkU,MACtD,eAAgBrD,EAChB,mBAAoBC,EACpB,YAAgC,oBAAZnE,QAA0B3M,EAAY2M,QAC1D,WAAY7G,OACZ,QAAwB,oBAARqO,IAAsBnU,EAAYmU,IAClD,yBAAyC,oBAARA,KAAwBtC,GAAeC,EAAuBA,GAAS,IAAIqC,KAAM5B,OAAOlD,aAAtCrP,EACnF,sBAAoD,oBAAtBoU,kBAAoCpU,EAAYoU,kBAC9E,WAAYjM,OACZ,4BAA6B0J,GAAcC,EAAWA,EAAS,GAAGS,OAAOlD,aAAerP,EACxF,WAAY6R,EAAaU,OAASvS,EAClC,gBAAiBuN,EACjB,mBAAoBmE,EACpB,eAAgBQ,EAChB,cAAe1F,EACf,eAAsC,oBAAf2F,WAA6BnS,EAAYmS,WAChE,sBAAoD,oBAAtBkC,kBAAoCrU,EAAYqU,kBAC9E,gBAAwC,oBAAhBC,YAA8BtU,EAAYsU,YAClE,gBAAwC,oBAAhBC,YAA8BvU,EAAYuU,YAClE,aAAcxD,EACd,YAAgC,oBAAZyD,QAA0BxU,EAAYwU,QAC1D,YAAgC,oBAAZC,QAA0BzU,EAAYyU,QAC1D,YAAgC,oBAAZC,QAA0B1U,EAAY0U,QAE1D,4BAA6BxI,EAC7B,6BAA8BD,EAC9B,0BAA2BY,EAC3B,0BAA2BkF,EAC3B,aAAcxG,EACd,eAAgByF,EAChB,aAAc3F,EACd,aAAc4F,EACd,aAAcC,EACd,eAAgBC,EAChB,cAAeC,EACf,2BAA4BY,GAG7B,GAAIF,EACH,IACC,KAAKhK,KACN,CAAE,MAAOyG,GAER,IAAIoG,EAAa7C,EAASA,EAASvD,IACnC6D,EAAW,qBAAuBuC,CACnC,CAGD,IAAIC,EAAS,SAASA,EAAO/M,GAC5B,IAAI/D,EACJ,GAAa,oBAAT+D,EACH/D,EAAQwN,EAAsB,6BACxB,GAAa,wBAATzJ,EACV/D,EAAQwN,EAAsB,wBACxB,GAAa,6BAATzJ,EACV/D,EAAQwN,EAAsB,8BACxB,GAAa,qBAATzJ,EAA6B,CACvC,IAAIgN,EAAKD,EAAO,4BACZC,IACH/Q,EAAQ+Q,EAAGhR,UAEb,MAAO,GAAa,6BAATgE,EAAqC,CAC/C,IAAIiN,EAAMF,EAAO,oBACbE,GAAOhD,IACVhO,EAAQgO,EAASgD,EAAIjR,WAEvB,CAIA,OAFAuO,EAAWvK,GAAQ/D,EAEZA,CACR,EAEIiR,EAAiB,CACpBzG,UAAW,KACX,yBAA0B,CAAC,cAAe,aAC1C,mBAAoB,CAAC,QAAS,aAC9B,uBAAwB,CAAC,QAAS,YAAa,WAC/C,uBAAwB,CAAC,QAAS,YAAa,WAC/C,oBAAqB,CAAC,QAAS,YAAa,QAC5C,sBAAuB,CAAC,QAAS,YAAa,UAC9C,2BAA4B,CAAC,gBAAiB,aAC9C,mBAAoB,CAAC,yBAA0B,aAC/C,4BAA6B,CAAC,yBAA0B,YAAa,aACrE,qBAAsB,CAAC,UAAW,aAClC,sBAAuB,CAAC,WAAY,aACpC,kBAAmB,CAAC,OAAQ,aAC5B,mBAAoB,CAAC,QAAS,aAC9B,uBAAwB,CAAC,YAAa,aACtC,0BAA2B,CAAC,eAAgB,aAC5C,0BAA2B,CAAC,eAAgB,aAC5C,sBAAuB,CAAC,WAAY,aACpC,cAAe,CAAC,oBAAqB,aACrC,uBAAwB,CAAC,oBAAqB,YAAa,aAC3D,uBAAwB,CAAC,YAAa,aACtC,wBAAyB,CAAC,aAAc,aACxC,wBAAyB,CAAC,aAAc,aACxC,cAAe,CAAC,OAAQ,SACxB,kBAAmB,CAAC,OAAQ,aAC5B,iBAAkB,CAAC,MAAO,aAC1B,oBAAqB,CAAC,SAAU,aAChC,oBAAqB,CAAC,SAAU,aAChC,sBAAuB,CAAC,SAAU,YAAa,YAC/C,qBAAsB,CAAC,SAAU,YAAa,WAC9C,qBAAsB,CAAC,UAAW,aAClC,sBAAuB,CAAC,UAAW,YAAa,QAChD,gBAAiB,CAAC,UAAW,OAC7B,mBAAoB,CAAC,UAAW,UAChC,oBAAqB,CAAC,UAAW,WACjC,wBAAyB,CAAC,aAAc,aACxC,4BAA6B,CAAC,iBAAkB,aAChD,oBAAqB,CAAC,SAAU,aAChC,iBAAkB,CAAC,MAAO,aAC1B,+BAAgC,CAAC,oBAAqB,aACtD,oBAAqB,CAAC,SAAU,aAChC,oBAAqB,CAAC,SAAU,aAChC,yBAA0B,CAAC,cAAe,aAC1C,wBAAyB,CAAC,aAAc,aACxC,uBAAwB,CAAC,YAAa,aACtC,wBAAyB,CAAC,aAAc,aACxC,+BAAgC,CAAC,oBAAqB,aACtD,yBAA0B,CAAC,cAAe,aAC1C,yBAA0B,CAAC,cAAe,aAC1C,sBAAuB,CAAC,WAAY,aACpC,qBAAsB,CAAC,UAAW,aAClC,qBAAsB,CAAC,UAAW,cAG/BtC,EAAO,EAAQ,OACfgJ,EAAS,EAAQ,MACjBC,EAAUjJ,EAAKI,KAAKF,EAAON,MAAM/H,UAAUqR,QAC3CC,EAAenJ,EAAKI,KAAKH,EAAQL,MAAM/H,UAAUuR,QACjDC,EAAWrJ,EAAKI,KAAKF,EAAO/D,OAAOtE,UAAU+E,SAC7C0M,EAAYtJ,EAAKI,KAAKF,EAAO/D,OAAOtE,UAAUwC,OAC9CkP,EAAQvJ,EAAKI,KAAKF,EAAOpG,OAAOjC,UAAU2R,MAG1CC,EAAa,qGACbC,EAAe,WAiBfC,EAAmB,SAA0B9N,EAAMwF,GACtD,IACIuI,EADAC,EAAgBhO,EAOpB,GALImN,EAAOD,EAAgBc,KAE1BA,EAAgB,KADhBD,EAAQb,EAAec,IACK,GAAK,KAG9Bb,EAAO5C,EAAYyD,GAAgB,CACtC,IAAI/R,EAAQsO,EAAWyD,GAIvB,GAHI/R,IAAUmO,IACbnO,EAAQ8Q,EAAOiB,SAEK,IAAV/R,IAA0BuJ,EACpC,MAAM,IAAIb,EAAW,aAAe3E,EAAO,wDAG5C,MAAO,CACN+N,MAAOA,EACP/N,KAAMgO,EACN/R,MAAOA,EAET,CAEA,MAAM,IAAIyJ,EAAa,aAAe1F,EAAO,mBAC9C,EAEAP,EAAOC,QAAU,SAAsBM,EAAMwF,GAC5C,GAAoB,iBAATxF,GAAqC,IAAhBA,EAAKtB,OACpC,MAAM,IAAIiG,EAAW,6CAEtB,GAAIF,UAAU/F,OAAS,GAA6B,kBAAjB8G,EAClC,MAAM,IAAIb,EAAW,6CAGtB,GAAmC,OAA/B+I,EAAM,cAAe1N,GACxB,MAAM,IAAI0F,EAAa,sFAExB,IAAIxD,EAtDc,SAAsB2F,GACxC,IAAIoG,EAAQR,EAAU5F,EAAQ,EAAG,GAC7BqG,EAAOT,EAAU5F,GAAS,GAC9B,GAAc,MAAVoG,GAA0B,MAATC,EACpB,MAAM,IAAIxI,EAAa,kDACjB,GAAa,MAATwI,GAA0B,MAAVD,EAC1B,MAAM,IAAIvI,EAAa,kDAExB,IAAIzI,EAAS,GAIb,OAHAuQ,EAAS3F,EAAQ+F,EAAY,SAAU9O,EAAOqP,EAAQC,EAAOC,GAC5DpR,EAAOA,EAAOyB,QAAU0P,EAAQZ,EAASa,EAAWR,EAAc,MAAQM,GAAUrP,CACrF,GACO7B,CACR,CAyCaqR,CAAatO,GACrBuO,EAAoBrM,EAAMxD,OAAS,EAAIwD,EAAM,GAAK,GAElDuD,EAAYqI,EAAiB,IAAMS,EAAoB,IAAK/I,GAC5DgJ,EAAoB/I,EAAUzF,KAC9B/D,EAAQwJ,EAAUxJ,MAClBwS,GAAqB,EAErBV,EAAQtI,EAAUsI,MAClBA,IACHQ,EAAoBR,EAAM,GAC1BT,EAAapL,EAAOkL,EAAQ,CAAC,EAAG,GAAIW,KAGrC,IAAK,IAAIzO,EAAI,EAAGoP,GAAQ,EAAMpP,EAAI4C,EAAMxD,OAAQY,GAAK,EAAG,CACvD,IAAIqP,EAAOzM,EAAM5C,GACb2O,EAAQR,EAAUkB,EAAM,EAAG,GAC3BT,EAAOT,EAAUkB,GAAO,GAC5B,IAEa,MAAVV,GAA2B,MAAVA,GAA2B,MAAVA,GACtB,MAATC,GAAyB,MAATA,GAAyB,MAATA,IAElCD,IAAUC,EAEb,MAAM,IAAIxI,EAAa,wDASxB,GAPa,gBAATiJ,GAA2BD,IAC9BD,GAAqB,GAMlBtB,EAAO5C,EAFXiE,EAAoB,KADpBD,GAAqB,IAAMI,GACmB,KAG7C1S,EAAQsO,EAAWiE,QACb,GAAa,MAATvS,EAAe,CACzB,KAAM0S,KAAQ1S,GAAQ,CACrB,IAAKuJ,EACJ,MAAM,IAAIb,EAAW,sBAAwB3E,EAAO,+CAErD,MACD,CACA,GAAI2J,GAAUrK,EAAI,GAAM4C,EAAMxD,OAAQ,CACrC,IAAIwH,EAAOyD,EAAM1N,EAAO0S,GAWvB1S,GAVDyS,IAAUxI,IASG,QAASA,KAAU,kBAAmBA,EAAKhK,KAC/CgK,EAAKhK,IAELD,EAAM0S,EAEhB,MACCD,EAAQvB,EAAOlR,EAAO0S,GACtB1S,EAAQA,EAAM0S,GAGXD,IAAUD,IACblE,EAAWiE,GAAqBvS,EAElC,CACD,CACA,OAAOA,CACR,C,4BCvXA,IAAI0K,EAAU,EAAQ,OAGtBlH,EAAOC,QAAUiH,EAAQE,gBAAkB,I,wBCF3CpH,EAAOC,QAA8B,oBAAZoF,SAA2BA,QAAQ+B,gBAAmB,I,4BCD/E,IAAI+H,EAAkB,EAAQ,OAC1BC,EAAmB,EAAQ,OAE3BC,EAAiB,EAAQ,MAG7BrP,EAAOC,QAAUkP,EACd,SAAkBG,GAEnB,OAAOH,EAAgBG,EACxB,EACEF,EACC,SAAkBE,GACnB,IAAKA,GAAmB,iBAANA,GAA+B,mBAANA,EAC1C,MAAM,IAAI7H,UAAU,2BAGrB,OAAO2H,EAAiBE,EACzB,EACED,EACC,SAAkBC,GAEnB,OAAOD,EAAeC,EACvB,EACE,I,uBCvBLtP,EAAOC,QAAU5D,OAAOkT,wB,4BCAxB,IAAIrF,EAAQ,EAAQ,MAEpB,GAAIA,EACH,IACCA,EAAM,GAAI,SACX,CAAE,MAAOjD,GAERiD,EAAQ,IACT,CAGDlK,EAAOC,QAAUiK,C,4BCZjB,IAAI3E,EAAkB,EAAQ,OAE1BiK,EAAyB,WAC5B,QAASjK,CACV,EAEAiK,EAAuBC,wBAA0B,WAEhD,IAAKlK,EACJ,OAAO,KAER,IACC,OAA8D,IAAvDA,EAAgB,GAAI,SAAU,CAAE/I,MAAO,IAAKyC,MACpD,CAAE,MAAOgI,GAER,OAAO,CACR,CACD,EAEAjH,EAAOC,QAAUuP,C,4BCnBjB,IAAIE,EAA+B,oBAAXzE,QAA0BA,OAC9C0E,EAAgB,EAAQ,OAG5B3P,EAAOC,QAAU,WAChB,MAA0B,mBAAfyP,GACW,mBAAXzE,QACsB,iBAAtByE,EAAW,QACO,iBAAlBzE,OAAO,QAEX0E,GACR,C,wBCTA3P,EAAOC,QAAU,WAChB,GAAsB,mBAAXgL,QAAiE,mBAAjC5O,OAAOuT,sBAAwC,OAAO,EACjG,GAA+B,iBAApB3E,OAAOlD,SAAyB,OAAO,EAGlD,IAAI5B,EAAM,CAAC,EACP0J,EAAM5E,OAAO,QACb6E,EAASzT,OAAOwT,GACpB,GAAmB,iBAARA,EAAoB,OAAO,EAEtC,GAA4C,oBAAxCxT,OAAOE,UAAUyB,SAAS8G,KAAK+K,GAA8B,OAAO,EACxE,GAA+C,oBAA3CxT,OAAOE,UAAUyB,SAAS8G,KAAKgL,GAAiC,OAAO,EAY3E,IAAK,IAAIC,KADT5J,EAAI0J,GADS,GAEC1J,EAAO,OAAO,EAC5B,GAA2B,mBAAhB9J,OAAO2T,MAAmD,IAA5B3T,OAAO2T,KAAK7J,GAAKlH,OAAgB,OAAO,EAEjF,GAA0C,mBAA/B5C,OAAO4T,qBAAiF,IAA3C5T,OAAO4T,oBAAoB9J,GAAKlH,OAAgB,OAAO,EAE/G,IAAIiR,EAAO7T,OAAOuT,sBAAsBzJ,GACxC,GAAoB,IAAhB+J,EAAKjR,QAAgBiR,EAAK,KAAOL,EAAO,OAAO,EAEnD,IAAKxT,OAAOE,UAAU4T,qBAAqBrL,KAAKqB,EAAK0J,GAAQ,OAAO,EAEpE,GAA+C,mBAApCxT,OAAOkT,yBAAyC,CAE1D,IAAIa,EAAgD/T,OAAOkT,yBAAyBpJ,EAAK0J,GACzF,GAfY,KAeRO,EAAW5T,QAA8C,IAA1B4T,EAAWzJ,WAAuB,OAAO,CAC7E,CAEA,OAAO,CACR,C,4BC1CA,IAAI4D,EAAa,EAAQ,OAGzBvK,EAAOC,QAAU,WAChB,OAAOsK,OAAkBU,OAAOoF,WACjC,C,2BCLA,IAAIvL,EAAOG,SAAS1I,UAAUuI,KAC1BwL,EAAUjU,OAAOE,UAAUsL,eAC3BnD,EAAO,EAAQ,OAGnB1E,EAAOC,QAAUyE,EAAKI,KAAKA,EAAMwL,E,eCPjC,IAAIC,EAAO,EAAQ,OACfC,EAAM,EAAQ,OAEdC,EAAQzQ,EAAOC,QAEnB,IAAK,IAAIyQ,KAAOH,EACVA,EAAK1I,eAAe6I,KAAMD,EAAMC,GAAOH,EAAKG,IAalD,SAASC,EAAgBC,GAOvB,GANsB,iBAAXA,IACTA,EAASJ,EAAIK,MAAMD,IAEhBA,EAAOE,WACVF,EAAOE,SAAW,UAEI,WAApBF,EAAOE,SACT,MAAM,IAAIxQ,MAAM,aAAesQ,EAAOE,SAAW,sCAEnD,OAAOF,CACT,CArBAH,EAAMM,QAAU,SAAUH,EAAQI,GAEhC,OADAJ,EAASD,EAAeC,GACjBL,EAAKQ,QAAQjM,KAAKxJ,KAAMsV,EAAQI,EACzC,EAEAP,EAAMhU,IAAM,SAAUmU,EAAQI,GAE5B,OADAJ,EAASD,EAAeC,GACjBL,EAAK9T,IAAIqI,KAAKxJ,KAAMsV,EAAQI,EACrC,C,4BCfA,IAAIC,EAAiB,EAAQ,MAAR,GAGjBC,EAFY,EAAQ,MAERC,CAAU,6BAGtBC,EAAsB,SAAqB5U,GAC9C,QACCyU,GACGzU,GACiB,iBAAVA,GACPyO,OAAOoF,eAAe7T,IAIE,uBAArB0U,EAAU1U,EAClB,EAGI6U,EAAoB,SAAqB7U,GAC5C,QAAI4U,EAAoB5U,IAGP,OAAVA,GACc,iBAAVA,GACP,WAAYA,GACY,iBAAjBA,EAAMyC,QACbzC,EAAMyC,QAAU,GACK,mBAArBiS,EAAU1U,IACV,WAAYA,GACgB,sBAA5B0U,EAAU1U,EAAM8U,OACrB,EAEIC,EAA6B,WAChC,OAAOH,EAAoBpM,UAC5B,CAFgC,GAKhCoM,EAAoBC,kBAAoBA,EAGxCrR,EAAOC,QAAUsR,EAA4BH,EAAsBC,C,wBCzCnE,IAEIG,EACAC,EAHAC,EAAUzM,SAAS1I,UAAUyB,SAC7B2T,EAAkC,iBAAZtM,SAAoC,OAAZA,SAAoBA,QAAQxC,MAG9E,GAA4B,mBAAjB8O,GAAgE,mBAA1BtV,OAAOC,eACvD,IACCkV,EAAenV,OAAOC,eAAe,CAAC,EAAG,SAAU,CAClDG,IAAK,WACJ,MAAMgV,CACP,IAEDA,EAAmB,CAAC,EAEpBE,EAAa,WAAc,MAAM,EAAI,EAAG,KAAMH,EAC/C,CAAE,MAAOzB,GACJA,IAAM0B,IACTE,EAAe,KAEjB,MAEAA,EAAe,KAGhB,IAAIC,EAAmB,cACnBC,EAAe,SAA4BrV,GAC9C,IACC,IAAIsV,EAAQJ,EAAQ5M,KAAKtI,GACzB,OAAOoV,EAAiB9Q,KAAKgR,EAC9B,CAAE,MAAO7K,GACR,OAAO,CACR,CACD,EAEI8K,EAAoB,SAA0BvV,GACjD,IACC,OAAIqV,EAAarV,KACjBkV,EAAQ5M,KAAKtI,IACN,EACR,CAAE,MAAOyK,GACR,OAAO,CACR,CACD,EACIW,EAAQvL,OAAOE,UAAUyB,SAOzBiT,EAAmC,mBAAXhG,UAA2BA,OAAOoF,YAE1D2B,IAAW,IAAK,CAAC,IAEjBC,EAAQ,WAA8B,OAAO,CAAO,EACxD,GAAwB,iBAAbC,SAAuB,CAEjC,IAAIC,EAAMD,SAASC,IACfvK,EAAM9C,KAAKqN,KAASvK,EAAM9C,KAAKoN,SAASC,OAC3CF,EAAQ,SAA0BzV,GAGjC,IAAKwV,IAAWxV,UAA4B,IAAVA,GAA0C,iBAAVA,GACjE,IACC,IAAI+B,EAAMqJ,EAAM9C,KAAKtI,GACrB,OAlBU,+BAmBT+B,GAlBU,qCAmBPA,GAlBO,4BAmBPA,GAxBS,oBAyBTA,IACc,MAAb/B,EAAM,GACZ,CAAE,MAAOyK,GAAU,CAEpB,OAAO,CACR,EAEF,CAEAjH,EAAOC,QAAU0R,EACd,SAAoBnV,GACrB,GAAIyV,EAAMzV,GAAU,OAAO,EAC3B,IAAKA,EAAS,OAAO,EACrB,GAAqB,mBAAVA,GAAyC,iBAAVA,EAAsB,OAAO,EACvE,IACCmV,EAAanV,EAAO,KAAMgV,EAC3B,CAAE,MAAOvK,GACR,GAAIA,IAAMwK,EAAoB,OAAO,CACtC,CACA,OAAQI,EAAarV,IAAUuV,EAAkBvV,EAClD,EACE,SAAoBA,GACrB,GAAIyV,EAAMzV,GAAU,OAAO,EAC3B,IAAKA,EAAS,OAAO,EACrB,GAAqB,mBAAVA,GAAyC,iBAAVA,EAAsB,OAAO,EACvE,GAAIyU,EAAkB,OAAOc,EAAkBvV,GAC/C,GAAIqV,EAAarV,GAAU,OAAO,EAClC,IAAI4V,EAAWxK,EAAM9C,KAAKtI,GAC1B,QApDY,sBAoDR4V,GAnDS,+BAmDeA,IAA0B,iBAAmBtR,KAAKsR,KACvEL,EAAkBvV,EAC1B,C,4BClGD,IAAI2U,EAAY,EAAQ,OAEpBkB,EADgB,EAAQ,MACZC,CAAc,uBAC1BrB,EAAiB,EAAQ,MAAR,GACjBzG,EAAW,EAAQ,OAEnB5C,EAAQuJ,EAAU,6BAClBO,EAAUP,EAAU,+BAEpBoB,EAAuB,EAAQ,MAGnCvS,EAAOC,QAAU,SAA6BsN,GAC7C,GAAkB,mBAAPA,EACV,OAAO,EAER,GAAI8E,EAAUX,EAAQnE,IACrB,OAAO,EAER,IAAK0D,EAEJ,MAAe,+BADLrJ,EAAM2F,GAGjB,IAAK/C,EACJ,OAAO,EAER,IAAIgI,EAAoBD,IACxB,OAAOC,GAAqBhI,EAAS+C,KAAQiF,EAAkBjW,SAChE,C,4BC5BA,IAMIgR,EANA4D,EAAY,EAAQ,OACpBF,EAAiB,EAAQ,MAAR,GACjBvD,EAAS,EAAQ,MACjB3G,EAAO,EAAQ,OAKnB,GAAIkK,EAAgB,CAEnB,IAAIhD,EAAQkD,EAAU,yBAElBsB,EAAgB,CAAC,EAEjBC,EAAmB,WACtB,MAAMD,CACP,EAEIE,EAAiB,CACpB3U,SAAU0U,EACVE,QAASF,GAGwB,iBAAvBzH,OAAO4H,cACjBF,EAAe1H,OAAO4H,aAAeH,GAMtCnF,EAAK,SAAiB/Q,GACrB,IAAKA,GAA0B,iBAAVA,EACpB,OAAO,EAIR,IAAI4T,EAAqD,EAA8C,EAAS,aAEhH,IAD+BA,IAAc1C,EAAO0C,EAAY,SAE/D,OAAO,EAGR,IAECnC,EAAMzR,EAA6B,EACpC,CAAE,MAAOyK,GACR,OAAOA,IAAMwL,CACd,CACD,CACD,KAAO,CAEN,IAAIvB,EAAYC,EAAU,6BAK1B5D,EAAK,SAAiB/Q,GAErB,SAAKA,GAA2B,iBAAVA,GAAuC,mBAAVA,IALnC,oBAST0U,EAAU1U,EAClB,CACD,CAEAwD,EAAOC,QAAUsN,C,4BClEjB,IAAIuF,EAAkB,EAAQ,OAG9B9S,EAAOC,QAAU,SAAsBzD,GACtC,QAASsW,EAAgBtW,EAC1B,C,wBCJAwD,EAAOC,QAAUmC,KAAK6B,G,wBCAtBjE,EAAOC,QAAUmC,KAAKsH,K,wBCAtB1J,EAAOC,QAAUwM,OAAOH,OAAS,SAAejO,GAC/C,OAAOA,GAAMA,CACd,C,uBCFA2B,EAAOC,QAAUmC,KAAK2B,G,wBCAtB/D,EAAOC,QAAUmC,KAAKuH,G,wBCAtB3J,EAAOC,QAAUmC,KAAKwH,G,wBCAtB5J,EAAOC,QAAUmC,KAAKyH,K,4BCDtB,IAAIkJ,EAAS,EAAQ,OAGrB/S,EAAOC,QAAU,SAAcyO,GAC9B,OAAIqE,EAAOrE,IAAsB,IAAXA,EACdA,EAEDA,EAAS,GAAK,EAAI,CAC1B,C,wBCDA,SAASsE,EAAQ7M,GAAmV,OAAtO6M,EAArD,mBAAX/H,QAAoD,iBAApBA,OAAOlD,SAAmC,SAAiB5B,GAAO,cAAcA,CAAK,EAAsB,SAAiBA,GAAO,OAAOA,GAAyB,mBAAX8E,QAAyB9E,EAAI8M,cAAgBhI,QAAU9E,IAAQ8E,OAAO1O,UAAY,gBAAkB4J,CAAK,EAAY6M,EAAQ7M,EAAM,CAUzX,SAAS+M,EAAiBC,GAAS,IAAIC,EAAwB,mBAAR5G,IAAqB,IAAIA,SAAQ9T,EAA8nB,OAAnnBwa,EAAmB,SAA0BC,GAAS,GAAc,OAAVA,IAMlI5F,EANuK4F,GAMjG,IAAzDlO,SAASjH,SAAS8G,KAAKyI,GAAI5N,QAAQ,kBAN+H,OAAOwT,EAMjN,IAA2B5F,EAN6L,GAAqB,mBAAV4F,EAAwB,MAAM,IAAI1L,UAAU,sDAAyD,QAAsB,IAAX2L,EAAwB,CAAE,GAAIA,EAAOC,IAAIF,GAAQ,OAAOC,EAAO3W,IAAI0W,GAAQC,EAAOE,IAAIH,EAAOI,EAAU,CAAE,SAASA,IAAY,OAAOC,EAAWL,EAAOnO,UAAWyO,EAAgBnY,MAAM2X,YAAc,CAAkJ,OAAhJM,EAAQhX,UAAYF,OAAOqX,OAAOP,EAAM5W,UAAW,CAAE0W,YAAa,CAAEzW,MAAO+W,EAAS5M,YAAY,EAAOC,UAAU,EAAMF,cAAc,KAAkBiN,EAAgBJ,EAASJ,EAAQ,EAAUD,EAAiBC,EAAQ,CAEtvB,SAASK,EAAWI,EAAQxO,EAAM+N,GAAqV,OAAhQK,EAEvH,WAAuC,GAAuB,oBAAZnO,UAA4BA,QAAQwO,UAAW,OAAO,EAAO,GAAIxO,QAAQwO,UAAUC,KAAM,OAAO,EAAO,GAAqB,mBAAVlH,MAAsB,OAAO,EAAM,IAAiF,OAA3EpB,KAAKjP,UAAUyB,SAAS8G,KAAKO,QAAQwO,UAAUrI,KAAM,GAAI,WAAa,KAAY,CAAM,CAAE,MAAOvE,GAAK,OAAO,CAAO,CAAE,CAFpR8M,GAA4C1O,QAAQwO,UAAiC,SAAoBD,EAAQxO,EAAM+N,GAAS,IAAI9U,EAAI,CAAC,MAAOA,EAAEyB,KAAK+C,MAAMxE,EAAG+G,GAAO,IAAsD4O,EAAW,IAA/C/O,SAASP,KAAK7B,MAAM+Q,EAAQvV,IAA6F,OAAnD8U,GAAOQ,EAAgBK,EAAUb,EAAM5W,WAAmByX,CAAU,EAAYR,EAAW3Q,MAAM,KAAMmC,UAAY,CAMja,SAAS2O,EAAgBM,EAAGvR,GAA+G,OAA1GiR,EAAkBtX,OAAO6X,gBAAkB,SAAyBD,EAAGvR,GAAsB,OAAjBuR,EAAEjN,UAAYtE,EAAUuR,CAAG,EAAUN,EAAgBM,EAAGvR,EAAI,CAEzK,SAAS+Q,EAAgBQ,GAAwJ,OAAnJR,EAAkBpX,OAAO6X,eAAiB7X,OAAO+K,eAAiB,SAAyB6M,GAAK,OAAOA,EAAEjN,WAAa3K,OAAO+K,eAAe6M,EAAI,EAAUR,EAAgBQ,EAAI,CAE5M,IAGIE,EAA4C,SAAUC,GAGxD,SAASD,EAA6BvD,GACpC,IAAIyD,EAMJ,OAjCJ,SAAyBL,EAAUM,GAAe,KAAMN,aAAoBM,GAAgB,MAAM,IAAI7M,UAAU,oCAAwC,CA6BpJ8M,CAAgBjZ,KAAM6Y,IAEtBE,EA7BJ,SAAoCG,EAAM1P,GAAQ,OAAIA,GAA2B,WAAlBkO,EAAQlO,IAAsC,mBAATA,EAEpG,SAAgC0P,GAAQ,QAAa,IAATA,EAAmB,MAAM,IAAIjN,eAAe,6DAAgE,OAAOiN,CAAM,CAFnBC,CAAuBD,GAAtC1P,CAA6C,CA6BpK4P,CAA2BpZ,KAAMmY,EAAgBU,GAA8BrP,KAAKxJ,KAAMsV,KAC5FrQ,KAAO,+BACN8T,CACT,CAEA,OA9BF,SAAmBM,EAAUC,GAAc,GAA0B,mBAAfA,GAA4C,OAAfA,EAAuB,MAAM,IAAInN,UAAU,sDAAyDkN,EAASpY,UAAYF,OAAOqX,OAAOkB,GAAcA,EAAWrY,UAAW,CAAE0W,YAAa,CAAEzW,MAAOmY,EAAU/N,UAAU,EAAMF,cAAc,KAAekO,GAAYjB,EAAgBgB,EAAUC,EAAa,CAkB9XC,CAAUV,EAA8BC,GAYjCD,CACT,CAdgD,CAc9CjB,EAAiB5S,QA6LnB,SAASwU,EAASxM,EAAQyM,GAoCxB,IAnCA,IAAIC,EAAWhQ,UAAU/F,OAAS,QAAsBvG,IAAjBsM,UAAU,GAAmBA,UAAU,GAAK,WAAa,EAC5FiQ,EAAWF,EAAKnT,MA/MD,KAgNf3C,EAASgW,EAAShW,OAElBiW,EAAQ,SAAeC,GACzB,IAAIC,EAAiBH,EAASE,GAE9B,IAAK7M,EACH,MAAO,CACL+M,OAAG,GAIP,GA5NiB,MA4NbD,EAAmC,CACrC,GAAI9Q,MAAMgR,QAAQhN,GAChB,MAAO,CACL+M,EAAG/M,EAAO1N,IAAI,SAAU4B,EAAO+Y,GAC7B,IAAIC,EAAoBP,EAASlW,MAAMoW,EAAM,GAE7C,OAAIK,EAAkBvW,OAAS,EACtB6V,EAAStY,EAAOgZ,EAAkBzY,KAlOlC,KAkOwDiY,GAExDA,EAAS1M,EAAQiN,EAAON,EAAUE,EAE7C,IAGF,IAAIM,EAAaR,EAASlW,MAAM,EAAGoW,GAAKpY,KAzO3B,KA0Ob,MAAM,IAAIuD,MAAM,uBAAuBsN,OAAO6H,EAAY,qBAE9D,CACEnN,EAAS0M,EAAS1M,EAAQ8M,EAAgBH,EAAUE,EAExD,EAESA,EAAM,EAAGA,EAAMlW,EAAQkW,IAAO,CACrC,IAAIO,EAAOR,EAAMC,GAEjB,GAAsB,WAAlBnC,EAAQ0C,GAAoB,OAAOA,EAAKL,CAC9C,CAEA,OAAO/M,CACT,CAEA,SAASqN,EAAcV,EAAUM,GAC/B,OAAON,EAAShW,SAAWsW,EAAQ,CACrC,CA1OAvV,EAAOC,QAAU,CACfqT,IAkGF,SAA2BhL,EAAQlC,EAAU5J,GAC3C,GAAuB,UAAnBwW,EAAQ1K,IAAkC,OAAXA,EACjC,OAAOA,EAGT,QAAuB,IAAZlC,EACT,OAAOkC,EAGT,GAAuB,iBAAZlC,EAET,OADAkC,EAAOlC,GAAY5J,EACZ8L,EAAOlC,GAGhB,IACE,OAAO0O,EAASxM,EAAQlC,EAAU,SAA4BwP,EAAeC,EAAiBZ,EAAUM,GACtG,GAAIK,IAAkBvQ,QAAQ+B,eAAe,CAAC,GAC5C,MAAM,IAAI+M,EAA6B,yCAGzC,IAAKyB,EAAcC,GAAkB,CACnC,IAAIC,EAAmBrJ,OAAOsJ,UAAUtJ,OAAOwI,EAASM,EAAQ,KAC5DS,EA5IS,MA4IiBf,EAASM,EAAQ,GAG7CK,EAAcC,GADZC,GAAoBE,EACW,GAEA,CAAC,CAEtC,CAMA,OAJIL,EAAcV,EAAUM,KAC1BK,EAAcC,GAAmBrZ,GAG5BoZ,EAAcC,EACvB,EACF,CAAE,MAAOI,GACP,GAAIA,aAAe9B,EAEjB,MAAM8B,EAEN,OAAO3N,CAEX,CACF,EA9IE7L,IAqBF,SAA2B6L,EAAQlC,GACjC,GAAuB,UAAnB4M,EAAQ1K,IAAkC,OAAXA,EACjC,OAAOA,EAGT,QAAuB,IAAZlC,EACT,OAAOkC,EAGT,GAAuB,iBAAZlC,EACT,OAAOkC,EAAOlC,GAGhB,IACE,OAAO0O,EAASxM,EAAQlC,EAAU,SAA4BwP,EAAeC,GAC3E,OAAOD,EAAcC,EACvB,EACF,CAAE,MAAOI,GACP,OAAO3N,CACT,CACF,EAxCE+K,IAqDF,SAA2B/K,EAAQlC,GACjC,IAAIvJ,EAAUmI,UAAU/F,OAAS,QAAsBvG,IAAjBsM,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEnF,GAAuB,UAAnBgO,EAAQ1K,IAAkC,OAAXA,EACjC,OAAO,EAGT,QAAuB,IAAZlC,EACT,OAAO,EAGT,GAAuB,iBAAZA,EACT,OAAOA,KAAYkC,EAGrB,IACE,IAAI+K,GAAM,EAYV,OAXAyB,EAASxM,EAAQlC,EAAU,SAA4BwP,EAAeC,EAAiBZ,EAAUM,GAC/F,IAAII,EAAcV,EAAUM,GAO1B,OAAOK,GAAiBA,EAAcC,GALpCxC,EADExW,EAAQqZ,IACJN,EAAc/N,eAAegO,GAE7BA,KAAmBD,CAK/B,GACOvC,CACT,CAAE,MAAO4C,GACP,OAAO,CACT,CACF,EApFEvI,OAAQ,SAAgBpF,EAAQlC,EAAUvJ,GACxC,OAAOvB,KAAK+X,IAAI/K,EAAQlC,EAAUvJ,GAAW,CAC3CqZ,KAAK,GAET,EACAC,KAoJF,SAA4B7N,EAAQlC,EAAUgQ,GAC5C,IAAIvZ,EAAUmI,UAAU/F,OAAS,QAAsBvG,IAAjBsM,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAEnF,GAAuB,UAAnBgO,EAAQ1K,IAAkC,OAAXA,EACjC,OAAO,EAGT,QAAuB,IAAZlC,EACT,OAAO,EAGT,IACE,IAAI+P,GAAO,EACPE,GAAa,EAOjB,OANAvB,EAASxM,EAAQlC,EAAU,SAA6BwP,EAAeC,EAAiBZ,EAAUM,GAGhG,OAFAY,EAAOA,GAAQP,IAAkBQ,KAAkBR,GAAiBA,EAAcC,KAAqBO,EACvGC,EAAaV,EAAcV,EAAUM,IAAqC,WAA3BvC,EAAQ4C,IAA+BC,KAAmBD,EAClGA,GAAiBA,EAAcC,EACxC,GAEIhZ,EAAQyZ,UACHH,GAAQE,EAERF,CAEX,CAAE,MAAOF,GACP,OAAO,CACT,CACF,EA/KE9B,6BAA8BA,E,eC5DhC,IAAIoC,EAAwB,mBAAR/J,KAAsBA,IAAIjQ,UAC1Cia,EAAoBna,OAAOkT,0BAA4BgH,EAASla,OAAOkT,yBAAyB/C,IAAIjQ,UAAW,QAAU,KACzHka,EAAUF,GAAUC,GAAsD,mBAA1BA,EAAkB/Z,IAAqB+Z,EAAkB/Z,IAAM,KAC/Gia,EAAaH,GAAU/J,IAAIjQ,UAAUoa,QACrCC,EAAwB,mBAAR/J,KAAsBA,IAAItQ,UAC1Csa,EAAoBxa,OAAOkT,0BAA4BqH,EAASva,OAAOkT,yBAAyB1C,IAAItQ,UAAW,QAAU,KACzHua,EAAUF,GAAUC,GAAsD,mBAA1BA,EAAkBpa,IAAqBoa,EAAkBpa,IAAM,KAC/Gsa,EAAaH,GAAU/J,IAAItQ,UAAUoa,QAErCK,EADgC,mBAAZ9J,SAA0BA,QAAQ3Q,UAC5B2Q,QAAQ3Q,UAAU8W,IAAM,KAElD4D,EADgC,mBAAZ7J,SAA0BA,QAAQ7Q,UAC5B6Q,QAAQ7Q,UAAU8W,IAAM,KAElD6D,EADgC,mBAAZ/J,SAA0BA,QAAQ5Q,UAC1B4Q,QAAQ5Q,UAAU4a,MAAQ,KACtDC,EAAiB9L,QAAQ/O,UAAUqW,QACnCyE,EAAiBhb,OAAOE,UAAUyB,SAClCsZ,EAAmBrS,SAAS1I,UAAUyB,SACtCuZ,EAAS1W,OAAOtE,UAAU8C,MAC1BmY,EAAS3W,OAAOtE,UAAUwC,MAC1BgP,EAAWlN,OAAOtE,UAAU+E,QAC5BmW,EAAe5W,OAAOtE,UAAUmb,YAChCC,EAAe9W,OAAOtE,UAAUqb,YAChCC,EAAQrZ,OAAOjC,UAAUuE,KACzB6M,EAAUrJ,MAAM/H,UAAUqR,OAC1BkK,EAAQxT,MAAM/H,UAAUQ,KACxBgb,EAAYzT,MAAM/H,UAAUwC,MAC5BiZ,EAAS5V,KAAKsH,MACduO,EAAkC,mBAAX9M,OAAwBA,OAAO5O,UAAUqW,QAAU,KAC1EsF,EAAO7b,OAAOuT,sBACduI,EAAgC,mBAAXlN,QAAoD,iBAApBA,OAAOlD,SAAwBkD,OAAO1O,UAAUyB,SAAW,KAChHoa,EAAsC,mBAAXnN,QAAoD,iBAApBA,OAAOlD,SAElEsI,EAAgC,mBAAXpF,QAAyBA,OAAOoF,cAAuBpF,OAAOoF,YAAf,GAClEpF,OAAOoF,YACP,KACFgI,EAAehc,OAAOE,UAAU4T,qBAEhCmI,GAA0B,mBAAZjT,QAAyBA,QAAQ+B,eAAiB/K,OAAO+K,kBACvE,GAAGJ,YAAc1C,MAAM/H,UACjB,SAAU+S,GACR,OAAOA,EAAEtI,SACb,EACE,MAGV,SAASuR,EAAoBC,EAAKja,GAC9B,GACIia,IAAQC,KACLD,KAAQ,KACRA,GAAQA,GACPA,GAAOA,GAAO,KAAQA,EAAM,KAC7BX,EAAM/S,KAAK,IAAKvG,GAEnB,OAAOA,EAEX,IAAIma,EAAW,mCACf,GAAmB,iBAARF,EAAkB,CACzB,IAAIG,EAAMH,EAAM,GAAKR,GAAQQ,GAAOR,EAAOQ,GAC3C,GAAIG,IAAQH,EAAK,CACb,IAAII,EAAS/X,OAAO8X,GAChBE,EAAMrB,EAAO1S,KAAKvG,EAAKqa,EAAO3Z,OAAS,GAC3C,OAAO8O,EAASjJ,KAAK8T,EAAQF,EAAU,OAAS,IAAM3K,EAASjJ,KAAKiJ,EAASjJ,KAAK+T,EAAK,cAAe,OAAQ,KAAM,GACxH,CACJ,CACA,OAAO9K,EAASjJ,KAAKvG,EAAKma,EAAU,MACxC,CAEA,IAAII,EAAc,EAAQ,OACtBC,EAAgBD,EAAYE,OAC5BC,EAAgBC,EAASH,GAAiBA,EAAgB,KAE1DI,EAAS,CACTnS,UAAW,KACX,OAAU,IACVoS,OAAQ,KAERC,EAAW,CACXrS,UAAW,KACX,OAAU,WACVoS,OAAQ,YAwMZ,SAASE,EAAWC,EAAGC,EAAcC,GACjC,IAAIC,EAAQD,EAAKE,YAAcH,EAC3BI,EAAYT,EAAOO,GACvB,OAAOE,EAAYL,EAAIK,CAC3B,CAEA,SAASjL,EAAM4K,GACX,OAAOxL,EAASjJ,KAAKjE,OAAO0Y,GAAI,KAAM,SAC1C,CAEA,SAASM,EAAiB1T,GACtB,OAAQkK,KAAgC,iBAARlK,IAAqBkK,KAAelK,QAAmC,IAArBA,EAAIkK,IAC1F,CACA,SAASiF,EAAQnP,GAAO,MAAsB,mBAAfyB,EAAMzB,IAA6B0T,EAAiB1T,EAAM,CAEzF,SAAS2T,EAAS3T,GAAO,MAAsB,oBAAfyB,EAAMzB,IAA8B0T,EAAiB1T,EAAM,CAO3F,SAAS+S,EAAS/S,GACd,GAAIiS,EACA,OAAOjS,GAAsB,iBAARA,GAAoBA,aAAe8E,OAE5D,GAAmB,iBAAR9E,EACP,OAAO,EAEX,IAAKA,GAAsB,iBAARA,IAAqBgS,EACpC,OAAO,EAEX,IAEI,OADAA,EAAYrT,KAAKqB,IACV,CACX,CAAE,MAAOc,GAAI,CACb,OAAO,CACX,CA1OAjH,EAAOC,QAAU,SAAS8Z,EAAS5T,EAAKtJ,EAASmd,EAAOC,GACpD,IAAIR,EAAO5c,GAAW,CAAC,EAEvB,GAAIwW,EAAIoG,EAAM,gBAAkBpG,EAAI8F,EAAQM,EAAKE,YAC7C,MAAM,IAAIlS,UAAU,oDAExB,GACI4L,EAAIoG,EAAM,qBAAuD,iBAAzBA,EAAKS,gBACvCT,EAAKS,gBAAkB,GAAKT,EAAKS,kBAAoBzB,IAC5B,OAAzBgB,EAAKS,iBAGX,MAAM,IAAIzS,UAAU,0FAExB,IAAI0S,GAAgB9G,EAAIoG,EAAM,kBAAmBA,EAAKU,cACtD,GAA6B,kBAAlBA,GAAiD,WAAlBA,EACtC,MAAM,IAAI1S,UAAU,iFAGxB,GACI4L,EAAIoG,EAAM,WACS,OAAhBA,EAAKW,QACW,OAAhBX,EAAKW,UACH7X,SAASkX,EAAKW,OAAQ,MAAQX,EAAKW,QAAUX,EAAKW,OAAS,GAEhE,MAAM,IAAI3S,UAAU,4DAExB,GAAI4L,EAAIoG,EAAM,qBAAwD,kBAA1BA,EAAKY,iBAC7C,MAAM,IAAI5S,UAAU,qEAExB,IAAI4S,EAAmBZ,EAAKY,iBAE5B,QAAmB,IAARlU,EACP,MAAO,YAEX,GAAY,OAARA,EACA,MAAO,OAEX,GAAmB,kBAARA,EACP,OAAOA,EAAM,OAAS,QAG1B,GAAmB,iBAARA,EACP,OAAOmU,EAAcnU,EAAKsT,GAE9B,GAAmB,iBAARtT,EAAkB,CACzB,GAAY,IAARA,EACA,OAAOsS,IAAWtS,EAAM,EAAI,IAAM,KAEtC,IAAI5H,EAAMsC,OAAOsF,GACjB,OAAOkU,EAAmB9B,EAAoBpS,EAAK5H,GAAOA,CAC9D,CACA,GAAmB,iBAAR4H,EAAkB,CACzB,IAAIoU,EAAY1Z,OAAOsF,GAAO,IAC9B,OAAOkU,EAAmB9B,EAAoBpS,EAAKoU,GAAaA,CACpE,CAEA,IAAIC,OAAiC,IAAff,EAAKO,MAAwB,EAAIP,EAAKO,MAE5D,QADqB,IAAVA,IAAyBA,EAAQ,GACxCA,GAASQ,GAAYA,EAAW,GAAoB,iBAARrU,EAC5C,OAAOmP,EAAQnP,GAAO,UAAY,WAGtC,IA2RetC,EA3RXuW,EAmVR,SAAmBX,EAAMO,GACrB,IAAIS,EACJ,GAAoB,OAAhBhB,EAAKW,OACLK,EAAa,SACV,MAA2B,iBAAhBhB,EAAKW,QAAuBX,EAAKW,OAAS,GAGxD,OAAO,KAFPK,EAAa3C,EAAMhT,KAAKR,MAAMmV,EAAKW,OAAS,GAAI,IAGpD,CACA,MAAO,CACHM,KAAMD,EACNE,KAAM7C,EAAMhT,KAAKR,MAAM0V,EAAQ,GAAIS,GAE3C,CAhWiBG,CAAUnB,EAAMO,GAE7B,QAAoB,IAATC,EACPA,EAAO,QACJ,GAAIta,EAAQsa,EAAM9T,IAAQ,EAC7B,MAAO,aAGX,SAAS0U,EAAQre,EAAOse,EAAMC,GAK1B,GAJID,IACAb,EAAOlC,EAAUjT,KAAKmV,IACjBna,KAAKgb,GAEVC,EAAU,CACV,IAAIC,EAAU,CACVhB,MAAOP,EAAKO,OAKhB,OAHI3G,EAAIoG,EAAM,gBACVuB,EAAQrB,WAAaF,EAAKE,YAEvBI,EAASvd,EAAOwe,EAAShB,EAAQ,EAAGC,EAC/C,CACA,OAAOF,EAASvd,EAAOid,EAAMO,EAAQ,EAAGC,EAC5C,CAEA,GAAmB,mBAAR9T,IAAuB2T,EAAS3T,GAAM,CAC7C,IAAI5F,EAuKZ,SAAgB0a,GACZ,GAAIA,EAAE1a,KAAQ,OAAO0a,EAAE1a,KACvB,IAAInB,EAAImY,EAAOzS,KAAKwS,EAAiBxS,KAAKmW,GAAI,wBAC9C,OAAI7b,EAAYA,EAAE,GACX,IACX,CA5KmB8b,CAAO/U,GACd6J,EAAOmL,GAAWhV,EAAK0U,GAC3B,MAAO,aAAeta,EAAO,KAAOA,EAAO,gBAAkB,KAAOyP,EAAK/Q,OAAS,EAAI,MAAQ6Y,EAAMhT,KAAKkL,EAAM,MAAQ,KAAO,GAClI,CACA,GAAIkJ,EAAS/S,GAAM,CACf,IAAIiV,GAAYhD,EAAoBrK,EAASjJ,KAAKjE,OAAOsF,GAAM,yBAA0B,MAAQgS,EAAYrT,KAAKqB,GAClH,MAAsB,iBAARA,GAAqBiS,EAA2CgD,GAAvBC,EAAUD,GACrE,CACA,IAyPevX,EAzPDsC,IA0PS,iBAANtC,IACU,oBAAhByX,aAA+BzX,aAAayX,aAG1B,iBAAfzX,EAAE0X,UAAmD,mBAAnB1X,EAAE2X,cA9P9B,CAGhB,IAFA,IAAIjC,GAAI,IAAM5B,EAAa7S,KAAKjE,OAAOsF,EAAIoV,WACvCE,GAAQtV,EAAIuV,YAAc,GACrB7b,GAAI,EAAGA,GAAI4b,GAAMxc,OAAQY,KAC9B0Z,IAAK,IAAMkC,GAAM5b,IAAGU,KAAO,IAAM+Y,EAAW3K,EAAM8M,GAAM5b,IAAGrD,OAAQ,SAAUid,GAKjF,OAHAF,IAAK,IACDpT,EAAIwV,YAAcxV,EAAIwV,WAAW1c,SAAUsa,IAAK,OACpDA,GAAK,KAAO5B,EAAa7S,KAAKjE,OAAOsF,EAAIoV,WAAa,GAE1D,CACA,GAAIjG,EAAQnP,GAAM,CACd,GAAmB,IAAfA,EAAIlH,OAAgB,MAAO,KAC/B,IAAI2c,GAAKT,GAAWhV,EAAK0U,GACzB,OAAIT,IA0RZ,SAA0BwB,GACtB,IAAK,IAAI/b,EAAI,EAAGA,EAAI+b,EAAG3c,OAAQY,IAC3B,GAAIF,EAAQic,EAAG/b,GAAI,OAAS,EACxB,OAAO,EAGf,OAAO,CACX,CAjSuBgc,CAAiBD,IACrB,IAAME,GAAaF,GAAIxB,GAAU,IAErC,KAAOtC,EAAMhT,KAAK8W,GAAI,MAAQ,IACzC,CACA,GAiGJ,SAAiBzV,GAAO,MAAsB,mBAAfyB,EAAMzB,IAA6B0T,EAAiB1T,EAAM,CAjGjF4V,CAAQ5V,GAAM,CACd,IAAI1D,GAAQ0Y,GAAWhV,EAAK0U,GAC5B,MAAM,UAAWva,MAAM/D,aAAc,UAAW4J,IAAQkS,EAAavT,KAAKqB,EAAK,SAG1D,IAAjB1D,GAAMxD,OAAuB,IAAM4B,OAAOsF,GAAO,IAC9C,MAAQtF,OAAOsF,GAAO,KAAO2R,EAAMhT,KAAKrC,GAAO,MAAQ,KAHnD,MAAQ5B,OAAOsF,GAAO,KAAO2R,EAAMhT,KAAK6I,EAAQ7I,KAAK,YAAc+V,EAAQ1U,EAAI6V,OAAQvZ,IAAQ,MAAQ,IAItH,CACA,GAAmB,iBAAR0D,GAAoBgU,EAAe,CAC1C,GAAIlB,GAA+C,mBAAvB9S,EAAI8S,IAAiCH,EAC7D,OAAOA,EAAY3S,EAAK,CAAE6T,MAAOQ,EAAWR,IACzC,GAAsB,WAAlBG,GAAqD,mBAAhBhU,EAAI0U,QAChD,OAAO1U,EAAI0U,SAEnB,CACA,GA4IJ,SAAehX,GACX,IAAK4S,IAAY5S,GAAkB,iBAANA,EACzB,OAAO,EAEX,IACI4S,EAAQ3R,KAAKjB,GACb,IACIiT,EAAQhS,KAAKjB,EACjB,CAAE,MAAO0V,GACL,OAAO,CACX,CACA,OAAO1V,aAAa2I,GACxB,CAAE,MAAOvF,GAAI,CACb,OAAO,CACX,CA1JQgV,CAAM9V,GAAM,CACZ,IAAI+V,GAAW,GAMf,OALIxF,GACAA,EAAW5R,KAAKqB,EAAK,SAAU3J,EAAOkU,GAClCwL,GAASpc,KAAK+a,EAAQnK,EAAKvK,GAAK,GAAQ,OAAS0U,EAAQre,EAAO2J,GACpE,GAEGgW,GAAa,MAAO1F,EAAQ3R,KAAKqB,GAAM+V,GAAU9B,EAC5D,CACA,GA8KJ,SAAevW,GACX,IAAKiT,IAAYjT,GAAkB,iBAANA,EACzB,OAAO,EAEX,IACIiT,EAAQhS,KAAKjB,GACb,IACI4S,EAAQ3R,KAAKjB,EACjB,CAAE,MAAOzE,GACL,OAAO,CACX,CACA,OAAOyE,aAAagJ,GACxB,CAAE,MAAO5F,GAAI,CACb,OAAO,CACX,CA5LQmV,CAAMjW,GAAM,CACZ,IAAIkW,GAAW,GAMf,OALItF,GACAA,EAAWjS,KAAKqB,EAAK,SAAU3J,GAC3B6f,GAASvc,KAAK+a,EAAQre,EAAO2J,GACjC,GAEGgW,GAAa,MAAOrF,EAAQhS,KAAKqB,GAAMkW,GAAUjC,EAC5D,CACA,GA0IJ,SAAmBvW,GACf,IAAKmT,IAAenT,GAAkB,iBAANA,EAC5B,OAAO,EAEX,IACImT,EAAWlS,KAAKjB,EAAGmT,GACnB,IACIC,EAAWnS,KAAKjB,EAAGoT,EACvB,CAAE,MAAOsC,GACL,OAAO,CACX,CACA,OAAO1V,aAAaqJ,OACxB,CAAE,MAAOjG,GAAI,CACb,OAAO,CACX,CAxJQqV,CAAUnW,GACV,OAAOoW,EAAiB,WAE5B,GAkLJ,SAAmB1Y,GACf,IAAKoT,IAAepT,GAAkB,iBAANA,EAC5B,OAAO,EAEX,IACIoT,EAAWnS,KAAKjB,EAAGoT,GACnB,IACID,EAAWlS,KAAKjB,EAAGmT,EACvB,CAAE,MAAOuC,GACL,OAAO,CACX,CACA,OAAO1V,aAAauJ,OACxB,CAAE,MAAOnG,GAAI,CACb,OAAO,CACX,CAhMQuV,CAAUrW,GACV,OAAOoW,EAAiB,WAE5B,GAoJJ,SAAmB1Y,GACf,IAAKqT,IAAiBrT,GAAkB,iBAANA,EAC9B,OAAO,EAEX,IAEI,OADAqT,EAAapS,KAAKjB,IACX,CACX,CAAE,MAAOoD,GAAI,CACb,OAAO,CACX,CA7JQwV,CAAUtW,GACV,OAAOoW,EAAiB,WAE5B,GAyDJ,SAAkBpW,GAAO,MAAsB,oBAAfyB,EAAMzB,IAA8B0T,EAAiB1T,EAAM,CAzDnFuW,CAASvW,GACT,OAAOkV,EAAUR,EAAQpO,OAAOtG,KAEpC,GA2EJ,SAAkBA,GACd,IAAKA,GAAsB,iBAARA,IAAqB8R,EACpC,OAAO,EAEX,IAEI,OADAA,EAAcnT,KAAKqB,IACZ,CACX,CAAE,MAAOc,GAAI,CACb,OAAO,CACX,CApFQ0V,CAASxW,GACT,OAAOkV,EAAUR,EAAQ5C,EAAcnT,KAAKqB,KAEhD,GAoDJ,SAAmBA,GAAO,MAAsB,qBAAfyB,EAAMzB,IAA+B0T,EAAiB1T,EAAM,CApDrFyW,CAAUzW,GACV,OAAOkV,EAAUjE,EAAetS,KAAKqB,IAEzC,GA+CJ,SAAkBA,GAAO,MAAsB,oBAAfyB,EAAMzB,IAA8B0T,EAAiB1T,EAAM,CA/CnF0W,CAAS1W,GACT,OAAOkV,EAAUR,EAAQha,OAAOsF,KAIpC,GAAsB,oBAAXxN,QAA0BwN,IAAQxN,OACzC,MAAO,sBAEX,GAC2B,oBAAfmkB,YAA8B3W,IAAQ2W,YACxB,oBAAX,YAA0B3W,IAAQ,WAE7C,MAAO,0BAEX,IA8BJ,SAAgBA,GAAO,MAAsB,kBAAfyB,EAAMzB,IAA4B0T,EAAiB1T,EAAM,CA9B9E4W,CAAO5W,KAAS2T,EAAS3T,GAAM,CAChC,IAAI6W,GAAK7B,GAAWhV,EAAK0U,GACrBoC,GAAgB3E,EAAMA,EAAInS,KAAS9J,OAAOE,UAAY4J,aAAe9J,QAAU8J,EAAI8M,cAAgB5W,OACnG6gB,GAAW/W,aAAe9J,OAAS,GAAK,iBACxC8gB,IAAaF,IAAiB5M,GAAehU,OAAO8J,KAASA,GAAOkK,KAAelK,EAAMqR,EAAO1S,KAAK8C,EAAMzB,GAAM,GAAI,GAAK+W,GAAW,SAAW,GAEhJE,IADiBH,IAA4C,mBAApB9W,EAAI8M,YAA6B,GAAK9M,EAAI8M,YAAY1S,KAAO4F,EAAI8M,YAAY1S,KAAO,IAAM,KAC3G4c,IAAaD,GAAW,IAAMpF,EAAMhT,KAAK6I,EAAQ7I,KAAK,GAAIqY,IAAa,GAAID,IAAY,IAAK,MAAQ,KAAO,IACvI,OAAkB,IAAdF,GAAG/d,OAAuBme,GAAM,KAChChD,EACOgD,GAAM,IAAMtB,GAAakB,GAAI5C,GAAU,IAE3CgD,GAAM,KAAOtF,EAAMhT,KAAKkY,GAAI,MAAQ,IAC/C,CACA,OAAOnc,OAAOsF,EAClB,EAoDA,IAAIuH,EAASrR,OAAOE,UAAUsL,gBAAkB,SAAU6I,GAAO,OAAOA,KAAOpV,IAAM,EACrF,SAAS+X,EAAIlN,EAAKuK,GACd,OAAOhD,EAAO5I,KAAKqB,EAAKuK,EAC5B,CAEA,SAAS9I,EAAMzB,GACX,OAAOkR,EAAevS,KAAKqB,EAC/B,CASA,SAASxG,EAAQic,EAAI/X,GACjB,GAAI+X,EAAGjc,QAAW,OAAOic,EAAGjc,QAAQkE,GACpC,IAAK,IAAIhE,EAAI,EAAGwd,EAAIzB,EAAG3c,OAAQY,EAAIwd,EAAGxd,IAClC,GAAI+b,EAAG/b,KAAOgE,EAAK,OAAOhE,EAE9B,OAAQ,CACZ,CAqFA,SAASya,EAAc/b,EAAKkb,GACxB,GAAIlb,EAAIU,OAASwa,EAAKS,gBAAiB,CACnC,IAAIoD,EAAY/e,EAAIU,OAASwa,EAAKS,gBAC9BqD,EAAU,OAASD,EAAY,mBAAqBA,EAAY,EAAI,IAAM,IAC9E,OAAOhD,EAAc9C,EAAO1S,KAAKvG,EAAK,EAAGkb,EAAKS,iBAAkBT,GAAQ8D,CAC5E,CACA,IAAIC,EAAUnE,EAASI,EAAKE,YAAc,UAI1C,OAHA6D,EAAQC,UAAY,EAGbnE,EADCvL,EAASjJ,KAAKiJ,EAASjJ,KAAKvG,EAAKif,EAAS,QAAS,eAAgBE,GACtD,SAAUjE,EACnC,CAEA,SAASiE,EAAQ3c,GACb,IAAIwC,EAAIxC,EAAEK,WAAW,GACjByC,EAAI,CACJ,EAAG,IACH,EAAG,IACH,GAAI,IACJ,GAAI,IACJ,GAAI,KACNN,GACF,OAAIM,EAAY,KAAOA,EAChB,OAASN,EAAI,GAAO,IAAM,IAAMkU,EAAa3S,KAAKvB,EAAEvF,SAAS,IACxE,CAEA,SAASqd,EAAU9c,GACf,MAAO,UAAYA,EAAM,GAC7B,CAEA,SAASge,EAAiB9gB,GACtB,OAAOA,EAAO,QAClB,CAEA,SAAS0gB,GAAa1gB,EAAMkiB,EAAMC,EAASxD,GAEvC,OAAO3e,EAAO,KAAOkiB,EAAO,OADRvD,EAAS0B,GAAa8B,EAASxD,GAAUtC,EAAMhT,KAAK8Y,EAAS,OAC7B,GACxD,CA0BA,SAAS9B,GAAaF,EAAIxB,GACtB,GAAkB,IAAdwB,EAAG3c,OAAgB,MAAO,GAC9B,IAAI4e,EAAa,KAAOzD,EAAOO,KAAOP,EAAOM,KAC7C,OAAOmD,EAAa/F,EAAMhT,KAAK8W,EAAI,IAAMiC,GAAc,KAAOzD,EAAOO,IACzE,CAEA,SAASQ,GAAWhV,EAAK0U,GACrB,IAAIiD,EAAQxI,EAAQnP,GAChByV,EAAK,GACT,GAAIkC,EAAO,CACPlC,EAAG3c,OAASkH,EAAIlH,OAChB,IAAK,IAAIY,EAAI,EAAGA,EAAIsG,EAAIlH,OAAQY,IAC5B+b,EAAG/b,GAAKwT,EAAIlN,EAAKtG,GAAKgb,EAAQ1U,EAAItG,GAAIsG,GAAO,EAErD,CACA,IACI4X,EADA7N,EAAuB,mBAATgI,EAAsBA,EAAK/R,GAAO,GAEpD,GAAIiS,EAAmB,CACnB2F,EAAS,CAAC,EACV,IAAK,IAAI1a,EAAI,EAAGA,EAAI6M,EAAKjR,OAAQoE,IAC7B0a,EAAO,IAAM7N,EAAK7M,IAAM6M,EAAK7M,EAErC,CAEA,IAAK,IAAIqN,KAAOvK,EACPkN,EAAIlN,EAAKuK,KACVoN,GAASjd,OAAO4L,OAAOiE,MAAUA,GAAOA,EAAMvK,EAAIlH,QAClDmZ,GAAqB2F,EAAO,IAAMrN,aAAgBzF,SAG3C4M,EAAM/S,KAAK,SAAU4L,GAC5BkL,EAAG9b,KAAK+a,EAAQnK,EAAKvK,GAAO,KAAO0U,EAAQ1U,EAAIuK,GAAMvK,IAErDyV,EAAG9b,KAAK4Q,EAAM,KAAOmK,EAAQ1U,EAAIuK,GAAMvK,MAG/C,GAAoB,mBAAT+R,EACP,IAAK,IAAI3T,EAAI,EAAGA,EAAI2L,EAAKjR,OAAQsF,IACzB8T,EAAavT,KAAKqB,EAAK+J,EAAK3L,KAC5BqX,EAAG9b,KAAK,IAAM+a,EAAQ3K,EAAK3L,IAAM,MAAQsW,EAAQ1U,EAAI+J,EAAK3L,IAAK4B,IAI3E,OAAOyV,CACX,C,2CCzgBIoC,EAAO,EAAQ,OACfnB,EAAW,SAAUhZ,GACvB,MAAoB,iBAANA,CAChB,EAOA,SAASoa,EAAexb,EAAOyb,GAE7B,IADA,IAAIC,EAAM,GACDte,EAAI,EAAGA,EAAI4C,EAAMxD,OAAQY,IAAK,CACrC,IAAI6C,EAAID,EAAM5C,GAGT6C,GAAW,MAANA,IAGA,OAANA,EACEyb,EAAIlf,QAAkC,OAAxBkf,EAAIA,EAAIlf,OAAS,GACjCkf,EAAIpe,MACKme,GACTC,EAAIre,KAAK,MAGXqe,EAAIre,KAAK4C,GAEb,CAEA,OAAOyb,CACT,CAIA,IAAIC,EACA,gEACAC,EAAQ,CAAC,EAGb,SAASC,EAAeC,GACtB,OAAOH,EAAYlQ,KAAKqQ,GAAUxf,MAAM,EAC1C,CAKAsf,EAAMG,QAAU,WAId,IAHA,IAAIC,EAAe,GACfC,GAAmB,EAEd7e,EAAImF,UAAU/F,OAAS,EAAGY,IAAM,IAAM6e,EAAkB7e,IAAK,CACpE,IAAIkV,EAAQlV,GAAK,EAAKmF,UAAUnF,GAAK8e,EAAQC,MAG7C,IAAK/B,EAAS9H,GACZ,MAAM,IAAItN,UAAU,6CACVsN,IAIZ0J,EAAe1J,EAAO,IAAM0J,EAC5BC,EAAsC,MAAnB3J,EAAK1T,OAAO,GACjC,CASA,OAASqd,EAAmB,IAAM,KAHlCD,EAAeR,EAAeQ,EAAa7c,MAAM,MAClB8c,GAAkB3hB,KAAK,OAEG,GAC3D,EAIAshB,EAAMQ,UAAY,SAAS9J,GACzB,IAAI+J,EAAaT,EAAMS,WAAW/J,GAC9BgK,EAAoC,MAApBhK,EAAKrT,QAAQ,GAYjC,OATAqT,EAAOkJ,EAAelJ,EAAKnT,MAAM,MAAOkd,GAAY/hB,KAAK,OAE3C+hB,IACZ/J,EAAO,KAELA,GAAQgK,IACVhK,GAAQ,MAGF+J,EAAa,IAAM,IAAM/J,CACnC,EAGAsJ,EAAMS,WAAa,SAAS/J,GAC1B,MAA0B,MAAnBA,EAAK1T,OAAO,EACrB,EAGAgd,EAAMthB,KAAO,WAEX,IADA,IAAIgY,EAAO,GACFlV,EAAI,EAAGA,EAAImF,UAAU/F,OAAQY,IAAK,CACzC,IAAImf,EAAUha,UAAUnF,GACxB,IAAKgd,EAASmC,GACZ,MAAM,IAAIvX,UAAU,0CAElBuX,IAIAjK,GAHGA,EAGK,IAAMiK,EAFNA,EAKd,CACA,OAAOX,EAAMQ,UAAU9J,EACzB,EAKAsJ,EAAMY,SAAW,SAASnE,EAAMoE,GAI9B,SAASC,EAAK1W,GAEZ,IADA,IAAI7J,EAAQ,EACLA,EAAQ6J,EAAIxJ,QACE,KAAfwJ,EAAI7J,GADiBA,KAK3B,IADA,IAAIC,EAAM4J,EAAIxJ,OAAS,EAChBJ,GAAO,GACK,KAAb4J,EAAI5J,GADOA,KAIjB,OAAID,EAAQC,EAAY,GACjB4J,EAAI1J,MAAMH,EAAOC,EAAM,EAChC,CAhBAic,EAAOuD,EAAMG,QAAQ1D,GAAMpZ,OAAO,GAClCwd,EAAKb,EAAMG,QAAQU,GAAIxd,OAAO,GAsB9B,IALA,IAAI0d,EAAYD,EAAKrE,EAAKlZ,MAAM,MAC5Byd,EAAUF,EAAKD,EAAGtd,MAAM,MAExB3C,EAASmD,KAAKuH,IAAIyV,EAAUngB,OAAQogB,EAAQpgB,QAC5CqgB,EAAkBrgB,EACbY,EAAI,EAAGA,EAAIZ,EAAQY,IAC1B,GAAIuf,EAAUvf,KAAOwf,EAAQxf,GAAI,CAC/Byf,EAAkBzf,EAClB,KACF,CAGF,IAAI0f,EAAc,GAClB,IAAS1f,EAAIyf,EAAiBzf,EAAIuf,EAAUngB,OAAQY,IAClD0f,EAAYzf,KAAK,MAKnB,OAFAyf,EAAcA,EAAY3R,OAAOyR,EAAQtgB,MAAMugB,KAE5BviB,KAAK,IAC1B,EAGAshB,EAAMmB,UAAY,SAASzK,GACzB,OAAOA,CACT,EAGAsJ,EAAMoB,QAAU,SAAS1K,GACvB,IAAIvX,EAAS8gB,EAAevJ,GACxB2K,EAAOliB,EAAO,GACdmiB,EAAMniB,EAAO,GAEjB,OAAKkiB,GAASC,GAKVA,IAEFA,EAAMA,EAAIje,OAAO,EAAGie,EAAI1gB,OAAS,IAG5BygB,EAAOC,GARL,GASX,EAGAtB,EAAMuB,SAAW,SAAS7K,EAAM8K,GAC9B,IAAI5E,EAAIqD,EAAevJ,GAAM,GAK7B,OAHI8K,GAAO5E,EAAEvZ,QAAQ,EAAIme,EAAI5gB,UAAY4gB,IACvC5E,EAAIA,EAAEvZ,OAAO,EAAGuZ,EAAEhc,OAAS4gB,EAAI5gB,SAE1Bgc,CACT,EAGAoD,EAAMyB,QAAU,SAAS/K,GACvB,OAAOuJ,EAAevJ,GAAM,EAC9B,EAGAsJ,EAAM0B,OAAS,SAASC,GACtB,IAAKhC,EAAKiC,SAASD,GACjB,MAAM,IAAIvY,UACN,wDAA0DuY,GAIhE,IAAIN,EAAOM,EAAWN,MAAQ,GAE9B,IAAK7C,EAAS6C,GACZ,MAAM,IAAIjY,UACN,+DACOuY,EAAWN,MAMxB,OAFUM,EAAWL,IAAMK,EAAWL,IAAMtB,EAAM6B,IAAM,KAC7CF,EAAWtF,MAAQ,GAEhC,EAGA2D,EAAMxN,MAAQ,SAASsP,GACrB,IAAKtD,EAASsD,GACZ,MAAM,IAAI1Y,UACN,uDAAyD0Y,GAG/D,IAAIC,EAAW9B,EAAe6B,GAC9B,IAAKC,GAAgC,IAApBA,EAASnhB,OACxB,MAAM,IAAIwI,UAAU,iBAAmB0Y,EAAa,KAMtD,OAJAC,EAAS,GAAKA,EAAS,IAAM,GAC7BA,EAAS,GAAKA,EAAS,IAAM,GAC7BA,EAAS,GAAKA,EAAS,IAAM,GAEtB,CACLV,KAAMU,EAAS,GACfT,IAAKS,EAAS,GAAKA,EAAS,GAAGrhB,MAAM,EAAGqhB,EAAS,GAAGnhB,OAAS,GAC7Dyb,KAAM0F,EAAS,GACfP,IAAKO,EAAS,GACd7f,KAAM6f,EAAS,GAAGrhB,MAAM,EAAGqhB,EAAS,GAAGnhB,OAASmhB,EAAS,GAAGnhB,QAEhE,EAGAof,EAAM6B,IAAM,IACZ7B,EAAMgC,UAAY,IAEhBrgB,EAAOC,QAAUoe,C,wBC9QnBre,EAAOC,QAAU,CAChB,eACA,eACA,eACA,YACA,aACA,aACA,aACA,oBACA,cACA,cACA,gBACA,iB,cCfD,M,WACE,WAG+CA,GAC9CA,EAAQqgB,SACoCtgB,GAC5CA,EAAOsgB,SAHT,IAIIpgB,EAA8B,iBAAV,YAAsB,WAE7CA,EAAWC,SAAWD,GACtBA,EAAWvH,SAAWuH,GACtBA,EAAWsU,KAUZ,IAAI+L,EAGJC,EAAS,WAGT9F,EAAO,GAUP+F,EAAgB,QAChBC,EAAgB,eAChBC,EAAkB,4BAGlBC,EAAS,CACR,SAAY,kDACZ,YAAa,iDACb,gBAAiB,iBAKlBlX,EAAQtH,KAAKsH,MACbmX,EAAqBhgB,OAAOY,aAa5B,SAASjB,EAAM/E,GACd,MAAM,IAAI6L,WAAWsZ,EAAOnlB,GAC7B,CAUA,SAASb,EAAIsN,EAAOqF,GAGnB,IAFA,IAAItO,EAASiJ,EAAMjJ,OACfzB,EAAS,GACNyB,KACNzB,EAAOyB,GAAUsO,EAAGrF,EAAMjJ,IAE3B,OAAOzB,CACR,CAYA,SAASsjB,EAAU1Y,EAAQmF,GAC1B,IAAI9K,EAAQ2F,EAAOxG,MAAM,KACrBpE,EAAS,GAWb,OAVIiF,EAAMxD,OAAS,IAGlBzB,EAASiF,EAAM,GAAK,IACpB2F,EAAS3F,EAAM,IAMTjF,EADO5C,GAFdwN,EAASA,EAAO9G,QAAQqf,EAAiB,MACrB/e,MAAM,KACA2L,GAAIxQ,KAAK,IAEpC,CAeA,SAASgkB,EAAW3Y,GAMnB,IALA,IAGI5L,EACAwkB,EAJA9f,EAAS,GACT+f,EAAU,EACVhiB,EAASmJ,EAAOnJ,OAGbgiB,EAAUhiB,IAChBzC,EAAQ4L,EAAOhH,WAAW6f,OACb,OAAUzkB,GAAS,OAAUykB,EAAUhiB,EAG3B,QAAX,OADb+hB,EAAQ5Y,EAAOhH,WAAW6f,OAEzB/f,EAAOpB,OAAe,KAARtD,IAAkB,KAAe,KAARwkB,GAAiB,QAIxD9f,EAAOpB,KAAKtD,GACZykB,KAGD/f,EAAOpB,KAAKtD,GAGd,OAAO0E,CACR,CAUA,SAASggB,EAAWhZ,GACnB,OAAOtN,EAAIsN,EAAO,SAAS1L,GAC1B,IAAI0E,EAAS,GAOb,OANI1E,EAAQ,QAEX0E,GAAU2f,GADVrkB,GAAS,SAC8B,GAAK,KAAQ,OACpDA,EAAQ,MAAiB,KAARA,GAElB0E,EAAU2f,EAAmBrkB,EAE9B,GAAGO,KAAK,GACT,CAWA,SAASokB,EAAaC,GACrB,OAAIA,EAAY,GAAK,GACbA,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEb1G,CACR,CAaA,SAAS2G,EAAaC,EAAOC,GAG5B,OAAOD,EAAQ,GAAK,IAAMA,EAAQ,MAAgB,GAARC,IAAc,EACzD,CAOA,SAASC,EAAMC,EAAOC,EAAWC,GAChC,IAAIte,EAAI,EAGR,IAFAoe,EAAQE,EAAYjY,EAAM+X,EA1LpB,KA0LoCA,GAAS,EACnDA,GAAS/X,EAAM+X,EAAQC,GACOD,EAAQG,IAA2Bve,GAAKqX,EACrE+G,EAAQ/X,EAAM+X,EA3KA/G,IA6Kf,OAAOhR,EAAMrG,EAAI,GAAsBoe,GAASA,EAhM1C,IAiMP,CASA,SAASI,EAAOjhB,GAEf,IAEIkhB,EAIAC,EACAxd,EACAgR,EACAyM,EACAC,EACA5e,EACAie,EACAzlB,EAEAqmB,EAfAhhB,EAAS,GACTihB,EAAcvhB,EAAM3B,OAEpBY,EAAI,EACJ0D,EA7MM,IA8MN6e,EA/MS,GAoOb,KALAL,EAAQnhB,EAAMyhB,YA7NH,MA8NC,IACXN,EAAQ,GAGJxd,EAAI,EAAGA,EAAIwd,IAASxd,EAEpB3D,EAAMQ,WAAWmD,IAAM,KAC1B/D,EAAM,aAEPU,EAAOpB,KAAKc,EAAMQ,WAAWmD,IAM9B,IAAKgR,EAAQwM,EAAQ,EAAIA,EAAQ,EAAI,EAAGxM,EAAQ4M,GAAwC,CAOvF,IAAKH,EAAOniB,EAAGoiB,EAAI,EAAG5e,EAAIqX,EAErBnF,GAAS4M,GACZ3hB,EAAM,mBAGP8gB,EAAQH,EAAavgB,EAAMQ,WAAWmU,QAEzBmF,GAAQ4G,EAAQ5X,GAAO8W,EAAS3gB,GAAKoiB,KACjDzhB,EAAM,YAGPX,GAAKyhB,EAAQW,IAGTX,GAFJzlB,EAAIwH,GAAK+e,EAvQL,EAuQoB/e,GAAK+e,EAtQzB,MAsQ8C/e,EAAI+e,IAbH/e,GAAKqX,EAoBpDuH,EAAIvY,EAAM8W,GADd0B,EAAaxH,EAAO7e,KAEnB2E,EAAM,YAGPyhB,GAAKC,EAKNE,EAAOZ,EAAM3hB,EAAImiB,EADjBF,EAAM5gB,EAAOjC,OAAS,EACc,GAAR+iB,GAIxBtY,EAAM7J,EAAIiiB,GAAOtB,EAASjd,GAC7B/C,EAAM,YAGP+C,GAAKmG,EAAM7J,EAAIiiB,GACfjiB,GAAKiiB,EAGL5gB,EAAO4M,OAAOjO,IAAK,EAAG0D,EAEvB,CAEA,OAAO2d,EAAWhgB,EACnB,CASA,SAASohB,EAAO1hB,GACf,IAAI2C,EACAke,EACAc,EACAC,EACAJ,EACA7d,EACAnF,EACAqjB,EACApf,EACAxH,EACA6mB,EAGAP,EAEAQ,EACAT,EACAU,EANA1hB,EAAS,GAoBb,IARAihB,GAHAvhB,EAAQmgB,EAAWngB,IAGC3B,OAGpBsE,EAvUU,IAwUVke,EAAQ,EACRW,EA1Ua,GA6UR7d,EAAI,EAAGA,EAAI4d,IAAe5d,GAC9Bme,EAAe9hB,EAAM2D,IACF,KAClBrD,EAAOpB,KAAK+gB,EAAmB6B,IAejC,IAXAH,EAAiBC,EAActhB,EAAOjC,OAMlCujB,GACHthB,EAAOpB,KAzVG,KA6VJyiB,EAAiBJ,GAAa,CAIpC,IAAK/iB,EAAIohB,EAAQjc,EAAI,EAAGA,EAAI4d,IAAe5d,GAC1Cme,EAAe9hB,EAAM2D,KACDhB,GAAKmf,EAAetjB,IACvCA,EAAIsjB,GAcN,IAPItjB,EAAImE,EAAImG,GAAO8W,EAASiB,IAD5BkB,EAAwBJ,EAAiB,KAExC/hB,EAAM,YAGPihB,IAAUriB,EAAImE,GAAKof,EACnBpf,EAAInE,EAECmF,EAAI,EAAGA,EAAI4d,IAAe5d,EAO9B,IANAme,EAAe9hB,EAAM2D,IAEFhB,KAAOke,EAAQjB,GACjChgB,EAAM,YAGHkiB,GAAgBnf,EAAG,CAEtB,IAAKkf,EAAIhB,EAAOpe,EAAIqX,IAEf+H,GADJ5mB,EAAIwH,GAAK+e,EAlYP,EAkYsB/e,GAAK+e,EAjY3B,MAiYgD/e,EAAI+e,IADT/e,GAAKqX,EAKlDkI,EAAUH,EAAI5mB,EACdqmB,EAAaxH,EAAO7e,EACpBqF,EAAOpB,KACN+gB,EAAmBQ,EAAaxlB,EAAI+mB,EAAUV,EAAY,KAE3DO,EAAI/Y,EAAMkZ,EAAUV,GAGrBhhB,EAAOpB,KAAK+gB,EAAmBQ,EAAaoB,EAAG,KAC/CL,EAAOZ,EAAMC,EAAOkB,EAAuBJ,GAAkBC,GAC7Df,EAAQ,IACNc,CACH,GAGCd,IACAle,CAEH,CACA,OAAOrC,EAAOnE,KAAK,GACpB,CA2CAwjB,EAAW,CAMV,QAAW,QAQX,KAAQ,CACP,OAAUQ,EACV,OAAUG,GAEX,OAAUW,EACV,OAAUS,EACV,QA/BD,SAAiB1hB,GAChB,OAAOkgB,EAAUlgB,EAAO,SAASwH,GAChC,OAAOsY,EAAc5f,KAAKsH,GACvB,OAASka,EAAOla,GAChBA,CACJ,EACD,EA0BC,UAnDD,SAAmBxH,GAClB,OAAOkgB,EAAUlgB,EAAO,SAASwH,GAChC,OAAOqY,EAAc3f,KAAKsH,GACvByZ,EAAOzZ,EAAOrJ,MAAM,GAAG6Y,eACvBxP,CACJ,EACD,QA0DE,KAFD,aACC,OAAOmY,CACP,+BAgBH,CAnhBC,E,wBCCD,IAAIjf,EAAUT,OAAOtE,UAAU+E,QAC3BuhB,EAAkB,OAElBC,EAES,UAGb9iB,EAAOC,QAAU,CACb,QAAW6iB,EACXC,WAAY,CACRC,QAAS,SAAUxmB,GACf,OAAO8E,EAAQwD,KAAKtI,EAAOqmB,EAAiB,IAChD,EACAI,QAAS,SAAUzmB,GACf,OAAOqE,OAAOrE,EAClB,GAEJwmB,QAdS,UAeTC,QAASH,E,4BCnBb,IAAII,EAAY,EAAQ,OACpBrS,EAAQ,EAAQ,OAChBsS,EAAU,EAAQ,OAEtBnjB,EAAOC,QAAU,CACbkjB,QAASA,EACTtS,MAAOA,EACPqS,UAAWA,E,4BCPf,IAAIE,EAAQ,EAAQ,OAEhB/P,EAAMhX,OAAOE,UAAUsL,eACvByN,EAAUhR,MAAMgR,QAEhB+N,EAAW,CACXC,WAAW,EACXC,kBAAkB,EAClBC,iBAAiB,EACjBC,aAAa,EACbC,WAAY,GACZC,QAAS,QACTC,iBAAiB,EACjBC,OAAO,EACPC,iBAAiB,EACjBC,QAASX,EAAMvB,OACfxB,UAAW,IACXrG,MAAO,EACPgK,WAAY,UACZC,mBAAmB,EACnBC,0BAA0B,EAC1BC,eAAgB,IAChBC,aAAa,EACbC,cAAc,EACdC,aAAa,EACbC,oBAAoB,EACpBC,sBAAsB,GAGtBN,EAA2B,SAAU3lB,GACrC,OAAOA,EAAI+C,QAAQ,YAAa,SAAUmjB,EAAIC,GAC1C,OAAO7jB,OAAOY,aAAac,SAASmiB,EAAW,IACnD,EACJ,EAEIC,EAAkB,SAAUC,EAAK/nB,EAASgoB,GAC1C,GAAID,GAAsB,iBAARA,GAAoB/nB,EAAQgnB,OAASe,EAAIjlB,QAAQ,MAAQ,EACvE,OAAOilB,EAAIhjB,MAAM,KAGrB,GAAI/E,EAAQ2nB,sBAAwBK,GAAsBhoB,EAAQ6mB,WAC9D,MAAM,IAAIpc,WAAW,8BAAgCzK,EAAQ6mB,WAAa,YAAqC,IAAvB7mB,EAAQ6mB,WAAmB,GAAK,KAAO,yBAGnI,OAAOkB,CACX,EAgOIE,EAAY,SAA8BC,EAAUH,EAAK/nB,EAASmoB,GAClE,GAAKD,EAAL,CAIA,IAAI/U,EA7DmB,SAA8B+U,EAAUloB,GAC/D,IAAI6T,EAAM7T,EAAQymB,UAAYyB,EAASzjB,QAAQ,cAAe,QAAUyjB,EAExE,GAAIloB,EAAQmd,OAAS,EAAG,CACpB,IAAKnd,EAAQwnB,cAAgBhR,EAAIvO,KAAKzI,OAAOE,UAAWmU,KAC/C7T,EAAQ2mB,gBACT,OAIR,MAAO,CAAC9S,EACZ,CAEA,IACIuU,EAAQ,gBAERjG,EAHW,eAGQ9Q,KAAKwC,GACxBwU,EAASlG,EAAUtO,EAAI3R,MAAM,EAAGigB,EAAQzJ,OAAS7E,EAEjDV,EAAO,GAEX,GAAIkV,EAAQ,CACR,IAAKroB,EAAQwnB,cAAgBhR,EAAIvO,KAAKzI,OAAOE,UAAW2oB,KAC/CroB,EAAQ2mB,gBACT,OAIRxT,EAAKA,EAAK/Q,QAAUimB,CACxB,CAGA,IADA,IAAIrlB,EAAI,EAC+B,QAA/Bmf,EAAUiG,EAAM/W,KAAKwC,KAAkB7Q,EAAIhD,EAAQmd,OAAO,CAC9Dna,GAAK,EAEL,IAAIslB,EAAiBnG,EAAQ,GAAGjgB,MAAM,GAAI,GAC1C,IAAKlC,EAAQwnB,cAAgBhR,EAAIvO,KAAKzI,OAAOE,UAAW4oB,KAC/CtoB,EAAQ2mB,gBACT,OAIRxT,EAAKA,EAAK/Q,QAAU+f,EAAQ,EAChC,CAEA,GAAIA,EAAS,CACT,IAA4B,IAAxBniB,EAAQynB,YACR,MAAM,IAAIhd,WAAW,wCAA0CzK,EAAQmd,MAAQ,4BAGnFhK,EAAKA,EAAK/Q,QAAU,IAAMyR,EAAI3R,MAAMigB,EAAQzJ,OAAS,GACzD,CAEA,OAAOvF,CACX,CAOeoV,CAAqBL,EAAUloB,GAE1C,GAAKmT,EAIL,OA7Hc,SAAUqV,EAAOT,EAAK/nB,EAASmoB,GAC7C,IAAIH,EAAqB,EACzB,GAAIQ,EAAMpmB,OAAS,GAAiC,OAA5BomB,EAAMA,EAAMpmB,OAAS,GAAa,CACtD,IAAIqmB,EAAYD,EAAMtmB,MAAM,GAAI,GAAGhC,KAAK,IACxC8nB,EAAqBvgB,MAAMgR,QAAQsP,IAAQA,EAAIU,GAAaV,EAAIU,GAAWrmB,OAAS,CACxF,CAIA,IAFA,IAAIsmB,EAAOP,EAAeJ,EAAMD,EAAgBC,EAAK/nB,EAASgoB,GAErDhlB,EAAIwlB,EAAMpmB,OAAS,EAAGY,GAAK,IAAKA,EAAG,CACxC,IAAIsG,EACAuZ,EAAO2F,EAAMxlB,GAEjB,GAAa,OAAT6f,GAAiB7iB,EAAQunB,YAGrBje,EAFAid,EAAMoC,WAAWD,GAEXA,EAEA1oB,EAAQ0mB,mBAA8B,KAATgC,GAAgB1oB,EAAQ0nB,oBAA+B,OAATgB,GAC3E,GACAnC,EAAMqC,QACJ,GACAF,EACA1oB,EAAQ6mB,WACR7mB,EAAQwnB,kBAGjB,CACHle,EAAMtJ,EAAQwnB,aAAe,CAAErd,UAAW,MAAS,CAAC,EACpD,IAAI0e,EAA+B,MAAnBhG,EAAKre,OAAO,IAA+C,MAAjCqe,EAAKre,OAAOqe,EAAKzgB,OAAS,GAAaygB,EAAK3gB,MAAM,GAAI,GAAK2gB,EACjGiG,EAAc9oB,EAAQinB,gBAAkB4B,EAAUpkB,QAAQ,OAAQ,KAAOokB,EACzEnQ,EAAQhT,SAASojB,EAAa,IAC9BC,GAAqBtZ,MAAMiJ,IACxBmK,IAASiG,GACT9kB,OAAO0U,KAAWoQ,GAClBpQ,GAAS,GACT1Y,EAAQunB,YACf,GAAKvnB,EAAQunB,aAA+B,KAAhBuB,EAErB,GAAIC,GAAqBrQ,EAAQ1Y,EAAQ6mB,YAC5Cvd,EAAM,IACFoP,GAASgQ,MACV,IAAIK,GAAqB/oB,EAAQ2nB,qBACpC,MAAM,IAAIld,WAAW,8BAAgCzK,EAAQ6mB,WAAa,YAAqC,IAAvB7mB,EAAQ6mB,WAAmB,GAAK,KAAO,yBACxHkC,GACPzf,EAAIoP,GAASgQ,EACbnC,EAAMyC,aAAa1f,EAAKoP,IACD,cAAhBoQ,IACPxf,EAAIwf,GAAeJ,EACvB,MAXIpf,EAAM,CAAE,EAAGof,EAYnB,CAEAA,EAAOpf,CACX,CAEA,OAAOof,CACX,CAqEWO,CAAY9V,EAAM4U,EAAK/nB,EAASmoB,EARvC,CASJ,EA+DAhlB,EAAOC,QAAU,SAAU1B,EAAKkb,GAC5B,IAAI5c,EA9DoB,SAA+B4c,GACvD,IAAKA,EACD,OAAO4J,EAGX,QAAqC,IAA1B5J,EAAK8J,kBAAqE,kBAA1B9J,EAAK8J,iBAC5D,MAAM,IAAI9b,UAAU,0EAGxB,QAAoC,IAAzBgS,EAAKqK,iBAAmE,kBAAzBrK,EAAKqK,gBAC3D,MAAM,IAAIrc,UAAU,yEAGxB,GAAqB,OAAjBgS,EAAKsK,cAA4C,IAAjBtK,EAAKsK,SAAmD,mBAAjBtK,EAAKsK,QAC5E,MAAM,IAAItc,UAAU,iCAGxB,QAA4B,IAAjBgS,EAAKkK,SAA4C,UAAjBlK,EAAKkK,SAAwC,eAAjBlK,EAAKkK,QACxE,MAAM,IAAIlc,UAAU,qEAGxB,QAAyC,IAA9BgS,EAAK+K,sBAA6E,kBAA9B/K,EAAK+K,qBAChE,MAAM,IAAI/c,UAAU,mDAGxB,IAAIkc,OAAkC,IAAjBlK,EAAKkK,QAA0BN,EAASM,QAAUlK,EAAKkK,QAExEK,OAAwC,IAApBvK,EAAKuK,WAA6BX,EAASW,WAAavK,EAAKuK,WAErF,GAAmB,YAAfA,GAA2C,UAAfA,GAAyC,SAAfA,EACtD,MAAM,IAAIvc,UAAU,gEAKxB,MAAO,CACH6b,eAHsC,IAAnB7J,EAAK6J,WAAqD,IAAzB7J,EAAKqK,iBAAkCT,EAASC,YAAc7J,EAAK6J,UAIvHC,iBAAmD,kBAA1B9J,EAAK8J,mBAAmC9J,EAAK8J,iBAAmBF,EAASE,iBAClGC,gBAAiD,kBAAzB/J,EAAK+J,gBAAgC/J,EAAK+J,gBAAkBH,EAASG,gBAC7FC,YAAyC,kBAArBhK,EAAKgK,YAA4BhK,EAAKgK,YAAcJ,EAASI,YACjFC,WAAuC,iBAApBjK,EAAKiK,WAA0BjK,EAAKiK,WAAaL,EAASK,WAC7EC,QAASA,EACTC,gBAAiD,kBAAzBnK,EAAKmK,gBAAgCnK,EAAKmK,gBAAkBP,EAASO,gBAC7FC,MAA6B,kBAAfpK,EAAKoK,MAAsBpK,EAAKoK,MAAQR,EAASQ,MAC/DC,gBAAiD,kBAAzBrK,EAAKqK,gBAAgCrK,EAAKqK,gBAAkBT,EAASS,gBAC7FC,QAAiC,mBAAjBtK,EAAKsK,QAAyBtK,EAAKsK,QAAUV,EAASU,QACtE1D,UAAqC,iBAAnB5G,EAAK4G,WAA0B+C,EAAMtJ,SAASL,EAAK4G,WAAa5G,EAAK4G,UAAYgD,EAAShD,UAE5GrG,MAA8B,iBAAfP,EAAKO,QAAqC,IAAfP,EAAKO,OAAoBP,EAAKO,MAAQqJ,EAASrJ,MACzFgK,WAAYA,EACZC,mBAA8C,IAA3BxK,EAAKwK,kBACxBC,yBAAmE,kBAAlCzK,EAAKyK,yBAAyCzK,EAAKyK,yBAA2Bb,EAASa,yBACxHC,eAA+C,iBAAxB1K,EAAK0K,eAA8B1K,EAAK0K,eAAiBd,EAASc,eACzFC,aAAkC,IAArB3K,EAAK2K,YAClBC,aAA2C,kBAAtB5K,EAAK4K,aAA6B5K,EAAK4K,aAAehB,EAASgB,aACpFC,YAAyC,kBAArB7K,EAAK6K,cAA8B7K,EAAK6K,YAAcjB,EAASiB,YACnFC,mBAAuD,kBAA5B9K,EAAK8K,mBAAmC9K,EAAK8K,mBAAqBlB,EAASkB,mBACtGC,qBAA2D,kBAA9B/K,EAAK+K,sBAAqC/K,EAAK+K,qBAEpF,CAGkBuB,CAAsBtM,GAEpC,GAAY,KAARlb,SAAcA,EACd,OAAO1B,EAAQwnB,aAAe,CAAErd,UAAW,MAAS,CAAC,EASzD,IANA,IAAIgf,EAAyB,iBAARznB,EAtSP,SAAgCA,EAAK1B,GACnD,IAAIsJ,EAAM,CAAEa,UAAW,MAEnBif,EAAWppB,EAAQonB,kBAAoB1lB,EAAI+C,QAAQ,MAAO,IAAM/C,EACpE0nB,EAAWA,EAAS3kB,QAAQ,QAAS,KAAKA,QAAQ,QAAS,KAE3D,IAAInH,EAAQ0C,EAAQsnB,iBAAmB1L,SAAW,EAAiB5b,EAAQsnB,eACvE1hB,EAAQwjB,EAASrkB,MACjB/E,EAAQwjB,UACRxjB,EAAQ2nB,qBAAuBrqB,EAAQ,EAAIA,GAG/C,GAAI0C,EAAQ2nB,sBAAwB/hB,EAAMxD,OAAS9E,EAC/C,MAAM,IAAImN,WAAW,kCAAoCnN,EAAQ,cAA0B,IAAVA,EAAc,GAAK,KAAO,aAG/G,IACI0F,EADAqmB,GAAa,EAGbvC,EAAU9mB,EAAQ8mB,QACtB,GAAI9mB,EAAQ+mB,gBACR,IAAK/jB,EAAI,EAAGA,EAAI4C,EAAMxD,SAAUY,EACM,IAA9B4C,EAAM5C,GAAGF,QAAQ,WAxBX,mBAyBF8C,EAAM5C,GACN8jB,EAAU,QA7BZ,wBA8BSlhB,EAAM5C,KACb8jB,EAAU,cAEduC,EAAYrmB,EACZA,EAAI4C,EAAMxD,QAKtB,IAAKY,EAAI,EAAGA,EAAI4C,EAAMxD,SAAUY,EAC5B,GAAIA,IAAMqmB,EAAV,CAGA,IAKIxV,EACAkU,EANA1V,EAAOzM,EAAM5C,GAEbsmB,EAAmBjX,EAAKvP,QAAQ,MAChCymB,GAA4B,IAAtBD,EAA0BjX,EAAKvP,QAAQ,KAAOwmB,EAAmB,EAgC3E,IA5Ba,IAATC,GACA1V,EAAM7T,EAAQknB,QAAQ7U,EAAMmU,EAASU,QAASJ,EAAS,OACvDiB,EAAM/nB,EAAQ0nB,mBAAqB,KAAO,IAI9B,QAFZ7T,EAAM7T,EAAQknB,QAAQ7U,EAAKnQ,MAAM,EAAGqnB,GAAM/C,EAASU,QAASJ,EAAS,UAGjEiB,EAAMxB,EAAMiD,SACR1B,EACIzV,EAAKnQ,MAAMqnB,EAAM,GACjBvpB,EACAyY,EAAQnP,EAAIuK,IAAQvK,EAAIuK,GAAKzR,OAAS,GAE1C,SAAUqnB,GACN,OAAOzpB,EAAQknB,QAAQuC,EAAYjD,EAASU,QAASJ,EAAS,QAClE,IAKRiB,GAAO/nB,EAAQqnB,0BAAwC,eAAZP,IAC3CiB,EAAMV,EAAyBrjB,OAAO+jB,KAGtC1V,EAAKvP,QAAQ,QAAU,IACvBilB,EAAMtP,EAAQsP,GAAO,CAACA,GAAOA,GAG7B/nB,EAAQgnB,OAASvO,EAAQsP,IAAQA,EAAI3lB,OAASpC,EAAQ6mB,WAAY,CAClE,GAAI7mB,EAAQ2nB,qBACR,MAAM,IAAIld,WAAW,8BAAgCzK,EAAQ6mB,WAAa,YAAqC,IAAvB7mB,EAAQ6mB,WAAmB,GAAK,KAAO,yBAEnIkB,EAAMxB,EAAMqC,QAAQ,GAAIb,EAAK/nB,EAAQ6mB,WAAY7mB,EAAQwnB,aAC7D,CAEA,GAAY,OAAR3T,EAAc,CACd,IAAI6V,EAAWlT,EAAIvO,KAAKqB,EAAKuK,GACzB6V,GAAmC,YAAvB1pB,EAAQmnB,WACpB7d,EAAIuK,GAAO0S,EAAMqC,QACbtf,EAAIuK,GACJkU,EACA/nB,EAAQ6mB,WACR7mB,EAAQwnB,cAEJkC,GAAmC,SAAvB1pB,EAAQmnB,aAC5B7d,EAAIuK,GAAOkU,EAEnB,CAvDA,CA0DJ,OAAOze,CACX,CAsM4CqgB,CAAYjoB,EAAK1B,GAAW0B,EAChE4H,EAAMtJ,EAAQwnB,aAAe,CAAErd,UAAW,MAAS,CAAC,EAIpDgJ,EAAO3T,OAAO2T,KAAKgW,GACdnmB,EAAI,EAAGA,EAAImQ,EAAK/Q,SAAUY,EAAG,CAClC,IAAI6Q,EAAMV,EAAKnQ,GACX4mB,EAAS3B,EAAUpU,EAAKsV,EAAQtV,GAAM7T,EAAwB,iBAAR0B,GAC1D4H,EAAMid,EAAMsD,MAAMvgB,EAAKsgB,EAAQ5pB,EACnC,CAEA,OAA4B,IAAxBA,EAAQ4mB,YACDtd,EAGJid,EAAMuD,QAAQxgB,EACzB,C,4BChXA,IAAIygB,EAAiB,EAAQ,KACzBxD,EAAQ,EAAQ,OAChBD,EAAU,EAAQ,OAClB9P,EAAMhX,OAAOE,UAAUsL,eAEvBgf,EAAwB,CACxBC,SAAU,SAAkBC,GACxB,OAAOA,EAAS,IACpB,EACAlD,MAAO,QACPmD,QAAS,SAAiBD,EAAQrW,GAC9B,OAAOqW,EAAS,IAAMrW,EAAM,GAChC,EACAuW,OAAQ,SAAgBF,GACpB,OAAOA,CACX,GAGAzR,EAAUhR,MAAMgR,QAChBxV,EAAOwE,MAAM/H,UAAUuD,KACvBonB,EAAc,SAAUze,EAAK0e,GAC7BrnB,EAAK+C,MAAM4F,EAAK6M,EAAQ6R,GAAgBA,EAAe,CAACA,GAC5D,EAEIC,EAAQ5b,KAAKjP,UAAUU,YAEvBoqB,EAAgBlE,EAAiB,QACjCE,EAAW,CACXiE,gBAAgB,EAChBhE,WAAW,EACXC,kBAAkB,EAClBgE,YAAa,UACb5D,QAAS,QACTC,iBAAiB,EACjB4D,gBAAgB,EAChBnH,UAAW,IACXiC,QAAQ,EACRmF,iBAAiB,EACjBC,QAAStE,EAAMd,OACfqF,kBAAkB,EAClBC,YAAQ,EACR7H,OAAQsH,EACRQ,UAAW1E,EAAQJ,WAAWsE,GAE9BL,SAAS,EACTc,cAAe,SAAuBC,GAClC,OAAOX,EAAMtiB,KAAKijB,EACtB,EACAC,WAAW,EACXzD,oBAAoB,GAWpB0D,EAAW,CAAC,EAEZ/E,EAAY,SAASA,EACrB5a,EACAye,EACAmB,EACAV,EACAjE,EACAgB,EACAyD,EACAP,EACAC,EACAE,EACAO,EACA7E,EACAwE,EACA/H,EACA8H,EACAF,EACAhE,EACAyE,GAOA,IALA,IA9BuD/S,EA8BnDlP,EAAMmC,EAEN+f,EAAQD,EACRE,EAAO,EACPC,GAAW,OAC0B,KAAjCF,EAAQA,EAAM5rB,IAAIwrB,MAAkCM,GAAU,CAElE,IAAInC,EAAMiC,EAAM5rB,IAAI6L,GAEpB,GADAggB,GAAQ,OACW,IAARlC,EAAqB,CAC5B,GAAIA,IAAQkC,EACR,MAAM,IAAIhhB,WAAW,uBAErBihB,GAAW,CAEnB,MACmC,IAAxBF,EAAM5rB,IAAIwrB,KACjBK,EAAO,EAEf,CAeA,GAbsB,mBAAXV,EACPzhB,EAAMyhB,EAAOb,EAAQ5gB,GACdA,aAAeqF,KACtBrF,EAAM2hB,EAAc3hB,GACW,UAAxB+hB,GAAmC5S,EAAQnP,KAClDA,EAAMid,EAAMiD,SAASlgB,EAAK,SAAU3J,GAChC,OAAIA,aAAiBgP,KACVsc,EAActrB,GAElBA,CACX,IAGQ,OAAR2J,EAAc,CACd,GAAIoe,EACA,OAAOmD,IAAYC,EAAmBD,EAAQX,EAAQ1D,EAASqE,QAAS/D,EAAS,MAAO5D,GAAUgH,EAGtG5gB,EAAM,EACV,CAEA,GAvEoB,iBADmCkP,EAwE7BlP,IAtEN,iBAANkP,GACM,kBAANA,GACM,iBAANA,GACM,iBAANA,GAmEoB+N,EAAMoF,SAASriB,GAC7C,OAAIuhB,EAEO,CAACG,EADOF,EAAmBZ,EAASW,EAAQX,EAAQ1D,EAASqE,QAAS/D,EAAS,MAAO5D,IAC/D,IAAM8H,EAAUH,EAAQvhB,EAAKkd,EAASqE,QAAS/D,EAAS,QAAS5D,KAE5F,CAAC8H,EAAUd,GAAU,IAAMc,EAAUhnB,OAAOsF,KAGvD,IAMIsiB,EANAC,EAAS,GAEb,QAAmB,IAARviB,EACP,OAAOuiB,EAIX,GAA4B,UAAxBR,GAAmC5S,EAAQnP,GAEvCwhB,GAAoBD,IACpBvhB,EAAMid,EAAMiD,SAASlgB,EAAKuhB,IAE9Be,EAAU,CAAC,CAAEjsB,MAAO2J,EAAIlH,OAAS,EAAIkH,EAAIpJ,KAAK,MAAQ,UAAO,SAC1D,GAAIuY,EAAQsS,GACfa,EAAUb,MACP,CACH,IAAI5X,EAAO3T,OAAO2T,KAAK7J,GACvBsiB,EAAUN,EAAOnY,EAAKmY,KAAKA,GAAQnY,CACvC,CAEA,IAAI2Y,EAAgBlB,EAAkB5mB,OAAOkmB,GAAQzlB,QAAQ,MAAO,OAAST,OAAOkmB,GAEhF6B,EAAiBpB,GAAkBlS,EAAQnP,IAAuB,IAAfA,EAAIlH,OAAe0pB,EAAgB,KAAOA,EAEjG,GAAIpF,GAAoBjO,EAAQnP,IAAuB,IAAfA,EAAIlH,OACxC,OAAO2pB,EAAiB,KAG5B,IAAK,IAAIrkB,EAAI,EAAGA,EAAIkkB,EAAQxpB,SAAUsF,EAAG,CACrC,IAAImM,EAAM+X,EAAQlkB,GACd/H,EAAuB,iBAARkU,GAAoBA,QAA4B,IAAdA,EAAIlU,MACnDkU,EAAIlU,MACJ2J,EAAIuK,GAEV,IAAIsX,GAAuB,OAAVxrB,EAAjB,CAIA,IAAIqsB,EAAavF,GAAamE,EAAkB5mB,OAAO6P,GAAKpP,QAAQ,MAAO,OAAST,OAAO6P,GACvFoY,EAAYxT,EAAQnP,GACa,mBAAxB+hB,EAAqCA,EAAoBU,EAAgBC,GAAcD,EAC9FA,GAAkBtF,EAAY,IAAMuF,EAAa,IAAMA,EAAa,KAE1ET,EAAY9U,IAAIhL,EAAQggB,GACxB,IAAIS,EAAmBnC,IACvBmC,EAAiBzV,IAAI2U,EAAUG,GAC/BlB,EAAYwB,EAAQxF,EAChB1mB,EACAssB,EACAZ,EACAV,EACAjE,EACAgB,EACAyD,EACAP,EACwB,UAAxBS,GAAmCP,GAAoBrS,EAAQnP,GAAO,KAAOuhB,EAC7EE,EACAO,EACA7E,EACAwE,EACA/H,EACA8H,EACAF,EACAhE,EACAoF,GA5BJ,CA8BJ,CAEA,OAAOL,CACX,EA4EA1oB,EAAOC,QAAU,SAAUqI,EAAQmR,GAC/B,IAGIgP,EAHAtiB,EAAMmC,EACNzL,EA5EwB,SAAmC4c,GAC/D,IAAKA,EACD,OAAO4J,EAGX,QAAqC,IAA1B5J,EAAK8J,kBAAqE,kBAA1B9J,EAAK8J,iBAC5D,MAAM,IAAI9b,UAAU,0EAGxB,QAAoC,IAAzBgS,EAAKgO,iBAAmE,kBAAzBhO,EAAKgO,gBAC3D,MAAM,IAAIhgB,UAAU,yEAGxB,GAAqB,OAAjBgS,EAAKiO,cAA4C,IAAjBjO,EAAKiO,SAAmD,mBAAjBjO,EAAKiO,QAC5E,MAAM,IAAIjgB,UAAU,iCAGxB,IAAIkc,EAAUlK,EAAKkK,SAAWN,EAASM,QACvC,QAA4B,IAAjBlK,EAAKkK,SAA4C,UAAjBlK,EAAKkK,SAAwC,eAAjBlK,EAAKkK,QACxE,MAAM,IAAIlc,UAAU,qEAGxB,IAAIsY,EAASoD,EAAiB,QAC9B,QAA2B,IAAhB1J,EAAKsG,OAAwB,CACpC,IAAK1M,EAAIvO,KAAKqe,EAAQJ,WAAYtJ,EAAKsG,QACnC,MAAM,IAAItY,UAAU,mCAExBsY,EAAStG,EAAKsG,MAClB,CACA,IAOIwH,EAPAM,EAAY1E,EAAQJ,WAAWhD,GAE/B6H,EAASvE,EAASuE,OActB,IAb2B,mBAAhBnO,EAAKmO,QAAyBtS,EAAQmE,EAAKmO,WAClDA,EAASnO,EAAKmO,QAKdL,EADA9N,EAAK8N,eAAeV,EACNpN,EAAK8N,YACZ,YAAa9N,EACNA,EAAKuN,QAAU,UAAY,SAE3B3D,EAASkE,YAGvB,mBAAoB9N,GAAuC,kBAAxBA,EAAK+N,eACxC,MAAM,IAAI/f,UAAU,iDAGxB,IAAI6b,OAAsC,IAAnB7J,EAAK6J,WAAqD,IAAzB7J,EAAKgO,iBAAkCpE,EAASC,YAAc7J,EAAK6J,UAE3H,MAAO,CACHgE,eAA+C,kBAAxB7N,EAAK6N,eAA+B7N,EAAK6N,eAAiBjE,EAASiE,eAC1FhE,UAAWA,EACXC,iBAAmD,kBAA1B9J,EAAK8J,mBAAmC9J,EAAK8J,iBAAmBF,EAASE,iBAClGgE,YAAaA,EACb5D,QAASA,EACTC,gBAAiD,kBAAzBnK,EAAKmK,gBAAgCnK,EAAKmK,gBAAkBP,EAASO,gBAC7F4D,iBAAkB/N,EAAK+N,eACvBnH,eAAqC,IAAnB5G,EAAK4G,UAA4BgD,EAAShD,UAAY5G,EAAK4G,UAC7EiC,OAA+B,kBAAhB7I,EAAK6I,OAAuB7I,EAAK6I,OAASe,EAASf,OAClEmF,gBAAiD,kBAAzBhO,EAAKgO,gBAAgChO,EAAKgO,gBAAkBpE,EAASoE,gBAC7FC,QAAiC,mBAAjBjO,EAAKiO,QAAyBjO,EAAKiO,QAAUrE,EAASqE,QACtEC,iBAAmD,kBAA1BlO,EAAKkO,iBAAiClO,EAAKkO,iBAAmBtE,EAASsE,iBAChGC,OAAQA,EACR7H,OAAQA,EACR8H,UAAWA,EACXC,cAA6C,mBAAvBrO,EAAKqO,cAA+BrO,EAAKqO,cAAgBzE,EAASyE,cACxFE,UAAqC,kBAAnBvO,EAAKuO,UAA0BvO,EAAKuO,UAAY3E,EAAS2E,UAC3EG,KAA2B,mBAAd1O,EAAK0O,KAAsB1O,EAAK0O,KAAO,KACpD5D,mBAAuD,kBAA5B9K,EAAK8K,mBAAmC9K,EAAK8K,mBAAqBlB,EAASkB,mBAE9G,CAIkByE,CAA0BvP,GAKV,mBAAnB5c,EAAQ+qB,OAEfzhB,GADAyhB,EAAS/qB,EAAQ+qB,QACJ,GAAIzhB,GACVmP,EAAQzY,EAAQ+qB,UAEvBa,EADS5rB,EAAQ+qB,QAIrB,IAAI5X,EAAO,GAEX,GAAmB,iBAAR7J,GAA4B,OAARA,EAC3B,MAAO,GAGX,IAAI+hB,EAAsBrB,EAAsBhqB,EAAQ0qB,aACpDC,EAAyC,UAAxBU,GAAmCrrB,EAAQ2qB,eAE3DiB,IACDA,EAAUpsB,OAAO2T,KAAK7J,IAGtBtJ,EAAQsrB,MACRM,EAAQN,KAAKtrB,EAAQsrB,MAIzB,IADA,IAAIC,EAAcxB,IACT/mB,EAAI,EAAGA,EAAI4oB,EAAQxpB,SAAUY,EAAG,CACrC,IAAI6Q,EAAM+X,EAAQ5oB,GACdrD,EAAQ2J,EAAIuK,GAEZ7T,EAAQmrB,WAAuB,OAAVxrB,GAGzB0qB,EAAYlX,EAAMkT,EACd1mB,EACAkU,EACAwX,EACAV,EACA3qB,EAAQ0mB,iBACR1mB,EAAQ0nB,mBACR1nB,EAAQmrB,UACRnrB,EAAQ4qB,gBACR5qB,EAAQylB,OAASzlB,EAAQ6qB,QAAU,KACnC7qB,EAAQ+qB,OACR/qB,EAAQsrB,KACRtrB,EAAQymB,UACRzmB,EAAQirB,cACRjrB,EAAQkjB,OACRljB,EAAQgrB,UACRhrB,EAAQ8qB,iBACR9qB,EAAQ8mB,QACRyE,GAER,CAEA,IAAIa,EAASjZ,EAAKjT,KAAKF,EAAQwjB,WAC3B0G,GAAoC,IAA3BlqB,EAAQyqB,eAA0B,IAAM,GAYrD,OAVIzqB,EAAQ+mB,kBACgB,eAApB/mB,EAAQ8mB,QAERoD,GAAU,uBAGVA,GAAU,mBAIXkC,EAAOhqB,OAAS,EAAI8nB,EAASkC,EAAS,EACjD,C,4BCjWA,IAAI9F,EAAU,EAAQ,OAClByD,EAAiB,EAAQ,KAEzBvT,EAAMhX,OAAOE,UAAUsL,eACvByN,EAAUhR,MAAMgR,QAIhB4T,EAAkBtC,IAElBf,EAAe,SAAsB1f,EAAKgjB,GAE1C,OADAD,EAAgB5V,IAAInN,EAAKgjB,GAClBhjB,CACX,EAEIqf,EAAa,SAAoBrf,GACjC,OAAO+iB,EAAgB7V,IAAIlN,EAC/B,EAEIijB,EAAc,SAAqBjjB,GACnC,OAAO+iB,EAAgBzsB,IAAI0J,EAC/B,EAEIkjB,EAAc,SAAqBljB,EAAKgjB,GACxCD,EAAgB5V,IAAInN,EAAKgjB,EAC7B,EAEIG,EAAY,WAEZ,IADA,IAAIphB,EAAQ,GACHrI,EAAI,EAAGA,EAAI,MAAOA,EACvBqI,EAAMA,EAAMjJ,QAAU,MAAQY,EAAI,GAAK,IAAM,IAAMA,EAAE7B,SAAS,KAAK0Z,cAGvE,OAAOxP,CACX,CAPe,GA4BXqhB,EAAgB,SAAuBC,EAAQ3sB,GAE/C,IADA,IAAIsJ,EAAMtJ,GAAWA,EAAQwnB,aAAe,CAAErd,UAAW,MAAS,CAAC,EAC1DnH,EAAI,EAAGA,EAAI2pB,EAAOvqB,SAAUY,OACR,IAAd2pB,EAAO3pB,KACdsG,EAAItG,GAAK2pB,EAAO3pB,IAIxB,OAAOsG,CACX,EAuHIhM,EAAQ,KA6IZ6F,EAAOC,QAAU,CACbspB,cAAeA,EACfE,OApKS,SAA4B9gB,EAAQ6gB,GAC7C,OAAOntB,OAAO2T,KAAKwZ,GAAQE,OAAO,SAAUC,EAAKjZ,GAE7C,OADAiZ,EAAIjZ,GAAO8Y,EAAO9Y,GACXiZ,CACX,EAAGhhB,EACP,EAgKI8c,QA9BU,SAAiBpnB,EAAGC,EAAGolB,EAAYW,GAE7C,GAAImB,EAAWnnB,GAAI,CACf,IAAIurB,EAAWR,EAAY/qB,GAAK,EAGhC,OAFAA,EAAEurB,GAAYtrB,EACd+qB,EAAYhrB,EAAGurB,GACRvrB,CACX,CAEA,IAAIb,EAAS,GAAGoQ,OAAOvP,EAAGC,GAC1B,OAAId,EAAOyB,OAASykB,EACTmC,EAAa0D,EAAc/rB,EAAQ,CAAE6mB,aAAcA,IAAiB7mB,EAAOyB,OAAS,GAExFzB,CACX,EAiBImpB,QAnEU,SAAiBnqB,GAI3B,IAHA,IAAIqtB,EAAQ,CAAC,CAAE1jB,IAAK,CAAE8N,EAAGzX,GAASsB,KAAM,MACpCgsB,EAAO,GAEFjqB,EAAI,EAAGA,EAAIgqB,EAAM5qB,SAAUY,EAKhC,IAJA,IAAIjC,EAAOisB,EAAMhqB,GACbsG,EAAMvI,EAAKuI,IAAIvI,EAAKE,MAEpBkS,EAAO3T,OAAO2T,KAAK7J,GACd5B,EAAI,EAAGA,EAAIyL,EAAK/Q,SAAUsF,EAAG,CAClC,IAAImM,EAAMV,EAAKzL,GACXqgB,EAAMze,EAAIuK,GACK,iBAARkU,GAA4B,OAARA,IAAuC,IAAvBkF,EAAKnqB,QAAQilB,KACxDiF,EAAMA,EAAM5qB,QAAU,CAAEkH,IAAKA,EAAKrI,KAAM4S,GACxCoZ,EAAKA,EAAK7qB,QAAU2lB,EAE5B,CAKJ,OAtPe,SAAsBiF,GACrC,KAAOA,EAAM5qB,OAAS,GAAG,CACrB,IAAIrB,EAAOisB,EAAM9pB,MACboG,EAAMvI,EAAKuI,IAAIvI,EAAKE,MAExB,GAAIwX,EAAQnP,GAAM,CAGd,IAFA,IAAI4jB,EAAY,GAEPxlB,EAAI,EAAGA,EAAI4B,EAAIlH,SAAUsF,OACR,IAAX4B,EAAI5B,KACXwlB,EAAUA,EAAU9qB,QAAUkH,EAAI5B,IAI1C3G,EAAKuI,IAAIvI,EAAKE,MAAQisB,CAC1B,CACJ,CACJ,CAmOIC,CAAaH,GAENrtB,CACX,EA8CIqlB,OAhKS,SAAUtjB,EAAK0rB,EAAgBtG,GACxC,IAAIuG,EAAiB3rB,EAAI+C,QAAQ,MAAO,KACxC,GAAgB,eAAZqiB,EAEA,OAAOuG,EAAe5oB,QAAQ,iBAAkB6oB,UAGpD,IACI,OAAOze,mBAAmBwe,EAC9B,CAAE,MAAOjjB,GACL,OAAOijB,CACX,CACJ,EAqJI5H,OA/IS,SAAgB/jB,EAAK6rB,EAAgBzG,EAAS0G,EAAMtK,GAG7D,GAAmB,IAAfxhB,EAAIU,OACJ,OAAOV,EAGX,IAAI6J,EAAS7J,EAOb,GANmB,iBAARA,EACP6J,EAAS6C,OAAO1O,UAAUyB,SAAS8G,KAAKvG,GAClB,iBAARA,IACd6J,EAASvH,OAAOtC,IAGJ,eAAZolB,EACA,OAAO2G,OAAOliB,GAAQ9G,QAAQ,kBAAmB,SAAUmjB,GACvD,MAAO,SAAWliB,SAASkiB,EAAG1lB,MAAM,GAAI,IAAM,KAClD,GAIJ,IADA,IAAI+iB,EAAM,GACDvd,EAAI,EAAGA,EAAI6D,EAAOnJ,OAAQsF,GAAKpK,EAAO,CAI3C,IAHA,IAAI6kB,EAAU5W,EAAOnJ,QAAU9E,EAAQiO,EAAOrJ,MAAMwF,EAAGA,EAAIpK,GAASiO,EAChEK,EAAM,GAED5I,EAAI,EAAGA,EAAImf,EAAQ/f,SAAUY,EAAG,CACrC,IAAIkB,EAAIie,EAAQ5d,WAAWvB,GAEjB,KAANkB,GACS,KAANA,GACM,KAANA,GACM,MAANA,GACCA,GAAK,IAAQA,GAAK,IAClBA,GAAK,IAAQA,GAAK,IAClBA,GAAK,IAAQA,GAAK,KAClBgf,IAAWoD,EAAQH,UAAkB,KAANjiB,GAAoB,KAANA,GAEjD0H,EAAIA,EAAIxJ,QAAU+f,EAAQ3d,OAAOxB,GAIjCkB,EAAI,IACJ0H,EAAIA,EAAIxJ,QAAUqqB,EAASvoB,GAI3BA,EAAI,KACJ0H,EAAIA,EAAIxJ,QAAUqqB,EAAS,IAAQvoB,GAAK,GAClCuoB,EAAS,IAAY,GAAJvoB,GAIvBA,EAAI,OAAUA,GAAK,MACnB0H,EAAIA,EAAIxJ,QAAUqqB,EAAS,IAAQvoB,GAAK,IAClCuoB,EAAS,IAASvoB,GAAK,EAAK,IAC5BuoB,EAAS,IAAY,GAAJvoB,IAI3BlB,GAAK,EACLkB,EAAI,QAAiB,KAAJA,IAAc,GAA+B,KAAxBie,EAAQ5d,WAAWvB,IAEzD4I,EAAIA,EAAIxJ,QAAUqqB,EAAS,IAAQvoB,GAAK,IAClCuoB,EAAS,IAASvoB,GAAK,GAAM,IAC7BuoB,EAAS,IAASvoB,GAAK,EAAK,IAC5BuoB,EAAS,IAAY,GAAJvoB,GAC3B,CAEA+gB,GAAOrZ,EAAI1L,KAAK,GACpB,CAEA,OAAO+kB,CACX,EAwEI0G,SA1CW,SAAkBriB,GAC7B,SAAKA,GAAsB,iBAARA,KAITA,EAAI8M,aAAe9M,EAAI8M,YAAYuV,UAAYriB,EAAI8M,YAAYuV,SAASriB,IACtF,EAqCIqf,WAAYA,EACZ1L,SAhDW,SAAkB3T,GAC7B,MAA+C,oBAAxC9J,OAAOE,UAAUyB,SAAS8G,KAAKqB,EAC1C,EA+CI0f,aAAcA,EACdQ,SAtBW,SAAkBzB,EAAKrX,GAClC,GAAI+H,EAAQsP,GAAM,CAEd,IADA,IAAI2F,EAAS,GACJ1qB,EAAI,EAAGA,EAAI+kB,EAAI3lB,OAAQY,GAAK,EACjC0qB,EAAOA,EAAOtrB,QAAUsO,EAAGqX,EAAI/kB,IAEnC,OAAO0qB,CACX,CACA,OAAOhd,EAAGqX,EACd,EAcI8B,MA9QQ,SAASA,EAAM/d,EAAQ6gB,EAAQ3sB,GAEvC,IAAK2sB,EACD,OAAO7gB,EAGX,GAAsB,iBAAX6gB,GAAyC,mBAAXA,EAAuB,CAC5D,GAAIlU,EAAQ3M,GAAS,CACjB,IAAI6hB,EAAY7hB,EAAO1J,OACvB,GAAIpC,GAAyC,iBAAvBA,EAAQ6mB,YAA2B8G,EAAY3tB,EAAQ6mB,WACzE,OAAOmC,EAAa0D,EAAc5gB,EAAOiF,OAAO4b,GAAS3sB,GAAU2tB,GAEvE7hB,EAAO6hB,GAAahB,CACxB,KAAO,KAAI7gB,GAA4B,iBAAXA,EAaxB,MAAO,CAACA,EAAQ6gB,GAZhB,GAAIhE,EAAW7c,GAAS,CAEpB,IAAIihB,EAAWR,EAAYzgB,GAAU,EACrCA,EAAOihB,GAAYJ,EACnBH,EAAY1gB,EAAQihB,EACxB,MACK/sB,IAAYA,EAAQwnB,cAAgBxnB,EAAQ2mB,mBACzCnQ,EAAIvO,KAAKzI,OAAOE,UAAWitB,MAE/B7gB,EAAO6gB,IAAU,EAIzB,CAEA,OAAO7gB,CACX,CAEA,IAAKA,GAA4B,iBAAXA,EAAqB,CACvC,GAAI6c,EAAWgE,GAAS,CAMpB,IAJA,IAAIiB,EAAapuB,OAAO2T,KAAKwZ,GACzBhsB,EAASX,GAAWA,EAAQwnB,aAC1B,CAAErd,UAAW,KAAM,EAAG2B,GACtB,CAAE,EAAGA,GACFvJ,EAAI,EAAGA,EAAIqrB,EAAWxrB,OAAQG,IAEnC5B,EADa+E,SAASkoB,EAAWrrB,GAAI,IACrB,GAAKoqB,EAAOiB,EAAWrrB,IAE3C,OAAOymB,EAAaroB,EAAQ4rB,EAAYI,GAAU,EACtD,CACA,IAAIkB,EAAW,CAAC/hB,GAAQiF,OAAO4b,GAC/B,OAAI3sB,GAAyC,iBAAvBA,EAAQ6mB,YAA2BgH,EAASzrB,OAASpC,EAAQ6mB,WACxEmC,EAAa0D,EAAcmB,EAAU7tB,GAAU6tB,EAASzrB,OAAS,GAErEyrB,CACX,CAEA,IAAIC,EAAchiB,EAKlB,OAJI2M,EAAQ3M,KAAY2M,EAAQkU,KAC5BmB,EAAcpB,EAAc5gB,EAAQ9L,IAGpCyY,EAAQ3M,IAAW2M,EAAQkU,IAC3BA,EAAO7S,QAAQ,SAAU/Y,EAAMiC,GAC3B,GAAIwT,EAAIvO,KAAK6D,EAAQ9I,GAAI,CACrB,IAAI+qB,EAAajiB,EAAO9I,GACpB+qB,GAAoC,iBAAfA,GAA2BhtB,GAAwB,iBAATA,EAC/D+K,EAAO9I,GAAK6mB,EAAMkE,EAAYhtB,EAAMf,GAEpC8L,EAAOA,EAAO1J,QAAUrB,CAEhC,MACI+K,EAAO9I,GAAKjC,CAEpB,GACO+K,GAGJtM,OAAO2T,KAAKwZ,GAAQE,OAAO,SAAUC,EAAKjZ,GAC7C,IAAIlU,EAAQgtB,EAAO9Y,GAWnB,GATI2C,EAAIvO,KAAK6kB,EAAKjZ,GACdiZ,EAAIjZ,GAAOgW,EAAMiD,EAAIjZ,GAAMlU,EAAOK,GAElC8sB,EAAIjZ,GAAOlU,EAGXgpB,EAAWgE,KAAYhE,EAAWmE,IAClC9D,EAAa8D,EAAKP,EAAYI,IAE9BhE,EAAWmE,GAAM,CACjB,IAAIkB,EAAStoB,SAASmO,EAAK,IACvB7P,OAAOgqB,KAAYna,GAAOma,GAAU,GAAKA,EAASzB,EAAYO,IAC9DN,EAAYM,EAAKkB,EAEzB,CAEA,OAAOlB,CACX,EAAGgB,EACP,E,0BChKA,IAAItX,EAAMhX,OAAOE,UAAUsL,eAU3B,SAASga,EAAOjhB,GACd,IACE,OAAO8K,mBAAmB9K,EAAMU,QAAQ,MAAO,KACjD,CAAE,MAAO2F,GACP,OAAO,IACT,CACF,CASA,SAASqb,EAAO1hB,GACd,IACE,OAAOgL,mBAAmBhL,EAC5B,CAAE,MAAOqG,GACP,OAAO,IACT,CACF,CAmFAhH,EAAQijB,UA1CR,SAAwB/c,EAAK4gB,GAC3BA,EAASA,GAAU,GAEnB,IACIvqB,EACAkU,EAFAoa,EAAQ,GASZ,IAAKpa,IAFD,iBAAoBqW,IAAQA,EAAS,KAE7B5gB,EACV,GAAIkN,EAAIvO,KAAKqB,EAAKuK,GAAM,CAkBtB,IAjBAlU,EAAQ2J,EAAIuK,KAMGlU,UAAqC8P,MAAM9P,KACxDA,EAAQ,IAGVkU,EAAM4R,EAAO5R,GACblU,EAAQ8lB,EAAO9lB,GAMH,OAARkU,GAA0B,OAAVlU,EAAgB,SACpCsuB,EAAMhrB,KAAK4Q,EAAK,IAAKlU,EACvB,CAGF,OAAOsuB,EAAM7rB,OAAS8nB,EAAS+D,EAAM/tB,KAAK,KAAO,EACnD,EAMAkD,EAAQ4Q,MA3ER,SAAqBka,GAKnB,IAJA,IAEI7b,EAFA8b,EAAS,uBACTxtB,EAAS,CAAC,EAGP0R,EAAO8b,EAAO9c,KAAK6c,IAAQ,CAChC,IAAIra,EAAMmR,EAAO3S,EAAK,IAClB1S,EAAQqlB,EAAO3S,EAAK,IAUZ,OAARwB,GAA0B,OAAVlU,GAAkBkU,KAAOlT,IAC7CA,EAAOkT,GAAOlU,EAChB,CAEA,OAAOgB,CACT,C,wBCrDAwC,EAAOC,QAAU,SAAkBgrB,EAAMna,GAIvC,GAHAA,EAAWA,EAASlP,MAAM,KAAK,KAC/BqpB,GAAQA,GAEG,OAAO,EAElB,OAAQna,GACN,IAAK,OACL,IAAK,KACL,OAAgB,KAATma,EAEP,IAAK,QACL,IAAK,MACL,OAAgB,MAATA,EAEP,IAAK,MACL,OAAgB,KAATA,EAEP,IAAK,SACL,OAAgB,KAATA,EAEP,IAAK,OACL,OAAO,EAGT,OAAgB,IAATA,CACT,C,4BCnCA,IAAI9Z,EAAY,EAAQ,OACpB+Z,EAAU,EAAQ,OAElBjd,EAAQkD,EAAU,yBAClBjM,EAAa,EAAQ,OAGzBlF,EAAOC,QAAU,SAAqBkrB,GACrC,IAAKD,EAAQC,GACZ,MAAM,IAAIjmB,EAAW,4BAEtB,OAAO,SAAcqU,GACpB,OAA2B,OAApBtL,EAAMkd,EAAO5R,EACrB,CACD,C,4BCdA,IAAI1T,EAAe,EAAQ,OACvBlJ,EAAS,EAAQ,OACjByuB,EAAiB,EAAQ,MAAR,GACjBrkB,EAAO,EAAQ,OAEf7B,EAAa,EAAQ,OACrB8S,EAASnS,EAAa,gBAG1B7F,EAAOC,QAAU,SAA2BsN,EAAItO,GAC/C,GAAkB,mBAAPsO,EACV,MAAM,IAAIrI,EAAW,0BAEtB,GAAsB,iBAAXjG,GAAuBA,EAAS,GAAKA,EAAS,YAAc+Y,EAAO/Y,KAAYA,EACzF,MAAM,IAAIiG,EAAW,8CAGtB,IAAIsB,EAAQxB,UAAU/F,OAAS,KAAO+F,UAAU,GAE5CqmB,GAA+B,EAC/BC,GAA2B,EAC/B,GAAI,WAAY/d,GAAMxG,EAAM,CAC3B,IAAIN,EAAOM,EAAKwG,EAAI,UAChB9G,IAASA,EAAKC,eACjB2kB,GAA+B,GAE5B5kB,IAASA,EAAKG,WACjB0kB,GAA2B,EAE7B,CASA,OAPID,GAAgCC,IAA6B9kB,KAC5D4kB,EACHzuB,EAA4C,EAAM,SAAUsC,GAAQ,GAAM,GAE1EtC,EAA4C,EAAM,SAAUsC,IAGvDsO,CACR,C,4BCvCA,IAAIsN,EAAU,EAAQ,OAElB3V,EAAa,EAAQ,OAUrBqmB,EAAc,SAAUzjB,EAAM4I,EAAK8a,GAMtC,IAJA,IAEIC,EAFA9Q,EAAO7S,EAIkB,OAArB2jB,EAAO9Q,EAAK+Q,MAAe/Q,EAAO8Q,EACzC,GAAIA,EAAK/a,MAAQA,EAOhB,OANAiK,EAAK+Q,KAAOD,EAAKC,KACZF,IAEJC,EAAKC,KAAqD5jB,EAAS,KACnEA,EAAK4jB,KAAOD,GAENA,CAGV,EAwCAzrB,EAAOC,QAAU,WAKgD,IAAI0rB,EAGhEC,EAAU,CACbC,OAAQ,SAAUnb,GACjB,IAAKkb,EAAQvY,IAAI3C,GAChB,MAAM,IAAIxL,EAAW,iCAAmC2V,EAAQnK,GAElE,EACA,OAAU,SAAUA,GACnB,IAAIgP,EAAOiM,GAAMA,EAAGD,KAChBI,EAvBU,SAAUC,EAASrb,GACnC,GAAIqb,EACH,OAAOR,EAAYQ,EAASrb,GAAK,EAEnC,CAmBqBsb,CAAWL,EAAIjb,GAIjC,OAHIob,GAAepM,GAAQA,IAASoM,IACnCH,OAAK,KAEGG,CACV,EACArvB,IAAK,SAAUiU,GACd,OA5DW,SAAUqb,EAASrb,GAChC,GAAKqb,EAAL,CAGA,IAAI5yB,EAAOoyB,EAAYQ,EAASrb,GAChC,OAAOvX,GAAQA,EAAKqD,KAFpB,CAGD,CAsDUyvB,CAAQN,EAAIjb,EACpB,EACA2C,IAAK,SAAU3C,GACd,OAzCW,SAAUqb,EAASrb,GAChC,QAAKqb,KAGIR,EAAYQ,EAASrb,EAC/B,CAoCUwb,CAAQP,EAAIjb,EACpB,EACA4C,IAAK,SAAU5C,EAAKlU,GACdmvB,IAEJA,EAAK,CACJD,UAAM,IA7DG,SAAUK,EAASrb,EAAKlU,GACrC,IAAIrD,EAAOoyB,EAAYQ,EAASrb,GAC5BvX,EACHA,EAAKqD,MAAQA,EAGbuvB,EAAQL,KAA+E,CACtFhb,IAAKA,EACLgb,KAAMK,EAAQL,KACdlvB,MAAOA,EAGV,CAqDG2vB,CAA8C,EAAMzb,EAAKlU,EAC1D,GAGD,OAAOovB,CACR,C,4BC9GA,IAAI/lB,EAAe,EAAQ,OACvBsL,EAAY,EAAQ,OACpB0J,EAAU,EAAQ,OAElB3V,EAAa,EAAQ,OACrBknB,EAAOvmB,EAAa,SAAS,GAG7BwmB,EAAUlb,EAAU,qBAAqB,GAEzCmb,EAAUnb,EAAU,qBAAqB,GAEzCob,EAAUpb,EAAU,qBAAqB,GAEzCqb,EAAarb,EAAU,wBAAwB,GAE/Csb,EAAWtb,EAAU,sBAAsB,GAG/CnR,EAAOC,UAAYmsB,GAAmD,WAKhC,IAAIM,EAGrCd,EAAU,CACbC,OAAQ,SAAUnb,GACjB,IAAKkb,EAAQvY,IAAI3C,GAChB,MAAM,IAAIxL,EAAW,iCAAmC2V,EAAQnK,GAElE,EACA,OAAU,SAAUA,GACnB,GAAIgc,EAAI,CACP,IAAIlvB,EAASgvB,EAAWE,EAAIhc,GAI5B,OAHqB,IAAjB+b,EAASC,KACZA,OAAK,GAEClvB,CACR,CACA,OAAO,CACR,EACAf,IAAK,SAAUiU,GACd,GAAIgc,EACH,OAAOL,EAAQK,EAAIhc,EAErB,EACA2C,IAAK,SAAU3C,GACd,QAAIgc,GACIH,EAAQG,EAAIhc,EAGrB,EACA4C,IAAK,SAAU5C,EAAKlU,GACdkwB,IAEJA,EAAK,IAAIN,GAEVE,EAAQI,EAAIhc,EAAKlU,EAClB,GAID,OAAOovB,CACR,C,4BCjEA,IAAI/lB,EAAe,EAAQ,OACvBsL,EAAY,EAAQ,OACpB0J,EAAU,EAAQ,OAClB8R,EAAoB,EAAQ,OAE5BznB,EAAa,EAAQ,OACrB0nB,EAAW/mB,EAAa,aAAa,GAGrCgnB,EAAc1b,EAAU,yBAAyB,GAEjD2b,EAAc3b,EAAU,yBAAyB,GAEjD4b,EAAc5b,EAAU,yBAAyB,GAEjD6b,EAAiB7b,EAAU,4BAA4B,GAG3DnR,EAAOC,QAAU2sB,EAC6B,WAKM,IAAIK,EACfP,EAGnCd,EAAU,CACbC,OAAQ,SAAUnb,GACjB,IAAKkb,EAAQvY,IAAI3C,GAChB,MAAM,IAAIxL,EAAW,iCAAmC2V,EAAQnK,GAElE,EACA,OAAU,SAAUA,GACnB,GAAIkc,GAAYlc,IAAuB,iBAARA,GAAmC,mBAARA,IACzD,GAAIuc,EACH,OAAOD,EAAeC,EAAKvc,QAEtB,GAAIic,GACND,EACH,OAAOA,EAAW,OAAEhc,GAGtB,OAAO,CACR,EACAjU,IAAK,SAAUiU,GACd,OAAIkc,GAAYlc,IAAuB,iBAARA,GAAmC,mBAARA,IACrDuc,EACIJ,EAAYI,EAAKvc,GAGnBgc,GAAMA,EAAGjwB,IAAIiU,EACrB,EACA2C,IAAK,SAAU3C,GACd,OAAIkc,GAAYlc,IAAuB,iBAARA,GAAmC,mBAARA,IACrDuc,EACIF,EAAYE,EAAKvc,KAGjBgc,GAAMA,EAAGrZ,IAAI3C,EACvB,EACA4C,IAAK,SAAU5C,EAAKlU,GACfowB,GAAYlc,IAAuB,iBAARA,GAAmC,mBAARA,IACpDuc,IACJA,EAAM,IAAIL,GAEXE,EAAYG,EAAKvc,EAAKlU,IACZmwB,IACLD,IACJA,EAAKC,KAGgC,EAAKrZ,IAAI5C,EAAKlU,GAEtD,GAID,OAAOovB,CACR,EACEe,C,0BCjFH,IAAIznB,EAAa,EAAQ,OACrB2V,EAAU,EAAQ,OAClBqS,EAAqB,EAAQ,OAC7BP,EAAoB,EAAQ,OAG5BQ,EAFwB,EAAQ,QAEOR,GAAqBO,EAGhEltB,EAAOC,QAAU,WAGmB,IAAImtB,EAGnCxB,EAAU,CACbC,OAAQ,SAAUnb,GACjB,IAAKkb,EAAQvY,IAAI3C,GAChB,MAAM,IAAIxL,EAAW,iCAAmC2V,EAAQnK,GAElE,EACA,OAAU,SAAUA,GACnB,QAAS0c,GAAgBA,EAAqB,OAAE1c,EACjD,EACAjU,IAAK,SAAUiU,GACd,OAAO0c,GAAgBA,EAAa3wB,IAAIiU,EACzC,EACA2C,IAAK,SAAU3C,GACd,QAAS0c,GAAgBA,EAAa/Z,IAAI3C,EAC3C,EACA4C,IAAK,SAAU5C,EAAKlU,GACd4wB,IACJA,EAAeD,KAGhBC,EAAa9Z,IAAI5C,EAAKlU,EACvB,GAGD,OAAOovB,CACR,C,eC1CA,IAAIyB,EAAgB,EAAQ,OACxBnwB,EAAW,EAAQ,MACnBzD,EAAS,EAAQ,OACjB6zB,EAAc,EAAQ,OACtB9c,EAAM,EAAQ,OAEdD,EAAOtQ,EAEXsQ,EAAKQ,QAAU,SAAU0I,EAAMzI,GAE7ByI,EADmB,iBAATA,EACHjJ,EAAIK,MAAM4I,GAEVhgB,EAAOggB,GAKf,IAAI8T,GAAoE,IAAlD,WAAOC,SAAS1c,SAAS2c,OAAO,aAAsB,QAAU,GAElF3c,EAAW2I,EAAK3I,UAAYyc,EAC5BG,EAAOjU,EAAKkU,UAAYlU,EAAKiU,KAC7BzC,EAAOxR,EAAKwR,KACZlW,EAAO0E,EAAK1E,MAAQ,IAGpB2Y,IAA+B,IAAvBA,EAAK/tB,QAAQ,OACxB+tB,EAAO,IAAMA,EAAO,KAGrBjU,EAAKjJ,KAAOkd,EAAQ5c,EAAW,KAAO4c,EAAQ,KAAOzC,EAAO,IAAMA,EAAO,IAAMlW,EAC/E0E,EAAKrc,QAAUqc,EAAKrc,QAAU,OAAOsa,cACrC+B,EAAKmU,QAAUnU,EAAKmU,SAAW,CAAC,EAIhC,IAAIC,EAAM,IAAIR,EAAc5T,GAG5B,OAFIzI,GACH6c,EAAIC,GAAG,WAAY9c,GACb6c,CACR,EAEAtd,EAAK9T,IAAM,SAAcgd,EAAMzI,GAC9B,IAAI6c,EAAMtd,EAAKQ,QAAQ0I,EAAMzI,GAE7B,OADA6c,EAAIhvB,MACGgvB,CACR,EAEAtd,EAAK8c,cAAgBA,EACrB9c,EAAKwd,gBAAkB7wB,EAAS6wB,gBAEhCxd,EAAKyd,MAAQ,WAAa,EAC1Bzd,EAAKyd,MAAMC,kBAAoB,EAE/B1d,EAAK2d,YAAc,IAAI3d,EAAKyd,MAE5Bzd,EAAK4d,aAAeb,EAEpB/c,EAAK6d,QAAU,CACd,WACA,UACA,OACA,SACA,MACA,OACA,OACA,WACA,QACA,aACA,QACA,OACA,SACA,UACA,QACA,OACA,WACA,YACA,QACA,MACA,SACA,SACA,YACA,QACA,SACA,c,YC1ED,IAAIC,EACJ,SAASC,IAER,QAAY51B,IAAR21B,EAAmB,OAAOA,EAE9B,GAAI,WAAOE,eAAgB,CAC1BF,EAAM,IAAI,WAAOE,eAIjB,IACCF,EAAIG,KAAK,MAAO,WAAOC,eAAiB,IAAM,sBAC/C,CAAE,MAAMxnB,GACPonB,EAAM,IACP,CACD,MAECA,EAAM,KAEP,OAAOA,CACR,CAEA,SAASK,EAAkBjzB,GAC1B,IAAI4yB,EAAMC,IACV,IAAKD,EAAK,OAAO,EACjB,IAEC,OADAA,EAAIM,aAAelzB,EACZ4yB,EAAIM,eAAiBlzB,CAC7B,CAAE,MAAOwL,GAAI,CACb,OAAO,CACR,CAeA,SAAS2nB,EAAYpyB,GACpB,MAAwB,mBAAVA,CACf,CAxDAyD,EAAQ4uB,MAAQD,EAAW,WAAOC,QAAUD,EAAW,WAAOE,gBAE9D7uB,EAAQ8uB,eAAiBH,EAAW,WAAOI,gBAE3C/uB,EAAQgvB,gBAAkBL,EAAW,WAAOM,iBAuC5CjvB,EAAQkvB,YAAclvB,EAAQ4uB,OAASH,EAAiB,eAIxDzuB,EAAQmvB,UAAYnvB,EAAQ4uB,OAASH,EAAiB,aACtDzuB,EAAQovB,uBAAyBpvB,EAAQ4uB,OAASH,EAAiB,2BAInEzuB,EAAQqvB,iBAAmBrvB,EAAQ4uB,SAAUP,KAAWM,EAAWN,IAASgB,kBAM5EjB,EAAM,I,4CC1DFkB,EAAa,EAAQ,MACrBC,EAAW,EAAQ,OACnBtyB,EAAW,EAAQ,MACnBuyB,EAAS,EAAQ,OAEjB1B,EAAkB7wB,EAAS6wB,gBAC3B2B,EAAUxyB,EAASyyB,YAgBnBtC,EAAgBrtB,EAAOC,QAAU,SAAUwZ,GAC9C,IAYImW,EAZApb,EAAOlZ,KACXm0B,EAAOI,SAAS/qB,KAAK0P,GAErBA,EAAKsb,MAAQrW,EACbjF,EAAKub,MAAQ,GACbvb,EAAKwb,SAAW,CAAC,EACbvW,EAAKwW,MACRzb,EAAK0b,UAAU,gBAAiB,SAAWC,EAAOrV,KAAKrB,EAAKwW,MAAMjyB,SAAS,WAC5E3B,OAAO2T,KAAKyJ,EAAKmU,SAASjX,QAAQ,SAAUpW,GAC3CiU,EAAK0b,UAAU3vB,EAAMkZ,EAAKmU,QAAQrtB,GACnC,GAGA,IAAI6vB,GAAW,EACf,GAAkB,kBAAd3W,EAAK4W,MAA6B,mBAAoB5W,IAAS8V,EAAWN,gBAE7EmB,GAAW,EACXR,GAAe,OACT,GAAkB,qBAAdnW,EAAK4W,KAGfT,GAAe,OACT,GAAkB,6BAAdnW,EAAK4W,KAEfT,GAAgBL,EAAWD,qBACrB,IAAK7V,EAAK4W,MAAsB,YAAd5W,EAAK4W,MAAoC,gBAAd5W,EAAK4W,KAIxD,MAAM,IAAI/vB,MAAM,+BAFhBsvB,GAAe,CAGhB,CACApb,EAAK8b,MA9CN,SAAqBV,EAAcQ,GAClC,OAAIb,EAAWV,OAASuB,EAChB,QACGb,EAAWF,sBACd,0BACGE,EAAWH,SACd,YACGG,EAAWJ,aAAeS,EAC7B,cAEA,MAET,CAkCcW,CAAWX,EAAcQ,GACtC5b,EAAKgc,YAAc,KACnBhc,EAAKic,eAAiB,KACtBjc,EAAKkc,aAAe,KAEpBlc,EAAKsZ,GAAG,SAAU,WACjBtZ,EAAKmc,WACN,EACD,EAEAnB,EAASnC,EAAeoC,EAAOI,UAE/BxC,EAAc9wB,UAAU2zB,UAAY,SAAU3vB,EAAM/D,GACnD,IACIo0B,EAAYrwB,EAAKqX,eAIqB,IAAtCiZ,EAAclxB,QAAQixB,KALft1B,KAQN00B,SAASY,GAAa,CAC1BrwB,KAAMA,EACN/D,MAAOA,GAET,EAEA6wB,EAAc9wB,UAAUu0B,UAAY,SAAUvwB,GAC7C,IAAIwwB,EAASz1B,KAAK00B,SAASzvB,EAAKqX,eAChC,OAAImZ,EACIA,EAAOv0B,MACR,IACR,EAEA6wB,EAAc9wB,UAAUy0B,aAAe,SAAUzwB,UACrCjF,KACC00B,SAASzvB,EAAKqX,cAC3B,EAEAyV,EAAc9wB,UAAUo0B,UAAY,WACnC,IAAInc,EAAOlZ,KAEX,IAAIkZ,EAAKyc,WAAT,CAEA,IAAIxX,EAAOjF,EAAKsb,MAEZ,YAAarW,GAAyB,IAAjBA,EAAKyX,SAC7B1c,EAAK2c,WAAW1X,EAAKyX,SAGtB,IAAIE,EAAa5c,EAAKwb,SAClBhxB,EAAO,KACS,QAAhBya,EAAKrc,QAAoC,SAAhBqc,EAAKrc,SAC3B4B,EAAO,IAAIqyB,KAAK7c,EAAKub,MAAO,CACxBt0B,MAAO21B,EAAW,iBAAmB,CAAC,GAAG50B,OAAS,MAK7D,IAAI80B,EAAc,GAalB,GAZAj1B,OAAO2T,KAAKohB,GAAYza,QAAQ,SAAU4a,GACzC,IAAIhxB,EAAO6wB,EAAWG,GAAShxB,KAC3B/D,EAAQ40B,EAAWG,GAAS/0B,MAC5B8H,MAAMgR,QAAQ9Y,GACjBA,EAAMma,QAAQ,SAAUtB,GACvBic,EAAYxxB,KAAK,CAACS,EAAM8U,GACzB,GAEAic,EAAYxxB,KAAK,CAACS,EAAM/D,GAE1B,GAEmB,UAAfgY,EAAK8b,MAAmB,CAC3B,IAAIkB,EAAS,KACb,GAAIjC,EAAWN,gBAAiB,CAC/B,IAAIwC,EAAa,IAAIvC,gBACrBsC,EAASC,EAAWD,OACpBhd,EAAKkd,sBAAwBD,EAEzB,mBAAoBhY,GAAgC,IAAxBA,EAAKkY,iBACpCnd,EAAKgc,YAAc,WAAOW,WAAW,WACpC3c,EAAKod,KAAK,kBACNpd,EAAKkd,uBACRld,EAAKkd,sBAAsBG,OAC7B,EAAGpY,EAAKkY,gBAEV,CAEA,WAAO9C,MAAMra,EAAKsb,MAAMtf,IAAK,CAC5BpT,OAAQoX,EAAKsb,MAAM1yB,OACnBwwB,QAAS0D,EACTtyB,KAAMA,QAAQtG,EACd23B,KAAM,OACNyB,YAAarY,EAAKsY,gBAAkB,UAAY,cAChDP,OAAQA,IACNQ,KAAK,SAAU90B,GACjBsX,EAAKyd,eAAiB/0B,EACtBsX,EAAK0d,cAAa,GAClB1d,EAAK2d,UACN,EAAG,SAAUC,GACZ5d,EAAK0d,cAAa,GACb1d,EAAKyc,YACTzc,EAAKod,KAAK,QAASQ,EACrB,EACD,KAAO,CACN,IAAI/D,EAAM7Z,EAAK6d,KAAO,IAAI,WAAO9D,eACjC,IACCF,EAAIG,KAAKha,EAAKsb,MAAM1yB,OAAQoX,EAAKsb,MAAMtf,KAAK,EAC7C,CAAE,MAAOyF,GAIR,YAHA0I,EAAQ2T,SAAS,WAChB9d,EAAKod,KAAK,QAAS3b,EACpB,EAED,CAGI,iBAAkBoY,IACrBA,EAAIM,aAAena,EAAK8b,OAErB,oBAAqBjC,IACxBA,EAAI0D,kBAAoBtY,EAAKsY,iBAEX,SAAfvd,EAAK8b,OAAoB,qBAAsBjC,GAClDA,EAAIiB,iBAAiB,sCAElB,mBAAoB7V,IACvB4U,EAAI6C,QAAUzX,EAAKkY,eACnBtD,EAAIkE,UAAY,WACf/d,EAAKod,KAAK,iBACX,GAGDN,EAAY3a,QAAQ,SAAUoa,GAC7B1C,EAAImE,iBAAiBzB,EAAO,GAAIA,EAAO,GACxC,GAEAvc,EAAKie,UAAY,KACjBpE,EAAIqE,mBAAqB,WACxB,OAAQrE,EAAIsE,YACX,KAAKjD,EAAQkD,QACb,KAAKlD,EAAQmD,KACZre,EAAKse,iBAGR,EAGmB,4BAAfte,EAAK8b,QACRjC,EAAI0E,WAAa,WAChBve,EAAKse,gBACN,GAGDzE,EAAI2E,QAAU,WACTxe,EAAKyc,aAETzc,EAAK0d,cAAa,GAClB1d,EAAKod,KAAK,QAAS,IAAItxB,MAAM,cAC9B,EAEA,IACC+tB,EAAI4E,KAAKj0B,EACV,CAAE,MAAOiX,GAIR,YAHA0I,EAAQ2T,SAAS,WAChB9d,EAAKod,KAAK,QAAS3b,EACpB,EAED,CACD,CA7HC,CA8HF,EAgBAoX,EAAc9wB,UAAUu2B,eAAiB,WACxC,IAAIte,EAAOlZ,KAEXkZ,EAAK0d,cAAa,GAZnB,SAAsB7D,GACrB,IACC,IAAI6E,EAAS7E,EAAI6E,OACjB,OAAmB,OAAXA,GAA8B,IAAXA,CAC5B,CAAE,MAAOjsB,GACR,OAAO,CACR,CACD,CAOMksB,CAAY3e,EAAK6d,QAAS7d,EAAKyc,aAG/Bzc,EAAKie,WACTje,EAAK2d,WAEN3d,EAAKie,UAAUK,eAAete,EAAK0d,aAAaxtB,KAAK8P,IACtD,EAEA6Y,EAAc9wB,UAAU41B,SAAW,WAClC,IAAI3d,EAAOlZ,KAEPkZ,EAAKyc,aAGTzc,EAAKie,UAAY,IAAI1E,EAAgBvZ,EAAK6d,KAAM7d,EAAKyd,eAAgBzd,EAAK8b,MAAO9b,EAAK0d,aAAaxtB,KAAK8P,IACxGA,EAAKie,UAAU3E,GAAG,QAAS,SAAS7X,GACnCzB,EAAKod,KAAK,QAAS3b,EACpB,GAEAzB,EAAKod,KAAK,WAAYpd,EAAKie,WAC5B,EAEApF,EAAc9wB,UAAU62B,OAAS,SAAUC,EAAOC,EAAUtiB,GAChD1V,KAENy0B,MAAMjwB,KAAKuzB,GAChBriB,GACD,EAEAqc,EAAc9wB,UAAU21B,aAAe,SAAUqB,GAChD,IAAI/e,EAAOlZ,KAEX,WAAOk4B,aAAahf,EAAKkc,cACzBlc,EAAKkc,aAAe,KAEhB6C,GACH,WAAOC,aAAahf,EAAKgc,aACzBhc,EAAKgc,YAAc,MACThc,EAAKic,iBACfjc,EAAKkc,aAAe,WAAOS,WAAW,WACrC3c,EAAKod,KAAK,UACX,EAAGpd,EAAKic,gBAEV,EAEApD,EAAc9wB,UAAUs1B,MAAQxE,EAAc9wB,UAAUk3B,QAAU,SAAUxd,GAC3E,IAAIzB,EAAOlZ,KACXkZ,EAAKyc,YAAa,EAClBzc,EAAK0d,cAAa,GACd1d,EAAKie,YACRje,EAAKie,UAAUxB,YAAa,GACzBzc,EAAK6d,KACR7d,EAAK6d,KAAKR,QACFrd,EAAKkd,uBACbld,EAAKkd,sBAAsBG,QAExB5b,GACHzB,EAAKod,KAAK,QAAS3b,EACrB,EAEAoX,EAAc9wB,UAAUsC,IAAM,SAAUxE,EAAMi5B,EAAUtiB,GAEnC,mBAAT3W,IACV2W,EAAK3W,EACLA,OAAO3B,GAGR+2B,EAAOI,SAAStzB,UAAUsC,IAAIiG,KANnBxJ,KAM8BjB,EAAMi5B,EAAUtiB,EAC1D,EAEAqc,EAAc9wB,UAAU40B,WAAa,SAAUD,EAASlgB,GACvD,IAAIwD,EAAOlZ,KAEP0V,GACHwD,EAAKkf,KAAK,UAAW1iB,GAEtBwD,EAAKic,eAAiBS,EACtB1c,EAAK0d,cAAa,EACnB,EAEA7E,EAAc9wB,UAAUo3B,aAAe,WAAa,EACpDtG,EAAc9wB,UAAUq3B,WAAa,WAAa,EAClDvG,EAAc9wB,UAAUs3B,mBAAqB,WAAa,EAG1D,IAAIhD,EAAgB,CACnB,iBACA,kBACA,iCACA,gCACA,aACA,iBACA,SACA,UACA,OACA,MACA,SACA,OACA,aACA,SACA,UACA,KACA,UACA,oBACA,UACA,M,2CC9VGtB,EAAa,EAAQ,MACrBC,EAAW,EAAQ,OACnBC,EAAS,EAAQ,OAEjBC,EAAUzvB,EAAQ0vB,YAAc,CACnCmE,OAAQ,EACRC,OAAQ,EACRC,iBAAkB,EAClBpB,QAAS,EACTC,KAAM,GAGH9E,EAAkB9tB,EAAQ8tB,gBAAkB,SAAUM,EAAKnxB,EAAUmzB,EAAM4D,GAC9E,IAAIzf,EAAOlZ,KAiBX,GAhBAm0B,EAAOyE,SAASpvB,KAAK0P,GAErBA,EAAK8b,MAAQD,EACb7b,EAAKoZ,QAAU,CAAC,EAChBpZ,EAAK2f,WAAa,GAClB3f,EAAK4f,SAAW,CAAC,EACjB5f,EAAK6f,YAAc,GAGnB7f,EAAKsZ,GAAG,MAAO,WAEdnP,EAAQ2T,SAAS,WAChB9d,EAAKod,KAAK,QACX,EACD,GAEa,UAATvB,EAAkB,CAYrB,GAXA7b,EAAKyd,eAAiB/0B,EAEtBsX,EAAKhE,IAAMtT,EAASsT,IACpBgE,EAAK8f,WAAap3B,EAASg2B,OAC3B1e,EAAK+f,cAAgBr3B,EAASs3B,WAE9Bt3B,EAAS0wB,QAAQjX,QAAQ,SAAUoa,EAAQrgB,GAC1C8D,EAAKoZ,QAAQld,EAAIkH,eAAiBmZ,EAClCvc,EAAK2f,WAAWr0B,KAAK4Q,EAAKqgB,EAC3B,GAEIxB,EAAWR,eAAgB,CAC9B,IAAInoB,EAAW,IAAIooB,eAAe,CACjCyF,MAAO,SAAUpB,GAEhB,OADAY,GAAY,GACL,IAAItnB,QAAQ,SAAU6R,EAASkW,GACjClgB,EAAKyc,WACRyD,IACSlgB,EAAK1U,KAAKqwB,EAAOrV,KAAKuY,IAC/B7U,IAEAhK,EAAKmgB,aAAenW,CAEtB,EACD,EACAoW,MAAO,WACNX,GAAY,GACPzf,EAAKyc,YACTzc,EAAK1U,KAAK,KACZ,EACA+xB,MAAO,SAAU5b,GAChBge,GAAY,GACPzf,EAAKyc,YACTzc,EAAKod,KAAK,QAAS3b,EACrB,IAGD,IAMC,YALA/Y,EAAS8B,KAAK61B,OAAOjuB,GAAUkuB,MAAM,SAAU7e,GAC9Cge,GAAY,GACPzf,EAAKyc,YACTzc,EAAKod,KAAK,QAAS3b,EACrB,EAED,CAAE,MAAOhP,GAAI,CACd,CAEA,IAAI8tB,EAAS73B,EAAS8B,KAAKg2B,aAC3B,SAASC,IACRF,EAAOE,OAAOjD,KAAK,SAAUx0B,GACxBgX,EAAKyc,aAETgD,EAAYz2B,EAAO+1B,MACf/1B,EAAO+1B,KACV/e,EAAK1U,KAAK,OAGX0U,EAAK1U,KAAKqwB,EAAOrV,KAAKtd,EAAOhB,QAC7By4B,KACD,GAAGH,MAAM,SAAU7e,GAClBge,GAAY,GACPzf,EAAKyc,YACTzc,EAAKod,KAAK,QAAS3b,EACrB,EACD,CACAgf,EACD,MA2BC,GA1BAzgB,EAAK6d,KAAOhE,EACZ7Z,EAAK0gB,KAAO,EAEZ1gB,EAAKhE,IAAM6d,EAAI8G,YACf3gB,EAAK8f,WAAajG,EAAI6E,OACtB1e,EAAK+f,cAAgBlG,EAAImG,WACXnG,EAAI+G,wBAAwBxzB,MAAM,SACxC+U,QAAQ,SAAUoa,GACzB,IAAIsE,EAAUtE,EAAO1xB,MAAM,oBAC3B,GAAIg2B,EAAS,CACZ,IAAI3kB,EAAM2kB,EAAQ,GAAGzd,cACT,eAARlH,QACuBhY,IAAtB8b,EAAKoZ,QAAQld,KAChB8D,EAAKoZ,QAAQld,GAAO,IAErB8D,EAAKoZ,QAAQld,GAAK5Q,KAAKu1B,EAAQ,UACC38B,IAAtB8b,EAAKoZ,QAAQld,GACvB8D,EAAKoZ,QAAQld,IAAQ,KAAO2kB,EAAQ,GAEpC7gB,EAAKoZ,QAAQld,GAAO2kB,EAAQ,GAE7B7gB,EAAK2f,WAAWr0B,KAAKu1B,EAAQ,GAAIA,EAAQ,GAC1C,CACD,GAEA7gB,EAAK8gB,SAAW,kBACX/F,EAAWD,iBAAkB,CACjC,IAAIiG,EAAW/gB,EAAK2f,WAAW,aAC/B,GAAIoB,EAAU,CACb,IAAIC,EAAeD,EAASl2B,MAAM,2BAC9Bm2B,IACHhhB,EAAK8gB,SAAWE,EAAa,GAAG5d,cAElC,CACKpD,EAAK8gB,WACT9gB,EAAK8gB,SAAW,QAClB,CAEF,EAEA9F,EAASzB,EAAiB0B,EAAOyE,UAEjCnG,EAAgBxxB,UAAUk5B,MAAQ,WACjC,IAEIjX,EAFOljB,KAEQq5B,aACfnW,IAHOljB,KAILq5B,aAAe,KACpBnW,IAEF,EAEAuP,EAAgBxxB,UAAUu2B,eAAiB,SAAUmB,GACpD,IAAIzf,EAAOlZ,KAEP+yB,EAAM7Z,EAAK6d,KAEXn1B,EAAW,KACf,OAAQsX,EAAK8b,OACZ,IAAK,OAEJ,IADApzB,EAAWmxB,EAAIqH,cACFz2B,OAASuV,EAAK0gB,KAAM,CAChC,IAAIS,EAAUz4B,EAASwE,OAAO8S,EAAK0gB,MACnC,GAAsB,mBAAlB1gB,EAAK8gB,SAA+B,CAEvC,IADA,IAAIt0B,EAASmvB,EAAOyF,MAAMD,EAAQ12B,QACzBY,EAAI,EAAGA,EAAI81B,EAAQ12B,OAAQY,IACnCmB,EAAOnB,GAA6B,IAAxB81B,EAAQv0B,WAAWvB,GAEhC2U,EAAK1U,KAAKkB,EACX,MACCwT,EAAK1U,KAAK61B,EAASnhB,EAAK8gB,UAEzB9gB,EAAK0gB,KAAOh4B,EAAS+B,MACtB,CACA,MACD,IAAK,cACJ,GAAIovB,EAAIsE,aAAejD,EAAQmD,OAASxE,EAAInxB,SAC3C,MACDA,EAAWmxB,EAAInxB,SACfsX,EAAK1U,KAAKqwB,EAAOrV,KAAK,IAAIjQ,WAAW3N,KACrC,MACD,IAAK,0BAEJ,GADAA,EAAWmxB,EAAInxB,SACXmxB,EAAIsE,aAAejD,EAAQkD,UAAY11B,EAC1C,MACDsX,EAAK1U,KAAKqwB,EAAOrV,KAAK,IAAIjQ,WAAW3N,KACrC,MACD,IAAK,YAEJ,GADAA,EAAWmxB,EAAInxB,SACXmxB,EAAIsE,aAAejD,EAAQkD,QAC9B,MACD,IAAImC,EAAS,IAAI,WAAOc,eACxBd,EAAOhC,WAAa,WACfgC,EAAOv3B,OAAOs4B,WAAathB,EAAK0gB,OACnC1gB,EAAK1U,KAAKqwB,EAAOrV,KAAK,IAAIjQ,WAAWkqB,EAAOv3B,OAAOuB,MAAMyV,EAAK0gB,SAC9D1gB,EAAK0gB,KAAOH,EAAOv3B,OAAOs4B,WAE5B,EACAf,EAAOgB,OAAS,WACf9B,GAAY,GACZzf,EAAK1U,KAAK,KACX,EAEAi1B,EAAOiB,kBAAkB94B,GAKvBsX,EAAK6d,KAAKM,aAAejD,EAAQmD,MAAuB,cAAfre,EAAK8b,QACjD2D,GAAY,GACZzf,EAAK1U,KAAK,MAEZ,C,wBC9MA,IAAIm2B,EAAQ,CAAC,EAEb,SAASC,EAAgBzxB,EAAMpE,EAAS81B,GACjCA,IACHA,EAAO71B,OAWT,IAAI81B,EAEJ,SAAUC,GAnBZ,IAAwB1hB,EAAUC,EAsB9B,SAASwhB,EAAUE,EAAMC,EAAMC,GAC7B,OAAOH,EAAMvxB,KAAKxJ,KAdtB,SAAoBg7B,EAAMC,EAAMC,GAC9B,MAAuB,iBAAZn2B,EACFA,EAEAA,EAAQi2B,EAAMC,EAAMC,EAE/B,CAQ4BC,CAAWH,EAAMC,EAAMC,KAAUl7B,IAC3D,CAEA,OA1B8BsZ,EAoBJyhB,GApBN1hB,EAoBLyhB,GApBsC75B,UAAYF,OAAOqX,OAAOkB,EAAWrY,WAAYoY,EAASpY,UAAU0W,YAAc0B,EAAUA,EAAS3N,UAAY4N,EA0B/JwhB,CACT,CARA,CAQED,GAEFC,EAAU75B,UAAUgE,KAAO41B,EAAK51B,KAChC61B,EAAU75B,UAAUkI,KAAOA,EAC3BwxB,EAAMxxB,GAAQ2xB,CAChB,CAGA,SAASM,EAAMC,EAAUC,GACvB,GAAItyB,MAAMgR,QAAQqhB,GAAW,CAC3B,IAAInyB,EAAMmyB,EAAS13B,OAKnB,OAJA03B,EAAWA,EAAS/7B,IAAI,SAAUiF,GAChC,OAAOgB,OAAOhB,EAChB,GAEI2E,EAAM,EACD,UAAUoJ,OAAOgpB,EAAO,KAAKhpB,OAAO+oB,EAAS53B,MAAM,EAAGyF,EAAM,GAAGzH,KAAK,MAAO,SAAW45B,EAASnyB,EAAM,GAC3F,IAARA,EACF,UAAUoJ,OAAOgpB,EAAO,KAAKhpB,OAAO+oB,EAAS,GAAI,QAAQ/oB,OAAO+oB,EAAS,IAEzE,MAAM/oB,OAAOgpB,EAAO,KAAKhpB,OAAO+oB,EAAS,GAEpD,CACE,MAAO,MAAM/oB,OAAOgpB,EAAO,KAAKhpB,OAAO/M,OAAO81B,GAElD,CA6BAT,EAAgB,wBAAyB,SAAU31B,EAAM/D,GACvD,MAAO,cAAgBA,EAAQ,4BAA8B+D,EAAO,GACtE,EAAGkH,WACHyuB,EAAgB,uBAAwB,SAAU31B,EAAMo2B,EAAUE,GAEhE,IAAIC,EA/BmBrJ,EAwCnBsJ,EA1BYx4B,EAAaK,EA4B7B,GATwB,iBAAb+3B,IAjCYlJ,EAiCkC,OAAVkJ,EAhCpCj1B,OAAyB,EAAU+rB,KAAmBA,IAiC/DqJ,EAAa,cACbH,EAAWA,EAASr1B,QAAQ,QAAS,KAErCw1B,EAAa,UAhCjB,SAAkBv4B,EAAKkvB,EAAQuJ,GAK7B,YAJiBt+B,IAAbs+B,GAA0BA,EAAWz4B,EAAIU,UAC3C+3B,EAAWz4B,EAAIU,QAGVV,EAAI04B,UAAUD,EAAWvJ,EAAeuJ,KAAcvJ,CAC/D,CA+BMyJ,CAAS32B,EAAM,aAEjBw2B,EAAM,OAAOnpB,OAAOrN,EAAM,KAAKqN,OAAOkpB,EAAY,KAAKlpB,OAAO8oB,EAAMC,EAAU,aACzE,CACL,IAAIl7B,GA/Be,iBAAVmD,IACTA,EAAQ,GAGNA,EAAQ6uB,GALIlvB,EAgCMgC,GA3BUtB,SAGS,IAAhCV,EAAIoB,QAwBe,IAxBCf,GAwBmB,WAAb,YACjCm4B,EAAM,QAASnpB,OAAOrN,EAAM,MAAOqN,OAAOnS,EAAM,KAAKmS,OAAOkpB,EAAY,KAAKlpB,OAAO8oB,EAAMC,EAAU,QACtG,CAGA,OADAI,EAAO,mBAAmBnpB,cAAcipB,EAE1C,EAAGpvB,WACHyuB,EAAgB,4BAA6B,2BAC7CA,EAAgB,6BAA8B,SAAU31B,GACtD,MAAO,OAASA,EAAO,4BACzB,GACA21B,EAAgB,6BAA8B,mBAC9CA,EAAgB,uBAAwB,SAAU31B,GAChD,MAAO,eAAiBA,EAAO,+BACjC,GACA21B,EAAgB,wBAAyB,kCACzCA,EAAgB,yBAA0B,6BAC1CA,EAAgB,6BAA8B,mBAC9CA,EAAgB,yBAA0B,sCAAuCzuB,WACjFyuB,EAAgB,uBAAwB,SAAUiB,GAChD,MAAO,qBAAuBA,CAChC,EAAG1vB,WACHyuB,EAAgB,qCAAsC,oCACtDl2B,EAAOC,QAAQ,EAAQg2B,C,2CCjGnBmB,EAAa/6B,OAAO2T,MAAQ,SAAU7J,GACxC,IAAI6J,EAAO,GACX,IAAK,IAAIU,KAAOvK,EAAK6J,EAAKlQ,KAAK4Q,GAC/B,OAAOV,CACT,EAGAhQ,EAAOC,QAAUo3B,EACjB,IAAInD,EAAW,EAAQ,OACnBrE,EAAW,EAAQ,MACvB,EAAQ,MAAR,CAAoBwH,EAAQnD,GAI1B,IADA,IAAIlkB,EAAOonB,EAAWvH,EAAStzB,WACtB8Y,EAAI,EAAGA,EAAIrF,EAAK/Q,OAAQoW,IAAK,CACpC,IAAIjY,EAAS4S,EAAKqF,GACbgiB,EAAO96B,UAAUa,KAASi6B,EAAO96B,UAAUa,GAAUyyB,EAAStzB,UAAUa,GAC/E,CAEF,SAASi6B,EAAOx6B,GACd,KAAMvB,gBAAgB+7B,GAAS,OAAO,IAAIA,EAAOx6B,GACjDq3B,EAASpvB,KAAKxJ,KAAMuB,GACpBgzB,EAAS/qB,KAAKxJ,KAAMuB,GACpBvB,KAAKg8B,eAAgB,EACjBz6B,KACuB,IAArBA,EAAQ06B,WAAoBj8B,KAAKi8B,UAAW,IACvB,IAArB16B,EAAQ+J,WAAoBtL,KAAKsL,UAAW,IAClB,IAA1B/J,EAAQy6B,gBACVh8B,KAAKg8B,eAAgB,EACrBh8B,KAAKo4B,KAAK,MAAO8D,IAGvB,CA8BA,SAASA,IAEHl8B,KAAKm8B,eAAeC,OAIxB/Y,EAAQ2T,SAASqF,EAASr8B,KAC5B,CACA,SAASq8B,EAAQnjB,GACfA,EAAK3V,KACP,CAvCAxC,OAAOC,eAAe+6B,EAAO96B,UAAW,wBAAyB,CAI/DoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKm8B,eAAeG,aAC7B,IAEFv7B,OAAOC,eAAe+6B,EAAO96B,UAAW,iBAAkB,CAIxDoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKm8B,gBAAkBn8B,KAAKm8B,eAAeI,WACpD,IAEFx7B,OAAOC,eAAe+6B,EAAO96B,UAAW,iBAAkB,CAIxDoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKm8B,eAAex4B,MAC7B,IAeF5C,OAAOC,eAAe+6B,EAAO96B,UAAW,YAAa,CAInDoK,YAAY,EACZlK,IAAK,WACH,YAA4B/D,IAAxB4C,KAAKw8B,qBAAwDp/B,IAAxB4C,KAAKm8B,gBAGvCn8B,KAAKw8B,eAAeC,WAAaz8B,KAAKm8B,eAAeM,SAC9D,EACAzkB,IAAK,SAAa9W,QAGY9D,IAAxB4C,KAAKw8B,qBAAwDp/B,IAAxB4C,KAAKm8B,iBAM9Cn8B,KAAKw8B,eAAeC,UAAYv7B,EAChClB,KAAKm8B,eAAeM,UAAYv7B,EAClC,G,4BCjGFwD,EAAOC,QAAU+3B,EACjB,IAAIC,EAAY,EAAQ,OAExB,SAASD,EAAYn7B,GACnB,KAAMvB,gBAAgB08B,GAAc,OAAO,IAAIA,EAAYn7B,GAC3Do7B,EAAUnzB,KAAKxJ,KAAMuB,EACvB,CAJA,EAAQ,MAAR,CAAoBm7B,EAAaC,GAKjCD,EAAYz7B,UAAU27B,WAAa,SAAU7E,EAAOC,EAAUtiB,GAC5DA,EAAG,KAAMqiB,EACX,C,gCCVIgE,E,WAHJr3B,EAAOC,QAAUi0B,EAMjBA,EAASiE,cAAgBA,EAGhB,sBAAT,IAqBI19B,EApBA29B,EAAkB,SAAyBC,EAAS58B,GACtD,OAAO48B,EAAQC,UAAU78B,GAAMwD,MACjC,EAIIs5B,EAAS,EAAQ,OAGjBpI,EAAS,eACTqI,GAAmC,oBAAX,WAAyB,WAA2B,oBAAX7/B,OAAyBA,OAAyB,oBAAT6b,KAAuBA,KAAO,CAAC,GAAG3J,YAAc,WAAa,EASvK4tB,EAAY,EAAQ,OAGtBh+B,EADEg+B,GAAaA,EAAUC,SACjBD,EAAUC,SAAS,UAEnB,WAAkB,EAI5B,IAWIC,EACAC,EACA9d,EAbA+d,EAAa,EAAQ,OACrBC,EAAc,EAAQ,OAExBC,EADa,EAAQ,OACOA,iBAC1BC,EAAiB,WACnBC,EAAuBD,EAAeC,qBACtCC,EAA4BF,EAAeE,0BAC3CC,EAA6BH,EAAeG,2BAC5CC,EAAqCJ,EAAeI,mCAMtD,EAAQ,MAAR,CAAoBlF,EAAUqE,GAC9B,IAAIc,EAAiBP,EAAYO,eAC7BC,EAAe,CAAC,QAAS,QAAS,UAAW,QAAS,UAY1D,SAASnB,EAAct7B,EAAS4yB,EAAQ8J,GACtClC,EAASA,GAAU,EAAQ,OAC3Bx6B,EAAUA,GAAW,CAAC,EAOE,kBAAb08B,IAAwBA,EAAW9J,aAAkB4H,GAIhE/7B,KAAKk+B,aAAe38B,EAAQ28B,WACxBD,IAAUj+B,KAAKk+B,WAAal+B,KAAKk+B,cAAgB38B,EAAQ48B,oBAI7Dn+B,KAAKs8B,cAAgBmB,EAAiBz9B,KAAMuB,EAAS,wBAAyB08B,GAK9Ej+B,KAAK0F,OAAS,IAAI63B,EAClBv9B,KAAK2D,OAAS,EACd3D,KAAKo+B,MAAQ,KACbp+B,KAAKq+B,WAAa,EAClBr+B,KAAKs+B,QAAU,KACft+B,KAAKo8B,OAAQ,EACbp8B,KAAKu+B,YAAa,EAClBv+B,KAAKw+B,SAAU,EAMfx+B,KAAKy+B,MAAO,EAIZz+B,KAAK0+B,cAAe,EACpB1+B,KAAK2+B,iBAAkB,EACvB3+B,KAAK4+B,mBAAoB,EACzB5+B,KAAK6+B,iBAAkB,EACvB7+B,KAAK8+B,QAAS,EAGd9+B,KAAK++B,WAAkC,IAAtBx9B,EAAQw9B,UAGzB/+B,KAAKg/B,cAAgBz9B,EAAQy9B,YAG7Bh/B,KAAKy8B,WAAY,EAKjBz8B,KAAKi/B,gBAAkB19B,EAAQ09B,iBAAmB,OAGlDj/B,KAAKk/B,WAAa,EAGlBl/B,KAAKm/B,aAAc,EACnBn/B,KAAKyoB,QAAU,KACfzoB,KAAKg4B,SAAW,KACZz2B,EAAQy2B,WACLqF,IAAeA,EAAgB,YACpCr9B,KAAKyoB,QAAU,IAAI4U,EAAc97B,EAAQy2B,UACzCh4B,KAAKg4B,SAAWz2B,EAAQy2B,SAE5B,CACA,SAASY,EAASr3B,GAEhB,GADAw6B,EAASA,GAAU,EAAQ,SACrB/7B,gBAAgB44B,GAAW,OAAO,IAAIA,EAASr3B,GAIrD,IAAI08B,EAAWj+B,gBAAgB+7B,EAC/B/7B,KAAKw8B,eAAiB,IAAIK,EAAct7B,EAASvB,KAAMi+B,GAGvDj+B,KAAKi8B,UAAW,EACZ16B,IAC0B,mBAAjBA,EAAQo4B,OAAqB35B,KAAKm6B,MAAQ54B,EAAQo4B,MAC9B,mBAApBp4B,EAAQ42B,UAAwBn4B,KAAKo/B,SAAW79B,EAAQ42B,UAErE8E,EAAOzzB,KAAKxJ,KACd,CAwDA,SAASq/B,EAAiBlL,EAAQ4D,EAAOC,EAAUsH,EAAYC,GAC7DpgC,EAAM,mBAAoB44B,GAC1B,IAKMyH,EALFC,EAAQtL,EAAOqI,eACnB,GAAc,OAAVzE,EACF0H,EAAMjB,SAAU,EAuNpB,SAAoBrK,EAAQsL,GAE1B,GADAtgC,EAAM,eACFsgC,EAAMrD,MAAV,CACA,GAAIqD,EAAMhX,QAAS,CACjB,IAAIsP,EAAQ0H,EAAMhX,QAAQllB,MACtBw0B,GAASA,EAAMp0B,SACjB87B,EAAM/5B,OAAOlB,KAAKuzB,GAClB0H,EAAM97B,QAAU87B,EAAMvB,WAAa,EAAInG,EAAMp0B,OAEjD,CACA87B,EAAMrD,OAAQ,EACVqD,EAAMhB,KAIRiB,EAAavL,IAGbsL,EAAMf,cAAe,EAChBe,EAAMd,kBACTc,EAAMd,iBAAkB,EACxBgB,EAAcxL,IAnBK,CAsBzB,CA9OIyL,CAAWzL,EAAQsL,QAInB,GADKF,IAAgBC,EA6CzB,SAAsBC,EAAO1H,GAC3B,IAAIyH,EAjPiB30B,EAqPrB,OArPqBA,EAkPFktB,EAjPZlD,EAAO3H,SAASriB,IAAQA,aAAeqyB,GAiPA,iBAAVnF,QAAgC36B,IAAV26B,GAAwB0H,EAAMvB,aACtFsB,EAAK,IAAI7B,EAAqB,QAAS,CAAC,SAAU,SAAU,cAAe5F,IAEtEyH,CACT,CAnD8BK,CAAaJ,EAAO1H,IAC1CyH,EACFzB,EAAe5J,EAAQqL,QAClB,GAAIC,EAAMvB,YAAcnG,GAASA,EAAMp0B,OAAS,EAIrD,GAHqB,iBAAVo0B,GAAuB0H,EAAMvB,YAAcn9B,OAAO+K,eAAeisB,KAAWlD,EAAO5zB,YAC5F82B,EA3MR,SAA6BA,GAC3B,OAAOlD,EAAOrV,KAAKuY,EACrB,CAyMgB+H,CAAoB/H,IAE1BuH,EACEG,EAAMlB,WAAYR,EAAe5J,EAAQ,IAAI2J,GAA2CiC,EAAS5L,EAAQsL,EAAO1H,GAAO,QACtH,GAAI0H,EAAMrD,MACf2B,EAAe5J,EAAQ,IAAIyJ,OACtB,IAAI6B,EAAMhD,UACf,OAAO,EAEPgD,EAAMjB,SAAU,EACZiB,EAAMhX,UAAYuP,GACpBD,EAAQ0H,EAAMhX,QAAQ0Q,MAAMpB,GACxB0H,EAAMvB,YAA+B,IAAjBnG,EAAMp0B,OAAco8B,EAAS5L,EAAQsL,EAAO1H,GAAO,GAAYiI,EAAc7L,EAAQsL,IAE7GM,EAAS5L,EAAQsL,EAAO1H,GAAO,EAEnC,MACUuH,IACVG,EAAMjB,SAAU,EAChBwB,EAAc7L,EAAQsL,IAO1B,OAAQA,EAAMrD,QAAUqD,EAAM97B,OAAS87B,EAAMnD,eAAkC,IAAjBmD,EAAM97B,OACtE,CACA,SAASo8B,EAAS5L,EAAQsL,EAAO1H,EAAOuH,GAClCG,EAAMnB,SAA4B,IAAjBmB,EAAM97B,SAAiB87B,EAAMhB,MAChDgB,EAAMP,WAAa,EACnB/K,EAAOmC,KAAK,OAAQyB,KAGpB0H,EAAM97B,QAAU87B,EAAMvB,WAAa,EAAInG,EAAMp0B,OACzC27B,EAAYG,EAAM/5B,OAAOu6B,QAAQlI,GAAY0H,EAAM/5B,OAAOlB,KAAKuzB,GAC/D0H,EAAMf,cAAcgB,EAAavL,IAEvC6L,EAAc7L,EAAQsL,EACxB,CA3GA1+B,OAAOC,eAAe43B,EAAS33B,UAAW,YAAa,CAIrDoK,YAAY,EACZlK,IAAK,WACH,YAA4B/D,IAAxB4C,KAAKw8B,gBAGFx8B,KAAKw8B,eAAeC,SAC7B,EACAzkB,IAAK,SAAa9W,GAGXlB,KAAKw8B,iBAMVx8B,KAAKw8B,eAAeC,UAAYv7B,EAClC,IAEF03B,EAAS33B,UAAUk3B,QAAUqF,EAAYrF,QACzCS,EAAS33B,UAAUi/B,WAAa1C,EAAY2C,UAC5CvH,EAAS33B,UAAUm+B,SAAW,SAAUzkB,EAAKjF,GAC3CA,EAAGiF,EACL,EAMAie,EAAS33B,UAAUuD,KAAO,SAAUuzB,EAAOC,GACzC,IACIuH,EADAE,EAAQz/B,KAAKw8B,eAcjB,OAZKiD,EAAMvB,WAUTqB,GAAiB,EATI,iBAAVxH,KACTC,EAAWA,GAAYyH,EAAMR,mBACZQ,EAAMzH,WACrBD,EAAQlD,EAAOrV,KAAKuY,EAAOC,GAC3BA,EAAW,IAEbuH,GAAiB,GAKdF,EAAiBr/B,KAAM+3B,EAAOC,GAAU,EAAOuH,EACxD,EAGA3G,EAAS33B,UAAUg/B,QAAU,SAAUlI,GACrC,OAAOsH,EAAiBr/B,KAAM+3B,EAAO,MAAM,GAAM,EACnD,EA6DAa,EAAS33B,UAAUm/B,SAAW,WAC5B,OAAuC,IAAhCpgC,KAAKw8B,eAAe8B,OAC7B,EAGA1F,EAAS33B,UAAUo/B,YAAc,SAAUC,GACpCjD,IAAeA,EAAgB,YACpC,IAAI5U,EAAU,IAAI4U,EAAciD,GAChCtgC,KAAKw8B,eAAe/T,QAAUA,EAE9BzoB,KAAKw8B,eAAexE,SAAWh4B,KAAKw8B,eAAe/T,QAAQuP,SAK3D,IAFA,IAAI5wB,EAAIpH,KAAKw8B,eAAe92B,OAAO66B,KAC/BC,EAAU,GACD,OAANp5B,GACLo5B,GAAW/X,EAAQ0Q,MAAM/xB,EAAErI,MAC3BqI,EAAIA,EAAEgpB,KAKR,OAHApwB,KAAKw8B,eAAe92B,OAAO+6B,QACX,KAAZD,GAAgBxgC,KAAKw8B,eAAe92B,OAAOlB,KAAKg8B,GACpDxgC,KAAKw8B,eAAe74B,OAAS68B,EAAQ78B,OAC9B3D,IACT,EAGA,IAAI0gC,EAAU,WAqBd,SAASC,EAAc14B,EAAGw3B,GACxB,OAAIx3B,GAAK,GAAsB,IAAjBw3B,EAAM97B,QAAgB87B,EAAMrD,MAAc,EACpDqD,EAAMvB,WAAmB,EACzBj2B,GAAMA,EAEJw3B,EAAMnB,SAAWmB,EAAM97B,OAAe87B,EAAM/5B,OAAO66B,KAAKxhC,KAAK4E,OAAmB87B,EAAM97B,QAGxFsE,EAAIw3B,EAAMnD,gBAAemD,EAAMnD,cA5BrC,SAAiCr0B,GAe/B,OAdIA,GAAKy4B,EAEPz4B,EAAIy4B,GAIJz4B,IACAA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,GACXA,KAEKA,CACT,CAYqD24B,CAAwB34B,IACvEA,GAAKw3B,EAAM97B,OAAesE,EAEzBw3B,EAAMrD,MAIJqD,EAAM97B,QAHX87B,EAAMf,cAAe,EACd,GAGX,CA6HA,SAASgB,EAAavL,GACpB,IAAIsL,EAAQtL,EAAOqI,eACnBr9B,EAAM,eAAgBsgC,EAAMf,aAAce,EAAMd,iBAChDc,EAAMf,cAAe,EAChBe,EAAMd,kBACTx/B,EAAM,eAAgBsgC,EAAMnB,SAC5BmB,EAAMd,iBAAkB,EACxBtb,EAAQ2T,SAAS2I,EAAexL,GAEpC,CACA,SAASwL,EAAcxL,GACrB,IAAIsL,EAAQtL,EAAOqI,eACnBr9B,EAAM,gBAAiBsgC,EAAMhD,UAAWgD,EAAM97B,OAAQ87B,EAAMrD,OACvDqD,EAAMhD,YAAcgD,EAAM97B,SAAU87B,EAAMrD,QAC7CjI,EAAOmC,KAAK,YACZmJ,EAAMd,iBAAkB,GAS1Bc,EAAMf,cAAgBe,EAAMnB,UAAYmB,EAAMrD,OAASqD,EAAM97B,QAAU87B,EAAMnD,cAC7EuE,EAAK1M,EACP,CAQA,SAAS6L,EAAc7L,EAAQsL,GACxBA,EAAMN,cACTM,EAAMN,aAAc,EACpB9b,EAAQ2T,SAAS8J,EAAgB3M,EAAQsL,GAE7C,CACA,SAASqB,EAAe3M,EAAQsL,GAwB9B,MAAQA,EAAMjB,UAAYiB,EAAMrD,QAAUqD,EAAM97B,OAAS87B,EAAMnD,eAAiBmD,EAAMnB,SAA4B,IAAjBmB,EAAM97B,SAAe,CACpH,IAAIuF,EAAMu2B,EAAM97B,OAGhB,GAFAxE,EAAM,wBACNg1B,EAAOwF,KAAK,GACRzwB,IAAQu2B,EAAM97B,OAEhB,KACJ,CACA87B,EAAMN,aAAc,CACtB,CAgPA,SAAS4B,EAAwB7nB,GAC/B,IAAIumB,EAAQvmB,EAAKsjB,eACjBiD,EAAMb,kBAAoB1lB,EAAK8nB,cAAc,YAAc,EACvDvB,EAAMZ,kBAAoBY,EAAMX,OAGlCW,EAAMnB,SAAU,EAGPplB,EAAK8nB,cAAc,QAAU,GACtC9nB,EAAK+nB,QAET,CACA,SAASC,EAAiBhoB,GACxB/Z,EAAM,4BACN+Z,EAAKygB,KAAK,EACZ,CAuBA,SAASwH,EAAQhN,EAAQsL,GACvBtgC,EAAM,SAAUsgC,EAAMjB,SACjBiB,EAAMjB,SACTrK,EAAOwF,KAAK,GAEd8F,EAAMZ,iBAAkB,EACxB1K,EAAOmC,KAAK,UACZuK,EAAK1M,GACDsL,EAAMnB,UAAYmB,EAAMjB,SAASrK,EAAOwF,KAAK,EACnD,CAWA,SAASkH,EAAK1M,GACZ,IAAIsL,EAAQtL,EAAOqI,eAEnB,IADAr9B,EAAM,OAAQsgC,EAAMnB,SACbmB,EAAMnB,SAA6B,OAAlBnK,EAAOwF,SACjC,CAmHA,SAASyH,EAASn5B,EAAGw3B,GAEnB,OAAqB,IAAjBA,EAAM97B,OAAqB,MAE3B87B,EAAMvB,WAAYmD,EAAM5B,EAAM/5B,OAAO4B,SAAkBW,GAAKA,GAAKw3B,EAAM97B,QAEtD09B,EAAf5B,EAAMhX,QAAegX,EAAM/5B,OAAOjE,KAAK,IAAqC,IAAxBg+B,EAAM/5B,OAAO/B,OAAoB87B,EAAM/5B,OAAOwN,QAAmBusB,EAAM/5B,OAAO4M,OAAOmtB,EAAM97B,QACnJ87B,EAAM/5B,OAAO+6B,SAGbY,EAAM5B,EAAM/5B,OAAO47B,QAAQr5B,EAAGw3B,EAAMhX,SAE/B4Y,GATP,IAAIA,CAUN,CACA,SAASE,EAAYpN,GACnB,IAAIsL,EAAQtL,EAAOqI,eACnBr9B,EAAM,cAAesgC,EAAMlB,YACtBkB,EAAMlB,aACTkB,EAAMrD,OAAQ,EACd/Y,EAAQ2T,SAASwK,EAAe/B,EAAOtL,GAE3C,CACA,SAASqN,EAAc/B,EAAOtL,GAI5B,GAHAh1B,EAAM,gBAAiBsgC,EAAMlB,WAAYkB,EAAM97B,SAG1C87B,EAAMlB,YAA+B,IAAjBkB,EAAM97B,SAC7B87B,EAAMlB,YAAa,EACnBpK,EAAO8H,UAAW,EAClB9H,EAAOmC,KAAK,OACRmJ,EAAMT,aAAa,CAGrB,IAAIyC,EAAStN,EAAOgI,iBACfsF,GAAUA,EAAOzC,aAAeyC,EAAOC,WAC1CvN,EAAOgE,SAEX,CAEJ,CASA,SAAS9zB,EAAQic,EAAI/X,GACnB,IAAK,IAAIhE,EAAI,EAAGwd,EAAIzB,EAAG3c,OAAQY,EAAIwd,EAAGxd,IACpC,GAAI+b,EAAG/b,KAAOgE,EAAG,OAAOhE,EAE1B,OAAQ,CACV,CA1pBAq0B,EAAS33B,UAAU04B,KAAO,SAAU1xB,GAClC9I,EAAM,OAAQ8I,GACdA,EAAIhB,SAASgB,EAAG,IAChB,IAAIw3B,EAAQz/B,KAAKw8B,eACbmF,EAAQ15B,EAMZ,GALU,IAANA,IAASw3B,EAAMd,iBAAkB,GAK3B,IAAN12B,GAAWw3B,EAAMf,gBAA0C,IAAxBe,EAAMnD,cAAsBmD,EAAM97B,QAAU87B,EAAMnD,cAAgBmD,EAAM97B,OAAS,IAAM87B,EAAMrD,OAGlI,OAFAj9B,EAAM,qBAAsBsgC,EAAM97B,OAAQ87B,EAAMrD,OAC3B,IAAjBqD,EAAM97B,QAAgB87B,EAAMrD,MAAOmF,EAAYvhC,MAAW0/B,EAAa1/B,MACpE,KAKT,GAAU,KAHViI,EAAI04B,EAAc14B,EAAGw3B,KAGNA,EAAMrD,MAEnB,OADqB,IAAjBqD,EAAM97B,QAAc49B,EAAYvhC,MAC7B,KA0BT,IA2BIqhC,EA3BAO,EAASnC,EAAMf,aA6CnB,OA5CAv/B,EAAM,gBAAiByiC,IAGF,IAAjBnC,EAAM97B,QAAgB87B,EAAM97B,OAASsE,EAAIw3B,EAAMnD,gBAEjDn9B,EAAM,6BADNyiC,GAAS,GAMPnC,EAAMrD,OAASqD,EAAMjB,QAEvBr/B,EAAM,mBADNyiC,GAAS,GAEAA,IACTziC,EAAM,WACNsgC,EAAMjB,SAAU,EAChBiB,EAAMhB,MAAO,EAEQ,IAAjBgB,EAAM97B,SAAc87B,EAAMf,cAAe,GAE7C1+B,KAAKm6B,MAAMsF,EAAMnD,eACjBmD,EAAMhB,MAAO,EAGRgB,EAAMjB,UAASv2B,EAAI04B,EAAcgB,EAAOlC,KAInC,QADD4B,EAAPp5B,EAAI,EAASm5B,EAASn5B,EAAGw3B,GAAkB,OAE7CA,EAAMf,aAAee,EAAM97B,QAAU87B,EAAMnD,cAC3Cr0B,EAAI,IAEJw3B,EAAM97B,QAAUsE,EAChBw3B,EAAMP,WAAa,GAEA,IAAjBO,EAAM97B,SAGH87B,EAAMrD,QAAOqD,EAAMf,cAAe,GAGnCiD,IAAU15B,GAAKw3B,EAAMrD,OAAOmF,EAAYvhC,OAElC,OAARqhC,GAAcrhC,KAAKs2B,KAAK,OAAQ+K,GAC7BA,CACT,EA6GAzI,EAAS33B,UAAUk5B,MAAQ,SAAUlyB,GACnC81B,EAAe/9B,KAAM,IAAI69B,EAA2B,WACtD,EACAjF,EAAS33B,UAAU4gC,KAAO,SAAUC,EAAMC,GACxC,IAAIC,EAAMhiC,KACNy/B,EAAQz/B,KAAKw8B,eACjB,OAAQiD,EAAMpB,YACZ,KAAK,EACHoB,EAAMrB,MAAQ0D,EACd,MACF,KAAK,EACHrC,EAAMrB,MAAQ,CAACqB,EAAMrB,MAAO0D,GAC5B,MACF,QACErC,EAAMrB,MAAM55B,KAAKs9B,GAGrBrC,EAAMpB,YAAc,EACpBl/B,EAAM,wBAAyBsgC,EAAMpB,WAAY0D,GACjD,IACIE,EADUF,IAA6B,IAAjBA,EAASx+B,KAAkBu+B,IAASze,EAAQ6e,QAAUJ,IAASze,EAAQ8e,OACrEC,EAARlG,EAYpB,SAASA,IACP/8B,EAAM,SACN2iC,EAAKv+B,KACP,CAdIk8B,EAAMlB,WAAYlb,EAAQ2T,SAASiL,GAAYD,EAAI5J,KAAK,MAAO6J,GACnEH,EAAKtP,GAAG,SACR,SAAS6P,EAASpG,EAAUqG,GAC1BnjC,EAAM,YACF88B,IAAa+F,GACXM,IAAwC,IAA1BA,EAAWC,aAC3BD,EAAWC,YAAa,EAkB5BpjC,EAAM,WAEN2iC,EAAKU,eAAe,QAASC,GAC7BX,EAAKU,eAAe,SAAUE,GAC9BZ,EAAKU,eAAe,QAASG,GAC7Bb,EAAKU,eAAe,QAAS9K,GAC7BoK,EAAKU,eAAe,SAAUH,GAC9BL,EAAIQ,eAAe,MAAOtG,GAC1B8F,EAAIQ,eAAe,MAAOJ,GAC1BJ,EAAIQ,eAAe,OAAQI,GAC3BC,GAAY,GAORpD,EAAMP,YAAgB4C,EAAK3F,iBAAkB2F,EAAK3F,eAAe2G,WAAYH,IA/BnF,GAUA,IAAIA,EAgFN,SAAqBX,GACnB,OAAO,WACL,IAAIvC,EAAQuC,EAAIxF,eAChBr9B,EAAM,cAAesgC,EAAMP,YACvBO,EAAMP,YAAYO,EAAMP,aACH,IAArBO,EAAMP,YAAoBpC,EAAgBkF,EAAK,UACjDvC,EAAMnB,SAAU,EAChBuC,EAAKmB,GAET,CACF,CA1FgBe,CAAYf,GAC1BF,EAAKtP,GAAG,QAASmQ,GACjB,IAAIE,GAAY,EAsBhB,SAASD,EAAO7K,GACd54B,EAAM,UACN,IAAIkiC,EAAMS,EAAK3I,MAAMpB,GACrB54B,EAAM,aAAckiC,IACR,IAARA,KAKwB,IAArB5B,EAAMpB,YAAoBoB,EAAMrB,QAAU0D,GAAQrC,EAAMpB,WAAa,IAAqC,IAAhCh6B,EAAQo7B,EAAMrB,MAAO0D,MAAkBe,IACpH1jC,EAAM,8BAA+BsgC,EAAMP,YAC3CO,EAAMP,cAER8C,EAAIgB,QAER,CAIA,SAAStL,EAAQ8H,GACfrgC,EAAM,UAAWqgC,GACjB4C,IACAN,EAAKU,eAAe,QAAS9K,GACU,IAAnCoF,EAAgBgF,EAAM,UAAgB/D,EAAe+D,EAAMtC,EACjE,CAMA,SAASiD,IACPX,EAAKU,eAAe,SAAUE,GAC9BN,GACF,CAEA,SAASM,IACPvjC,EAAM,YACN2iC,EAAKU,eAAe,QAASC,GAC7BL,GACF,CAEA,SAASA,IACPjjC,EAAM,UACN6iC,EAAII,OAAON,EACb,CAUA,OAvDAE,EAAIxP,GAAG,OAAQoQ,GAniBjB,SAAyB7F,EAASkG,EAAOhxB,GAGvC,GAAuC,mBAA5B8qB,EAAQmG,gBAAgC,OAAOnG,EAAQmG,gBAAgBD,EAAOhxB,GAMpF8qB,EAAQoG,SAAYpG,EAAQoG,QAAQF,GAAuCj6B,MAAMgR,QAAQ+iB,EAAQoG,QAAQF,IAASlG,EAAQoG,QAAQF,GAAOhD,QAAQhuB,GAAS8qB,EAAQoG,QAAQF,GAAS,CAAChxB,EAAI8qB,EAAQoG,QAAQF,IAA5JlG,EAAQvK,GAAGyQ,EAAOhxB,EACrE,CAqjBEixB,CAAgBpB,EAAM,QAASpK,GAO/BoK,EAAK1J,KAAK,QAASqK,GAMnBX,EAAK1J,KAAK,SAAUsK,GAOpBZ,EAAKxL,KAAK,OAAQ0L,GAGbvC,EAAMnB,UACTn/B,EAAM,eACN6iC,EAAIf,UAECa,CACT,EAYAlJ,EAAS33B,UAAUmhC,OAAS,SAAUN,GACpC,IAAIrC,EAAQz/B,KAAKw8B,eACb8F,EAAa,CACfC,YAAY,GAId,GAAyB,IAArB9C,EAAMpB,WAAkB,OAAOr+B,KAGnC,GAAyB,IAArBy/B,EAAMpB,WAER,OAAIyD,GAAQA,IAASrC,EAAMrB,QACtB0D,IAAMA,EAAOrC,EAAMrB,OAGxBqB,EAAMrB,MAAQ,KACdqB,EAAMpB,WAAa,EACnBoB,EAAMnB,SAAU,EACZwD,GAAMA,EAAKxL,KAAK,SAAUt2B,KAAMsiC,IAPKtiC,KAa3C,IAAK8hC,EAAM,CAET,IAAIsB,EAAQ3D,EAAMrB,MACdl1B,EAAMu2B,EAAMpB,WAChBoB,EAAMrB,MAAQ,KACdqB,EAAMpB,WAAa,EACnBoB,EAAMnB,SAAU,EAChB,IAAK,IAAI/5B,EAAI,EAAGA,EAAI2E,EAAK3E,IAAK6+B,EAAM7+B,GAAG+xB,KAAK,SAAUt2B,KAAM,CAC1DuiC,YAAY,IAEd,OAAOviC,IACT,CAGA,IAAIia,EAAQ5V,EAAQo7B,EAAMrB,MAAO0D,GACjC,OAAe,IAAX7nB,IACJwlB,EAAMrB,MAAM5rB,OAAOyH,EAAO,GAC1BwlB,EAAMpB,YAAc,EACK,IAArBoB,EAAMpB,aAAkBoB,EAAMrB,MAAQqB,EAAMrB,MAAM,IACtD0D,EAAKxL,KAAK,SAAUt2B,KAAMsiC,IAJDtiC,IAM3B,EAIA44B,EAAS33B,UAAUuxB,GAAK,SAAU6Q,EAAIpxB,GACpC,IAAI4Q,EAAMoa,EAAOh8B,UAAUuxB,GAAGhpB,KAAKxJ,KAAMqjC,EAAIpxB,GACzCwtB,EAAQz/B,KAAKw8B,eAqBjB,MApBW,SAAP6G,GAGF5D,EAAMb,kBAAoB5+B,KAAKghC,cAAc,YAAc,GAGrC,IAAlBvB,EAAMnB,SAAmBt+B,KAAKihC,UAClB,aAAPoC,IACJ5D,EAAMlB,YAAekB,EAAMb,oBAC9Ba,EAAMb,kBAAoBa,EAAMf,cAAe,EAC/Ce,EAAMnB,SAAU,EAChBmB,EAAMd,iBAAkB,EACxBx/B,EAAM,cAAesgC,EAAM97B,OAAQ87B,EAAMjB,SACrCiB,EAAM97B,OACR+7B,EAAa1/B,MACHy/B,EAAMjB,SAChBnb,EAAQ2T,SAASkK,EAAkBlhC,QAIlC6iB,CACT,EACA+V,EAAS33B,UAAUqiC,YAAc1K,EAAS33B,UAAUuxB,GACpDoG,EAAS33B,UAAUuhC,eAAiB,SAAUa,EAAIpxB,GAChD,IAAI4Q,EAAMoa,EAAOh8B,UAAUuhC,eAAeh5B,KAAKxJ,KAAMqjC,EAAIpxB,GAUzD,MATW,aAAPoxB,GAOFhgB,EAAQ2T,SAAS+J,EAAyB/gC,MAErC6iB,CACT,EACA+V,EAAS33B,UAAUsiC,mBAAqB,SAAUF,GAChD,IAAIxgB,EAAMoa,EAAOh8B,UAAUsiC,mBAAmBh8B,MAAMvH,KAAM0J,WAU1D,MATW,aAAP25B,QAA4BjmC,IAAPimC,GAOvBhgB,EAAQ2T,SAAS+J,EAAyB/gC,MAErC6iB,CACT,EAqBA+V,EAAS33B,UAAUggC,OAAS,WAC1B,IAAIxB,EAAQz/B,KAAKw8B,eAUjB,OATKiD,EAAMnB,UACTn/B,EAAM,UAINsgC,EAAMnB,SAAWmB,EAAMb,kBAM3B,SAAgBzK,EAAQsL,GACjBA,EAAMZ,kBACTY,EAAMZ,iBAAkB,EACxBxb,EAAQ2T,SAASmK,EAAShN,EAAQsL,GAEtC,CAVIwB,CAAOjhC,KAAMy/B,IAEfA,EAAMX,QAAS,EACR9+B,IACT,EAiBA44B,EAAS33B,UAAU+hC,MAAQ,WAQzB,OAPA7jC,EAAM,wBAAyBa,KAAKw8B,eAAe8B,UACf,IAAhCt+B,KAAKw8B,eAAe8B,UACtBn/B,EAAM,SACNa,KAAKw8B,eAAe8B,SAAU,EAC9Bt+B,KAAKs2B,KAAK,UAEZt2B,KAAKw8B,eAAesC,QAAS,EACtB9+B,IACT,EAUA44B,EAAS33B,UAAUH,KAAO,SAAUqzB,GAClC,IAAIpb,EAAQ/Y,KACRy/B,EAAQz/B,KAAKw8B,eACbsC,GAAS,EAwBb,IAAK,IAAIv6B,KAvBT4vB,EAAO3B,GAAG,MAAO,WAEf,GADArzB,EAAM,eACFsgC,EAAMhX,UAAYgX,EAAMrD,MAAO,CACjC,IAAIrE,EAAQ0H,EAAMhX,QAAQllB,MACtBw0B,GAASA,EAAMp0B,QAAQoV,EAAMvU,KAAKuzB,EACxC,CACAhf,EAAMvU,KAAK,KACb,GACA2vB,EAAO3B,GAAG,OAAQ,SAAUuF,GAC1B54B,EAAM,gBACFsgC,EAAMhX,UAASsP,EAAQ0H,EAAMhX,QAAQ0Q,MAAMpB,IAG3C0H,EAAMvB,YAAc,MAACnG,IAAyD0H,EAAMvB,YAAgBnG,GAAUA,EAAMp0B,UAC9GoV,EAAMvU,KAAKuzB,KAEnB+G,GAAS,EACT3K,EAAO6O,SAEX,GAIc7O,OACI/2B,IAAZ4C,KAAKuE,IAAyC,mBAAd4vB,EAAO5vB,KACzCvE,KAAKuE,GAAK,SAAoBzC,GAC5B,OAAO,WACL,OAAOqyB,EAAOryB,GAAQyF,MAAM4sB,EAAQzqB,UACtC,CACF,CAJU,CAIRnF,IAKN,IAAK,IAAI0D,EAAI,EAAGA,EAAI+1B,EAAar6B,OAAQsE,IACvCksB,EAAO3B,GAAGwL,EAAa/1B,GAAIjI,KAAKs2B,KAAKltB,KAAKpJ,KAAMg+B,EAAa/1B,KAY/D,OAPAjI,KAAKm6B,MAAQ,SAAUlyB,GACrB9I,EAAM,gBAAiB8I,GACnB62B,IACFA,GAAS,EACT3K,EAAO8M,SAEX,EACOjhC,IACT,EACsB,mBAAX2P,SACTipB,EAAS33B,UAAU0O,OAAO6zB,eAAiB,WAIzC,YAH0CpmC,IAAtCkgC,IACFA,EAAoC,EAAQ,QAEvCA,EAAkCt9B,KAC3C,GAEFe,OAAOC,eAAe43B,EAAS33B,UAAW,wBAAyB,CAIjEoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKw8B,eAAeF,aAC7B,IAEFv7B,OAAOC,eAAe43B,EAAS33B,UAAW,iBAAkB,CAI1DoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKw8B,gBAAkBx8B,KAAKw8B,eAAe92B,MACpD,IAEF3E,OAAOC,eAAe43B,EAAS33B,UAAW,kBAAmB,CAI3DoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKw8B,eAAe8B,OAC7B,EACAtmB,IAAK,SAAaynB,GACZz/B,KAAKw8B,iBACPx8B,KAAKw8B,eAAe8B,QAAUmB,EAElC,IAIF7G,EAAS6K,UAAYrC,EACrBrgC,OAAOC,eAAe43B,EAAS33B,UAAW,iBAAkB,CAI1DoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKw8B,eAAe74B,MAC7B,IA+CoB,mBAAXgM,SACTipB,EAASpZ,KAAO,SAAUkkB,EAAUvlB,GAIlC,YAHa/gB,IAAToiB,IACFA,EAAO,EAAQ,OAEVA,EAAKoZ,EAAU8K,EAAUvlB,EAClC,E,4BC17BFzZ,EAAOC,QAAUg4B,EACjB,IAAIe,EAAiB,WACnBG,EAA6BH,EAAeG,2BAC5C8F,EAAwBjG,EAAeiG,sBACvCC,EAAqClG,EAAekG,mCACpDC,EAA8BnG,EAAemG,4BAC3C9H,EAAS,EAAQ,OAErB,SAAS+H,EAAetE,EAAIzgC,GAC1B,IAAIglC,EAAK/jC,KAAKgkC,gBACdD,EAAGE,cAAe,EAClB,IAAIvuB,EAAKquB,EAAGG,QACZ,GAAW,OAAPxuB,EACF,OAAO1V,KAAKs2B,KAAK,QAAS,IAAIqN,GAEhCI,EAAGI,WAAa,KAChBJ,EAAGG,QAAU,KACD,MAARnlC,GAEFiB,KAAKwE,KAAKzF,GACZ2W,EAAG8pB,GACH,IAAI4E,EAAKpkC,KAAKw8B,eACd4H,EAAG5F,SAAU,GACT4F,EAAG1F,cAAgB0F,EAAGzgC,OAASygC,EAAG9H,gBACpCt8B,KAAKm6B,MAAMiK,EAAG9H,cAElB,CACA,SAASK,EAAUp7B,GACjB,KAAMvB,gBAAgB28B,GAAY,OAAO,IAAIA,EAAUp7B,GACvDw6B,EAAOvyB,KAAKxJ,KAAMuB,GAClBvB,KAAKgkC,gBAAkB,CACrBF,eAAgBA,EAAe16B,KAAKpJ,MACpCqkC,eAAe,EACfJ,cAAc,EACdC,QAAS,KACTC,WAAY,KACZG,cAAe,MAIjBtkC,KAAKw8B,eAAekC,cAAe,EAKnC1+B,KAAKw8B,eAAeiC,MAAO,EACvBl9B,IAC+B,mBAAtBA,EAAQgjC,YAA0BvkC,KAAK48B,WAAar7B,EAAQgjC,WAC1C,mBAAlBhjC,EAAQijC,QAAsBxkC,KAAKykC,OAASljC,EAAQijC,QAIjExkC,KAAKwyB,GAAG,YAAakS,EACvB,CACA,SAASA,IACP,IAAI3rB,EAAQ/Y,KACe,mBAAhBA,KAAKykC,QAA0BzkC,KAAKw8B,eAAeC,UAK5DxE,EAAKj4B,KAAM,KAAM,MAJjBA,KAAKykC,OAAO,SAAUjF,EAAIzgC,GACxBk5B,EAAKlf,EAAOymB,EAAIzgC,EAClB,EAIJ,CAiDA,SAASk5B,EAAK9D,EAAQqL,EAAIzgC,GACxB,GAAIygC,EAAI,OAAOrL,EAAOmC,KAAK,QAASkJ,GAQpC,GAPY,MAARzgC,GAEFo1B,EAAO3vB,KAAKzF,GAKVo1B,EAAOgI,eAAex4B,OAAQ,MAAM,IAAIkgC,EAC5C,GAAI1P,EAAO6P,gBAAgBC,aAAc,MAAM,IAAIL,EACnD,OAAOzP,EAAO3vB,KAAK,KACrB,CArHA,EAAQ,MAAR,CAAoBm4B,EAAWZ,GAyD/BY,EAAU17B,UAAUuD,KAAO,SAAUuzB,EAAOC,GAE1C,OADAh4B,KAAKgkC,gBAAgBK,eAAgB,EAC9BtI,EAAO96B,UAAUuD,KAAKgF,KAAKxJ,KAAM+3B,EAAOC,EACjD,EAYA2E,EAAU17B,UAAU27B,WAAa,SAAU7E,EAAOC,EAAUtiB,GAC1DA,EAAG,IAAImoB,EAA2B,gBACpC,EACAlB,EAAU17B,UAAU62B,OAAS,SAAUC,EAAOC,EAAUtiB,GACtD,IAAIquB,EAAK/jC,KAAKgkC,gBAId,GAHAD,EAAGG,QAAUxuB,EACbquB,EAAGI,WAAapM,EAChBgM,EAAGO,cAAgBtM,GACd+L,EAAGE,aAAc,CACpB,IAAIG,EAAKpkC,KAAKw8B,gBACVuH,EAAGM,eAAiBD,EAAG1F,cAAgB0F,EAAGzgC,OAASygC,EAAG9H,gBAAet8B,KAAKm6B,MAAMiK,EAAG9H,cACzF,CACF,EAKAK,EAAU17B,UAAUk5B,MAAQ,SAAUlyB,GACpC,IAAI87B,EAAK/jC,KAAKgkC,gBACQ,OAAlBD,EAAGI,YAAwBJ,EAAGE,aAMhCF,EAAGM,eAAgB,GALnBN,EAAGE,cAAe,EAClBjkC,KAAK48B,WAAWmH,EAAGI,WAAYJ,EAAGO,cAAeP,EAAGD,gBAMxD,EACAnH,EAAU17B,UAAUm+B,SAAW,SAAUzkB,EAAKjF,GAC5CqmB,EAAO96B,UAAUm+B,SAAS51B,KAAKxJ,KAAM2a,EAAK,SAAUgqB,GAClDjvB,EAAGivB,EACL,EACF,C,+BC9HI5I,E,WAXJ,SAAS6I,EAAcnF,GACrB,IAAI1mB,EAAQ/Y,KACZA,KAAKowB,KAAO,KACZpwB,KAAK6kC,MAAQ,KACb7kC,KAAK8kC,OAAS,YA6iBhB,SAAwBC,EAAStF,GAC/B,IAAIoF,EAAQE,EAAQF,MAEpB,IADAE,EAAQF,MAAQ,KACTA,GAAO,CACZ,IAAInvB,EAAKmvB,EAAMnrB,SACf+lB,EAAMuF,YACNtvB,EAljBAuvB,WAmjBAJ,EAAQA,EAAMzU,IAChB,CAGAqP,EAAMyF,mBAAmB9U,KAAO2U,CAClC,CAxjBIE,CAAelsB,EAAO0mB,EACxB,CACF,CAnBA/6B,EAAOC,QAAU4vB,EA0BjBA,EAAS4Q,cAAgBA,EAGzB,IA+JIC,EA/JAC,EAAe,CACjBC,UAAW,EAAQ,QAKjBrI,EAAS,EAAQ,OAGjBpI,EAAS,eACTqI,GAAmC,oBAAX,WAAyB,WAA2B,oBAAX7/B,OAAyBA,OAAyB,oBAAT6b,KAAuBA,KAAO,CAAC,GAAG3J,YAAc,WAAa,EAOvKiuB,EAAc,EAAQ,OAExBC,EADa,EAAQ,OACOA,iBAC1BC,EAAiB,WACnBC,EAAuBD,EAAeC,qBACtCE,EAA6BH,EAAeG,2BAC5C8F,EAAwBjG,EAAeiG,sBACvC4B,EAAyB7H,EAAe6H,uBACxCC,EAAuB9H,EAAe8H,qBACtCC,EAAyB/H,EAAe+H,uBACxCC,EAA6BhI,EAAegI,2BAC5CC,EAAuBjI,EAAeiI,qBACpC5H,EAAiBP,EAAYO,eAEjC,SAAS6H,IAAO,CAChB,SAAST,EAAc5jC,EAAS4yB,EAAQ8J,GACtClC,EAASA,GAAU,EAAQ,OAC3Bx6B,EAAUA,GAAW,CAAC,EAOE,kBAAb08B,IAAwBA,EAAW9J,aAAkB4H,GAIhE/7B,KAAKk+B,aAAe38B,EAAQ28B,WACxBD,IAAUj+B,KAAKk+B,WAAal+B,KAAKk+B,cAAgB38B,EAAQskC,oBAK7D7lC,KAAKs8B,cAAgBmB,EAAiBz9B,KAAMuB,EAAS,wBAAyB08B,GAG9Ej+B,KAAK8lC,aAAc,EAGnB9lC,KAAK8iC,WAAY,EAEjB9iC,KAAK+lC,QAAS,EAEd/lC,KAAKo8B,OAAQ,EAEbp8B,KAAK0hC,UAAW,EAGhB1hC,KAAKy8B,WAAY,EAKjB,IAAIuJ,GAAqC,IAA1BzkC,EAAQ0kC,cACvBjmC,KAAKimC,eAAiBD,EAKtBhmC,KAAKi/B,gBAAkB19B,EAAQ09B,iBAAmB,OAKlDj/B,KAAK2D,OAAS,EAGd3D,KAAKkmC,SAAU,EAGflmC,KAAKmmC,OAAS,EAMdnmC,KAAKy+B,MAAO,EAKZz+B,KAAKomC,kBAAmB,EAGxBpmC,KAAKqmC,QAAU,SAAU7G,IAsQ3B,SAAiBrL,EAAQqL,GACvB,IAAIC,EAAQtL,EAAOgI,eACfsC,EAAOgB,EAAMhB,KACb/oB,EAAK+pB,EAAMyE,QACf,GAAkB,mBAAPxuB,EAAmB,MAAM,IAAIiuB,EAExC,GAZF,SAA4BlE,GAC1BA,EAAMyG,SAAU,EAChBzG,EAAMyE,QAAU,KAChBzE,EAAM97B,QAAU87B,EAAM6G,SACtB7G,EAAM6G,SAAW,CACnB,CAMEC,CAAmB9G,GACfD,GAlCN,SAAsBrL,EAAQsL,EAAOhB,EAAMe,EAAI9pB,KAC3C+pB,EAAMuF,UACJvG,GAGFpb,EAAQ2T,SAASthB,EAAI8pB,GAGrBnc,EAAQ2T,SAASwP,EAAarS,EAAQsL,GACtCtL,EAAOgI,eAAesK,cAAe,EACrC1I,EAAe5J,EAAQqL,KAIvB9pB,EAAG8pB,GACHrL,EAAOgI,eAAesK,cAAe,EACrC1I,EAAe5J,EAAQqL,GAGvBgH,EAAYrS,EAAQsL,GAExB,CAaUiH,CAAavS,EAAQsL,EAAOhB,EAAMe,EAAI9pB,OAAS,CAErD,IAAIgsB,EAAWiF,EAAWlH,IAAUtL,EAAOsI,UACtCiF,GAAajC,EAAM0G,QAAW1G,EAAM2G,mBAAoB3G,EAAMmH,iBACjEC,EAAY1S,EAAQsL,GAElBhB,EACFpb,EAAQ2T,SAAS8P,EAAY3S,EAAQsL,EAAOiC,EAAUhsB,GAEtDoxB,EAAW3S,EAAQsL,EAAOiC,EAAUhsB,EAExC,CACF,CAvRI2wB,CAAQlS,EAAQqL,EAClB,EAGAx/B,KAAKkkC,QAAU,KAGflkC,KAAKsmC,SAAW,EAChBtmC,KAAK4mC,gBAAkB,KACvB5mC,KAAK+mC,oBAAsB,KAI3B/mC,KAAKglC,UAAY,EAIjBhlC,KAAKgnC,aAAc,EAGnBhnC,KAAKymC,cAAe,EAGpBzmC,KAAK++B,WAAkC,IAAtBx9B,EAAQw9B,UAGzB/+B,KAAKg/B,cAAgBz9B,EAAQy9B,YAG7Bh/B,KAAKinC,qBAAuB,EAI5BjnC,KAAKklC,mBAAqB,IAAIN,EAAc5kC,KAC9C,CAqCA,SAASu0B,EAAShzB,GAahB,IAAI08B,EAAWj+B,gBAZf+7B,EAASA,GAAU,EAAQ,QAa3B,IAAKkC,IAAamH,EAAgB57B,KAAK+qB,EAAUv0B,MAAO,OAAO,IAAIu0B,EAAShzB,GAC5EvB,KAAKm8B,eAAiB,IAAIgJ,EAAc5jC,EAASvB,KAAMi+B,GAGvDj+B,KAAKsL,UAAW,EACZ/J,IAC2B,mBAAlBA,EAAQ43B,QAAsBn5B,KAAK83B,OAASv2B,EAAQ43B,OACjC,mBAAnB53B,EAAQ2lC,SAAuBlnC,KAAKmnC,QAAU5lC,EAAQ2lC,QAClC,mBAApB3lC,EAAQ42B,UAAwBn4B,KAAKo/B,SAAW79B,EAAQ42B,SACtC,mBAAlB52B,EAAQ6lC,QAAsBpnC,KAAKqnC,OAAS9lC,EAAQ6lC,QAEjEnK,EAAOzzB,KAAKxJ,KACd,CAgIA,SAASsnC,EAAQnT,EAAQsL,EAAOyH,EAAQh+B,EAAK6uB,EAAOC,EAAUtiB,GAC5D+pB,EAAM6G,SAAWp9B,EACjBu2B,EAAMyE,QAAUxuB,EAChB+pB,EAAMyG,SAAU,EAChBzG,EAAMhB,MAAO,EACTgB,EAAMhD,UAAWgD,EAAM4G,QAAQ,IAAIb,EAAqB,UAAmB0B,EAAQ/S,EAAOgT,QAAQpP,EAAO0H,EAAM4G,SAAclS,EAAO2D,OAAOC,EAAOC,EAAUyH,EAAM4G,SACtK5G,EAAMhB,MAAO,CACf,CAgDA,SAASqI,EAAW3S,EAAQsL,EAAOiC,EAAUhsB,GACtCgsB,GASP,SAAsBvN,EAAQsL,GACP,IAAjBA,EAAM97B,QAAgB87B,EAAMqD,YAC9BrD,EAAMqD,WAAY,EAClB3O,EAAOmC,KAAK,SAEhB,CAdiBiR,CAAapT,EAAQsL,GACpCA,EAAMuF,YACNtvB,IACA8wB,EAAYrS,EAAQsL,EACtB,CAaA,SAASoH,EAAY1S,EAAQsL,GAC3BA,EAAM2G,kBAAmB,EACzB,IAAIvB,EAAQpF,EAAMmH,gBAClB,GAAIzS,EAAOgT,SAAWtC,GAASA,EAAMzU,KAAM,CAEzC,IAAIrO,EAAI0d,EAAMwH,qBACVvhC,EAAS,IAAIsD,MAAM+Y,GACnBylB,EAAS/H,EAAMyF,mBACnBsC,EAAO3C,MAAQA,EAGf,IAFA,IAAI4C,EAAQ,EACRC,GAAa,EACV7C,GACLn/B,EAAO+hC,GAAS5C,EACXA,EAAM8C,QAAOD,GAAa,GAC/B7C,EAAQA,EAAMzU,KACdqX,GAAS,EAEX/hC,EAAOgiC,WAAaA,EACpBJ,EAAQnT,EAAQsL,GAAO,EAAMA,EAAM97B,OAAQ+B,EAAQ,GAAI8hC,EAAO1C,QAI9DrF,EAAMuF,YACNvF,EAAMsH,oBAAsB,KACxBS,EAAOpX,MACTqP,EAAMyF,mBAAqBsC,EAAOpX,KAClCoX,EAAOpX,KAAO,MAEdqP,EAAMyF,mBAAqB,IAAIN,EAAcnF,GAE/CA,EAAMwH,qBAAuB,CAC/B,KAAO,CAEL,KAAOpC,GAAO,CACZ,IAAI9M,EAAQ8M,EAAM9M,MACdC,EAAW6M,EAAM7M,SACjBtiB,EAAKmvB,EAAMnrB,SASf,GAPA4tB,EAAQnT,EAAQsL,GAAO,EADbA,EAAMvB,WAAa,EAAInG,EAAMp0B,OACJo0B,EAAOC,EAAUtiB,GACpDmvB,EAAQA,EAAMzU,KACdqP,EAAMwH,uBAKFxH,EAAMyG,QACR,KAEJ,CACc,OAAVrB,IAAgBpF,EAAMsH,oBAAsB,KAClD,CACAtH,EAAMmH,gBAAkB/B,EACxBpF,EAAM2G,kBAAmB,CAC3B,CAoCA,SAASO,EAAWlH,GAClB,OAAOA,EAAMsG,QAA2B,IAAjBtG,EAAM97B,QAA0C,OAA1B87B,EAAMmH,kBAA6BnH,EAAMiC,WAAajC,EAAMyG,OAC3G,CACA,SAAS0B,EAAUzT,EAAQsL,GACzBtL,EAAOkT,OAAO,SAAU1sB,GACtB8kB,EAAMuF,YACFrqB,GACFojB,EAAe5J,EAAQxZ,GAEzB8kB,EAAMuH,aAAc,EACpB7S,EAAOmC,KAAK,aACZkQ,EAAYrS,EAAQsL,EACtB,EACF,CAaA,SAAS+G,EAAYrS,EAAQsL,GAC3B,IAAI32B,EAAO69B,EAAWlH,GACtB,GAAI32B,IAdN,SAAmBqrB,EAAQsL,GACpBA,EAAMuH,aAAgBvH,EAAMqG,cACF,mBAAlB3R,EAAOkT,QAA0B5H,EAAMhD,WAKhDgD,EAAMuH,aAAc,EACpB7S,EAAOmC,KAAK,eALZmJ,EAAMuF,YACNvF,EAAMqG,aAAc,EACpBziB,EAAQ2T,SAAS4Q,EAAWzT,EAAQsL,IAM1C,CAIIiF,CAAUvQ,EAAQsL,GACM,IAApBA,EAAMuF,YACRvF,EAAMiC,UAAW,EACjBvN,EAAOmC,KAAK,UACRmJ,EAAMT,cAAa,CAGrB,IAAI6I,EAAS1T,EAAOqI,iBACfqL,GAAUA,EAAO7I,aAAe6I,EAAOtJ,aAC1CpK,EAAOgE,SAEX,CAGJ,OAAOrvB,CACT,CAxfA,EAAQ,MAAR,CAAoByrB,EAAU0I,GA4G9BkI,EAAclkC,UAAUs7B,UAAY,WAGlC,IAFA,IAAIuL,EAAU9nC,KAAK4mC,gBACfpgB,EAAM,GACHshB,GACLthB,EAAIhiB,KAAKsjC,GACTA,EAAUA,EAAQ1X,KAEpB,OAAO5J,CACT,EACA,WACE,IACEzlB,OAAOC,eAAemkC,EAAclkC,UAAW,SAAU,CACvDE,IAAKkkC,EAAaC,UAAU,WAC1B,OAAOtlC,KAAKu8B,WACd,EAAG,6EAAmF,YAE1F,CAAE,MAAO9nB,GAAI,CACd,CARD,GAasB,mBAAX9E,QAAyBA,OAAOo4B,aAAiE,mBAA3Cp+B,SAAS1I,UAAU0O,OAAOo4B,cACzF3C,EAAkBz7B,SAAS1I,UAAU0O,OAAOo4B,aAC5ChnC,OAAOC,eAAeuzB,EAAU5kB,OAAOo4B,YAAa,CAClD7mC,MAAO,SAAe8L,GACpB,QAAIo4B,EAAgB57B,KAAKxJ,KAAMgN,IAC3BhN,OAASu0B,GACNvnB,GAAUA,EAAOmvB,0BAA0BgJ,CACpD,KAGFC,EAAkB,SAAyBp4B,GACzC,OAAOA,aAAkBhN,IAC3B,EA+BFu0B,EAAStzB,UAAU4gC,KAAO,WACxB9D,EAAe/9B,KAAM,IAAIulC,EAC3B,EAyBAhR,EAAStzB,UAAUk4B,MAAQ,SAAUpB,EAAOC,EAAUtiB,GACpD,IAzNqB7K,EAyNjB40B,EAAQz/B,KAAKm8B,eACbkF,GAAM,EACNsG,GAASlI,EAAMvB,aA3NErzB,EA2N0BktB,EA1NxClD,EAAO3H,SAASriB,IAAQA,aAAeqyB,GAwO9C,OAbIyK,IAAU9S,EAAO3H,SAAS6K,KAC5BA,EAhOJ,SAA6BA,GAC3B,OAAOlD,EAAOrV,KAAKuY,EACrB,CA8NY+H,CAAoB/H,IAEN,mBAAbC,IACTtiB,EAAKsiB,EACLA,EAAW,MAET2P,EAAO3P,EAAW,SAAmBA,IAAUA,EAAWyH,EAAMR,iBAClD,mBAAPvpB,IAAmBA,EAAKkwB,GAC/BnG,EAAMsG,OArCZ,SAAuB5R,EAAQze,GAC7B,IAAI8pB,EAAK,IAAIkG,EAEb3H,EAAe5J,EAAQqL,GACvBnc,EAAQ2T,SAASthB,EAAI8pB,EACvB,CAgCoBwI,CAAchoC,KAAM0V,IAAaiyB,GA3BrD,SAAoBxT,EAAQsL,EAAO1H,EAAOriB,GACxC,IAAI8pB,EAMJ,OALc,OAAVzH,EACFyH,EAAK,IAAIiG,EACiB,iBAAV1N,GAAuB0H,EAAMvB,aAC7CsB,EAAK,IAAI7B,EAAqB,QAAS,CAAC,SAAU,UAAW5F,KAE3DyH,IACFzB,EAAe5J,EAAQqL,GACvBnc,EAAQ2T,SAASthB,EAAI8pB,IACd,EAGX,CAc8DyI,CAAWjoC,KAAMy/B,EAAO1H,EAAOriB,MACzF+pB,EAAMuF,YACN3D,EAiDJ,SAAuBlN,EAAQsL,EAAOkI,EAAO5P,EAAOC,EAAUtiB,GAC5D,IAAKiyB,EAAO,CACV,IAAIO,EArBR,SAAqBzI,EAAO1H,EAAOC,GAIjC,OAHKyH,EAAMvB,aAAsC,IAAxBuB,EAAMwG,eAA4C,iBAAVlO,IAC/DA,EAAQlD,EAAOrV,KAAKuY,EAAOC,IAEtBD,CACT,CAgBmBoQ,CAAY1I,EAAO1H,EAAOC,GACrCD,IAAUmQ,IACZP,GAAQ,EACR3P,EAAW,SACXD,EAAQmQ,EAEZ,CACA,IAAIh/B,EAAMu2B,EAAMvB,WAAa,EAAInG,EAAMp0B,OACvC87B,EAAM97B,QAAUuF,EAChB,IAAIm4B,EAAM5B,EAAM97B,OAAS87B,EAAMnD,cAG/B,GADK+E,IAAK5B,EAAMqD,WAAY,GACxBrD,EAAMyG,SAAWzG,EAAM0G,OAAQ,CACjC,IAAIhzB,EAAOssB,EAAMsH,oBACjBtH,EAAMsH,oBAAsB,CAC1BhP,MAAOA,EACPC,SAAUA,EACV2P,MAAOA,EACPjuB,SAAUhE,EACV0a,KAAM,MAEJjd,EACFA,EAAKid,KAAOqP,EAAMsH,oBAElBtH,EAAMmH,gBAAkBnH,EAAMsH,oBAEhCtH,EAAMwH,sBAAwB,CAChC,MACEK,EAAQnT,EAAQsL,GAAO,EAAOv2B,EAAK6uB,EAAOC,EAAUtiB,GAEtD,OAAO2rB,CACT,CAlFU+G,CAAcpoC,KAAMy/B,EAAOkI,EAAO5P,EAAOC,EAAUtiB,IAEpD2rB,CACT,EACA9M,EAAStzB,UAAUonC,KAAO,WACxBroC,KAAKm8B,eAAegK,QACtB,EACA5R,EAAStzB,UAAUqnC,OAAS,WAC1B,IAAI7I,EAAQz/B,KAAKm8B,eACbsD,EAAM0G,SACR1G,EAAM0G,SACD1G,EAAMyG,SAAYzG,EAAM0G,QAAW1G,EAAM2G,mBAAoB3G,EAAMmH,iBAAiBC,EAAY7mC,KAAMy/B,GAE/G,EACAlL,EAAStzB,UAAUsnC,mBAAqB,SAA4BvQ,GAGlE,GADwB,iBAAbA,IAAuBA,EAAWA,EAAS1b,iBAChD,CAAC,MAAO,OAAQ,QAAS,QAAS,SAAU,SAAU,OAAQ,QAAS,UAAW,WAAY,OAAOjY,SAAS2zB,EAAW,IAAI1b,gBAAkB,GAAI,MAAM,IAAIqpB,EAAqB3N,GAExL,OADAh4B,KAAKm8B,eAAe8C,gBAAkBjH,EAC/Bh4B,IACT,EACAe,OAAOC,eAAeuzB,EAAStzB,UAAW,iBAAkB,CAI1DoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKm8B,gBAAkBn8B,KAAKm8B,eAAeI,WACpD,IAQFx7B,OAAOC,eAAeuzB,EAAStzB,UAAW,wBAAyB,CAIjEoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKm8B,eAAeG,aAC7B,IAuKF/H,EAAStzB,UAAU62B,OAAS,SAAUC,EAAOC,EAAUtiB,GACrDA,EAAG,IAAImoB,EAA2B,YACpC,EACAtJ,EAAStzB,UAAUkmC,QAAU,KAC7B5S,EAAStzB,UAAUsC,IAAM,SAAUw0B,EAAOC,EAAUtiB,GAClD,IAAI+pB,EAAQz/B,KAAKm8B,eAmBjB,MAlBqB,mBAAVpE,GACTriB,EAAKqiB,EACLA,EAAQ,KACRC,EAAW,MACkB,mBAAbA,IAChBtiB,EAAKsiB,EACLA,EAAW,MAETD,SAAuC/3B,KAAKm5B,MAAMpB,EAAOC,GAGzDyH,EAAM0G,SACR1G,EAAM0G,OAAS,EACfnmC,KAAKsoC,UAIF7I,EAAMsG,QAyDb,SAAqB5R,EAAQsL,EAAO/pB,GAClC+pB,EAAMsG,QAAS,EACfS,EAAYrS,EAAQsL,GAChB/pB,IACE+pB,EAAMiC,SAAUre,EAAQ2T,SAASthB,GAASye,EAAOiE,KAAK,SAAU1iB,IAEtE+pB,EAAMrD,OAAQ,EACdjI,EAAO7oB,UAAW,CACpB,CAjEqBk9B,CAAYxoC,KAAMy/B,EAAO/pB,GACrC1V,IACT,EACAe,OAAOC,eAAeuzB,EAAStzB,UAAW,iBAAkB,CAI1DoK,YAAY,EACZlK,IAAK,WACH,OAAOnB,KAAKm8B,eAAex4B,MAC7B,IAqEF5C,OAAOC,eAAeuzB,EAAStzB,UAAW,YAAa,CAIrDoK,YAAY,EACZlK,IAAK,WACH,YAA4B/D,IAAxB4C,KAAKm8B,gBAGFn8B,KAAKm8B,eAAeM,SAC7B,EACAzkB,IAAK,SAAa9W,GAGXlB,KAAKm8B,iBAMVn8B,KAAKm8B,eAAeM,UAAYv7B,EAClC,IAEFqzB,EAAStzB,UAAUk3B,QAAUqF,EAAYrF,QACzC5D,EAAStzB,UAAUi/B,WAAa1C,EAAY2C,UAC5C5L,EAAStzB,UAAUm+B,SAAW,SAAUzkB,EAAKjF,GAC3CA,EAAGiF,EACL,C,gCC9nBI8tB,E,WACJ,SAASC,EAAgB79B,EAAKuK,EAAKlU,GAA4L,OAAnLkU,EAC5C,SAAwBymB,GAAO,IAAIzmB,EACnC,SAAsB9P,GAAe,GAAqB,iBAAVA,GAAgC,OAAVA,EAAgB,OAAOA,EAAO,IAAIqjC,EAAOrjC,EAAMqK,OAAO4H,aAAc,QAAana,IAATurC,EAAoB,CAAE,IAAI9lB,EAAM8lB,EAAKn/B,KAAKlE,EAAOsjC,UAAoB,GAAmB,iBAAR/lB,EAAkB,OAAOA,EAAK,MAAM,IAAI1W,UAAU,+CAAiD,CAAE,OAA4B5G,OAAiBD,EAAQ,CAD/UujC,CAAahN,GAAgB,MAAsB,iBAARzmB,EAAmBA,EAAM7P,OAAO6P,EAAM,CADxE0zB,CAAe1zB,MAAiBvK,EAAO9J,OAAOC,eAAe6J,EAAKuK,EAAK,CAAElU,MAAOA,EAAOmK,YAAY,EAAMD,cAAc,EAAME,UAAU,IAAkBT,EAAIuK,GAAOlU,EAAgB2J,CAAK,CAG3O,IAAI62B,EAAW,EAAQ,OACnBqH,EAAep5B,OAAO,eACtBq5B,EAAcr5B,OAAO,cACrBs5B,EAASt5B,OAAO,SAChBu5B,EAASv5B,OAAO,SAChBw5B,EAAex5B,OAAO,eACtBy5B,EAAiBz5B,OAAO,iBACxB05B,EAAU15B,OAAO,UACrB,SAAS25B,EAAiBpoC,EAAO+2B,GAC/B,MAAO,CACL/2B,MAAOA,EACP+2B,KAAMA,EAEV,CACA,SAASsR,EAAeC,GACtB,IAAItmB,EAAUsmB,EAAKT,GACnB,GAAgB,OAAZ7lB,EAAkB,CACpB,IAAInkB,EAAOyqC,EAAKH,GAAS1P,OAIZ,OAAT56B,IACFyqC,EAAKL,GAAgB,KACrBK,EAAKT,GAAgB,KACrBS,EAAKR,GAAe,KACpB9lB,EAAQomB,EAAiBvqC,GAAM,IAEnC,CACF,CACA,SAAS0qC,EAAWD,GAGlBnmB,EAAQ2T,SAASuS,EAAgBC,EACnC,CAYA,IAAIE,EAAyB3oC,OAAO+K,eAAe,WAAa,GAC5D69B,EAAuC5oC,OAAO6X,gBAmD/C8vB,EAnD+DD,EAAwB,CACxF,UAAItU,GACF,OAAOn0B,KAAKqpC,EACd,EACAjZ,KAAM,WACJ,IAAIrX,EAAQ/Y,KAGRkF,EAAQlF,KAAKipC,GACjB,GAAc,OAAV/jC,EACF,OAAOmM,QAAQ+nB,OAAOl0B,GAExB,GAAIlF,KAAKkpC,GACP,OAAO73B,QAAQ6R,QAAQomB,OAAiBlsC,GAAW,IAErD,GAAI4C,KAAKqpC,GAAS5M,UAKhB,OAAO,IAAIprB,QAAQ,SAAU6R,EAASkW,GACpC/V,EAAQ2T,SAAS,WACXje,EAAMkwB,GACR7P,EAAOrgB,EAAMkwB,IAEb/lB,EAAQomB,OAAiBlsC,GAAW,GAExC,EACF,GAOF,IACIwsC,EADAC,EAAc7pC,KAAKmpC,GAEvB,GAAIU,EACFD,EAAU,IAAIv4B,QAlDpB,SAAqBw4B,EAAaL,GAChC,OAAO,SAAUtmB,EAASkW,GACxByQ,EAAYnT,KAAK,WACX8S,EAAKN,GACPhmB,EAAQomB,OAAiBlsC,GAAW,IAGtCosC,EAAKJ,GAAgBlmB,EAASkW,EAChC,EAAGA,EACL,CACF,CAwC4B0Q,CAAYD,EAAa7pC,WAC1C,CAGL,IAAIjB,EAAOiB,KAAKqpC,GAAS1P,OACzB,GAAa,OAAT56B,EACF,OAAOsS,QAAQ6R,QAAQomB,EAAiBvqC,GAAM,IAEhD6qC,EAAU,IAAIv4B,QAAQrR,KAAKopC,GAC7B,CAEA,OADAppC,KAAKmpC,GAAgBS,EACdA,CACT,GACwCj6B,OAAO6zB,cAAe,WAC9D,OAAOxjC,IACT,GAAI0oC,EAAgBD,EAAuB,SAAU,WACnD,IAAIsB,EAAS/pC,KAIb,OAAO,IAAIqR,QAAQ,SAAU6R,EAASkW,GACpC2Q,EAAOV,GAASlR,QAAQ,KAAM,SAAUxd,GAClCA,EACFye,EAAOze,GAGTuI,EAAQomB,OAAiBlsC,GAAW,GACtC,EACF,EACF,GAAIqrC,GAAwBiB,GA4D5BhlC,EAAOC,QA3DiC,SAA2CwvB,GACjF,IAAI6V,EACAv9B,EAAW1L,OAAOqX,OAAOuxB,GAA4DjB,EAArBsB,EAAiB,CAAC,EAAmCX,EAAS,CAChInoC,MAAOizB,EACP7oB,UAAU,IACRo9B,EAAgBsB,EAAgBjB,EAAc,CAChD7nC,MAAO,KACPoK,UAAU,IACRo9B,EAAgBsB,EAAgBhB,EAAa,CAC/C9nC,MAAO,KACPoK,UAAU,IACRo9B,EAAgBsB,EAAgBf,EAAQ,CAC1C/nC,MAAO,KACPoK,UAAU,IACRo9B,EAAgBsB,EAAgBd,EAAQ,CAC1ChoC,MAAOizB,EAAOqI,eAAe+B,WAC7BjzB,UAAU,IACRo9B,EAAgBsB,EAAgBZ,EAAgB,CAClDloC,MAAO,SAAegiB,EAASkW,GAC7B,IAAIr6B,EAAO0N,EAAS48B,GAAS1P,OACzB56B,GACF0N,EAAS08B,GAAgB,KACzB18B,EAASs8B,GAAgB,KACzBt8B,EAASu8B,GAAe,KACxB9lB,EAAQomB,EAAiBvqC,GAAM,MAE/B0N,EAASs8B,GAAgB7lB,EACzBzW,EAASu8B,GAAe5P,EAE5B,EACA9tB,UAAU,IACR0+B,IA0BJ,OAzBAv9B,EAAS08B,GAAgB,KACzBzH,EAASvN,EAAQ,SAAUxZ,GACzB,GAAIA,GAAoB,+BAAbA,EAAIxR,KAAuC,CACpD,IAAIiwB,EAAS3sB,EAASu8B,GAUtB,OAPe,OAAX5P,IACF3sB,EAAS08B,GAAgB,KACzB18B,EAASs8B,GAAgB,KACzBt8B,EAASu8B,GAAe,KACxB5P,EAAOze,SAETlO,EAASw8B,GAAUtuB,EAErB,CACA,IAAIuI,EAAUzW,EAASs8B,GACP,OAAZ7lB,IACFzW,EAAS08B,GAAgB,KACzB18B,EAASs8B,GAAgB,KACzBt8B,EAASu8B,GAAe,KACxB9lB,EAAQomB,OAAiBlsC,GAAW,KAEtCqP,EAASy8B,IAAU,CACrB,GACA/U,EAAO3B,GAAG,WAAYiX,EAAWrgC,KAAK,KAAMqD,IACrCA,CACT,C,4BChLA,SAASw9B,EAAQj9B,EAAQk9B,GAAkB,IAAIx1B,EAAO3T,OAAO2T,KAAK1H,GAAS,GAAIjM,OAAOuT,sBAAuB,CAAE,IAAI61B,EAAUppC,OAAOuT,sBAAsBtH,GAASk9B,IAAmBC,EAAUA,EAAQ7d,OAAO,SAAU/X,GAAO,OAAOxT,OAAOkT,yBAAyBjH,EAAQuH,GAAKlJ,UAAY,IAAKqJ,EAAKlQ,KAAK+C,MAAMmN,EAAMy1B,EAAU,CAAE,OAAOz1B,CAAM,CACpV,SAAS01B,EAAc/8B,GAAU,IAAK,IAAI9I,EAAI,EAAGA,EAAImF,UAAU/F,OAAQY,IAAK,CAAE,IAAI2pB,EAAS,MAAQxkB,UAAUnF,GAAKmF,UAAUnF,GAAK,CAAC,EAAGA,EAAI,EAAI0lC,EAAQlpC,OAAOmtB,IAAS,GAAI7S,QAAQ,SAAUjG,GAAOszB,EAAgBr7B,EAAQ+H,EAAK8Y,EAAO9Y,GAAO,GAAKrU,OAAOspC,0BAA4BtpC,OAAOupC,iBAAiBj9B,EAAQtM,OAAOspC,0BAA0Bnc,IAAW+b,EAAQlpC,OAAOmtB,IAAS7S,QAAQ,SAAUjG,GAAOrU,OAAOC,eAAeqM,EAAQ+H,EAAKrU,OAAOkT,yBAAyBia,EAAQ9Y,GAAO,EAAI,CAAE,OAAO/H,CAAQ,CACzf,SAASq7B,EAAgB79B,EAAKuK,EAAKlU,GAA4L,OAAnLkU,EAAM0zB,EAAe1zB,MAAiBvK,EAAO9J,OAAOC,eAAe6J,EAAKuK,EAAK,CAAElU,MAAOA,EAAOmK,YAAY,EAAMD,cAAc,EAAME,UAAU,IAAkBT,EAAIuK,GAAOlU,EAAgB2J,CAAK,CAE3O,SAAS0/B,EAAkBl9B,EAAQ1N,GAAS,IAAK,IAAI4E,EAAI,EAAGA,EAAI5E,EAAMgE,OAAQY,IAAK,CAAE,IAAIuQ,EAAanV,EAAM4E,GAAIuQ,EAAWzJ,WAAayJ,EAAWzJ,aAAc,EAAOyJ,EAAW1J,cAAe,EAAU,UAAW0J,IAAYA,EAAWxJ,UAAW,GAAMvK,OAAOC,eAAeqM,EAAQy7B,EAAeh0B,EAAWM,KAAMN,EAAa,CAAE,CAE5U,SAASg0B,EAAejN,GAAO,IAAIzmB,EACnC,SAAsB9P,GAAe,GAAqB,iBAAVA,GAAgC,OAAVA,EAAgB,OAAOA,EAAO,IAAIqjC,EAAOrjC,EAAMqK,OAAO4H,aAAc,QAAana,IAATurC,EAAoB,CAAE,IAAI9lB,EAAM8lB,EAAKn/B,KAAKlE,EAAOsjC,UAAoB,GAAmB,iBAAR/lB,EAAkB,OAAOA,EAAK,MAAM,IAAI1W,UAAU,+CAAiD,CAAE,OAA4B5G,OAAiBD,EAAQ,CAD/UujC,CAAahN,GAAgB,MAAsB,iBAARzmB,EAAmBA,EAAM7P,OAAO6P,EAAM,CAE1H,IACEyf,EADa,EAAQ,MACHA,OAElBtV,EADc,EAAQ,OACFA,QAClB7B,EAAS6B,GAAWA,EAAQ7B,QAAU,UAC1C,SAAS8sB,EAAWxI,EAAK30B,EAAQvO,GAC/B+1B,EAAO5zB,UAAUwpC,KAAKjhC,KAAKw4B,EAAK30B,EAAQvO,EAC1C,CACA4F,EAAOC,QAAuB,WAC5B,SAAS44B,KAdX,SAAyB7kB,EAAUM,GAAe,KAAMN,aAAoBM,GAAgB,MAAM,IAAI7M,UAAU,oCAAwC,CAepJ8M,CAAgBjZ,KAAMu9B,GACtBv9B,KAAKugC,KAAO,KACZvgC,KAAK0qC,KAAO,KACZ1qC,KAAK2D,OAAS,CAChB,CAjBF,IAAsBqV,EAAa2xB,EA8KjC,OA9KoB3xB,EAkBPukB,GAlBoBoN,EAkBR,CAAC,CACxBv1B,IAAK,OACLlU,MAAO,SAAc6Y,GACnB,IAAI8qB,EAAQ,CACV9lC,KAAMgb,EACNqW,KAAM,MAEJpwB,KAAK2D,OAAS,EAAG3D,KAAK0qC,KAAKta,KAAOyU,EAAW7kC,KAAKugC,KAAOsE,EAC7D7kC,KAAK0qC,KAAO7F,IACV7kC,KAAK2D,MACT,GACC,CACDyR,IAAK,UACLlU,MAAO,SAAiB6Y,GACtB,IAAI8qB,EAAQ,CACV9lC,KAAMgb,EACNqW,KAAMpwB,KAAKugC,MAEO,IAAhBvgC,KAAK2D,SAAc3D,KAAK0qC,KAAO7F,GACnC7kC,KAAKugC,KAAOsE,IACV7kC,KAAK2D,MACT,GACC,CACDyR,IAAK,QACLlU,MAAO,WACL,GAAoB,IAAhBlB,KAAK2D,OAAT,CACA,IAAI09B,EAAMrhC,KAAKugC,KAAKxhC,KAGpB,OAFoB,IAAhBiB,KAAK2D,OAAc3D,KAAKugC,KAAOvgC,KAAK0qC,KAAO,KAAU1qC,KAAKugC,KAAOvgC,KAAKugC,KAAKnQ,OAC7EpwB,KAAK2D,OACA09B,CAJsB,CAK/B,GACC,CACDjsB,IAAK,QACLlU,MAAO,WACLlB,KAAKugC,KAAOvgC,KAAK0qC,KAAO,KACxB1qC,KAAK2D,OAAS,CAChB,GACC,CACDyR,IAAK,OACLlU,MAAO,SAAc+c,GACnB,GAAoB,IAAhBje,KAAK2D,OAAc,MAAO,GAG9B,IAFA,IAAIyD,EAAIpH,KAAKugC,KACTc,EAAM,GAAKj6B,EAAErI,KACVqI,EAAIA,EAAEgpB,MAAMiR,GAAOpjB,EAAI7W,EAAErI,KAChC,OAAOsiC,CACT,GACC,CACDjsB,IAAK,SACLlU,MAAO,SAAgB+G,GACrB,GAAoB,IAAhBjI,KAAK2D,OAAc,OAAOkxB,EAAOyF,MAAM,GAI3C,IAHA,IAAI+G,EAAMxM,EAAO+V,YAAY3iC,IAAM,GAC/Bb,EAAIpH,KAAKugC,KACTh8B,EAAI,EACD6C,GACLojC,EAAWpjC,EAAErI,KAAMsiC,EAAK98B,GACxBA,GAAK6C,EAAErI,KAAK4E,OACZyD,EAAIA,EAAEgpB,KAER,OAAOiR,CACT,GAGC,CACDjsB,IAAK,UACLlU,MAAO,SAAiB+G,EAAG4iC,GACzB,IAAIxJ,EAYJ,OAXIp5B,EAAIjI,KAAKugC,KAAKxhC,KAAK4E,QAErB09B,EAAMrhC,KAAKugC,KAAKxhC,KAAK0E,MAAM,EAAGwE,GAC9BjI,KAAKugC,KAAKxhC,KAAOiB,KAAKugC,KAAKxhC,KAAK0E,MAAMwE,IAGtCo5B,EAFSp5B,IAAMjI,KAAKugC,KAAKxhC,KAAK4E,OAExB3D,KAAKsH,QAGLujC,EAAa7qC,KAAK8qC,WAAW7iC,GAAKjI,KAAK+qC,WAAW9iC,GAEnDo5B,CACT,GACC,CACDjsB,IAAK,QACLlU,MAAO,WACL,OAAOlB,KAAKugC,KAAKxhC,IACnB,GAGC,CACDqW,IAAK,aACLlU,MAAO,SAAoB+G,GACzB,IAAIb,EAAIpH,KAAKugC,KACT96B,EAAI,EACJ47B,EAAMj6B,EAAErI,KAEZ,IADAkJ,GAAKo5B,EAAI19B,OACFyD,EAAIA,EAAEgpB,MAAM,CACjB,IAAIntB,EAAMmE,EAAErI,KACRisC,EAAK/iC,EAAIhF,EAAIU,OAASV,EAAIU,OAASsE,EAGvC,GAFI+iC,IAAO/nC,EAAIU,OAAQ09B,GAAOp+B,EAASo+B,GAAOp+B,EAAIQ,MAAM,EAAGwE,GAEjD,KADVA,GAAK+iC,GACQ,CACPA,IAAO/nC,EAAIU,UACX8B,EACE2B,EAAEgpB,KAAMpwB,KAAKugC,KAAOn5B,EAAEgpB,KAAUpwB,KAAKugC,KAAOvgC,KAAK0qC,KAAO,OAE5D1qC,KAAKugC,KAAOn5B,EACZA,EAAErI,KAAOkE,EAAIQ,MAAMunC,IAErB,KACF,GACEvlC,CACJ,CAEA,OADAzF,KAAK2D,QAAU8B,EACR47B,CACT,GAGC,CACDjsB,IAAK,aACLlU,MAAO,SAAoB+G,GACzB,IAAIo5B,EAAMxM,EAAO+V,YAAY3iC,GACzBb,EAAIpH,KAAKugC,KACT96B,EAAI,EAGR,IAFA2B,EAAErI,KAAK0rC,KAAKpJ,GACZp5B,GAAKb,EAAErI,KAAK4E,OACLyD,EAAIA,EAAEgpB,MAAM,CACjB,IAAI6a,EAAM7jC,EAAErI,KACRisC,EAAK/iC,EAAIgjC,EAAItnC,OAASsnC,EAAItnC,OAASsE,EAGvC,GAFAgjC,EAAIR,KAAKpJ,EAAKA,EAAI19B,OAASsE,EAAG,EAAG+iC,GAEvB,KADV/iC,GAAK+iC,GACQ,CACPA,IAAOC,EAAItnC,UACX8B,EACE2B,EAAEgpB,KAAMpwB,KAAKugC,KAAOn5B,EAAEgpB,KAAUpwB,KAAKugC,KAAOvgC,KAAK0qC,KAAO,OAE5D1qC,KAAKugC,KAAOn5B,EACZA,EAAErI,KAAOksC,EAAIxnC,MAAMunC,IAErB,KACF,GACEvlC,CACJ,CAEA,OADAzF,KAAK2D,QAAU8B,EACR47B,CACT,GAGC,CACDjsB,IAAKsI,EACLxc,MAAO,SAAeuT,EAAGlT,GACvB,OAAOge,EAAQvf,KAAMoqC,EAAcA,EAAc,CAAC,EAAG7oC,GAAU,CAAC,EAAG,CAEjEmd,MAAO,EAEPG,eAAe,IAEnB,MA5K0E0rB,EAAkBvxB,EAAY/X,UAAW0pC,GAA2E5pC,OAAOC,eAAegY,EAAa,YAAa,CAAE1N,UAAU,IA8KrPiyB,CACT,CApK8B,E,2CCiC9B,SAAS2N,EAAoBhyB,EAAMyB,GACjCwwB,EAAYjyB,EAAMyB,GAClBywB,EAAYlyB,EACd,CACA,SAASkyB,EAAYlyB,GACfA,EAAKijB,iBAAmBjjB,EAAKijB,eAAe4C,WAC5C7lB,EAAKsjB,iBAAmBtjB,EAAKsjB,eAAeuC,WAChD7lB,EAAKod,KAAK,QACZ,CAkBA,SAAS6U,EAAYjyB,EAAMyB,GACzBzB,EAAKod,KAAK,QAAS3b,EACrB,CAYAjW,EAAOC,QAAU,CACfwzB,QAzFF,SAAiBxd,EAAKjF,GACpB,IAAIqD,EAAQ/Y,KACRqrC,EAAoBrrC,KAAKw8B,gBAAkBx8B,KAAKw8B,eAAeC,UAC/D6O,EAAoBtrC,KAAKm8B,gBAAkBn8B,KAAKm8B,eAAeM,UACnE,OAAI4O,GAAqBC,GACnB51B,EACFA,EAAGiF,GACMA,IACJ3a,KAAKm8B,eAEEn8B,KAAKm8B,eAAesK,eAC9BzmC,KAAKm8B,eAAesK,cAAe,EACnCpjB,EAAQ2T,SAASmU,EAAanrC,KAAM2a,IAHpC0I,EAAQ2T,SAASmU,EAAanrC,KAAM2a,IAMjC3a,OAMLA,KAAKw8B,iBACPx8B,KAAKw8B,eAAeC,WAAY,GAI9Bz8B,KAAKm8B,iBACPn8B,KAAKm8B,eAAeM,WAAY,GAElCz8B,KAAKo/B,SAASzkB,GAAO,KAAM,SAAUA,IAC9BjF,GAAMiF,EACJ5B,EAAMojB,eAECpjB,EAAMojB,eAAesK,aAI/BpjB,EAAQ2T,SAASoU,EAAaryB,IAH9BA,EAAMojB,eAAesK,cAAe,EACpCpjB,EAAQ2T,SAASkU,EAAqBnyB,EAAO4B,IAH7C0I,EAAQ2T,SAASkU,EAAqBnyB,EAAO4B,GAOtCjF,GACT2N,EAAQ2T,SAASoU,EAAaryB,GAC9BrD,EAAGiF,IAEH0I,EAAQ2T,SAASoU,EAAaryB,EAElC,GACO/Y,KACT,EA2CEmgC,UAjCF,WACMngC,KAAKw8B,iBACPx8B,KAAKw8B,eAAeC,WAAY,EAChCz8B,KAAKw8B,eAAegC,SAAU,EAC9Bx+B,KAAKw8B,eAAeJ,OAAQ,EAC5Bp8B,KAAKw8B,eAAe+B,YAAa,GAE/Bv+B,KAAKm8B,iBACPn8B,KAAKm8B,eAAeM,WAAY,EAChCz8B,KAAKm8B,eAAeC,OAAQ,EAC5Bp8B,KAAKm8B,eAAe4J,QAAS,EAC7B/lC,KAAKm8B,eAAe2J,aAAc,EAClC9lC,KAAKm8B,eAAe6K,aAAc,EAClChnC,KAAKm8B,eAAeuF,UAAW,EAC/B1hC,KAAKm8B,eAAesK,cAAe,EAEvC,EAkBE1I,eAdF,SAAwB5J,EAAQxZ,GAO9B,IAAIktB,EAAS1T,EAAOqI,eAChBiF,EAAStN,EAAOgI,eAChB0L,GAAUA,EAAO7I,aAAeyC,GAAUA,EAAOzC,YAAa7K,EAAOgE,QAAQxd,GAAUwZ,EAAOmC,KAAK,QAAS3b,EAClH,E,4BCrFA,IAAI4wB,EAA6B,WAAiCA,2BAYlE,SAASC,IAAQ,CAoEjB9mC,EAAOC,QAhEP,SAAS8mC,EAAItX,EAAQhW,EAAMzE,GACzB,GAAoB,mBAATyE,EAAqB,OAAOstB,EAAItX,EAAQ,KAAMhW,GACpDA,IAAMA,EAAO,CAAC,GACnBzE,EAlBF,SAAcA,GACZ,IAAIgyB,GAAS,EACb,OAAO,WACL,IAAIA,EAAJ,CACAA,GAAS,EACT,IAAK,IAAIC,EAAOjiC,UAAU/F,OAAQmG,EAAO,IAAId,MAAM2iC,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAC/E9hC,EAAK8hC,GAAQliC,UAAUkiC,GAEzBlyB,EAASnS,MAAMvH,KAAM8J,EALH,CAMpB,CACF,CAQasuB,CAAK1e,GAAY8xB,GAC5B,IAAIvP,EAAW9d,EAAK8d,WAA8B,IAAlB9d,EAAK8d,UAAsB9H,EAAO8H,SAC9D3wB,EAAW6S,EAAK7S,WAA8B,IAAlB6S,EAAK7S,UAAsB6oB,EAAO7oB,SAC9DugC,EAAiB,WACd1X,EAAO7oB,UAAUo3B,GACxB,EACIoJ,EAAgB3X,EAAOgI,gBAAkBhI,EAAOgI,eAAeuF,SAC/DgB,EAAW,WACbp3B,GAAW,EACXwgC,GAAgB,EACX7P,GAAUviB,EAASlQ,KAAK2qB,EAC/B,EACI4X,EAAgB5X,EAAOqI,gBAAkBrI,EAAOqI,eAAe+B,WAC/DrC,EAAQ,WACVD,GAAW,EACX8P,GAAgB,EACXzgC,GAAUoO,EAASlQ,KAAK2qB,EAC/B,EACIuD,EAAU,SAAiB/c,GAC7BjB,EAASlQ,KAAK2qB,EAAQxZ,EACxB,EACI8nB,EAAU,WACZ,IAAI9nB,EACJ,OAAIshB,IAAa8P,GACV5X,EAAOqI,gBAAmBrI,EAAOqI,eAAeJ,QAAOzhB,EAAM,IAAI4wB,GAC/D7xB,EAASlQ,KAAK2qB,EAAQxZ,IAE3BrP,IAAawgC,GACV3X,EAAOgI,gBAAmBhI,EAAOgI,eAAeC,QAAOzhB,EAAM,IAAI4wB,GAC/D7xB,EAASlQ,KAAK2qB,EAAQxZ,SAF/B,CAIF,EACIqxB,EAAY,WACd7X,EAAO5B,IAAIC,GAAG,SAAUkQ,EAC1B,EAcA,OAtDF,SAAmBvO,GACjB,OAAOA,EAAOS,WAAqC,mBAAjBT,EAAOoC,KAC3C,CAuCM0V,CAAU9X,IACZA,EAAO3B,GAAG,WAAYkQ,GACtBvO,EAAO3B,GAAG,QAASiQ,GACftO,EAAO5B,IAAKyZ,IAAiB7X,EAAO3B,GAAG,UAAWwZ,IAC7C1gC,IAAa6oB,EAAOgI,iBAE7BhI,EAAO3B,GAAG,MAAOqZ,GACjB1X,EAAO3B,GAAG,QAASqZ,IAErB1X,EAAO3B,GAAG,MAAO0J,GACjB/H,EAAO3B,GAAG,SAAUkQ,IACD,IAAfvkB,EAAKjZ,OAAiBivB,EAAO3B,GAAG,QAASkF,GAC7CvD,EAAO3B,GAAG,QAASiQ,GACZ,WACLtO,EAAOqO,eAAe,WAAYE,GAClCvO,EAAOqO,eAAe,QAASC,GAC/BtO,EAAOqO,eAAe,UAAWwJ,GAC7B7X,EAAO5B,KAAK4B,EAAO5B,IAAIiQ,eAAe,SAAUE,GACpDvO,EAAOqO,eAAe,MAAOqJ,GAC7B1X,EAAOqO,eAAe,QAASqJ,GAC/B1X,EAAOqO,eAAe,SAAUE,GAChCvO,EAAOqO,eAAe,MAAOtG,GAC7B/H,EAAOqO,eAAe,QAAS9K,GAC/BvD,EAAOqO,eAAe,QAASC,EACjC,CACF,C,UCpFA/9B,EAAOC,QAAU,WACf,MAAM,IAAIK,MAAM,gDAClB,C,4BCGA,IAAIymC,EASA/N,EAAiB,WACnBwO,EAAmBxO,EAAewO,iBAClC1G,EAAuB9H,EAAe8H,qBACxC,SAASgG,EAAK7wB,GAEZ,GAAIA,EAAK,MAAMA,CACjB,CA+BA,SAASnR,EAAKyI,GACZA,GACF,CACA,SAAS4vB,EAAKriB,EAAMoE,GAClB,OAAOpE,EAAKqiB,KAAKje,EACnB,CA6BAlf,EAAOC,QAvBP,WACE,IAAK,IAAIgnC,EAAOjiC,UAAU/F,OAAQwoC,EAAU,IAAInjC,MAAM2iC,GAAOC,EAAO,EAAGA,EAAOD,EAAMC,IAClFO,EAAQP,GAAQliC,UAAUkiC,GAE5B,IAKI1mC,EALAwU,EATN,SAAqByyB,GACnB,OAAKA,EAAQxoC,OAC8B,mBAAhCwoC,EAAQA,EAAQxoC,OAAS,GAA0B6nC,EACvDW,EAAQ1nC,MAFa+mC,CAG9B,CAKiBY,CAAYD,GAE3B,GADInjC,MAAMgR,QAAQmyB,EAAQ,MAAKA,EAAUA,EAAQ,IAC7CA,EAAQxoC,OAAS,EACnB,MAAM,IAAIuoC,EAAiB,WAG7B,IAAIG,EAAWF,EAAQ7sC,IAAI,SAAU60B,EAAQ5vB,GAC3C,IAAIi6B,EAAUj6B,EAAI4nC,EAAQxoC,OAAS,EAEnC,OAnDJ,SAAmBwwB,EAAQqK,EAAS0H,EAASxsB,GAC3CA,EAnBF,SAAcA,GACZ,IAAIgyB,GAAS,EACb,OAAO,WACDA,IACJA,GAAS,EACThyB,EAASnS,WAAM,EAAQmC,WACzB,CACF,CAYa0uB,CAAK1e,GAChB,IAAI4yB,GAAS,EACbnY,EAAO3B,GAAG,QAAS,WACjB8Z,GAAS,CACX,QACYlvC,IAARquC,IAAmBA,EAAM,EAAQ,QACrCA,EAAItX,EAAQ,CACV8H,SAAUuC,EACVlzB,SAAU46B,GACT,SAAUvrB,GACX,GAAIA,EAAK,OAAOjB,EAASiB,GACzB2xB,GAAS,EACT5yB,GACF,GACA,IAAI+iB,GAAY,EAChB,OAAO,SAAU9hB,GACf,IAAI2xB,IACA7P,EAIJ,OAHAA,GAAY,EAtBhB,SAAmBtI,GACjB,OAAOA,EAAOS,WAAqC,mBAAjBT,EAAOoC,KAC3C,CAuBQ0V,CAAU9X,GAAgBA,EAAOoC,QACP,mBAAnBpC,EAAOgE,QAA+BhE,EAAOgE,eACxDze,EAASiB,GAAO,IAAI6qB,EAAqB,QAC3C,CACF,CAyBW+G,CAAUpY,EAAQqK,EADXj6B,EAAI,EACyB,SAAUoW,GAC9CzV,IAAOA,EAAQyV,GAChBA,GAAK0xB,EAAShxB,QAAQ7R,GACtBg1B,IACJ6N,EAAShxB,QAAQ7R,GACjBkQ,EAASxU,GACX,EACF,GACA,OAAOinC,EAAQ/d,OAAOyT,EACxB,C,4BClFA,IAAI2K,EAAwB,WAAiCA,sBAiB7D9nC,EAAOC,QAAU,CACf84B,iBAdF,SAA0BgC,EAAOl+B,EAASkrC,EAAWxO,GACnD,IAAIyO,EAJN,SAA2BnrC,EAAS08B,EAAUwO,GAC5C,OAAgC,MAAzBlrC,EAAQ+6B,cAAwB/6B,EAAQ+6B,cAAgB2B,EAAW18B,EAAQkrC,GAAa,IACjG,CAEYE,CAAkBprC,EAAS08B,EAAUwO,GAC/C,GAAW,MAAPC,EAAa,CACf,IAAM37B,SAAS27B,IAAQ5lC,KAAKsH,MAAMs+B,KAASA,GAAQA,EAAM,EAEvD,MAAM,IAAIF,EADCvO,EAAWwO,EAAY,gBACIC,GAExC,OAAO5lC,KAAKsH,MAAMs+B,EACpB,CAGA,OAAOjN,EAAMvB,WAAa,GAAK,KACjC,E,eClBAx5B,EAAOC,QAAU,EAAjB,mB,gBCAAA,EAAUD,EAAOC,QAAU,EAAjB,QACFs4B,OAASt4B,EACjBA,EAAQi0B,SAAWj0B,EACnBA,EAAQ4vB,SAAW,EAAnB,MACA5vB,EAAQo3B,OAAS,EAAjB,OACAp3B,EAAQg4B,UAAY,EAApB,OACAh4B,EAAQ+3B,YAAc,EAAtB,OACA/3B,EAAQ+8B,SAAW,EAAnB,OACA/8B,EAAQioC,SAAW,EAAnB,M,4BCNA,IAAIC,EAAW,EAAQ,OACnBC,EAAK,EAAQ,OACbC,EAAsB,6EACtBC,EAAS,YACTC,EAAU,gCACVtd,EAAO,QACPud,EAAa,mDACbC,EAAqB,aAUzB,SAASC,EAASnqC,GAChB,OAAQA,GAAY,IAAIP,WAAWsD,QAAQ+mC,EAAqB,GAClE,CAcA,IAAIM,EAAQ,CACV,CAAC,IAAK,QACN,CAAC,IAAK,SACN,SAAkBC,EAASp4B,GACzB,OAAOq4B,EAAUr4B,EAAIM,UAAY83B,EAAQtnC,QAAQ,MAAO,KAAOsnC,CACjE,EACA,CAAC,IAAK,YACN,CAAC,IAAK,OAAQ,GACd,CAACE,IAAK,YAAQpwC,EAAW,EAAG,GAC5B,CAAC,UAAW,YAAQA,EAAW,GAC/B,CAACowC,IAAK,gBAAYpwC,EAAW,EAAG,IAW9BqwC,EAAS,CAAEC,KAAM,EAAGje,MAAO,GAc/B,SAASke,EAAUC,GACjB,IAYIx4B,EALA8c,GALkB,oBAAX70B,OAAoCA,OACpB,oBAAX,WAAoC,WAC3B,oBAAT6b,KAAkCA,KACjC,CAAC,GAEOgZ,UAAY,CAAC,EAGlC2b,EAAmB,CAAC,EACpB1tC,SAHJytC,EAAMA,GAAO1b,GAMb,GAAI,UAAY0b,EAAIp4B,SAClBq4B,EAAmB,IAAIC,EAAIjf,SAAS+e,EAAIG,UAAW,CAAC,QAC/C,GAAI,WAAa5tC,EAEtB,IAAKiV,KADLy4B,EAAmB,IAAIC,EAAIF,EAAK,CAAC,GACrBH,SAAeI,EAAiBz4B,QACvC,GAAI,WAAajV,EAAM,CAC5B,IAAKiV,KAAOw4B,EACNx4B,KAAOq4B,IACXI,EAAiBz4B,GAAOw4B,EAAIx4B,SAGGhY,IAA7BywC,EAAiBZ,UACnBY,EAAiBZ,QAAUA,EAAQznC,KAAKooC,EAAII,MAEhD,CAEA,OAAOH,CACT,CASA,SAASN,EAAUU,GACjB,MACa,UAAXA,GACW,SAAXA,GACW,UAAXA,GACW,WAAXA,GACW,QAAXA,GACW,SAAXA,CAEJ,CAkBA,SAASC,EAAgBZ,EAASpb,GAEhCob,GADAA,EAAUF,EAASE,IACDtnC,QAAQgnC,EAAQ,IAClC9a,EAAWA,GAAY,CAAC,EAExB,IAKIic,EALApqC,EAAQmpC,EAAWt6B,KAAK06B,GACxB93B,EAAWzR,EAAM,GAAKA,EAAM,GAAGuY,cAAgB,GAC/C8xB,IAAmBrqC,EAAM,GACzBsqC,IAAiBtqC,EAAM,GACvBuqC,EAAe,EAkCnB,OA/BIF,EACEC,GACFF,EAAOpqC,EAAM,GAAKA,EAAM,GAAKA,EAAM,GACnCuqC,EAAevqC,EAAM,GAAGJ,OAASI,EAAM,GAAGJ,SAE1CwqC,EAAOpqC,EAAM,GAAKA,EAAM,GACxBuqC,EAAevqC,EAAM,GAAGJ,QAGtB0qC,GACFF,EAAOpqC,EAAM,GAAKA,EAAM,GACxBuqC,EAAevqC,EAAM,GAAGJ,QAExBwqC,EAAOpqC,EAAM,GAIA,UAAbyR,EACE84B,GAAgB,IAClBH,EAAOA,EAAK1qC,MAAM,IAEX8pC,EAAU/3B,GACnB24B,EAAOpqC,EAAM,GACJyR,EACL44B,IACFD,EAAOA,EAAK1qC,MAAM,IAEX6qC,GAAgB,GAAKf,EAAUrb,EAAS1c,YACjD24B,EAAOpqC,EAAM,IAGR,CACLyR,SAAUA,EACVy3B,QAASmB,GAAkBb,EAAU/3B,GACrC84B,aAAcA,EACdH,KAAMA,EAEV,CAoDA,SAASL,EAAIR,EAASpb,EAAUxC,GAI9B,GAFA4d,GADAA,EAAUF,EAASE,IACDtnC,QAAQgnC,EAAQ,MAE5BhtC,gBAAgB8tC,GACpB,OAAO,IAAIA,EAAIR,EAASpb,EAAUxC,GAGpC,IAAI/L,EAAU4qB,EAAWh5B,EAAOi5B,EAAav0B,EAAO7E,EAChDq5B,EAAepB,EAAM5pC,QACrBtD,SAAc+xB,EACdhd,EAAMlV,KACNuE,EAAI,EA8CR,IAjCI,WAAapE,GAAQ,WAAaA,IACpCuvB,EAASwC,EACTA,EAAW,MAGTxC,GAAU,mBAAsBA,IAAQA,EAASod,EAAGv3B,OAQxDoO,IADA4qB,EAAYL,EAAgBZ,GAAW,GALvCpb,EAAWyb,EAAUzb,KAMC1c,WAAa+4B,EAAUtB,QAC7C/3B,EAAI+3B,QAAUsB,EAAUtB,SAAWtpB,GAAYuO,EAAS+a,QACxD/3B,EAAIM,SAAW+4B,EAAU/4B,UAAY0c,EAAS1c,UAAY,GAC1D83B,EAAUiB,EAAUJ,MAOK,UAAvBI,EAAU/4B,WACmB,IAA3B+4B,EAAUD,cAAsBnB,EAAmB3nC,KAAK8nC,MACxDiB,EAAUtB,UACTsB,EAAU/4B,UACT+4B,EAAUD,aAAe,IACxBf,EAAUr4B,EAAIM,cAEnBi5B,EAAa,GAAK,CAAC,OAAQ,aAGtBlqC,EAAIkqC,EAAa9qC,OAAQY,IAGH,mBAF3BiqC,EAAcC,EAAalqC,KAO3BgR,EAAQi5B,EAAY,GACpBp5B,EAAMo5B,EAAY,GAEdj5B,GAAUA,EACZL,EAAIE,GAAOk4B,EACF,iBAAoB/3B,IAC7B0E,EAAkB,MAAV1E,EACJ+3B,EAAQvmB,YAAYxR,GACpB+3B,EAAQjpC,QAAQkR,MAGd,iBAAoBi5B,EAAY,IAClCt5B,EAAIE,GAAOk4B,EAAQ7pC,MAAM,EAAGwW,GAC5BqzB,EAAUA,EAAQ7pC,MAAMwW,EAAQu0B,EAAY,MAE5Ct5B,EAAIE,GAAOk4B,EAAQ7pC,MAAMwW,GACzBqzB,EAAUA,EAAQ7pC,MAAM,EAAGwW,MAGrBA,EAAQ1E,EAAM3C,KAAK06B,MAC7Bp4B,EAAIE,GAAO6E,EAAM,GACjBqzB,EAAUA,EAAQ7pC,MAAM,EAAGwW,EAAMA,QAGnC/E,EAAIE,GAAOF,EAAIE,IACbuO,GAAY6qB,EAAY,IAAKtc,EAAS9c,IAAa,GAOjDo5B,EAAY,KAAIt5B,EAAIE,GAAOF,EAAIE,GAAKkH,gBApCtCgxB,EAAUkB,EAAYlB,EAASp4B,GA4C/Bwa,IAAQxa,EAAIua,MAAQC,EAAOxa,EAAIua,QAM/B9L,GACCuO,EAAS+a,SACkB,MAA3B/3B,EAAI64B,SAAShoC,OAAO,KACF,KAAjBmP,EAAI64B,UAAyC,KAAtB7b,EAAS6b,YAEpC74B,EAAI64B,SA/JR,SAAiBpqB,EAAUvE,GACzB,GAAiB,KAAbuE,EAAiB,OAAOvE,EAQ5B,IANA,IAAI3F,GAAQ2F,GAAQ,KAAK9Y,MAAM,KAAK7C,MAAM,GAAI,GAAG6O,OAAOqR,EAASrd,MAAM,MACnE/B,EAAIkV,EAAK9V,OACTwP,EAAOsG,EAAKlV,EAAI,GAChB07B,GAAU,EACVyO,EAAK,EAEFnqC,KACW,MAAZkV,EAAKlV,GACPkV,EAAKjH,OAAOjO,EAAG,GACM,OAAZkV,EAAKlV,IACdkV,EAAKjH,OAAOjO,EAAG,GACfmqC,KACSA,IACC,IAANnqC,IAAS07B,GAAU,GACvBxmB,EAAKjH,OAAOjO,EAAG,GACfmqC,KAOJ,OAHIzO,GAASxmB,EAAKwmB,QAAQ,IACb,MAAT9sB,GAAyB,OAATA,GAAesG,EAAKjV,KAAK,IAEtCiV,EAAKhY,KAAK,IACnB,CAqImByhB,CAAQhO,EAAI64B,SAAU7b,EAAS6b,WAOjB,MAA3B74B,EAAI64B,SAAShoC,OAAO,IAAcwnC,EAAUr4B,EAAIM,YAClDN,EAAI64B,SAAW,IAAM74B,EAAI64B,UAQtBlB,EAAS33B,EAAIya,KAAMza,EAAIM,YAC1BN,EAAIkd,KAAOld,EAAImd,SACfnd,EAAIya,KAAO,IAMbza,EAAIy5B,SAAWz5B,EAAI05B,SAAW,GAE1B15B,EAAIyf,SACN1a,EAAQ/E,EAAIyf,KAAKtwB,QAAQ,OAGvB6Q,EAAIy5B,SAAWz5B,EAAIyf,KAAKlxB,MAAM,EAAGwW,GACjC/E,EAAIy5B,SAAWr+B,mBAAmBF,mBAAmB8E,EAAIy5B,WAEzDz5B,EAAI05B,SAAW15B,EAAIyf,KAAKlxB,MAAMwW,EAAQ,GACtC/E,EAAI05B,SAAWt+B,mBAAmBF,mBAAmB8E,EAAI05B,YAEzD15B,EAAIy5B,SAAWr+B,mBAAmBF,mBAAmB8E,EAAIyf,OAG3Dzf,EAAIyf,KAAOzf,EAAI05B,SAAW15B,EAAIy5B,SAAU,IAAKz5B,EAAI05B,SAAW15B,EAAIy5B,UAGlEz5B,EAAI25B,OAA0B,UAAjB35B,EAAIM,UAAwB+3B,EAAUr4B,EAAIM,WAAaN,EAAIkd,KACpEld,EAAIM,SAAU,KAAMN,EAAIkd,KACxB,OAKJld,EAAI84B,KAAO94B,EAAIxS,UACjB,CA2KAorC,EAAI7sC,UAAY,CAAE+W,IA5JlB,SAAapE,EAAM1S,EAAO+Q,GACxB,IAAIiD,EAAMlV,KAEV,OAAQ4T,GACN,IAAK,QACC,iBAAoB1S,GAASA,EAAMyC,SACrCzC,GAAS+Q,GAAM66B,EAAGv3B,OAAOrU,IAG3BgU,EAAItB,GAAQ1S,EACZ,MAEF,IAAK,OACHgU,EAAItB,GAAQ1S,EAEP2rC,EAAS3rC,EAAOgU,EAAIM,UAGdtU,IACTgU,EAAIkd,KAAOld,EAAImd,SAAU,IAAKnxB,IAH9BgU,EAAIkd,KAAOld,EAAImd,SACfnd,EAAItB,GAAQ,IAKd,MAEF,IAAK,WACHsB,EAAItB,GAAQ1S,EAERgU,EAAIya,OAAMzuB,GAAS,IAAKgU,EAAIya,MAChCza,EAAIkd,KAAOlxB,EACX,MAEF,IAAK,OACHgU,EAAItB,GAAQ1S,EAERyuB,EAAKnqB,KAAKtE,IACZA,EAAQA,EAAMoF,MAAM,KACpB4O,EAAIya,KAAOzuB,EAAMuD,MACjByQ,EAAImd,SAAWnxB,EAAMO,KAAK,OAE1ByT,EAAImd,SAAWnxB,EACfgU,EAAIya,KAAO,IAGb,MAEF,IAAK,WACHza,EAAIM,SAAWtU,EAAMob,cACrBpH,EAAI+3B,SAAWh7B,EACf,MAEF,IAAK,WACL,IAAK,OACH,GAAI/Q,EAAO,CACT,IAAI4tC,EAAgB,aAATl7B,EAAsB,IAAM,IACvCsB,EAAItB,GAAQ1S,EAAM6E,OAAO,KAAO+oC,EAAOA,EAAO5tC,EAAQA,CACxD,MACEgU,EAAItB,GAAQ1S,EAEd,MAEF,IAAK,WACL,IAAK,WACHgU,EAAItB,GAAQtD,mBAAmBpP,GAC/B,MAEF,IAAK,OACH,IAAI+Y,EAAQ/Y,EAAMmD,QAAQ,MAErB4V,GACH/E,EAAIy5B,SAAWztC,EAAMuC,MAAM,EAAGwW,GAC9B/E,EAAIy5B,SAAWr+B,mBAAmBF,mBAAmB8E,EAAIy5B,WAEzDz5B,EAAI05B,SAAW1tC,EAAMuC,MAAMwW,EAAQ,GACnC/E,EAAI05B,SAAWt+B,mBAAmBF,mBAAmB8E,EAAI05B,YAEzD15B,EAAIy5B,SAAWr+B,mBAAmBF,mBAAmBlP,IAI3D,IAAK,IAAIqD,EAAI,EAAGA,EAAI8oC,EAAM1pC,OAAQY,IAAK,CACrC,IAAIwqC,EAAM1B,EAAM9oC,GAEZwqC,EAAI,KAAI75B,EAAI65B,EAAI,IAAM75B,EAAI65B,EAAI,IAAIzyB,cACxC,CAUA,OARApH,EAAIyf,KAAOzf,EAAI05B,SAAW15B,EAAIy5B,SAAU,IAAKz5B,EAAI05B,SAAW15B,EAAIy5B,SAEhEz5B,EAAI25B,OAA0B,UAAjB35B,EAAIM,UAAwB+3B,EAAUr4B,EAAIM,WAAaN,EAAIkd,KACpEld,EAAIM,SAAU,KAAMN,EAAIkd,KACxB,OAEJld,EAAI84B,KAAO94B,EAAIxS,WAERwS,CACT,EA8D4BxS,SArD5B,SAAkBklB,GACXA,GAAa,mBAAsBA,IAAWA,EAAYklB,EAAGllB,WAElE,IAAI6H,EACAva,EAAMlV,KACNoyB,EAAOld,EAAIkd,KACX5c,EAAWN,EAAIM,SAEfA,GAAqD,MAAzCA,EAASzP,OAAOyP,EAAS7R,OAAS,KAAY6R,GAAY,KAE1E,IAAItT,EACFsT,GACEN,EAAIM,UAAYN,EAAI+3B,SAAYM,EAAUr4B,EAAIM,UAAY,KAAO,IAsCrE,OApCIN,EAAIy5B,UACNzsC,GAAUgT,EAAIy5B,SACVz5B,EAAI05B,WAAU1sC,GAAU,IAAKgT,EAAI05B,UACrC1sC,GAAU,KACDgT,EAAI05B,UACb1sC,GAAU,IAAKgT,EAAI05B,SACnB1sC,GAAU,KAEO,UAAjBgT,EAAIM,UACJ+3B,EAAUr4B,EAAIM,YACb4c,GACgB,MAAjBld,EAAI64B,WAMJ7rC,GAAU,MAQkB,MAA1BkwB,EAAKA,EAAKzuB,OAAS,IAAegsB,EAAKnqB,KAAK0P,EAAImd,YAAcnd,EAAIya,QACpEyC,GAAQ,KAGVlwB,GAAUkwB,EAAOld,EAAI64B,UAErBte,EAAQ,iBAAoBva,EAAIua,MAAQ7H,EAAU1S,EAAIua,OAASva,EAAIua,SACxDvtB,GAAU,MAAQutB,EAAM1pB,OAAO,GAAK,IAAK0pB,EAAQA,GAExDva,EAAIw4B,OAAMxrC,GAAUgT,EAAIw4B,MAErBxrC,CACT,GAQA4rC,EAAII,gBAAkBA,EACtBJ,EAAI5b,SAAWyb,EACfG,EAAIV,SAAWA,EACfU,EAAIhB,GAAKA,EAETpoC,EAAOC,QAAUmpC,C,4BCnjBjB,IAAI7oB,EAAW,EAAQ,MAEvB,SAAS6oB,IACP9tC,KAAKwV,SAAW,KAChBxV,KAAKitC,QAAU,KACfjtC,KAAK20B,KAAO,KACZ30B,KAAKoyB,KAAO,KACZpyB,KAAK2vB,KAAO,KACZ3vB,KAAKqyB,SAAW,KAChBryB,KAAK0tC,KAAO,KACZ1tC,KAAKmyB,OAAS,KACdnyB,KAAKyvB,MAAQ,KACbzvB,KAAK+tC,SAAW,KAChB/tC,KAAKyZ,KAAO,KACZzZ,KAAKguC,KAAO,IACd,CAQA,IAAIgB,EAAkB,oBACpBC,EAAc,WAGdC,EAAoB,oCAWpBC,EAAS,CACP,IAAK,IAAK,IAAK,KAAM,IAAK,KAC1B78B,OAPO,CACP,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,OASvC88B,EAAa,CAAC,KAAM98B,OAAO68B,GAO3BE,EAAe,CACb,IAAK,IAAK,IAAK,IAAK,KACpB/8B,OAAO88B,GACTE,EAAkB,CAChB,IAAK,IAAK,KAGZC,EAAsB,yBACtBC,EAAoB,+BAEpBC,EAAiB,CACfC,YAAY,EACZ,eAAe,GAGjBC,EAAmB,CACjBD,YAAY,EACZ,eAAe,GAGjBE,EAAkB,CAChB36B,MAAM,EACNE,OAAO,EACP06B,KAAK,EACLC,QAAQ,EACRC,MAAM,EACN,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,GAEXC,EAAc,EAAQ,OAExB,SAASC,EAAS/6B,EAAKg7B,EAAkBC,GACvC,GAAIj7B,GAAsB,iBAARA,GAAoBA,aAAe44B,EAAO,OAAO54B,EAEnE,IAAIk7B,EAAI,IAAItC,EAEZ,OADAsC,EAAE76B,MAAML,EAAKg7B,EAAkBC,GACxBC,CACT,CAEAtC,EAAI7sC,UAAUsU,MAAQ,SAAUL,EAAKg7B,EAAkBC,GACrD,GAAmB,iBAARj7B,EACT,MAAM,IAAI/I,UAAU,gDAAkD+I,GAQxE,IAAIm7B,EAAan7B,EAAI7Q,QAAQ,KAC3BisC,GAA2B,IAAhBD,GAAqBA,EAAan7B,EAAI7Q,QAAQ,KAAO,IAAM,IACtEksC,EAASr7B,EAAI5O,MAAMgqC,GAErBC,EAAO,GAAKA,EAAO,GAAGvqC,QADP,MAC2B,KAG1C,IAAImoC,EAFJj5B,EAAMq7B,EAAO9uC,KAAK6uC,GAUlB,GAFAnC,EAAOA,EAAKtqB,QAEPssB,GAA+C,IAA1Bj7B,EAAI5O,MAAM,KAAK3C,OAAc,CAErD,IAAI6sC,EAAatB,EAAkBt8B,KAAKu7B,GACxC,GAAIqC,EAeF,OAdAxwC,KAAKyZ,KAAO00B,EACZnuC,KAAKguC,KAAOG,EACZnuC,KAAK+tC,SAAWyC,EAAW,GACvBA,EAAW,IACbxwC,KAAKmyB,OAASqe,EAAW,GAEvBxwC,KAAKyvB,MADHygB,EACWF,EAAYz6B,MAAMvV,KAAKmyB,OAAO/rB,OAAO,IAErCpG,KAAKmyB,OAAO/rB,OAAO,IAEzB8pC,IACTlwC,KAAKmyB,OAAS,GACdnyB,KAAKyvB,MAAQ,CAAC,GAETzvB,IAEX,CAEA,IAAIywC,EAAQzB,EAAgBp8B,KAAKu7B,GACjC,GAAIsC,EAAO,CAET,IAAIC,GADJD,EAAQA,EAAM,IACSn0B,cACvBtc,KAAKwV,SAAWk7B,EAChBvC,EAAOA,EAAK/nC,OAAOqqC,EAAM9sC,OAC3B,CAQA,GAAIwsC,GAAqBM,GAAStC,EAAKpqC,MAAM,sBAAuB,CAClE,IAAIkpC,EAAgC,OAAtBkB,EAAK/nC,OAAO,EAAG,IACzB6mC,GAAawD,GAASd,EAAiBc,KACzCtC,EAAOA,EAAK/nC,OAAO,GACnBpG,KAAKitC,SAAU,EAEnB,CAEA,IAAK0C,EAAiBc,KAAWxD,GAAYwD,IAAUb,EAAgBa,IAAU,CAuB/E,IADA,IAUI9b,EAAMgc,EAVNC,GAAW,EACNrsC,EAAI,EAAGA,EAAI+qC,EAAgB3rC,OAAQY,KAE7B,KADTssC,EAAM1C,EAAK9pC,QAAQirC,EAAgB/qC,QACP,IAAbqsC,GAAkBC,EAAMD,KAAYA,EAAUC,GA+BnE,KARgB,KAbdF,GAFe,IAAbC,EAEOzC,EAAKpnB,YAAY,KAMjBonB,EAAKpnB,YAAY,IAAK6pB,MAQ/Bjc,EAAOwZ,EAAK1qC,MAAM,EAAGktC,GACrBxC,EAAOA,EAAK1qC,MAAMktC,EAAS,GAC3B3wC,KAAK20B,KAAOvkB,mBAAmBukB,IAIjCic,GAAW,EACFrsC,EAAI,EAAGA,EAAI8qC,EAAa1rC,OAAQY,IAAK,CAC5C,IAAIssC,GACS,KADTA,EAAM1C,EAAK9pC,QAAQgrC,EAAa9qC,QACJ,IAAbqsC,GAAkBC,EAAMD,KAAYA,EAAUC,EACnE,EAEiB,IAAbD,IAAkBA,EAAUzC,EAAKxqC,QAErC3D,KAAKoyB,KAAO+b,EAAK1qC,MAAM,EAAGmtC,GAC1BzC,EAAOA,EAAK1qC,MAAMmtC,GAGlB5wC,KAAK8wC,YAML9wC,KAAKqyB,SAAWryB,KAAKqyB,UAAY,GAMjC,IAAI0e,EAAoC,MAArB/wC,KAAKqyB,SAAS,IAA0D,MAA5CryB,KAAKqyB,SAASryB,KAAKqyB,SAAS1uB,OAAS,GAGpF,IAAKotC,EAEH,IADA,IAAIC,EAAYhxC,KAAKqyB,SAAS/rB,MAAM,MACpByb,GAAPxd,EAAI,EAAOysC,EAAUrtC,QAAQY,EAAIwd,EAAGxd,IAAK,CAChD,IAAIqP,EAAOo9B,EAAUzsC,GACrB,GAAKqP,IACAA,EAAK7P,MAAMwrC,GAAsB,CAEpC,IADA,IAAI0B,EAAU,GACLhoC,EAAI,EAAGlB,EAAI6L,EAAKjQ,OAAQsF,EAAIlB,EAAGkB,IAClC2K,EAAK9N,WAAWmD,GAAK,IAMvBgoC,GAAW,IAEXA,GAAWr9B,EAAK3K,GAIpB,IAAKgoC,EAAQltC,MAAMwrC,GAAsB,CACvC,IAAI2B,EAAaF,EAAUvtC,MAAM,EAAGc,GAChC4sC,EAAUH,EAAUvtC,MAAMc,EAAI,GAC9B6sC,EAAMx9B,EAAK7P,MAAMyrC,GACjB4B,IACFF,EAAW1sC,KAAK4sC,EAAI,IACpBD,EAAQlR,QAAQmR,EAAI,KAElBD,EAAQxtC,SACVwqC,EAAO,IAAMgD,EAAQ1vC,KAAK,KAAO0sC,GAEnCnuC,KAAKqyB,SAAW6e,EAAWzvC,KAAK,KAChC,KACF,CACF,CACF,CAGEzB,KAAKqyB,SAAS1uB,OAjOH,IAkOb3D,KAAKqyB,SAAW,GAGhBryB,KAAKqyB,SAAWryB,KAAKqyB,SAAS/V,cAG3By0B,IAOH/wC,KAAKqyB,SAAWpN,EAASosB,QAAQrxC,KAAKqyB,WAGxC,IAAIjrB,EAAIpH,KAAK2vB,KAAO,IAAM3vB,KAAK2vB,KAAO,GAClC2hB,EAAItxC,KAAKqyB,UAAY,GACzBryB,KAAKoyB,KAAOkf,EAAIlqC,EAChBpH,KAAKguC,MAAQhuC,KAAKoyB,KAMd2e,IACF/wC,KAAKqyB,SAAWryB,KAAKqyB,SAASjsB,OAAO,EAAGpG,KAAKqyB,SAAS1uB,OAAS,GAC/C,MAAZwqC,EAAK,KACPA,EAAO,IAAMA,GAGnB,CAMA,IAAKsB,EAAeiB,GAOlB,IAASnsC,EAAI,EAAGwd,EAAIqtB,EAAWzrC,OAAQY,EAAIwd,EAAGxd,IAAK,CACjD,IAAIgtC,EAAKnC,EAAW7qC,GACpB,IAA0B,IAAtB4pC,EAAK9pC,QAAQktC,GAAjB,CACA,IAAIC,EAAMlhC,mBAAmBihC,GACzBC,IAAQD,IACVC,EAAMxiB,OAAOuiB,IAEfpD,EAAOA,EAAK7nC,MAAMirC,GAAI9vC,KAAK+vC,EALc,CAM3C,CAIF,IAAI9D,EAAOS,EAAK9pC,QAAQ,MACV,IAAVqpC,IAEF1tC,KAAK0tC,KAAOS,EAAK/nC,OAAOsnC,GACxBS,EAAOA,EAAK1qC,MAAM,EAAGiqC,IAEvB,IAAI+D,EAAKtD,EAAK9pC,QAAQ,KAmBtB,IAlBY,IAARotC,GACFzxC,KAAKmyB,OAASgc,EAAK/nC,OAAOqrC,GAC1BzxC,KAAKyvB,MAAQ0e,EAAK/nC,OAAOqrC,EAAK,GAC1BvB,IACFlwC,KAAKyvB,MAAQugB,EAAYz6B,MAAMvV,KAAKyvB,QAEtC0e,EAAOA,EAAK1qC,MAAM,EAAGguC,IACZvB,IAETlwC,KAAKmyB,OAAS,GACdnyB,KAAKyvB,MAAQ,CAAC,GAEZ0e,IAAQnuC,KAAK+tC,SAAWI,GACxByB,EAAgBc,IAAe1wC,KAAKqyB,WAAaryB,KAAK+tC,WACxD/tC,KAAK+tC,SAAW,KAId/tC,KAAK+tC,UAAY/tC,KAAKmyB,OAAQ,CAC5B/qB,EAAIpH,KAAK+tC,UAAY,GAAzB,IACI9vB,EAAIje,KAAKmyB,QAAU,GACvBnyB,KAAKyZ,KAAOrS,EAAI6W,CAClB,CAIA,OADAje,KAAKguC,KAAOhuC,KAAKykB,SACVzkB,IACT,EAeA8tC,EAAI7sC,UAAUwjB,OAAS,WACrB,IAAIkQ,EAAO30B,KAAK20B,MAAQ,GACpBA,IAEFA,GADAA,EAAOrkB,mBAAmBqkB,IACd3uB,QAAQ,OAAQ,KAC5B2uB,GAAQ,KAGV,IAAInf,EAAWxV,KAAKwV,UAAY,GAC9Bu4B,EAAW/tC,KAAK+tC,UAAY,GAC5BL,EAAO1tC,KAAK0tC,MAAQ,GACpBtb,GAAO,EACP3C,EAAQ,GAENzvB,KAAKoyB,KACPA,EAAOuC,EAAO30B,KAAKoyB,KACVpyB,KAAKqyB,WACdD,EAAOuC,IAAwC,IAAhC30B,KAAKqyB,SAAShuB,QAAQ,KAAcrE,KAAKqyB,SAAW,IAAMryB,KAAKqyB,SAAW,KACrFryB,KAAK2vB,OACPyC,GAAQ,IAAMpyB,KAAK2vB,OAInB3vB,KAAKyvB,OAA+B,iBAAfzvB,KAAKyvB,OAAsB1uB,OAAO2T,KAAK1U,KAAKyvB,OAAO9rB,SAC1E8rB,EAAQugB,EAAYpoB,UAAU5nB,KAAKyvB,MAAO,CACxCxD,YAAa,SACbD,gBAAgB,KAIpB,IAAImG,EAASnyB,KAAKmyB,QAAW1C,GAAU,IAAMA,GAAW,GAuBxD,OArBIja,GAAoC,MAAxBA,EAASpP,QAAQ,KAAcoP,GAAY,KAMvDxV,KAAKitC,WAAaz3B,GAAYo6B,EAAgBp6B,MAAuB,IAAT4c,GAC9DA,EAAO,MAAQA,GAAQ,IACnB2b,GAAmC,MAAvBA,EAAShoC,OAAO,KAAcgoC,EAAW,IAAMA,IACrD3b,IACVA,EAAO,IAGLsb,GAA2B,MAAnBA,EAAK3nC,OAAO,KAAc2nC,EAAO,IAAMA,GAC/Cvb,GAA+B,MAArBA,EAAOpsB,OAAO,KAAcosB,EAAS,IAAMA,GAOlD3c,EAAW4c,GALlB2b,EAAWA,EAAS/nC,QAAQ,QAAS,SAAUjC,GAC7C,OAAOuM,mBAAmBvM,EAC5B,KACAouB,EAASA,EAAOnsB,QAAQ,IAAK,QAEgB0nC,CAC/C,EAMAI,EAAI7sC,UAAUiiB,QAAU,SAAUS,GAChC,OAAO3jB,KAAK0xC,cAAczB,EAAStsB,GAAU,GAAO,IAAOc,QAC7D,EAOAqpB,EAAI7sC,UAAUywC,cAAgB,SAAU/tB,GACtC,GAAwB,iBAAbA,EAAuB,CAChC,IAAIguB,EAAM,IAAI7D,EACd6D,EAAIp8B,MAAMoO,GAAU,GAAO,GAC3BA,EAAWguB,CACb,CAIA,IAFA,IAAIzvC,EAAS,IAAI4rC,EACb8D,EAAQ7wC,OAAO2T,KAAK1U,MACf6xC,EAAK,EAAGA,EAAKD,EAAMjuC,OAAQkuC,IAAM,CACxC,IAAIC,EAAOF,EAAMC,GACjB3vC,EAAO4vC,GAAQ9xC,KAAK8xC,EACtB,CASA,GAHA5vC,EAAOwrC,KAAO/pB,EAAS+pB,KAGD,KAAlB/pB,EAASqqB,KAEX,OADA9rC,EAAO8rC,KAAO9rC,EAAOuiB,SACdviB,EAIT,GAAIyhB,EAASspB,UAAYtpB,EAASnO,SAAU,CAG1C,IADA,IAAIu8B,EAAQhxC,OAAO2T,KAAKiP,GACfquB,EAAK,EAAGA,EAAKD,EAAMpuC,OAAQquC,IAAM,CACxC,IAAIC,EAAOF,EAAMC,GACJ,aAATC,IAAuB/vC,EAAO+vC,GAAQtuB,EAASsuB,GACrD,CASA,OANIrC,EAAgB1tC,EAAOsT,WAAatT,EAAOmwB,WAAanwB,EAAO6rC,WACjE7rC,EAAO6rC,SAAW,IAClB7rC,EAAOuX,KAAOvX,EAAO6rC,UAGvB7rC,EAAO8rC,KAAO9rC,EAAOuiB,SACdviB,CACT,CAEA,GAAIyhB,EAASnO,UAAYmO,EAASnO,WAAatT,EAAOsT,SAAU,CAW9D,IAAKo6B,EAAgBjsB,EAASnO,UAAW,CAEvC,IADA,IAAId,EAAO3T,OAAO2T,KAAKiP,GACd5J,EAAI,EAAGA,EAAIrF,EAAK/Q,OAAQoW,IAAK,CACpC,IAAIhS,EAAI2M,EAAKqF,GACb7X,EAAO6F,GAAK4b,EAAS5b,EACvB,CAEA,OADA7F,EAAO8rC,KAAO9rC,EAAOuiB,SACdviB,CACT,CAGA,GADAA,EAAOsT,SAAWmO,EAASnO,SACtBmO,EAASyO,MAASud,EAAiBhsB,EAASnO,UAS/CtT,EAAO6rC,SAAWpqB,EAASoqB,aAT+B,CAE1D,IADA,IAAImE,GAAWvuB,EAASoqB,UAAY,IAAIznC,MAAM,KACvC4rC,EAAQvuC,UAAYggB,EAASyO,KAAO8f,EAAQ5qC,WAC9Cqc,EAASyO,OAAQzO,EAASyO,KAAO,IACjCzO,EAAS0O,WAAY1O,EAAS0O,SAAW,IAC3B,KAAf6f,EAAQ,IAAaA,EAAQjS,QAAQ,IACrCiS,EAAQvuC,OAAS,GAAKuuC,EAAQjS,QAAQ,IAC1C/9B,EAAO6rC,SAAWmE,EAAQzwC,KAAK,IACjC,CAUA,GAPAS,EAAOiwB,OAASxO,EAASwO,OACzBjwB,EAAOutB,MAAQ9L,EAAS8L,MACxBvtB,EAAOkwB,KAAOzO,EAASyO,MAAQ,GAC/BlwB,EAAOyyB,KAAOhR,EAASgR,KACvBzyB,EAAOmwB,SAAW1O,EAAS0O,UAAY1O,EAASyO,KAChDlwB,EAAOytB,KAAOhM,EAASgM,KAEnBztB,EAAO6rC,UAAY7rC,EAAOiwB,OAAQ,CACpC,IAAI/qB,EAAIlF,EAAO6rC,UAAY,GACvB9vB,EAAI/b,EAAOiwB,QAAU,GACzBjwB,EAAOuX,KAAOrS,EAAI6W,CACpB,CAGA,OAFA/b,EAAO+qC,QAAU/qC,EAAO+qC,SAAWtpB,EAASspB,QAC5C/qC,EAAO8rC,KAAO9rC,EAAOuiB,SACdviB,CACT,CAEA,IAAIiwC,EAAcjwC,EAAO6rC,UAA0C,MAA9B7rC,EAAO6rC,SAAShoC,OAAO,GAC1DqsC,EAAWzuB,EAASyO,MAAQzO,EAASoqB,UAA4C,MAAhCpqB,EAASoqB,SAAShoC,OAAO,GAC1EssC,EAAaD,GAAYD,GAAgBjwC,EAAOkwB,MAAQzO,EAASoqB,SACjEuE,EAAgBD,EAChBE,EAAUrwC,EAAO6rC,UAAY7rC,EAAO6rC,SAASznC,MAAM,MAAQ,GAE3DksC,GADAN,EAAUvuB,EAASoqB,UAAYpqB,EAASoqB,SAASznC,MAAM,MAAQ,GACnDpE,EAAOsT,WAAao6B,EAAgB1tC,EAAOsT,WA2BzD,GAlBIg9B,IACFtwC,EAAOmwB,SAAW,GAClBnwB,EAAOytB,KAAO,KACVztB,EAAOkwB,OACU,KAAfmgB,EAAQ,GAAaA,EAAQ,GAAKrwC,EAAOkwB,KAAemgB,EAAQtS,QAAQ/9B,EAAOkwB,OAErFlwB,EAAOkwB,KAAO,GACVzO,EAASnO,WACXmO,EAAS0O,SAAW,KACpB1O,EAASgM,KAAO,KACZhM,EAASyO,OACQ,KAAf8f,EAAQ,GAAaA,EAAQ,GAAKvuB,EAASyO,KAAe8f,EAAQjS,QAAQtc,EAASyO,OAEzFzO,EAASyO,KAAO,MAElBigB,EAAaA,IAA8B,KAAfH,EAAQ,IAA4B,KAAfK,EAAQ,KAGvDH,EAEFlwC,EAAOkwB,KAAOzO,EAASyO,MAA0B,KAAlBzO,EAASyO,KAAczO,EAASyO,KAAOlwB,EAAOkwB,KAC7ElwB,EAAOmwB,SAAW1O,EAAS0O,UAAkC,KAAtB1O,EAAS0O,SAAkB1O,EAAS0O,SAAWnwB,EAAOmwB,SAC7FnwB,EAAOiwB,OAASxO,EAASwO,OACzBjwB,EAAOutB,MAAQ9L,EAAS8L,MACxB8iB,EAAUL,OAEL,GAAIA,EAAQvuC,OAKZ4uC,IAAWA,EAAU,IAC1BA,EAAQ9tC,MACR8tC,EAAUA,EAAQjgC,OAAO4/B,GACzBhwC,EAAOiwB,OAASxO,EAASwO,OACzBjwB,EAAOutB,MAAQ9L,EAAS8L,WACnB,GAAuB,MAAnB9L,EAASwO,OA4BlB,OAtBIqgB,IACFtwC,EAAOkwB,KAAOmgB,EAAQjrC,QACtBpF,EAAOmwB,SAAWnwB,EAAOkwB,MAMrBqgB,KAAavwC,EAAOkwB,MAAQlwB,EAAOkwB,KAAK/tB,QAAQ,KAAO,IAAInC,EAAOkwB,KAAK9rB,MAAM,QAE/EpE,EAAOyyB,KAAO8d,EAAWnrC,QACzBpF,EAAOmwB,SAAWogB,EAAWnrC,QAC7BpF,EAAOkwB,KAAOlwB,EAAOmwB,WAGzBnwB,EAAOiwB,OAASxO,EAASwO,OACzBjwB,EAAOutB,MAAQ9L,EAAS8L,MAEA,OAApBvtB,EAAO6rC,UAAuC,OAAlB7rC,EAAOiwB,SACrCjwB,EAAOuX,MAAQvX,EAAO6rC,SAAW7rC,EAAO6rC,SAAW,KAAO7rC,EAAOiwB,OAASjwB,EAAOiwB,OAAS,KAE5FjwB,EAAO8rC,KAAO9rC,EAAOuiB,SACdviB,EAGT,IAAKqwC,EAAQ5uC,OAaX,OARAzB,EAAO6rC,SAAW,KAEd7rC,EAAOiwB,OACTjwB,EAAOuX,KAAO,IAAMvX,EAAOiwB,OAE3BjwB,EAAOuX,KAAO,KAEhBvX,EAAO8rC,KAAO9rC,EAAOuiB,SACdviB,EAgBT,IARA,IAAIiR,EAAOo/B,EAAQ9uC,OAAO,GAAG,GACzBivC,GAAoBxwC,EAAOkwB,MAAQzO,EAASyO,MAAQmgB,EAAQ5uC,OAAS,KAAgB,MAATwP,GAAyB,OAATA,IAA2B,KAATA,EAM9Gu7B,EAAK,EACAnqC,EAAIguC,EAAQ5uC,OAAQY,GAAK,EAAGA,IAEtB,OADb4O,EAAOo/B,EAAQhuC,IAEbguC,EAAQ//B,OAAOjO,EAAG,GACA,OAAT4O,GACTo/B,EAAQ//B,OAAOjO,EAAG,GAClBmqC,KACSA,IACT6D,EAAQ//B,OAAOjO,EAAG,GAClBmqC,KAKJ,IAAK2D,IAAeC,EAClB,KAAO5D,IAAMA,EACX6D,EAAQtS,QAAQ,OAIhBoS,GAA6B,KAAfE,EAAQ,IAAeA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAGxsC,OAAO,IACvEwsC,EAAQtS,QAAQ,IAGdyS,GAAsD,MAAjCH,EAAQ9wC,KAAK,KAAK2E,QAAQ,IACjDmsC,EAAQ/tC,KAAK,IAGf,IAWMiuC,EAXFjvB,EAA4B,KAAf+uB,EAAQ,IAAcA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAGxsC,OAAO,GAuCvE,OApCIysC,IACFtwC,EAAOmwB,SAAW7O,EAAa,GAAK+uB,EAAQ5uC,OAAS4uC,EAAQjrC,QAAU,GACvEpF,EAAOkwB,KAAOlwB,EAAOmwB,UAMjBogB,KAAavwC,EAAOkwB,MAAQlwB,EAAOkwB,KAAK/tB,QAAQ,KAAO,IAAInC,EAAOkwB,KAAK9rB,MAAM,QAE/EpE,EAAOyyB,KAAO8d,EAAWnrC,QACzBpF,EAAOmwB,SAAWogB,EAAWnrC,QAC7BpF,EAAOkwB,KAAOlwB,EAAOmwB,YAIzBggB,EAAaA,GAAenwC,EAAOkwB,MAAQmgB,EAAQ5uC,UAEhC6f,GACjB+uB,EAAQtS,QAAQ,IAGdsS,EAAQ5uC,OAAS,EACnBzB,EAAO6rC,SAAWwE,EAAQ9wC,KAAK,MAE/BS,EAAO6rC,SAAW,KAClB7rC,EAAOuX,KAAO,MAIQ,OAApBvX,EAAO6rC,UAAuC,OAAlB7rC,EAAOiwB,SACrCjwB,EAAOuX,MAAQvX,EAAO6rC,SAAW7rC,EAAO6rC,SAAW,KAAO7rC,EAAOiwB,OAASjwB,EAAOiwB,OAAS,KAE5FjwB,EAAOyyB,KAAOhR,EAASgR,MAAQzyB,EAAOyyB,KACtCzyB,EAAO+qC,QAAU/qC,EAAO+qC,SAAWtpB,EAASspB,QAC5C/qC,EAAO8rC,KAAO9rC,EAAOuiB,SACdviB,CACT,EAEA4rC,EAAI7sC,UAAU6vC,UAAY,WACxB,IAAI1e,EAAOpyB,KAAKoyB,KACZzC,EAAOsf,EAAYr8B,KAAKwf,GACxBzC,IAEW,OADbA,EAAOA,EAAK,MAEV3vB,KAAK2vB,KAAOA,EAAKvpB,OAAO,IAE1BgsB,EAAOA,EAAKhsB,OAAO,EAAGgsB,EAAKzuB,OAASgsB,EAAKhsB,SAEvCyuB,IAAQpyB,KAAKqyB,SAAWD,EAC9B,EAEAztB,EAAQ4Q,MAAQ06B,EAChBtrC,EAAQue,QA/SR,SAAoBgL,EAAQvK,GAC1B,OAAOssB,EAAS/hB,GAAQ,GAAO,GAAMhL,QAAQS,EAC/C,EA8SAhf,EAAQ+sC,cAxSR,SAA0BxjB,EAAQvK,GAChC,OAAKuK,EACE+hB,EAAS/hB,GAAQ,GAAO,GAAMwjB,cAAc/tB,GAD7BA,CAExB,EAsSAhf,EAAQ8f,OArXR,SAAmB5Z,GAQjB,MADmB,iBAARA,IAAoBA,EAAMolC,EAASplC,IACxCA,aAAeijC,EACdjjC,EAAI4Z,SADyBqpB,EAAI7sC,UAAUwjB,OAAOjb,KAAKqB,EAEhE,EA6WAlG,EAAQmpC,IAAMA,C,WCvwBdppC,EAAOC,QAAU,SAAkBk3B,GACjC,OAAOA,GAAsB,iBAARA,GACI,mBAAbA,EAAI4O,MACS,mBAAb5O,EAAI8W,MACc,mBAAlB9W,EAAI+W,SAClB,C,4BCAA,IAAIC,EAAoB,EAAQ,OAC5BC,EAAsB,EAAQ,OAC9Bt7B,EAAkB,EAAQ,OAC1Bu7B,EAAe,EAAQ,OAE3B,SAASC,EAAYrzB,GACnB,OAAOA,EAAEnW,KAAKJ,KAAKuW,EACrB,CAEA,IAAIszB,EAAoC,oBAAXpjC,OACzBqjC,EAAoC,oBAAXvjC,OAEzBwjC,EAAiBH,EAAYjyC,OAAOE,UAAUyB,UAE9C0wC,EAAcJ,EAAY7hC,OAAOlQ,UAAUqW,SAC3C+7B,EAAcL,EAAYztC,OAAOtE,UAAUqW,SAC3Cg8B,EAAeN,EAAYhjC,QAAQ/O,UAAUqW,SAEjD,GAAI27B,EACF,IAAIM,EAAcP,EAAYnjC,OAAO5O,UAAUqW,SAGjD,GAAI47B,EACF,IAAIM,EAAcR,EAAYrjC,OAAO1O,UAAUqW,SAGjD,SAASm8B,EAAoBvyC,EAAOwyC,GAClC,GAAqB,iBAAVxyC,EACT,OAAO,EAET,IAEE,OADAwyC,EAAiBxyC,IACV,CACT,CAAE,MAAMyK,GACN,OAAO,CACT,CACF,CA4FA,SAASgoC,EAAczyC,GACrB,MAAiC,iBAA1BiyC,EAAejyC,EACxB,CAiBA,SAAS0yC,EAAc1yC,GACrB,MAAiC,iBAA1BiyC,EAAejyC,EACxB,CAgBA,SAAS2yC,EAAkB3yC,GACzB,MAAiC,qBAA1BiyC,EAAejyC,EACxB,CAgBA,SAAS4yC,EAAkB5yC,GACzB,MAAiC,qBAA1BiyC,EAAejyC,EACxB,CAUA,SAAS6yC,EAAsB7yC,GAC7B,MAAiC,yBAA1BiyC,EAAejyC,EACxB,CAKA,SAAS8yC,EAAc9yC,GACrB,MAA2B,oBAAhBwO,cAIJqkC,EAAsBE,QACzBF,EAAsB7yC,GACtBA,aAAiBwO,YACvB,CAGA,SAASwkC,EAAmBhzC,GAC1B,MAAiC,sBAA1BiyC,EAAejyC,EACxB,CAMA,SAASizC,EAAWjzC,GAClB,MAAwB,oBAAb+O,WAIJikC,EAAmBD,QACtBC,EAAmBhzC,GACnBA,aAAiB+O,SACvB,CA/LAtL,EAAQkuC,kBAAoBA,EAC5BluC,EAAQmuC,oBAAsBA,EAC9BnuC,EAAQouC,aAAeA,EAkBvBpuC,EAAQyvC,UAdR,SAAmB9uC,GAClB,MAEqB,oBAAZ+L,SACP/L,aAAiB+L,SAGP,OAAV/L,GACiB,iBAAVA,GACe,mBAAfA,EAAMoxB,MACU,mBAAhBpxB,EAAMk0B,KAGhB,EAaA70B,EAAQ0vC,kBAVR,SAA2BnzC,GACzB,MAA2B,oBAAhBwO,aAA+BA,YAAY4kC,OAC7C5kC,YAAY4kC,OAAOpzC,GAI1B6xC,EAAa7xC,IACbizC,EAAWjzC,EAEf,EAOAyD,EAAQ4vC,aAHR,SAAsBrzC,GACpB,MAAkC,eAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQ6vC,oBAHR,SAA6BtzC,GAC3B,MAAkC,sBAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQ8vC,cAHR,SAAuBvzC,GACrB,MAAkC,gBAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQ+vC,cAHR,SAAuBxzC,GACrB,MAAkC,gBAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQgwC,YAHR,SAAqBzzC,GACnB,MAAkC,cAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQiwC,aAHR,SAAsB1zC,GACpB,MAAkC,eAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQkwC,aAHR,SAAsB3zC,GACpB,MAAkC,eAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQmwC,eAHR,SAAwB5zC,GACtB,MAAkC,iBAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQowC,eAHR,SAAwB7zC,GACtB,MAAkC,iBAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQqwC,gBAHR,SAAyB9zC,GACvB,MAAkC,kBAA3BsW,EAAgBtW,EACzB,EAMAyD,EAAQswC,iBAHR,SAA0B/zC,GACxB,MAAkC,mBAA3BsW,EAAgBtW,EACzB,EAMAyyC,EAAcM,QACG,oBAAR/iC,KACPyiC,EAAc,IAAIziC,KAYpBvM,EAAQgc,MATR,SAAezf,GACb,MAAmB,oBAARgQ,MAIJyiC,EAAcM,QACjBN,EAAczyC,GACdA,aAAiBgQ,IACvB,EAMA0iC,EAAcK,QACG,oBAAR1iC,KACPqiC,EAAc,IAAIriC,KAWpB5M,EAAQmc,MATR,SAAe5f,GACb,MAAmB,oBAARqQ,MAIJqiC,EAAcK,QACjBL,EAAc1yC,GACdA,aAAiBqQ,IACvB,EAMAsiC,EAAkBI,QACG,oBAAZriC,SACPiiC,EAAkB,IAAIjiC,SAWxBjN,EAAQqc,UATR,SAAmB9f,GACjB,MAAuB,oBAAZ0Q,UAIJiiC,EAAkBI,QACrBJ,EAAkB3yC,GAClBA,aAAiB0Q,QACvB,EAMAkiC,EAAkBG,QACG,oBAAZniC,SACPgiC,EAAkB,IAAIhiC,SAKxBnN,EAAQuc,UAHR,SAAmBhgB,GACjB,OAAO4yC,EAAkB5yC,EAC3B,EAMA6yC,EAAsBE,QACG,oBAAhBvkC,aACPqkC,EAAsB,IAAIrkC,aAW5B/K,EAAQqvC,cAAgBA,EAKxBE,EAAmBD,QACM,oBAAhBvkC,aACa,oBAAbO,UACPikC,EAAmB,IAAIjkC,SAAS,IAAIP,YAAY,GAAI,EAAG,IAWzD/K,EAAQwvC,WAAaA,EAGrB,IAAIe,EAAqD,oBAAtB1jC,kBAAoCA,uBAAoBpU,EAC3F,SAAS+3C,EAA4Bj0C,GACnC,MAAiC,+BAA1BiyC,EAAejyC,EACxB,CACA,SAASk0C,EAAoBl0C,GAC3B,YAAqC,IAA1Bg0C,SAIwC,IAAxCC,EAA4BlB,UACrCkB,EAA4BlB,QAAUkB,EAA4B,IAAID,IAGjEC,EAA4BlB,QAC/BkB,EAA4Bj0C,GAC5BA,aAAiBg0C,EACvB,CA4BA,SAASG,EAAen0C,GACtB,OAAOuyC,EAAoBvyC,EAAOkyC,EACpC,CAGA,SAASkC,EAAep0C,GACtB,OAAOuyC,EAAoBvyC,EAAOmyC,EACpC,CAGA,SAASkC,EAAgBr0C,GACvB,OAAOuyC,EAAoBvyC,EAAOoyC,EACpC,CAGA,SAASkC,EAAet0C,GACtB,OAAO+xC,GAAmBQ,EAAoBvyC,EAAOqyC,EACvD,CAGA,SAASkC,EAAev0C,GACtB,OAAOgyC,GAAmBO,EAAoBvyC,EAAOsyC,EACvD,CAjDA7uC,EAAQywC,oBAAsBA,EAK9BzwC,EAAQ+wC,gBAHR,SAAyBx0C,GACvB,MAAiC,2BAA1BiyC,EAAejyC,EACxB,EAMAyD,EAAQgxC,cAHR,SAAuBz0C,GACrB,MAAiC,0BAA1BiyC,EAAejyC,EACxB,EAMAyD,EAAQixC,cAHR,SAAuB10C,GACrB,MAAiC,0BAA1BiyC,EAAejyC,EACxB,EAMAyD,EAAQkxC,kBAHR,SAA2B30C,GACzB,MAAiC,uBAA1BiyC,EAAejyC,EACxB,EAMAyD,EAAQmxC,4BAHR,SAAqC50C,GACnC,MAAiC,gCAA1BiyC,EAAejyC,EACxB,EAMAyD,EAAQ0wC,eAAiBA,EAKzB1wC,EAAQ2wC,eAAiBA,EAKzB3wC,EAAQ4wC,gBAAkBA,EAK1B5wC,EAAQ6wC,eAAiBA,EAKzB7wC,EAAQ8wC,eAAiBA,EAWzB9wC,EAAQoxC,iBATR,SAA0B70C,GACxB,OACEm0C,EAAen0C,IACfo0C,EAAep0C,IACfq0C,EAAgBr0C,IAChBs0C,EAAet0C,IACfu0C,EAAev0C,EAEnB,EASAyD,EAAQqxC,iBANR,SAA0B90C,GACxB,MAA6B,oBAAfqO,aACZykC,EAAc9yC,IACdk0C,EAAoBl0C,GAExB,EAGA,CAAC,UAAW,aAAc,2BAA2Bma,QAAQ,SAASvZ,GACpEf,OAAOC,eAAe2D,EAAS7C,EAAQ,CACrCuJ,YAAY,EACZnK,MAAO,WACL,MAAM,IAAI8D,MAAMlD,EAAS,gCAC3B,GAEJ,E,8BCxTIuoC,EAA4BtpC,OAAOspC,2BACrC,SAAmCx/B,GAGjC,IAFA,IAAI6J,EAAO3T,OAAO2T,KAAK7J,GACnBorC,EAAc,CAAC,EACV1xC,EAAI,EAAGA,EAAImQ,EAAK/Q,OAAQY,IAC/B0xC,EAAYvhC,EAAKnQ,IAAMxD,OAAOkT,yBAAyBpJ,EAAK6J,EAAKnQ,IAEnE,OAAO0xC,CACT,EAEEC,EAAe,WACnBvxC,EAAQ8f,OAAS,SAAS9E,GACxB,IAAK4B,EAAS5B,GAAI,CAEhB,IADA,IAAI8Q,EAAU,GACLlsB,EAAI,EAAGA,EAAImF,UAAU/F,OAAQY,IACpCksB,EAAQjsB,KAAK+a,EAAQ7V,UAAUnF,KAEjC,OAAOksB,EAAQhvB,KAAK,IACtB,CAEI8C,EAAI,EAmBR,IAnBA,IACIuF,EAAOJ,UACPR,EAAMY,EAAKnG,OACXV,EAAMsC,OAAOoa,GAAG3Z,QAAQkwC,EAAc,SAAS3tC,GACjD,GAAU,OAANA,EAAY,MAAO,IACvB,GAAIhE,GAAK2E,EAAK,OAAOX,EACrB,OAAQA,GACN,IAAK,KAAM,OAAOhD,OAAOuE,EAAKvF,MAC9B,IAAK,KAAM,OAAO4M,OAAOrH,EAAKvF,MAC9B,IAAK,KACH,IACE,OAAO0M,KAAK2W,UAAU9d,EAAKvF,KAC7B,CAAE,MAAOkQ,GACP,MAAO,YACT,CACF,QACE,OAAOlM,EAEb,GACSA,EAAIuB,EAAKvF,GAAIA,EAAI2E,EAAKX,EAAIuB,IAAOvF,GACpC4xC,EAAO5tC,KAAOoc,EAASpc,GACzBtF,GAAO,IAAMsF,EAEbtF,GAAO,IAAMsc,EAAQhX,GAGzB,OAAOtF,CACT,EAMA0B,EAAQ2gC,UAAY,SAASrzB,EAAIwpB,GAC/B,QAAuB,IAAZpY,IAAqD,IAA1BA,EAAQ+yB,cAC5C,OAAOnkC,EAIT,QAAuB,IAAZoR,EACT,OAAO,WACL,OAAO1e,EAAQ2gC,UAAUrzB,EAAIwpB,GAAKl0B,MAAMvH,KAAM0J,UAChD,EAGF,IAAI2sC,GAAS,EAeb,OAdA,WACE,IAAKA,EAAQ,CACX,GAAIhzB,EAAQizB,iBACV,MAAM,IAAItxC,MAAMy2B,GACPpY,EAAQkzB,iBACjBC,QAAQC,MAAMhb,GAEd+a,QAAQtxC,MAAMu2B,GAEhB4a,GAAS,CACX,CACA,OAAOpkC,EAAG1K,MAAMvH,KAAM0J,UACxB,CAGF,EAGA,IAAIgtC,EAAS,CAAC,EACVC,EAAgB,KAEpB,GAAItzB,EAAQuzB,IAAIC,WAAY,CAC1B,IAAIC,EAAWzzB,EAAQuzB,IAAIC,WAC3BC,EAAWA,EAAS9wC,QAAQ,qBAAsB,QAC/CA,QAAQ,MAAO,MACfA,QAAQ,KAAM,OACdoW,cACHu6B,EAAgB,IAAIzzC,OAAO,IAAM4zC,EAAW,IAAK,IACnD,CA0BA,SAASv3B,EAAQ1U,EAAKsT,GAEpB,IAAI44B,EAAM,CACRp4B,KAAM,GACNq4B,QAASC,GAkBX,OAfIvtC,UAAU/F,QAAU,IAAGozC,EAAIr4B,MAAQhV,UAAU,IAC7CA,UAAU/F,QAAU,IAAGozC,EAAIG,OAASxtC,UAAU,IAC9C4X,EAAUnD,GAEZ44B,EAAII,WAAah5B,EACRA,GAETxZ,EAAQyyC,QAAQL,EAAK54B,GAGnBk5B,EAAYN,EAAII,cAAaJ,EAAII,YAAa,GAC9CE,EAAYN,EAAIr4B,SAAQq4B,EAAIr4B,MAAQ,GACpC24B,EAAYN,EAAIG,UAASH,EAAIG,QAAS,GACtCG,EAAYN,EAAIl4B,iBAAgBk4B,EAAIl4B,eAAgB,GACpDk4B,EAAIG,SAAQH,EAAIC,QAAUM,GACvBC,EAAYR,EAAKlsC,EAAKksC,EAAIr4B,MACnC,CAmCA,SAAS44B,EAAiBr0C,EAAKu0C,GAC7B,IAAIp5B,EAAQmB,EAAQk4B,OAAOD,GAE3B,OAAIp5B,EACK,KAAYmB,EAAQ23B,OAAO94B,GAAO,GAAK,IAAMnb,EAC7C,KAAYsc,EAAQ23B,OAAO94B,GAAO,GAAK,IAEvCnb,CAEX,CAGA,SAASg0C,EAAeh0C,EAAKu0C,GAC3B,OAAOv0C,CACT,CAcA,SAASs0C,EAAYR,EAAK71C,EAAOw2C,GAG/B,GAAIX,EAAIl4B,eACJ3d,GACAoyB,EAAWpyB,EAAMqe,UAEjBre,EAAMqe,UAAY5a,EAAQ4a,WAExBre,EAAMyW,aAAezW,EAAMyW,YAAY1W,YAAcC,GAAQ,CACjE,IAAImgC,EAAMngC,EAAMqe,QAAQm4B,EAAcX,GAItC,OAHKx1B,EAAS8f,KACZA,EAAMkW,EAAYR,EAAK1V,EAAKqW,IAEvBrW,CACT,CAGA,IAAIsW,EA+FN,SAAyBZ,EAAK71C,GAC5B,GAAIm2C,EAAYn2C,GACd,OAAO61C,EAAIC,QAAQ,YAAa,aAClC,GAAIz1B,EAASrgB,GAAQ,CACnB,IAAI02C,EAAS,IAAO3mC,KAAK2W,UAAU1mB,GAAO8E,QAAQ,SAAU,IAClBA,QAAQ,KAAM,OACdA,QAAQ,OAAQ,KAAO,IACjE,OAAO+wC,EAAIC,QAAQY,EAAQ,SAC7B,CACA,OAAIx2B,EAASlgB,GACJ61C,EAAIC,QAAQ,GAAK91C,EAAO,UAC7BogB,EAAUpgB,GACL61C,EAAIC,QAAQ,GAAK91C,EAAO,WAE7Bi1C,EAAOj1C,GACF61C,EAAIC,QAAQ,OAAQ,aAD7B,CAEF,CA/GkBa,CAAgBd,EAAK71C,GACrC,GAAIy2C,EACF,OAAOA,EAIT,IAAIjjC,EAAO3T,OAAO2T,KAAKxT,GACnB42C,EApCN,SAAqBlrC,GACnB,IAAI8gC,EAAO,CAAC,EAMZ,OAJA9gC,EAAMyO,QAAQ,SAASiO,EAAKzP,GAC1B6zB,EAAKpkB,IAAO,CACd,GAEOokB,CACT,CA4BoBqK,CAAYrjC,GAQ9B,GANIqiC,EAAII,aACNziC,EAAO3T,OAAO4T,oBAAoBzT,IAKhCuf,EAAQvf,KACJwT,EAAKrQ,QAAQ,YAAc,GAAKqQ,EAAKrQ,QAAQ,gBAAkB,GACrE,OAAO2zC,EAAY92C,GAIrB,GAAoB,IAAhBwT,EAAK/Q,OAAc,CACrB,GAAI2vB,EAAWpyB,GAAQ,CACrB,IAAI+D,EAAO/D,EAAM+D,KAAO,KAAO/D,EAAM+D,KAAO,GAC5C,OAAO8xC,EAAIC,QAAQ,YAAc/xC,EAAO,IAAK,UAC/C,CACA,GAAIuZ,EAAStd,GACX,OAAO61C,EAAIC,QAAQ9zC,OAAOjC,UAAUyB,SAAS8G,KAAKtI,GAAQ,UAE5D,GAAIugB,EAAOvgB,GACT,OAAO61C,EAAIC,QAAQ9mC,KAAKjP,UAAUyB,SAAS8G,KAAKtI,GAAQ,QAE1D,GAAIuf,EAAQvf,GACV,OAAO82C,EAAY92C,EAEvB,CAEA,IA2CI0E,EA3CAwZ,EAAO,GAAIxS,GAAQ,EAAOqrC,EAAS,CAAC,IAAK,KA6B7C,OA1BIj+B,EAAQ9Y,KACV0L,GAAQ,EACRqrC,EAAS,CAAC,IAAK,MAIb3kB,EAAWpyB,KAEbke,EAAO,cADCle,EAAM+D,KAAO,KAAO/D,EAAM+D,KAAO,IACf,KAIxBuZ,EAAStd,KACXke,EAAO,IAAMlc,OAAOjC,UAAUyB,SAAS8G,KAAKtI,IAI1CugB,EAAOvgB,KACTke,EAAO,IAAMlP,KAAKjP,UAAUi3C,YAAY1uC,KAAKtI,IAI3Cuf,EAAQvf,KACVke,EAAO,IAAM44B,EAAY92C,IAGP,IAAhBwT,EAAK/Q,QAAkBiJ,GAAyB,GAAhB1L,EAAMyC,OAItC+zC,EAAe,EACbl5B,EAAStd,GACJ61C,EAAIC,QAAQ9zC,OAAOjC,UAAUyB,SAAS8G,KAAKtI,GAAQ,UAEnD61C,EAAIC,QAAQ,WAAY,YAInCD,EAAIp4B,KAAKna,KAAKtD,GAIZ0E,EADEgH,EAsCN,SAAqBmqC,EAAK71C,EAAOw2C,EAAcI,EAAapjC,GAE1D,IADA,IAAI9O,EAAS,GACJrB,EAAI,EAAGwd,EAAI7gB,EAAMyC,OAAQY,EAAIwd,IAAKxd,EACrCgI,EAAerL,EAAOqE,OAAOhB,IAC/BqB,EAAOpB,KAAK2zC,EAAepB,EAAK71C,EAAOw2C,EAAcI,EACjDvyC,OAAOhB,IAAI,IAEfqB,EAAOpB,KAAK,IAShB,OANAkQ,EAAK2G,QAAQ,SAASjG,GACfA,EAAIrR,MAAM,UACb6B,EAAOpB,KAAK2zC,EAAepB,EAAK71C,EAAOw2C,EAAcI,EACjD1iC,GAAK,GAEb,GACOxP,CACT,CAtDawyC,CAAYrB,EAAK71C,EAAOw2C,EAAcI,EAAapjC,GAEnDA,EAAKpV,IAAI,SAAS8V,GACzB,OAAO+iC,EAAepB,EAAK71C,EAAOw2C,EAAcI,EAAa1iC,EAAKxI,EACpE,GAGFmqC,EAAIp4B,KAAKla,MA6GX,SAA8BmB,EAAQwZ,EAAM64B,GAQ1C,OANaryC,EAAOwoB,OAAO,SAAS/O,EAAMg5B,GAGxC,OADIA,EAAIh0C,QAAQ,MACTgb,EAAOg5B,EAAIryC,QAAQ,kBAAmB,IAAIrC,OAAS,CAC5D,EAAG,GAEU,GACJs0C,EAAO,IACG,KAAT74B,EAAc,GAAKA,EAAO,OAC3B,IACAxZ,EAAOnE,KAAK,SACZ,IACAw2C,EAAO,GAGTA,EAAO,GAAK74B,EAAO,IAAMxZ,EAAOnE,KAAK,MAAQ,IAAMw2C,EAAO,EACnE,CA7HSK,CAAqB1yC,EAAQwZ,EAAM64B,IAxBjCA,EAAO,GAAK74B,EAAO64B,EAAO,EAyBrC,CAsBA,SAASD,EAAY92C,GACnB,MAAO,IAAM8D,MAAM/D,UAAUyB,SAAS8G,KAAKtI,GAAS,GACtD,CAuBA,SAASi3C,EAAepB,EAAK71C,EAAOw2C,EAAcI,EAAa1iC,EAAKxI,GAClE,IAAI3H,EAAMhC,EAAKkI,EAsCf,IArCAA,EAAOpK,OAAOkT,yBAAyB/S,EAAOkU,IAAQ,CAAElU,MAAOA,EAAMkU,KAC5DjU,IAEL8B,EADEkI,EAAK6M,IACD++B,EAAIC,QAAQ,kBAAmB,WAE/BD,EAAIC,QAAQ,WAAY,WAG5B7rC,EAAK6M,MACP/U,EAAM8zC,EAAIC,QAAQ,WAAY,YAG7BzqC,EAAeurC,EAAa1iC,KAC/BnQ,EAAO,IAAMmQ,EAAM,KAEhBnS,IACC8zC,EAAIp4B,KAAKta,QAAQ8G,EAAKjK,OAAS,GAE/B+B,EADEkzC,EAAOuB,GACHH,EAAYR,EAAK5rC,EAAKjK,MAAO,MAE7Bq2C,EAAYR,EAAK5rC,EAAKjK,MAAOw2C,EAAe,IAE5CrzC,QAAQ,OAAS,IAErBpB,EADE2J,EACI3J,EAAIqD,MAAM,MAAMhH,IAAI,SAASi5C,GACjC,MAAO,KAAOA,CAChB,GAAG92C,KAAK,MAAMgC,MAAM,GAEd,KAAOR,EAAIqD,MAAM,MAAMhH,IAAI,SAASi5C,GACxC,MAAO,MAAQA,CACjB,GAAG92C,KAAK,OAIZwB,EAAM8zC,EAAIC,QAAQ,aAAc,YAGhCK,EAAYpyC,GAAO,CACrB,GAAI2H,GAASwI,EAAIrR,MAAM,SACrB,OAAOd,GAETgC,EAAOgM,KAAK2W,UAAU,GAAKxS,IAClBrR,MAAM,iCACbkB,EAAOA,EAAKxB,MAAM,GAAI,GACtBwB,EAAO8xC,EAAIC,QAAQ/xC,EAAM,UAEzBA,EAAOA,EAAKe,QAAQ,KAAM,OACdA,QAAQ,OAAQ,KAChBA,QAAQ,WAAY,KAChCf,EAAO8xC,EAAIC,QAAQ/xC,EAAM,UAE7B,CAEA,OAAOA,EAAO,KAAOhC,CACvB,CA4BA,SAAS+W,EAAQw+B,GACf,OAAOxvC,MAAMgR,QAAQw+B,EACvB,CAGA,SAASl3B,EAAUua,GACjB,MAAsB,kBAARA,CAChB,CAGA,SAASsa,EAAOta,GACd,OAAe,OAARA,CACT,CAQA,SAASza,EAASya,GAChB,MAAsB,iBAARA,CAChB,CAGA,SAASta,EAASsa,GAChB,MAAsB,iBAARA,CAChB,CAQA,SAASwb,EAAYxb,GACnB,YAAe,IAARA,CACT,CAGA,SAASrd,EAASi6B,GAChB,OAAO9zB,EAAS8zB,IAA8B,oBAAvB18B,EAAe08B,EACxC,CAIA,SAAS9zB,EAASkX,GAChB,MAAsB,iBAARA,GAA4B,OAARA,CACpC,CAGA,SAASpa,EAAOi3B,GACd,OAAO/zB,EAAS+zB,IAA4B,kBAAtB38B,EAAe28B,EACvC,CAIA,SAASj4B,EAAQ9U,GACf,OAAOgZ,EAAShZ,KACW,mBAAtBoQ,EAAepQ,IAA2BA,aAAa3G,MAC9D,CAIA,SAASsuB,EAAWuI,GAClB,MAAsB,mBAARA,CAChB,CAeA,SAAS9f,EAAepD,GACtB,OAAO5X,OAAOE,UAAUyB,SAAS8G,KAAKmP,EACxC,CAGA,SAAS/P,EAAIX,GACX,OAAOA,EAAI,GAAK,IAAMA,EAAEvF,SAAS,IAAMuF,EAAEvF,SAAS,GACpD,CAxbAiC,EAAQy4B,SAAW,SAASplB,GAE1B,GADAA,EAAMA,EAAIoE,eACLs6B,EAAO1+B,GACV,GAAI2+B,EAAcnxC,KAAKwS,GAAM,CAC3B,IAAI2gC,EAAMt1B,EAAQs1B,IAClBjC,EAAO1+B,GAAO,WACZ,IAAIyjB,EAAM92B,EAAQ8f,OAAOld,MAAM5C,EAAS+E,WACxC8sC,QAAQtxC,MAAM,YAAa8S,EAAK2gC,EAAKld,EACvC,CACF,MACEib,EAAO1+B,GAAO,WAAY,EAG9B,OAAO0+B,EAAO1+B,EAChB,EAmCArT,EAAQ4a,QAAUA,EAIlBA,EAAQ23B,OAAS,CACf,KAAS,CAAC,EAAG,IACb,OAAW,CAAC,EAAG,IACf,UAAc,CAAC,EAAG,IAClB,QAAY,CAAC,EAAG,IAChB,MAAU,CAAC,GAAI,IACf,KAAS,CAAC,GAAI,IACd,MAAU,CAAC,GAAI,IACf,KAAS,CAAC,GAAI,IACd,KAAS,CAAC,GAAI,IACd,MAAU,CAAC,GAAI,IACf,QAAY,CAAC,GAAI,IACjB,IAAQ,CAAC,GAAI,IACb,OAAW,CAAC,GAAI,KAIlB33B,EAAQk4B,OAAS,CACf,QAAW,OACX,OAAU,SACV,QAAW,SACX,UAAa,OACb,KAAQ,OACR,OAAU,QACV,KAAQ,UAER,OAAU,OA+QZ9yC,EAAQi0C,MAAQ,EAAhB,OAKAj0C,EAAQqV,QAAUA,EAKlBrV,EAAQ2c,UAAYA,EAKpB3c,EAAQwxC,OAASA,EAKjBxxC,EAAQk0C,kBAHR,SAA2Bhd,GACzB,OAAc,MAAPA,CACT,EAMAl3B,EAAQyc,SAAWA,EAKnBzc,EAAQ4c,SAAWA,EAKnB5c,EAAQiZ,SAHR,SAAkBie,GAChB,MAAsB,iBAARA,CAChB,EAMAl3B,EAAQ0yC,YAAcA,EAKtB1yC,EAAQ6Z,SAAWA,EACnB7Z,EAAQi0C,MAAMp6B,SAAWA,EAKzB7Z,EAAQggB,SAAWA,EAKnBhgB,EAAQ8c,OAASA,EACjB9c,EAAQi0C,MAAMn3B,OAASA,EAMvB9c,EAAQ8b,QAAUA,EAClB9b,EAAQi0C,MAAME,cAAgBr4B,EAK9B9b,EAAQ2uB,WAAaA,EAUrB3uB,EAAQo0C,YARR,SAAqBld,GACnB,OAAe,OAARA,GACe,kBAARA,GACQ,iBAARA,GACQ,iBAARA,GACQ,iBAARA,QACQ,IAARA,CAChB,EAGAl3B,EAAQuoB,SAAW,EAAnB,OAYA,IAAI8rB,EAAS,CAAC,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MAAO,MACxD,MAAO,MAAO,OA6C5B,SAASzsC,EAAe1B,EAAKrI,GAC3B,OAAOzB,OAAOE,UAAUsL,eAAe/C,KAAKqB,EAAKrI,EACnD,CAlCAmC,EAAQs0C,IAAM,WAVd,IACMP,EACAQ,EASJ1C,QAAQyC,IAAI,WATRC,EAAO,CAACtwC,GADR8vC,EAAI,IAAIxoC,MACMipC,YACNvwC,EAAI8vC,EAAEU,cACNxwC,EAAI8vC,EAAEW,eAAe53C,KAAK,KAC/B,CAACi3C,EAAEY,UAAWN,EAAON,EAAEa,YAAaL,GAAMz3C,KAAK,MAMlBkD,EAAQ8f,OAAOld,MAAM5C,EAAS+E,WACpE,EAgBA/E,EAAQuvB,SAAW,EAAnB,OAEAvvB,EAAQyyC,QAAU,SAASvI,EAAQ2K,GAEjC,IAAKA,IAAQ70B,EAAS60B,GAAM,OAAO3K,EAInC,IAFA,IAAIn6B,EAAO3T,OAAO2T,KAAK8kC,GACnBj1C,EAAImQ,EAAK/Q,OACNY,KACLsqC,EAAOn6B,EAAKnQ,IAAMi1C,EAAI9kC,EAAKnQ,IAE7B,OAAOsqC,CACT,EAMA,IAAI4K,EAA6C,oBAAX9pC,OAAyBA,OAAO,8BAA2BvS,EA0DjG,SAASs8C,EAAsB5iB,EAAQphB,GAKrC,IAAKohB,EAAQ,CACX,IAAI6iB,EAAY,IAAI30C,MAAM,2CAC1B20C,EAAU7iB,OAASA,EACnBA,EAAS6iB,CACX,CACA,OAAOjkC,EAAGohB,EACZ,CAnEAnyB,EAAQi1C,UAAY,SAAmBC,GACrC,GAAwB,mBAAbA,EACT,MAAM,IAAI1tC,UAAU,oDAEtB,GAAIstC,GAA4BI,EAASJ,GAA2B,CAClE,IAAIxnC,EACJ,GAAkB,mBADdA,EAAK4nC,EAASJ,IAEhB,MAAM,IAAIttC,UAAU,iEAKtB,OAHApL,OAAOC,eAAeiR,EAAIwnC,EAA0B,CAClDv4C,MAAO+Q,EAAI5G,YAAY,EAAOC,UAAU,EAAOF,cAAc,IAExD6G,CACT,CAEA,SAASA,IAQP,IAPA,IAAI6nC,EAAgBC,EAChBnQ,EAAU,IAAIv4B,QAAQ,SAAU6R,EAASkW,GAC3C0gB,EAAiB52B,EACjB62B,EAAgB3gB,CAClB,GAEItvB,EAAO,GACFvF,EAAI,EAAGA,EAAImF,UAAU/F,OAAQY,IACpCuF,EAAKtF,KAAKkF,UAAUnF,IAEtBuF,EAAKtF,KAAK,SAAUmW,EAAKzZ,GACnByZ,EACFo/B,EAAcp/B,GAEdm/B,EAAe54C,EAEnB,GAEA,IACE24C,EAAStyC,MAAMvH,KAAM8J,EACvB,CAAE,MAAO6Q,GACPo/B,EAAcp/B,EAChB,CAEA,OAAOivB,CACT,CAOA,OALA7oC,OAAO6X,eAAe3G,EAAIlR,OAAO+K,eAAe+tC,IAE5CJ,GAA0B14C,OAAOC,eAAeiR,EAAIwnC,EAA0B,CAChFv4C,MAAO+Q,EAAI5G,YAAY,EAAOC,UAAU,EAAOF,cAAc,IAExDrK,OAAOupC,iBACZr4B,EACAo4B,EAA0BwP,GAE9B,EAEAl1C,EAAQi1C,UAAUl8B,OAAS+7B,EAiD3B90C,EAAQq1C,YAlCR,SAAqBH,GACnB,GAAwB,mBAAbA,EACT,MAAM,IAAI1tC,UAAU,oDAMtB,SAAS8tC,IAEP,IADA,IAAInwC,EAAO,GACFvF,EAAI,EAAGA,EAAImF,UAAU/F,OAAQY,IACpCuF,EAAKtF,KAAKkF,UAAUnF,IAGtB,IAAI21C,EAAUpwC,EAAKrF,MACnB,GAAuB,mBAAZy1C,EACT,MAAM,IAAI/tC,UAAU,8CAEtB,IAAI+M,EAAOlZ,KACP0V,EAAK,WACP,OAAOwkC,EAAQ3yC,MAAM2R,EAAMxP,UAC7B,EAGAmwC,EAAStyC,MAAMvH,KAAM8J,GAClB4sB,KAAK,SAAS2K,GAAOhe,EAAQ2T,SAASthB,EAAGtM,KAAK,KAAM,KAAMi4B,GAAM,EAC3D,SAAS8Y,GAAO92B,EAAQ2T,SAAS0iB,EAAsBtwC,KAAK,KAAM+wC,EAAKzkC,GAAK,EACtF,CAKA,OAHA3U,OAAO6X,eAAeqhC,EAAel5C,OAAO+K,eAAe+tC,IAC3D94C,OAAOupC,iBAAiB2P,EACA5P,EAA0BwP,IAC3CI,CACT,C,4BCvsBA,IAAI5+B,EAAU,EAAQ,OAClB++B,EAAuB,EAAQ,OAC/B5uC,EAAW,EAAQ,OACnBqK,EAAY,EAAQ,OACpBpK,EAAO,EAAQ,OACfyD,EAAW,EAAQ,OAEnB0G,EAAYC,EAAU,6BACtBF,EAAiB,EAAQ,MAAR,GAEjB0kC,EAAwC,WACxCC,EAAcF,IAEdl+B,EAASrG,EAAU,0BAGnBrL,EAAWqL,EAAU,2BAA2B,IAAS,SAAiBjJ,EAAO1L,GACpF,IAAK,IAAIqD,EAAI,EAAGA,EAAIqI,EAAMjJ,OAAQY,GAAK,EACtC,GAAIqI,EAAMrI,KAAOrD,EAChB,OAAOqD,EAGT,OAAQ,CACT,EAIIg2C,EAAQ,CAAE7uC,UAAW,MAExB2P,EAAQi/B,EADL3kC,GAAkBlK,GAAQyD,EACR,SAAUsrC,GAC9B,IAAIrtC,EAAM,IAAIktC,EAAEG,GAChB,GAAI7qC,OAAOoF,eAAe5H,GAAO+B,EAAU,CAC1C,IAAIuhC,EAAQvhC,EAAS/B,GAEjB2H,EAAarJ,EAAKglC,EAAO9gC,OAAOoF,aACpC,IAAKD,GAAc27B,EAAO,CACzB,IAAIgK,EAAavrC,EAASuhC,GAE1B37B,EAAarJ,EAAKgvC,EAAY9qC,OAAOoF,YACtC,CAEAwlC,EAAM,IAAMC,GAAchvC,EAASsJ,EAAW3T,IAC/C,CACD,EAEqB,SAAUq5C,GAC9B,IAAIrtC,EAAM,IAAIktC,EAAEG,GACZvoC,EAAK9E,EAAI1J,OAAS0J,EAAI6K,IACtB/F,IACHsoC,EACkD,IAAMC,GAGvDhvC,EAASyG,GAGZ,GA0CDvN,EAAOC,QAAU,SAAyBzD,GACzC,IAAKA,GAA0B,iBAAVA,EAAsB,OAAO,EAClD,IAAKyU,EAAgB,CAEpB,IAAImM,EAAM5F,EAAOtG,EAAU1U,GAAQ,GAAI,GACvC,OAAIsJ,EAAS8vC,EAAax4B,IAAQ,EAC1BA,EAEI,WAARA,GA1BU,SAAsB5gB,GACU,IAAIw5C,GAAQ,EAa3D,OAZAr/B,EACiE,EACiB,SAAUs/B,EAAQ11C,GAClG,IAAKy1C,EACJ,IAECC,EAAOz5C,GACPw5C,EAAmDx+B,EAAOjX,EAAM,EACjE,CAAE,MAAO0G,GAAU,CAErB,GAEM+uC,CACR,CAeSE,CAAU15C,EAClB,CACA,OAAKuK,EApDe,SAA2BvK,GACK,IAAIw5C,GAAQ,EAehE,OAdAr/B,EACkE,EAEjE,SAAUs/B,EAAQH,GACjB,IAAKE,EACJ,IAEK,IAAMC,EAAOz5C,KAAWs5C,IAC3BE,EAAmDx+B,EAAOs+B,EAAY,GAExE,CAAE,MAAO7uC,GAAU,CAErB,GAEM+uC,CACR,CAoCQG,CAAe35C,GADF,IAErB,C,WCpHAwD,EAAOC,QAIP,WAGI,IAFA,IAAI0I,EAAS,CAAC,EAEL9I,EAAI,EAAGA,EAAImF,UAAU/F,OAAQY,IAAK,CACvC,IAAI2pB,EAASxkB,UAAUnF,GAEvB,IAAK,IAAI6Q,KAAO8Y,EACR3hB,EAAe/C,KAAK0kB,EAAQ9Y,KAC5B/H,EAAO+H,GAAO8Y,EAAO9Y,GAGjC,CAEA,OAAO/H,CACX,EAhBA,IAAId,EAAiBxL,OAAOE,UAAUsL,c,8ECAtC,IAAIuuC,EAAgB,EAAQ,OAExBT,EAAwC,WAG5C31C,EAAOC,QAAU,WAEhB,IADA,IAA2D6hB,EAAM,GACxDjiB,EAAI,EAAGA,EAAIu2C,EAAcn3C,OAAQY,IACN,mBAAxB81C,EAAES,EAAcv2C,MAE1BiiB,EAAIA,EAAI7iB,QAAUm3C,EAAcv2C,IAGlC,OAAOiiB,CACR,C,8CChBA,MAEMpC,EAF2C,oBAAtB22B,mBACvB7hC,gBAAgB6hC,kBAEd7hC,KACkB,oBAAX7b,OACHA,OACAmkB,WACG+R,EAAQnP,EAAKmP,MAAMnqB,KAAKgb,GACdA,EAAK42B,QACL52B,EAAK62B,QACJ72B,EAAK82B,Q,4BCVd,SAASC,EAAsBC,GAC1C,MAAgC,mBAArBA,EACAA,EAEPpyC,MAAMgR,QAAQohC,GACNC,IACJ,IAAK,MAAMC,KAAWF,EAAkB,CACpC,GAAuB,iBAAZE,GAAwBD,IAAaC,EAC5C,OAAO,EAEX,GAAIA,aAAmBp4C,QAAUo4C,EAAQ91C,KAAK61C,GAC1C,OAAO,CAEf,GAGD,KAAM,CACjB,C,gFCfA,MAAME,EAAgB,gLAGhBC,EAAY,IAAIt4C,OAAO,KADGq4C,EAAgB,KAD/BA,EAEY,mDAEtB,SAASE,EAAc3uC,EAAQ+iB,GACpC,MAAMkK,EAAU,GAChB,IAAIh2B,EAAQ8rB,EAAMjd,KAAK9F,GACvB,KAAO/I,GAAO,CACZ,MAAM23C,EAAa,GACnBA,EAAWC,WAAa9rB,EAAM1N,UAAYpe,EAAM,GAAGJ,OACnD,MAAMuF,EAAMnF,EAAMJ,OAClB,IAAK,IAAIsW,EAAQ,EAAGA,EAAQ/Q,EAAK+Q,IAC/ByhC,EAAWl3C,KAAKT,EAAMkW,IAExB8f,EAAQv1B,KAAKk3C,GACb33C,EAAQ8rB,EAAMjd,KAAK9F,EACrB,CACA,OAAOitB,CACT,CAEO,MAAM6hB,EAAS,SAAS9uC,GAE7B,QAAQ,MADM0uC,EAAU5oC,KAAK9F,GAE/B,EAEO,SAAS+uC,EAAQ9hC,GACtB,YAAoB,IAANA,CAChB,C,4DC1BA,MAAM+hC,EAAiB,CACrBC,wBAAwB,EACxBC,aAAc,IAIT,SAASC,EAASC,EAAS36C,GAChCA,EAAUR,OAAOotB,OAAO,CAAC,EAAG2tB,EAAgBv6C,GAK5C,MAAM46C,EAAO,GACb,IAAIC,GAAW,EAGXC,GAAc,EAEC,WAAfH,EAAQ,KAEVA,EAAUA,EAAQ91C,OAAO,IAG3B,IAAK,IAAI7B,EAAI,EAAGA,EAAI23C,EAAQv4C,OAAQY,IAElC,GAAmB,MAAf23C,EAAQ33C,IAA+B,MAAjB23C,EAAQ33C,EAAE,IAGlC,GAFAA,GAAG,EACHA,EAAI+3C,EAAOJ,EAAQ33C,GACfA,EAAEoW,IAAK,OAAOpW,MACd,IAAmB,MAAf23C,EAAQ33C,GA0IX,CACL,GAAKg4C,EAAaL,EAAQ33C,IACxB,SAEF,OAAOi4C,EAAe,cAAe,SAASN,EAAQ33C,GAAG,qBAAsBk4C,EAAyBP,EAAS33C,GACnH,CA/I8B,CAG5B,IAAIm4C,EAAcn4C,EAGlB,GAFAA,IAEmB,MAAf23C,EAAQ33C,GAAY,CACtBA,EAAIo4C,EAAoBT,EAAS33C,GACjC,QACF,CAAO,CACL,IAAIq4C,GAAa,EACE,MAAfV,EAAQ33C,KAEVq4C,GAAa,EACbr4C,KAGF,IAAIrH,EAAU,GACd,KAAOqH,EAAI23C,EAAQv4C,QACF,MAAfu4C,EAAQ33C,IACO,MAAf23C,EAAQ33C,IACO,OAAf23C,EAAQ33C,IACO,OAAf23C,EAAQ33C,IACO,OAAf23C,EAAQ33C,GAAaA,IAErBrH,GAAWg/C,EAAQ33C,GAWrB,GATArH,EAAUA,EAAQ2mB,OAGkB,MAAhC3mB,EAAQA,EAAQyG,OAAS,KAE3BzG,EAAUA,EAAQy+B,UAAU,EAAGz+B,EAAQyG,OAAS,GAEhDY,MAEGs4C,EAAgB3/C,GAAU,CAC7B,IAAIu+B,EAMJ,OAJEA,EAD4B,IAA1Bv+B,EAAQ2mB,OAAOlgB,OACX,2BAEA,QAAQzG,EAAQ,wBAEjBs/C,EAAe,aAAc/gB,EAAKghB,EAAyBP,EAAS33C,GAC7E,CAEA,MAAMrC,EAAS46C,EAAiBZ,EAAS33C,GACzC,IAAe,IAAXrC,EACF,OAAOs6C,EAAe,cAAe,mBAAmBt/C,EAAQ,qBAAsBu/C,EAAyBP,EAAS33C,IAE1H,IAAIw4C,EAAU76C,EAAOhB,MAGrB,GAFAqD,EAAIrC,EAAO+X,MAEyB,MAAhC8iC,EAAQA,EAAQp5C,OAAS,GAAY,CAEvC,MAAMq5C,EAAez4C,EAAIw4C,EAAQp5C,OACjCo5C,EAAUA,EAAQphB,UAAU,EAAGohB,EAAQp5C,OAAS,GAChD,MAAMs5C,EAAUC,EAAwBH,EAASx7C,GACjD,IAAgB,IAAZ07C,EAOF,OAAOT,EAAeS,EAAQtiC,IAAIxR,KAAM8zC,EAAQtiC,IAAI8gB,IAAKghB,EAAyBP,EAASc,EAAeC,EAAQtiC,IAAI49B,OANtH6D,GAAW,CAQf,MAAO,GAAIQ,EAAY,CACrB,IAAK16C,EAAOi7C,UACV,OAAOX,EAAe,aAAc,gBAAgBt/C,EAAQ,iCAAkCu/C,EAAyBP,EAAS33C,IAC3H,GAAIw4C,EAAQl5B,OAAOlgB,OAAS,EACjC,OAAO64C,EAAe,aAAc,gBAAgBt/C,EAAQ,+CAAgDu/C,EAAyBP,EAASQ,IACzI,GAAoB,IAAhBP,EAAKx4C,OACd,OAAO64C,EAAe,aAAc,gBAAgBt/C,EAAQ,yBAA0Bu/C,EAAyBP,EAASQ,IACnH,CACL,MAAMU,EAAMjB,EAAK13C,MACjB,GAAIvH,IAAYkgD,EAAIlgD,QAAS,CAC3B,IAAImgD,EAAUZ,EAAyBP,EAASkB,EAAIV,aACpD,OAAOF,EAAe,aACpB,yBAAyBY,EAAIlgD,QAAQ,qBAAqBmgD,EAAQ9E,KAAK,SAAS8E,EAAQC,IAAI,6BAA6BpgD,EAAQ,KACjIu/C,EAAyBP,EAASQ,GACtC,CAGmB,GAAfP,EAAKx4C,SACP04C,GAAc,EAElB,CACF,KAAO,CACL,MAAMY,EAAUC,EAAwBH,EAASx7C,GACjD,IAAgB,IAAZ07C,EAIF,OAAOT,EAAeS,EAAQtiC,IAAIxR,KAAM8zC,EAAQtiC,IAAI8gB,IAAKghB,EAAyBP,EAAS33C,EAAIw4C,EAAQp5C,OAASs5C,EAAQtiC,IAAI49B,OAI9H,IAAoB,IAAhB8D,EACF,OAAOG,EAAe,aAAc,sCAAuCC,EAAyBP,EAAS33C,KAC1D,IAA3ChD,EAAQy6C,aAAa33C,QAAQnH,IAGrCi/C,EAAK33C,KAAK,CAACtH,UAASw/C,gBAEtBN,GAAW,CACb,CAIA,IAAK73C,IAAKA,EAAI23C,EAAQv4C,OAAQY,IAC5B,GAAmB,MAAf23C,EAAQ33C,GAAY,CACtB,GAAuB,MAAnB23C,EAAQ33C,EAAI,GAAY,CAE1BA,IACAA,EAAIo4C,EAAoBT,EAAS33C,GACjC,QACF,CAAO,GAAqB,MAAjB23C,EAAQ33C,EAAE,GAInB,MAFA,GADAA,EAAI+3C,EAAOJ,IAAW33C,GAClBA,EAAEoW,IAAK,OAAOpW,CAItB,MAAO,GAAmB,MAAf23C,EAAQ33C,GAAY,CAC7B,MAAMg5C,EAAWC,EAAkBtB,EAAS33C,GAC5C,IAAiB,GAAbg5C,EACF,OAAOf,EAAe,cAAe,4BAA6BC,EAAyBP,EAAS33C,IACtGA,EAAIg5C,CACN,MACE,IAAoB,IAAhBlB,IAAyBE,EAAaL,EAAQ33C,IAChD,OAAOi4C,EAAe,aAAc,wBAAyBC,EAAyBP,EAAS33C,IAIlF,MAAf23C,EAAQ33C,IACVA,GAEJ,CACF,CAKA,CAGF,OAAK63C,EAEoB,GAAfD,EAAKx4C,OACJ64C,EAAe,aAAc,iBAAiBL,EAAK,GAAGj/C,QAAQ,KAAMu/C,EAAyBP,EAASC,EAAK,GAAGO,gBAC/GP,EAAKx4C,OAAS,IACb64C,EAAe,aAAc,YAChCvrC,KAAK2W,UAAUu0B,EAAK78C,IAAIiB,GAAKA,EAAErD,SAAU,KAAM,GAAG8I,QAAQ,SAAU,IACpE,WAAY,CAACuyC,KAAM,EAAG+E,IAAK,IAN1Bd,EAAe,aAAc,sBAAuB,EAU/D,CAEA,SAASD,EAAazN,GACpB,MAAgB,MAATA,GAAyB,OAATA,GAA0B,OAATA,GAA2B,OAATA,CAC5D,CAMA,SAASwN,EAAOJ,EAAS33C,GACvB,MAAMjB,EAAQiB,EACd,KAAOA,EAAI23C,EAAQv4C,OAAQY,IACzB,GAAkB,KAAd23C,EAAQ33C,IAA2B,KAAd23C,EAAQ33C,GAAW,CAE1C,MAAMk5C,EAAUvB,EAAQ91C,OAAO9C,EAAOiB,EAAIjB,GAC1C,GAAIiB,EAAI,GAAiB,QAAZk5C,EACX,OAAOjB,EAAe,aAAc,6DAA8DC,EAAyBP,EAAS33C,IAC/H,GAAkB,KAAd23C,EAAQ33C,IAA+B,KAAlB23C,EAAQ33C,EAAI,GAAW,CAErDA,IACA,KACF,CACE,QAEJ,CAEF,OAAOA,CACT,CAEA,SAASo4C,EAAoBT,EAAS33C,GACpC,GAAI23C,EAAQv4C,OAASY,EAAI,GAAwB,MAAnB23C,EAAQ33C,EAAI,IAAiC,MAAnB23C,EAAQ33C,EAAI,IAElE,IAAKA,GAAK,EAAGA,EAAI23C,EAAQv4C,OAAQY,IAC/B,GAAmB,MAAf23C,EAAQ33C,IAAiC,MAAnB23C,EAAQ33C,EAAI,IAAiC,MAAnB23C,EAAQ33C,EAAI,GAAY,CAC1EA,GAAK,EACL,KACF,OAEG,GACL23C,EAAQv4C,OAASY,EAAI,GACF,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,GACZ,CACA,IAAIm5C,EAAqB,EACzB,IAAKn5C,GAAK,EAAGA,EAAI23C,EAAQv4C,OAAQY,IAC/B,GAAmB,MAAf23C,EAAQ33C,GACVm5C,SACK,GAAmB,MAAfxB,EAAQ33C,KACjBm5C,IAC2B,IAAvBA,GACF,KAIR,MAAO,GACLxB,EAAQv4C,OAASY,EAAI,GACF,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,GAEZ,IAAKA,GAAK,EAAGA,EAAI23C,EAAQv4C,OAAQY,IAC/B,GAAmB,MAAf23C,EAAQ33C,IAAiC,MAAnB23C,EAAQ33C,EAAI,IAAiC,MAAnB23C,EAAQ33C,EAAI,GAAY,CAC1EA,GAAK,EACL,KACF,CAIJ,OAAOA,CACT,CAUA,SAASu4C,EAAiBZ,EAAS33C,GACjC,IAAIw4C,EAAU,GACVY,EAAY,GACZR,GAAY,EAChB,KAAO54C,EAAI23C,EAAQv4C,OAAQY,IAAK,CAC9B,GAbgB,MAaZ23C,EAAQ33C,IAZI,MAYkB23C,EAAQ33C,GACtB,KAAdo5C,EACFA,EAAYzB,EAAQ33C,GACXo5C,IAAczB,EAAQ33C,KAG/Bo5C,EAAY,SAET,GAAmB,MAAfzB,EAAQ33C,IACC,KAAdo5C,EAAkB,CACpBR,GAAY,EACZ,KACF,CAEFJ,GAAWb,EAAQ33C,EACrB,CACA,MAAkB,KAAdo5C,GAIG,CACLz8C,MAAO67C,EACP9iC,MAAO1V,EACP44C,UAAWA,EAEf,CAKA,MAAMS,EAAoB,IAAI16C,OAAO,0DAA2D,KAIhG,SAASg6C,EAAwBH,EAASx7C,GAKxC,MAAMw4B,GAAU,QAAcgjB,EAASa,GACjCC,EAAY,CAAC,EAEnB,IAAK,IAAIt5C,EAAI,EAAGA,EAAIw1B,EAAQp2B,OAAQY,IAAK,CACvC,GAA6B,IAAzBw1B,EAAQx1B,GAAG,GAAGZ,OAEhB,OAAO64C,EAAe,cAAe,cAAcziB,EAAQx1B,GAAG,GAAG,8BAA+Bu5C,EAAqB/jB,EAAQx1B,KACxH,QAAsBnH,IAAlB28B,EAAQx1B,GAAG,SAAsCnH,IAAlB28B,EAAQx1B,GAAG,GACnD,OAAOi4C,EAAe,cAAe,cAAcziB,EAAQx1B,GAAG,GAAG,sBAAuBu5C,EAAqB/jB,EAAQx1B,KAChH,QAAsBnH,IAAlB28B,EAAQx1B,GAAG,KAAqBhD,EAAQw6C,uBAEjD,OAAOS,EAAe,cAAe,sBAAsBziB,EAAQx1B,GAAG,GAAG,oBAAqBu5C,EAAqB/jB,EAAQx1B,KAK7H,MAAM82C,EAAWthB,EAAQx1B,GAAG,GAC5B,IAAKw5C,EAAiB1C,GACpB,OAAOmB,EAAe,cAAe,cAAcnB,EAAS,wBAAyByC,EAAqB/jB,EAAQx1B,KAEpH,GAAKs5C,EAAUtxC,eAAe8uC,GAI5B,OAAOmB,EAAe,cAAe,cAAcnB,EAAS,iBAAkByC,EAAqB/jB,EAAQx1B,KAF3Gs5C,EAAUxC,GAAY,CAI1B,CAEA,OAAO,CACT,CAiBA,SAASmC,EAAkBtB,EAAS33C,GAGlC,GAAmB,MAAf23C,IADJ33C,GAEE,OAAQ,EACV,GAAmB,MAAf23C,EAAQ33C,GAEV,OAtBJ,SAAiC23C,EAAS33C,GACxC,IAAIk0C,EAAK,KAKT,IAJmB,MAAfyD,EAAQ33C,KACVA,IACAk0C,EAAK,cAEAl0C,EAAI23C,EAAQv4C,OAAQY,IAAK,CAC9B,GAAmB,MAAf23C,EAAQ33C,GACV,OAAOA,EACT,IAAK23C,EAAQ33C,GAAGR,MAAM00C,GACpB,KACJ,CACA,OAAQ,CACV,CASWuF,CAAwB9B,IAD/B33C,GAGF,IAAIkjC,EAAQ,EACZ,KAAOljC,EAAI23C,EAAQv4C,OAAQY,IAAKkjC,IAC9B,KAAIyU,EAAQ33C,GAAGR,MAAM,OAAS0jC,EAAQ,IAAtC,CAEA,GAAmB,MAAfyU,EAAQ33C,GACV,MACF,OAAQ,CAHE,CAKZ,OAAOA,CACT,CAEA,SAASi4C,EAAerzC,EAAMpE,EAASk5C,GACrC,MAAO,CACLtjC,IAAK,CACHxR,KAAMA,EACNsyB,IAAK12B,EACLwzC,KAAM0F,EAAW1F,MAAQ0F,EACzBX,IAAKW,EAAWX,KAGtB,CAEA,SAASS,EAAiB1C,GACxB,OAAO,QAAOA,EAChB,CAIA,SAASwB,EAAgBY,GACvB,OAAO,QAAOA,EAChB,CAGA,SAAShB,EAAyBP,EAASjiC,GACzC,MAAMikC,EAAQhC,EAAQvgB,UAAU,EAAG1hB,GAAO3T,MAAM,SAChD,MAAO,CACLiyC,KAAM2F,EAAMv6C,OAGZ25C,IAAKY,EAAMA,EAAMv6C,OAAS,GAAGA,OAAS,EAE1C,CAGA,SAASm6C,EAAqB/5C,GAC5B,OAAOA,EAAM43C,WAAa53C,EAAM,GAAGJ,MACrC,C,uECnaA,MAAMm4C,EAAiB,CACrBqC,oBAAqB,KACrBC,qBAAqB,EACrBC,aAAc,QACdjD,kBAAkB,EAClBkD,eAAe,EACf75B,QAAQ,EACR85B,SAAU,KACVC,mBAAmB,EACnBC,sBAAsB,EACtBC,2BAA2B,EAC3BC,kBAAmB,SAASvpC,EAAKrS,GAC/B,OAAOA,CACT,EACA67C,wBAAyB,SAASvD,EAAUt4C,GAC1C,OAAOA,CACT,EACA87C,eAAe,EACfC,iBAAiB,EACjB9C,aAAc,GACd+C,SAAU,CACR,CAAElvB,MAAO,IAAI3sB,OAAO,IAAK,KAAMomB,IAAK,SACpC,CAAEuG,MAAO,IAAI3sB,OAAO,IAAK,KAAMomB,IAAK,QACpC,CAAEuG,MAAO,IAAI3sB,OAAO,IAAK,KAAMomB,IAAK,QACpC,CAAEuG,MAAO,IAAI3sB,OAAO,IAAM,KAAMomB,IAAK,UACrC,CAAEuG,MAAO,IAAI3sB,OAAO,IAAM,KAAMomB,IAAK,WAEvC01B,iBAAiB,EACjBC,UAAW,GAGXC,cAAc,GAGD,SAASC,EAAQ59C,GAC9BvB,KAAKuB,QAAUR,OAAOotB,OAAO,CAAC,EAAG2tB,EAAgBv6C,IACX,IAAlCvB,KAAKuB,QAAQ65C,kBAA6Bp7C,KAAKuB,QAAQ68C,oBACzDp+C,KAAKo/C,YAAc,WACjB,OAAO,CACT,GAEAp/C,KAAKq/C,oBAAqB,OAAsBr/C,KAAKuB,QAAQ65C,kBAC7Dp7C,KAAKs/C,cAAgBt/C,KAAKuB,QAAQ48C,oBAAoBx6C,OACtD3D,KAAKo/C,YAAcA,GAGrBp/C,KAAKu/C,qBAAuBA,EAExBv/C,KAAKuB,QAAQkjB,QACfzkB,KAAKw/C,UAAYA,EACjBx/C,KAAKy/C,WAAa,MAClBz/C,KAAK0/C,QAAU,OAEf1/C,KAAKw/C,UAAY,WACf,MAAO,EACT,EACAx/C,KAAKy/C,WAAa,IAClBz/C,KAAK0/C,QAAU,GAEnB,CAmHA,SAASH,EAAsBvyC,EAAQoI,EAAKuqC,EAAOC,GACjD,MAAM19C,EAASlC,KAAK6/C,IAAI7yC,EAAQ2yC,EAAQ,EAAGC,EAAOttC,OAAO8C,IACzD,YAA0ChY,IAAtC4P,EAAOhN,KAAKuB,QAAQ88C,eAA8D,IAA/Bt9C,OAAO2T,KAAK1H,GAAQrJ,OAClE3D,KAAK8/C,iBAAiB9yC,EAAOhN,KAAKuB,QAAQ88C,cAAejpC,EAAKlT,EAAO66C,QAAS4C,GAE9E3/C,KAAK+/C,gBAAgB79C,EAAOonB,IAAKlU,EAAKlT,EAAO66C,QAAS4C,EAEjE,CAuFA,SAASH,EAAUG,GACjB,OAAO3/C,KAAKuB,QAAQg9C,SAAS5yB,OAAOg0B,EACtC,CAEA,SAASP,EAAYn6C,GACnB,SAAIA,EAAK+6C,WAAWhgD,KAAKuB,QAAQ48C,sBAAwBl5C,IAASjF,KAAKuB,QAAQ88C,eACtEp5C,EAAKmB,OAAOpG,KAAKs/C,cAI5B,CAzNAH,EAAQl+C,UAAUhF,MAAQ,SAASgkD,GACjC,OAAGjgD,KAAKuB,QAAQs9C,eACP,OAAmBoB,EAAMjgD,KAAKuB,UAElCyH,MAAMgR,QAAQimC,IAASjgD,KAAKuB,QAAQ2+C,eAAiBlgD,KAAKuB,QAAQ2+C,cAAcv8C,OAAS,IAC1Fs8C,EAAO,CACL,CAACjgD,KAAKuB,QAAQ2+C,eAAiBD,IAG5BjgD,KAAK6/C,IAAII,EAAM,EAAG,IAAI32B,IAEjC,EAEA61B,EAAQl+C,UAAU4+C,IAAM,SAASI,EAAMN,EAAOC,GAC5C,IAAI7C,EAAU,GACVzzB,EAAM,GACV,MAAM62B,EAAQP,EAAOn+C,KAAK,KAC1B,IAAK,IAAI2T,KAAO6qC,EACd,GAAIl/C,OAAOE,UAAUsL,eAAe/C,KAAKy2C,EAAM7qC,GAC/C,QAAyB,IAAd6qC,EAAK7qC,GAEVpV,KAAKo/C,YAAYhqC,KACnBkU,GAAO,SAEJ,GAAkB,OAAd22B,EAAK7qC,GAEVpV,KAAKo/C,YAAYhqC,IAEVA,IAAQpV,KAAKuB,QAAQ+8C,cAD9Bh1B,GAAO,GAGa,MAAXlU,EAAI,GACbkU,GAAOtpB,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM,IAAMpV,KAAKy/C,WAEtDn2B,GAAOtpB,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM,IAAMpV,KAAKy/C,gBAGnD,GAAIQ,EAAK7qC,aAAgBlF,KAC9BoZ,GAAOtpB,KAAK8/C,iBAAiBG,EAAK7qC,GAAMA,EAAK,GAAIuqC,QAC5C,GAAyB,iBAAdM,EAAK7qC,GAAmB,CAExC,MAAMgrC,EAAOpgD,KAAKo/C,YAAYhqC,GAC9B,GAAIgrC,IAASpgD,KAAKq/C,mBAAmBe,EAAMD,GACzCpD,GAAW/8C,KAAKqgD,iBAAiBD,EAAM,GAAKH,EAAK7qC,SAC5C,IAAKgrC,EAEV,GAAIhrC,IAAQpV,KAAKuB,QAAQ88C,aAAc,CACrC,IAAIiC,EAAStgD,KAAKuB,QAAQo9C,kBAAkBvpC,EAAK,GAAK6qC,EAAK7qC,IAC3DkU,GAAOtpB,KAAKugD,qBAAqBD,EACnC,MACEh3B,GAAOtpB,KAAK8/C,iBAAiBG,EAAK7qC,GAAMA,EAAK,GAAIuqC,EAGvD,MAAO,GAAI32C,MAAMgR,QAAQimC,EAAK7qC,IAAO,CAEnC,MAAMorC,EAASP,EAAK7qC,GAAKzR,OACzB,IAAI88C,EAAa,GACbC,EAAc,GAClB,IAAK,IAAIz3C,EAAI,EAAGA,EAAIu3C,EAAQv3C,IAAK,CAC/B,MAAM3G,EAAO29C,EAAK7qC,GAAKnM,GACvB,QAAoB,IAAT3G,QAEJ,GAAa,OAATA,EACK,MAAX8S,EAAI,GAAYkU,GAAOtpB,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM,IAAMpV,KAAKy/C,WACpEn2B,GAAOtpB,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM,IAAMpV,KAAKy/C,gBAEtD,GAAoB,iBAATn9C,EAChB,GAAGtC,KAAKuB,QAAQ29C,aAAa,CAC3B,MAAMh9C,EAASlC,KAAK6/C,IAAIv9C,EAAMq9C,EAAQ,EAAGC,EAAOttC,OAAO8C,IACvDqrC,GAAcv+C,EAAOonB,IACjBtpB,KAAKuB,QAAQ68C,qBAAuB97C,EAAKiK,eAAevM,KAAKuB,QAAQ68C,uBACvEsC,GAAex+C,EAAO66C,QAE1B,MACE0D,GAAczgD,KAAKu/C,qBAAqBj9C,EAAM8S,EAAKuqC,EAAOC,QAG5D,GAAI5/C,KAAKuB,QAAQ29C,aAAc,CAC7B,IAAIyB,EAAY3gD,KAAKuB,QAAQo9C,kBAAkBvpC,EAAK9S,GACpDq+C,EAAY3gD,KAAKugD,qBAAqBI,GACtCF,GAAcE,CAChB,MACEF,GAAczgD,KAAK8/C,iBAAiBx9C,EAAM8S,EAAK,GAAIuqC,EAGzD,CACG3/C,KAAKuB,QAAQ29C,eACduB,EAAazgD,KAAK+/C,gBAAgBU,EAAYrrC,EAAKsrC,EAAaf,IAElEr2B,GAAOm3B,CACT,MAEE,GAAIzgD,KAAKuB,QAAQ68C,qBAAuBhpC,IAAQpV,KAAKuB,QAAQ68C,oBAAqB,CAChF,MAAMwC,EAAK7/C,OAAO2T,KAAKurC,EAAK7qC,IACtByrC,EAAID,EAAGj9C,OACb,IAAK,IAAIsF,EAAI,EAAGA,EAAI43C,EAAG53C,IACrB8zC,GAAW/8C,KAAKqgD,iBAAiBO,EAAG33C,GAAI,GAAKg3C,EAAK7qC,GAAKwrC,EAAG33C,IAE9D,MACEqgB,GAAOtpB,KAAKu/C,qBAAqBU,EAAK7qC,GAAMA,EAAKuqC,EAAOC,GAI9D,MAAO,CAAC7C,QAASA,EAASzzB,IAAKA,EACjC,EAEA61B,EAAQl+C,UAAUo/C,iBAAmB,SAAShF,EAAU/xB,GAGtD,OAFAA,EAAMtpB,KAAKuB,QAAQq9C,wBAAwBvD,EAAU,GAAK/xB,GAC1DA,EAAMtpB,KAAKugD,qBAAqBj3B,GAC5BtpB,KAAKuB,QAAQm9C,2BAAqC,SAARp1B,EACrC,IAAM+xB,EACD,IAAMA,EAAW,KAAO/xB,EAAM,GAC9C,EAWA61B,EAAQl+C,UAAU8+C,gBAAkB,SAASz2B,EAAKlU,EAAK2nC,EAAS4C,GAC9D,GAAW,KAARr2B,EACD,MAAc,MAAXlU,EAAI,GAAoBpV,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM2nC,EAAS,IAAM/8C,KAAKy/C,WAE1Ez/C,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM2nC,EAAU/8C,KAAK8gD,SAAS1rC,GAAOpV,KAAKy/C,WAE9E,CAEH,IAAIsB,EAAY,KAAO3rC,EAAMpV,KAAKy/C,WAC9BuB,EAAgB,GAQpB,MANc,MAAX5rC,EAAI,KACL4rC,EAAgB,IAChBD,EAAY,KAIThE,GAAuB,KAAZA,IAAyC,IAAtBzzB,EAAIjlB,QAAQ,MAEH,IAAjCrE,KAAKuB,QAAQu9C,iBAA6B1pC,IAAQpV,KAAKuB,QAAQu9C,iBAA4C,IAAzBkC,EAAcr9C,OAClG3D,KAAKw/C,UAAUG,GAAS,UAAOr2B,UAAWtpB,KAAK0/C,QAGpD1/C,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM2nC,EAAUiE,EAAgBhhD,KAAKy/C,WACnEn2B,EACAtpB,KAAKw/C,UAAUG,GAASoB,EAPjB/gD,KAAKw/C,UAAUG,GAAS,IAAOvqC,EAAM2nC,EAAUiE,EAAgB,IAAM13B,EAAMy3B,CASxF,CACF,EAEA5B,EAAQl+C,UAAU6/C,SAAW,SAAS1rC,GACpC,IAAI0rC,EAAW,GAQf,OAP+C,IAA5C9gD,KAAKuB,QAAQy6C,aAAa33C,QAAQ+Q,GAC/BpV,KAAKuB,QAAQk9C,uBAAsBqC,EAAW,KAElDA,EADO9gD,KAAKuB,QAAQi9C,kBACT,IAEA,MAAMppC,IAEZ0rC,CACT,EAcA3B,EAAQl+C,UAAU6+C,iBAAmB,SAASx2B,EAAKlU,EAAK2nC,EAAS4C,GAC/D,IAAmC,IAA/B3/C,KAAKuB,QAAQ+8C,eAA2BlpC,IAAQpV,KAAKuB,QAAQ+8C,cAC/D,OAAOt+C,KAAKw/C,UAAUG,GAAS,YAAYr2B,OAAYtpB,KAAK0/C,QACxD,IAAqC,IAAjC1/C,KAAKuB,QAAQu9C,iBAA6B1pC,IAAQpV,KAAKuB,QAAQu9C,gBACvE,OAAO9+C,KAAKw/C,UAAUG,GAAS,UAAOr2B,UAAYtpB,KAAK0/C,QACnD,GAAc,MAAXtqC,EAAI,GACX,OAAQpV,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM2nC,EAAS,IAAM/8C,KAAKy/C,WAC7D,CACH,IAAIkB,EAAY3gD,KAAKuB,QAAQo9C,kBAAkBvpC,EAAKkU,GAGpD,OAFAq3B,EAAY3gD,KAAKugD,qBAAqBI,GAEpB,KAAdA,EACK3gD,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM2nC,EAAU/8C,KAAK8gD,SAAS1rC,GAAOpV,KAAKy/C,WAExEz/C,KAAKw/C,UAAUG,GAAS,IAAMvqC,EAAM2nC,EAAU,IAClD4D,EACD,KAAOvrC,EAAMpV,KAAKy/C,UAExB,CACF,EAEAN,EAAQl+C,UAAUs/C,qBAAuB,SAASI,GAChD,GAAGA,GAAaA,EAAUh9C,OAAS,GAAK3D,KAAKuB,QAAQy9C,gBACnD,IAAK,IAAIz6C,EAAE,EAAGA,EAAEvE,KAAKuB,QAAQw9C,SAASp7C,OAAQY,IAAK,CACjD,MAAM08C,EAASjhD,KAAKuB,QAAQw9C,SAASx6C,GACrCo8C,EAAYA,EAAU36C,QAAQi7C,EAAOpxB,MAAOoxB,EAAO33B,IACrD,CAEF,OAAOq3B,CACT,C,4BCvQe,SAASO,EAAMC,EAAQ5/C,GAClC,IAAI6/C,EAAc,GAIlB,OAHI7/C,EAAQkjB,QAAUljB,EAAQg9C,SAAS56C,OAAS,IAC5Cy9C,EAXI,MAaDC,EAASF,EAAQ5/C,EAAS,GAAI6/C,EACzC,CAEA,SAASC,EAASl0C,EAAK5L,EAAS4+C,EAAOiB,GACnC,IAAIE,EAAS,GACTC,GAAuB,EAE3B,IAAK,IAAIh9C,EAAI,EAAGA,EAAI4I,EAAIxJ,OAAQY,IAAK,CACjC,MAAMi9C,EAASr0C,EAAI5I,GACbrH,EAAUukD,EAASD,GACzB,QAAepkD,IAAZF,EAAuB,SAE1B,IAAIwkD,EAAW,GAIf,GAHwBA,EAAH,IAAjBvB,EAAMx8C,OAAyBzG,EACnB,GAAGijD,KAASjjD,IAExBA,IAAYqE,EAAQ88C,aAAc,CAClC,IAAIsD,EAAUH,EAAOtkD,GAChB0kD,EAAWF,EAAUngD,KACtBogD,EAAUpgD,EAAQo9C,kBAAkBzhD,EAASykD,GAC7CA,EAAUpB,EAAqBoB,EAASpgD,IAExCggD,IACAD,GAAUF,GAEdE,GAAUK,EACVJ,GAAuB,EACvB,QACJ,CAAO,GAAIrkD,IAAYqE,EAAQ+8C,cAAe,CACtCiD,IACAD,GAAUF,GAEdE,GAAU,YAAYE,EAAOtkD,GAAS,GAAGqE,EAAQ88C,mBACjDkD,GAAuB,EACvB,QACJ,CAAO,GAAIrkD,IAAYqE,EAAQu9C,gBAAiB,CAC5CwC,GAAUF,EAAc,UAAOI,EAAOtkD,GAAS,GAAGqE,EAAQ88C,sBAC1DkD,GAAuB,EACvB,QACJ,CAAO,GAAmB,MAAfrkD,EAAQ,GAAY,CAC3B,MAAM2kD,EAASC,EAAYN,EAAO,MAAOjgD,GACnCwgD,EAAsB,SAAZ7kD,EAAqB,GAAKkkD,EAC1C,IAAIY,EAAiBR,EAAOtkD,GAAS,GAAGqE,EAAQ88C,cAChD2D,EAA2C,IAA1BA,EAAer+C,OAAe,IAAMq+C,EAAiB,GACtEV,GAAUS,EAAU,IAAI7kD,IAAU8kD,IAAiBH,MACnDN,GAAuB,EACvB,QACJ,CACA,IAAIU,EAAgBb,EACE,KAAlBa,IACAA,GAAiB1gD,EAAQg9C,UAE7B,MACM2D,EAAWd,EAAc,IAAIlkD,IADpB4kD,EAAYN,EAAO,MAAOjgD,KAEnC4gD,EAAWd,EAASG,EAAOtkD,GAAUqE,EAASmgD,EAAUO,IACf,IAA3C1gD,EAAQy6C,aAAa33C,QAAQnH,GACzBqE,EAAQk9C,qBAAsB6C,GAAUY,EAAW,IAClDZ,GAAUY,EAAW,KACjBC,GAAgC,IAApBA,EAASx+C,SAAiBpC,EAAQi9C,kBAEhD2D,GAAYA,EAASvmB,SAAS,KACrC0lB,GAAUY,EAAW,IAAIC,IAAWf,MAAgBlkD,MAEpDokD,GAAUY,EAAW,IACjBC,GAA4B,KAAhBf,IAAuBe,EAASC,SAAS,OAASD,EAASC,SAAS,OAChFd,GAAUF,EAAc7/C,EAAQg9C,SAAW4D,EAAWf,EAEtDE,GAAUa,EAEdb,GAAU,KAAKpkD,MAVfokD,GAAUY,EAAW,KAYzBX,GAAuB,CAC3B,CAEA,OAAOD,CACX,CAEA,SAASG,EAAS52C,GACd,MAAM6J,EAAO3T,OAAO2T,KAAK7J,GACzB,IAAK,IAAItG,EAAI,EAAGA,EAAImQ,EAAK/Q,OAAQY,IAAK,CAClC,MAAM6Q,EAAMV,EAAKnQ,GACjB,GAAIsG,EAAI0B,eAAe6I,IACX,OAARA,EAAc,OAAOA,CAC7B,CACJ,CAEA,SAAS0sC,EAAYO,EAAS9gD,GAC1B,IAAIw7C,EAAU,GACd,GAAIsF,IAAY9gD,EAAQ65C,iBACpB,IAAK,IAAIgF,KAAQiC,EAAS,CACtB,IAAIA,EAAQ91C,eAAe6zC,GAAO,SAClC,IAAIkC,EAAU/gD,EAAQq9C,wBAAwBwB,EAAMiC,EAAQjC,IAC5DkC,EAAU/B,EAAqB+B,EAAS/gD,IACxB,IAAZ+gD,GAAoB/gD,EAAQm9C,0BAC5B3B,GAAW,IAAIqD,EAAKh6C,OAAO7E,EAAQ48C,oBAAoBx6C,UAEvDo5C,GAAW,IAAIqD,EAAKh6C,OAAO7E,EAAQ48C,oBAAoBx6C,YAAY2+C,IAE3E,CAEJ,OAAOvF,CACX,CAEA,SAAS6E,EAAWzB,EAAO5+C,GAEvB,IAAIrE,GADJijD,EAAQA,EAAM/5C,OAAO,EAAG+5C,EAAMx8C,OAASpC,EAAQ88C,aAAa16C,OAAS,IACjDyC,OAAO+5C,EAAMp5B,YAAY,KAAO,GACpD,IAAK,IAAI9M,KAAS1Y,EAAQ09C,UACtB,GAAI19C,EAAQ09C,UAAUhlC,KAAWkmC,GAAS5+C,EAAQ09C,UAAUhlC,KAAW,KAAO/c,EAAS,OAAO,EAElG,OAAO,CACX,CAEA,SAASqjD,EAAqBI,EAAWp/C,GACrC,GAAIo/C,GAAaA,EAAUh9C,OAAS,GAAKpC,EAAQy9C,gBAC7C,IAAK,IAAIz6C,EAAI,EAAGA,EAAIhD,EAAQw9C,SAASp7C,OAAQY,IAAK,CAC9C,MAAM08C,EAAS1/C,EAAQw9C,SAASx6C,GAChCo8C,EAAYA,EAAU36C,QAAQi7C,EAAOpxB,MAAOoxB,EAAO33B,IACvD,CAEJ,OAAOq3B,CACX,C,4ECnIe,MAAM4B,EACjB,WAAA5qC,CAAYpW,GACRvB,KAAKwiD,uBAAyBjhD,EAC9BvB,KAAKuB,QAAUA,CACnB,CAEA,WAAAkhD,CAAYvG,EAAS33C,GAEjB,MAAMw6C,EAAW,CAAC,EAClB,GAAuB,MAAnB7C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,IACO,MAAnB23C,EAAQ33C,EAAI,GA0DZ,MAAM,IAAIS,MAAM,kCA1DQ,CACxBT,GAAQ,EACR,IAAIm5C,EAAqB,EACrBgF,GAAU,EAAOnjD,GAAU,EAC3BojD,EAAM,GACV,KAAOp+C,EAAI23C,EAAQv4C,OAAQY,IACvB,GAAmB,MAAf23C,EAAQ33C,IAAehF,EA8BpB,GAAmB,MAAf28C,EAAQ33C,IASf,GARIhF,EACuB,MAAnB28C,EAAQ33C,EAAI,IAAiC,MAAnB23C,EAAQ33C,EAAI,KACtChF,GAAU,EACVm+C,KAGJA,IAEuB,IAAvBA,EACA,UAEkB,MAAfxB,EAAQ33C,GACfm+C,GAAU,EAEVC,GAAOzG,EAAQ33C,OA7CiB,CAChC,GAAIm+C,GAAWE,EAAO1G,EAAS,UAAW33C,GAAI,CAE1C,IAAIs+C,EAAYv5B,EAEhB,GAHA/kB,GAAK,GAEJs+C,EAAYv5B,EAAK/kB,GAAKvE,KAAK8iD,cAAc5G,EAAS33C,EAAI,EAAGvE,KAAKwiD,wBACrC,IAAtBl5B,EAAIjlB,QAAQ,KAAa,CACzB,MAAM0+C,EAAUF,EAAW78C,QAAQ,YAAa,OAChD+4C,EAAS8D,GAAc,CACnBG,KAAM9/C,OAAO,IAAI6/C,KAAY,KAC7Bz5B,IAAKA,EAEb,CACJ,MACK,GAAIo5B,GAAWE,EAAO1G,EAAS,WAAY33C,GAAI,CAChDA,GAAK,EACL,MAAM,MAAE0V,GAAUja,KAAKijD,eAAe/G,EAAS33C,EAAI,GACnDA,EAAI0V,CACR,MAAO,GAAIyoC,GAAWE,EAAO1G,EAAS,WAAY33C,GAC9CA,GAAK,OAGF,GAAIm+C,GAAWE,EAAO1G,EAAS,YAAa33C,GAAI,CACnDA,GAAK,EACL,MAAM,MAAE0V,GAAUja,KAAKkjD,gBAAgBhH,EAAS33C,EAAI,EAAGvE,KAAKwiD,uBAC5Dj+C,EAAI0V,CACR,KAAO,KAAI2oC,EAAO1G,EAAS,MAAO33C,GAC7B,MAAM,IAAIS,MAAM,mBADiBzF,GAAU,CACT,CAEvCm+C,IACAiF,EAAM,EACV,CAkBJ,GAA2B,IAAvBjF,EACA,MAAM,IAAI14C,MAAM,mBAExB,CAGA,MAAO,CAAE+5C,WAAUx6C,IACvB,CACA,aAAAu+C,CAAc5G,EAAS33C,GAWnBA,EAAI4+C,EAAejH,EAAS33C,GAG5B,IAAIs+C,EAAa,GACjB,KAAOt+C,EAAI23C,EAAQv4C,SAAW,KAAK6B,KAAK02C,EAAQ33C,KAAsB,MAAf23C,EAAQ33C,IAA6B,MAAf23C,EAAQ33C,IACjFs+C,GAAc3G,EAAQ33C,GACtBA,IAQJ,GANA6+C,EAAmBP,GAGnBt+C,EAAI4+C,EAAejH,EAAS33C,IAGvBvE,KAAKwiD,sBAAuB,CAC7B,GAAkD,WAA9CtG,EAAQvgB,UAAUp3B,EAAGA,EAAI,GAAG6X,cAC5B,MAAM,IAAIpX,MAAM,uCACb,GAAmB,MAAfk3C,EAAQ33C,GACf,MAAM,IAAIS,MAAM,uCAExB,CAGA,IAAIq+C,EAAc,GAIlB,IAHC9+C,EAAG8+C,GAAerjD,KAAKsjD,kBAAkBpH,EAAS33C,EAAG,WAGzB,IAAzBvE,KAAKuB,QAAQgiD,SACbvjD,KAAKuB,QAAQiiD,eACbH,EAAY1/C,OAAS3D,KAAKuB,QAAQiiD,cAClC,MAAM,IAAIx+C,MACN,WAAW69C,YAAqBQ,EAAY1/C,yCAAyC3D,KAAKuB,QAAQiiD,kBAK1G,MAAO,CAACX,EAAYQ,IADpB9+C,EAEJ,CAEA,eAAA2+C,CAAgBhH,EAAS33C,GAErBA,EAAI4+C,EAAejH,EAAS33C,GAG5B,IAAIk/C,EAAe,GACnB,KAAOl/C,EAAI23C,EAAQv4C,SAAW,KAAK6B,KAAK02C,EAAQ33C,KAC5Ck/C,GAAgBvH,EAAQ33C,GACxBA,KAEHvE,KAAKwiD,uBAAyBY,EAAmBK,GAGlDl/C,EAAI4+C,EAAejH,EAAS33C,GAG5B,MAAMm/C,EAAiBxH,EAAQvgB,UAAUp3B,EAAGA,EAAI,GAAG6X,cACnD,IAAKpc,KAAKwiD,uBAA4C,WAAnBkB,GAAkD,WAAnBA,EAC9D,MAAM,IAAI1+C,MAAM,qCAAqC0+C,MAEzDn/C,GAAKm/C,EAAe//C,OAGpBY,EAAI4+C,EAAejH,EAAS33C,GAG5B,IAAIo/C,EAAmB,KACnBC,EAAmB,KAEvB,GAAuB,WAAnBF,GACCn/C,EAAGo/C,GAAoB3jD,KAAKsjD,kBAAkBpH,EAAS33C,EAAG,oBAMxC,MAAf23C,EAHJ33C,EAAI4+C,EAAejH,EAAS33C,KAGa,MAAf23C,EAAQ33C,MAC7BA,EAAGq/C,GAAoB5jD,KAAKsjD,kBAAkBpH,EAAS33C,EAAG,0BAE5D,GAAuB,WAAnBm/C,KAENn/C,EAAGq/C,GAAoB5jD,KAAKsjD,kBAAkBpH,EAAS33C,EAAG,qBAEtDvE,KAAKwiD,wBAA0BoB,GAChC,MAAM,IAAI5+C,MAAM,2DAIxB,MAAO,CAAEy+C,eAAcE,mBAAkBC,mBAAkB3pC,QAAS1V,EACxE,CAEA,iBAAA++C,CAAkBpH,EAAS33C,EAAGpE,GAC1B,IAAI0jD,EAAgB,GACpB,MAAMlG,EAAYzB,EAAQ33C,GAC1B,GAAkB,MAAdo5C,GAAmC,MAAdA,EACrB,MAAM,IAAI34C,MAAM,kCAAkC24C,MAItD,IAFAp5C,IAEOA,EAAI23C,EAAQv4C,QAAUu4C,EAAQ33C,KAAOo5C,GACxCkG,GAAiB3H,EAAQ33C,GACzBA,IAGJ,GAAI23C,EAAQ33C,KAAOo5C,EACf,MAAM,IAAI34C,MAAM,gBAAgB7E,WAGpC,MAAO,GADPoE,EACWs/C,EACf,CAEA,cAAAZ,CAAe/G,EAAS33C,GAQpBA,EAAI4+C,EAAejH,EAAS33C,GAG5B,IAAIu/C,EAAc,GAClB,KAAOv/C,EAAI23C,EAAQv4C,SAAW,KAAK6B,KAAK02C,EAAQ33C,KAC5Cu/C,GAAe5H,EAAQ33C,GACvBA,IAIJ,IAAKvE,KAAKwiD,yBAA0B,QAAOsB,GACvC,MAAM,IAAI9+C,MAAM,0BAA0B8+C,MAK9C,IAAIC,EAAe,GAEnB,GAAmB,MAAf7H,EAHJ33C,EAAI4+C,EAAejH,EAAS33C,KAGFq+C,EAAO1G,EAAS,OAAQ33C,GAAIA,GAAK,OACtD,GAAmB,MAAf23C,EAAQ33C,IAAcq+C,EAAO1G,EAAS,KAAM33C,GAAIA,GAAK,OACzD,GAAmB,MAAf23C,EAAQ33C,GAAY,CAIzB,IAHAA,IAGOA,EAAI23C,EAAQv4C,QAAyB,MAAfu4C,EAAQ33C,IACjCw/C,GAAgB7H,EAAQ33C,GACxBA,IAEJ,GAAmB,MAAf23C,EAAQ33C,GACR,MAAM,IAAIS,MAAM,6BAGxB,MAAO,IAAKhF,KAAKwiD,sBACb,MAAM,IAAIx9C,MAAM,sCAAsCk3C,EAAQ33C,OAGlE,MAAO,CACHu/C,cACAC,aAAcA,EAAalgC,OAC3B5J,MAAO1V,EAEf,CAEA,cAAAy/C,CAAe9H,EAAS33C,GAEpBA,EAAI4+C,EAAejH,EAAS33C,GAG5B,IAAIu/C,EAAc,GAClB,KAAOv/C,EAAI23C,EAAQv4C,SAAW,KAAK6B,KAAK02C,EAAQ33C,KAC5Cu/C,GAAe5H,EAAQ33C,GACvBA,IAIJ6+C,EAAmBU,GAGnBv/C,EAAI4+C,EAAejH,EAAS33C,GAG5B,IAAI0/C,EAAgB,GACpB,KAAO1/C,EAAI23C,EAAQv4C,SAAW,KAAK6B,KAAK02C,EAAQ33C,KAC5C0/C,GAAiB/H,EAAQ33C,GACzBA,IAIJ,IAAK6+C,EAAmBa,GACpB,MAAM,IAAIj/C,MAAM,4BAA4Bi/C,MAIhD1/C,EAAI4+C,EAAejH,EAAS33C,GAG5B,IAAI2/C,EAAgB,GACpB,GAAkD,aAA9ChI,EAAQvgB,UAAUp3B,EAAGA,EAAI,GAAG6X,cAA8B,CAQ1D,GAPA8nC,EAAgB,WAOG,MAAfhI,EAHJ33C,EAAI4+C,EAAejH,EAHnB33C,GAAK,IAOD,MAAM,IAAIS,MAAM,wBAAwBk3C,EAAQ33C,OAEpDA,IAGA,IAAI4/C,EAAmB,GACvB,KAAO5/C,EAAI23C,EAAQv4C,QAAyB,MAAfu4C,EAAQ33C,IAAY,CAC7C,IAAI6/C,EAAW,GACf,KAAO7/C,EAAI23C,EAAQv4C,QAAyB,MAAfu4C,EAAQ33C,IAA6B,MAAf23C,EAAQ33C,IACvD6/C,GAAYlI,EAAQ33C,GACpBA,IAKJ,GADA6/C,EAAWA,EAASvgC,QACfu/B,EAAmBgB,GACpB,MAAM,IAAIp/C,MAAM,2BAA2Bo/C,MAG/CD,EAAiB3/C,KAAK4/C,GAGH,MAAflI,EAAQ33C,KACRA,IACAA,EAAI4+C,EAAejH,EAAS33C,GAEpC,CAEA,GAAmB,MAAf23C,EAAQ33C,GACR,MAAM,IAAIS,MAAM,kCAEpBT,IAGA2/C,GAAiB,KAAOC,EAAiB1iD,KAAK,KAAO,GACzD,KAAO,CAEH,KAAO8C,EAAI23C,EAAQv4C,SAAW,KAAK6B,KAAK02C,EAAQ33C,KAC5C2/C,GAAiBhI,EAAQ33C,GACzBA,IAIJ,MAAM8/C,EAAa,CAAC,QAAS,KAAM,QAAS,SAAU,SAAU,WAAY,UAAW,YACvF,IAAKrkD,KAAKwiD,wBAA0B6B,EAAWjC,SAAS8B,EAAc9nC,eAClE,MAAM,IAAIpX,MAAM,4BAA4Bk/C,KAEpD,CAGA3/C,EAAI4+C,EAAejH,EAAS33C,GAG5B,IAAI+/C,EAAe,GAWnB,MAVkD,cAA9CpI,EAAQvgB,UAAUp3B,EAAGA,EAAI,GAAG6X,eAC5BkoC,EAAe,YACf//C,GAAK,GACgD,aAA9C23C,EAAQvgB,UAAUp3B,EAAGA,EAAI,GAAG6X,eACnCkoC,EAAe,WACf//C,GAAK,IAEJA,EAAG+/C,GAAgBtkD,KAAKsjD,kBAAkBpH,EAAS33C,EAAG,WAGpD,CACHu/C,cACAG,gBACAC,gBACAI,eACArqC,MAAO1V,EAEf,EAKJ,MAAM4+C,EAAiB,CAACpkD,EAAMkb,KAC1B,KAAOA,EAAQlb,EAAK4E,QAAU,KAAK6B,KAAKzG,EAAKkb,KACzCA,IAEJ,OAAOA,GAKX,SAAS2oC,EAAO7jD,EAAMwlD,EAAKhgD,GACvB,IAAK,IAAI0E,EAAI,EAAGA,EAAIs7C,EAAI5gD,OAAQsF,IAC5B,GAAIs7C,EAAIt7C,KAAOlK,EAAKwF,EAAI0E,EAAI,GAAI,OAAO,EAE3C,OAAO,CACX,CAEA,SAASm6C,EAAmBn+C,GACxB,IAAI,QAAOA,GACP,OAAOA,EAEP,MAAM,IAAID,MAAM,uBAAuBC,IAC/C,C,6CCtYO,MAAM62C,EAAiB,CAC5B+C,eAAe,EACfV,oBAAqB,KACrBC,qBAAqB,EACrBC,aAAc,QACdjD,kBAAkB,EAClBoJ,gBAAgB,EAChBzI,wBAAwB,EAExB0I,eAAe,EACfC,qBAAqB,EACrBC,YAAY,EACZrG,eAAe,EACfsG,mBAAoB,CAClBC,KAAK,EACLC,cAAc,EACdC,WAAW,GAEbpG,kBAAmB,SAAUzhD,EAASosB,GACpC,OAAOA,CACT,EACAs1B,wBAAyB,SAAUvD,EAAU/xB,GAC3C,OAAOA,CACT,EACA21B,UAAW,GACX+F,sBAAsB,EACtBhrC,QAAS,KAAM,EACf8kC,iBAAiB,EACjB9C,aAAc,GACdgD,iBAAiB,EACjBiG,cAAc,EACdC,mBAAmB,EACnBC,cAAc,EACdC,kBAAkB,EAClBC,wBAAwB,EACxBC,UAAW,SAAUpoD,EAASijD,EAAOhgC,GACnC,OAAOjjB,CACT,EAEAqoD,iBAAiB,GAQnB,SAASC,EAAyBtkD,GAEhC,MAAqB,kBAAVA,EACF,CACLqiD,QAASriD,EACTsiD,cAAe,IACfiC,kBAAmB,GACnBC,mBAAoB,IACpBC,kBAAmB,IACnBC,YAAa,KACbC,UAAW,MAKM,iBAAV3kD,GAAgC,OAAVA,EACxB,CACLqiD,SAA2B,IAAlBriD,EAAMqiD,QACfC,cAAetiD,EAAMsiD,eAAiB,IACtCiC,kBAAmBvkD,EAAMukD,mBAAqB,GAC9CC,mBAAoBxkD,EAAMwkD,oBAAsB,IAChDC,kBAAmBzkD,EAAMykD,mBAAqB,IAC9CC,YAAa1kD,EAAM0kD,aAAe,KAClCC,UAAW3kD,EAAM2kD,WAAa,MAK3BL,GAAyB,EAClC,CAEO,MAAMM,EAAe,SAAUvkD,GACpC,MAAMwkD,EAAQhlD,OAAOotB,OAAO,CAAC,EAAG2tB,EAAgBv6C,GAKhD,OAFAwkD,EAAM/G,gBAAkBwG,EAAyBO,EAAM/G,iBAEhD+G,CACT,C,wGCrEe,MAAMC,EACnB,WAAAruC,CAAYpW,GA2CV,GA1CAvB,KAAKuB,QAAUA,EACfvB,KAAKimD,YAAc,KACnBjmD,KAAKkmD,cAAgB,GACrBlmD,KAAKmmD,gBAAkB,CAAC,EACxBnmD,KAAKomD,aAAe,CAClB,KAAQ,CAAEv2B,MAAO,qBAAsBvG,IAAK,KAC5C,GAAM,CAAEuG,MAAO,mBAAoBvG,IAAK,KACxC,GAAM,CAAEuG,MAAO,mBAAoBvG,IAAK,KACxC,KAAQ,CAAEuG,MAAO,qBAAsBvG,IAAK,MAE9CtpB,KAAKqmD,UAAY,CAAEx2B,MAAO,oBAAqBvG,IAAK,KACpDtpB,KAAKilD,aAAe,CAClB,MAAS,CAAEp1B,MAAO,iBAAkBvG,IAAK,KAMzC,KAAQ,CAAEuG,MAAO,iBAAkBvG,IAAK,KACxC,MAAS,CAAEuG,MAAO,kBAAmBvG,IAAK,KAC1C,IAAO,CAAEuG,MAAO,gBAAiBvG,IAAK,KACtC,KAAQ,CAAEuG,MAAO,kBAAmBvG,IAAK,KACzC,UAAa,CAAEuG,MAAO,iBAAkBvG,IAAK,KAC7C,IAAO,CAAEuG,MAAO,gBAAiBvG,IAAK,KACtC,IAAO,CAAEuG,MAAO,iBAAkBvG,IAAK,KACvC,QAAW,CAAEuG,MAAO,mBAAoBvG,IAAK,CAAC7U,EAAGxR,IAAQqjD,EAAcrjD,EAAK,GAAI,OAChF,QAAW,CAAE4sB,MAAO,0BAA2BvG,IAAK,CAAC7U,EAAGxR,IAAQqjD,EAAcrjD,EAAK,GAAI,SAEzFjD,KAAKumD,oBAAsBA,EAC3BvmD,KAAKwmD,SAAWA,EAChBxmD,KAAKymD,cAAgBA,EACrBzmD,KAAK0mD,iBAAmBA,EACxB1mD,KAAK2mD,mBAAqBA,EAC1B3mD,KAAK4mD,aAAeA,EACpB5mD,KAAKugD,qBAAuBA,EAC5BvgD,KAAK6mD,iBAAmBA,EACxB7mD,KAAK8mD,oBAAsBA,EAC3B9mD,KAAK+mD,SAAWA,EAChB/mD,KAAKq/C,oBAAqB,OAAsBr/C,KAAKuB,QAAQ65C,kBAC7Dp7C,KAAKgnD,qBAAuB,EAC5BhnD,KAAKinD,sBAAwB,EAEzBjnD,KAAKuB,QAAQ09C,WAAaj/C,KAAKuB,QAAQ09C,UAAUt7C,OAAS,EAAG,CAC/D3D,KAAKknD,eAAiB,IAAI31C,IAC1BvR,KAAKmnD,kBAAoB,IAAI51C,IAC7B,IAAK,IAAIhN,EAAI,EAAGA,EAAIvE,KAAKuB,QAAQ09C,UAAUt7C,OAAQY,IAAK,CACtD,MAAM6iD,EAAcpnD,KAAKuB,QAAQ09C,UAAU16C,GAChB,iBAAhB6iD,IACPA,EAAYpH,WAAW,MACzBhgD,KAAKmnD,kBAAkB3N,IAAI4N,EAAYzrB,UAAU,IAEjD37B,KAAKknD,eAAe1N,IAAI4N,GAE5B,CACF,CACF,EAIF,SAASb,EAAoBc,GAC3B,MAAMC,EAAUvmD,OAAO2T,KAAK2yC,GAC5B,IAAK,IAAI9iD,EAAI,EAAGA,EAAI+iD,EAAQ3jD,OAAQY,IAAK,CACvC,MAAMgjD,EAAMD,EAAQ/iD,GACdw+C,EAAUwE,EAAIvhD,QAAQ,YAAa,OACzChG,KAAKomD,aAAamB,GAAO,CACvB13B,MAAO,IAAI3sB,OAAO,IAAM6/C,EAAU,IAAK,KACvCz5B,IAAK+9B,EAAiBE,GAE1B,CACF,CAWA,SAASd,EAAcn9B,EAAKpsB,EAASijD,EAAOqH,EAAUC,EAAeC,EAAYC,GAC/E,QAAYvqD,IAARksB,IACEtpB,KAAKuB,QAAQojD,aAAe6C,IAC9Bl+B,EAAMA,EAAIzF,QAERyF,EAAI3lB,OAAS,GAAG,CACbgkD,IAAgBr+B,EAAMtpB,KAAKugD,qBAAqBj3B,EAAKpsB,EAASijD,IAEnE,MAAMG,EAAStgD,KAAKuB,QAAQo9C,kBAAkBzhD,EAASosB,EAAK62B,EAAOsH,EAAeC,GAClF,OAAIpH,QAEKh3B,SACSg3B,UAAkBh3B,GAAOg3B,IAAWh3B,EAE7Cg3B,EACEtgD,KAAKuB,QAAQojD,YAGHr7B,EAAIzF,SACJyF,EAHZs+B,EAAWt+B,EAAKtpB,KAAKuB,QAAQkjD,cAAezkD,KAAKuB,QAAQqjD,oBAMvDt7B,CAGb,CAEJ,CAEA,SAASo9B,EAAiBjJ,GACxB,GAAIz9C,KAAKuB,QAAQijD,eAAgB,CAC/B,MAAMrI,EAAOsB,EAAQn3C,MAAM,KACrBmlB,EAA+B,MAAtBgyB,EAAQ13C,OAAO,GAAa,IAAM,GACjD,GAAgB,UAAZo2C,EAAK,GACP,MAAO,GAEW,IAAhBA,EAAKx4C,SACP85C,EAAUhyB,EAAS0wB,EAAK,GAE5B,CACA,OAAOsB,CACT,CAIA,MAAMoK,EAAY,IAAI3kD,OAAO,+CAAgD,MAE7E,SAASyjD,EAAmB5J,EAASoD,EAAOjjD,GAC1C,IAAsC,IAAlC8C,KAAKuB,QAAQ65C,kBAAgD,iBAAZ2B,EAAsB,CAIzE,MAAMhjB,GAAU,QAAcgjB,EAAS8K,GACjC3+C,EAAM6wB,EAAQp2B,OACdwc,EAAQ,CAAC,EACf,IAAK,IAAI5b,EAAI,EAAGA,EAAI2E,EAAK3E,IAAK,CAC5B,MAAM82C,EAAWr7C,KAAK0mD,iBAAiB3sB,EAAQx1B,GAAG,IAClD,GAAIvE,KAAKq/C,mBAAmBhE,EAAU8E,GACpC,SAEF,IAAI2H,EAAS/tB,EAAQx1B,GAAG,GACpBwjD,EAAQ/nD,KAAKuB,QAAQ48C,oBAAsB9C,EAC/C,GAAIA,EAAS13C,OAKX,GAJI3D,KAAKuB,QAAQ8jD,yBACf0C,EAAQ/nD,KAAKuB,QAAQ8jD,uBAAuB0C,IAEhC,cAAVA,IAAuBA,EAAQ,mBACpB3qD,IAAX0qD,EAAsB,CACpB9nD,KAAKuB,QAAQojD,aACfmD,EAASA,EAAOjkC,QAElBikC,EAAS9nD,KAAKugD,qBAAqBuH,EAAQ5qD,EAASijD,GACpD,MAAM6H,EAAShoD,KAAKuB,QAAQq9C,wBAAwBvD,EAAUyM,EAAQ3H,GAGpEhgC,EAAM4nC,GAFJC,QAEaF,SACCE,UAAkBF,GAAUE,IAAWF,EAExCE,EAGAJ,EACbE,EACA9nD,KAAKuB,QAAQmjD,oBACb1kD,KAAKuB,QAAQqjD,mBAGnB,MAAW5kD,KAAKuB,QAAQw6C,yBACtB57B,EAAM4nC,IAAS,EAGrB,CACA,IAAKhnD,OAAO2T,KAAKyL,GAAOxc,OACtB,OAEF,GAAI3D,KAAKuB,QAAQ68C,oBAAqB,CACpC,MAAM6J,EAAiB,CAAC,EAExB,OADAA,EAAejoD,KAAKuB,QAAQ68C,qBAAuBj+B,EAC5C8nC,CACT,CACA,OAAO9nC,CACT,CACF,CAEA,MAAMqmC,EAAW,SAAUtK,GACzBA,EAAUA,EAAQl2C,QAAQ,SAAU,MACpC,MAAMkiD,EAAS,IAAI,IAAQ,QAC3B,IAAIjC,EAAciC,EACdC,EAAW,GACXhI,EAAQ,GAGZngD,KAAKgnD,qBAAuB,EAC5BhnD,KAAKinD,sBAAwB,EAE7B,MAAMmB,EAAgB,IAAI,IAAcpoD,KAAKuB,QAAQy9C,iBACrD,IAAK,IAAIz6C,EAAI,EAAGA,EAAI23C,EAAQv4C,OAAQY,IAElC,GAAW,MADA23C,EAAQ33C,GAIjB,GAAuB,MAAnB23C,EAAQ33C,EAAI,GAAY,CAC1B,MAAM8jD,EAAaC,EAAiBpM,EAAS,IAAK33C,EAAG,8BACrD,IAAIrH,EAAUg/C,EAAQvgB,UAAUp3B,EAAI,EAAG8jD,GAAYxkC,OAEnD,GAAI7jB,KAAKuB,QAAQijD,eAAgB,CAC/B,MAAM+D,EAAarrD,EAAQmH,QAAQ,MACf,IAAhBkkD,IACFrrD,EAAUA,EAAQkJ,OAAOmiD,EAAa,GAE1C,CAEIvoD,KAAKuB,QAAQ6jD,mBACfloD,EAAU8C,KAAKuB,QAAQ6jD,iBAAiBloD,IAGtC+oD,IACFkC,EAAWnoD,KAAK8mD,oBAAoBqB,EAAUlC,EAAa9F,IAI7D,MAAMqI,EAAcrI,EAAMxkB,UAAUwkB,EAAMp5B,YAAY,KAAO,GAC7D,GAAI7pB,IAA2D,IAAhD8C,KAAKuB,QAAQy6C,aAAa33C,QAAQnH,GAC/C,MAAM,IAAI8H,MAAM,kDAAkD9H,MAEpE,IAAIurD,EAAY,EACZD,IAAmE,IAApDxoD,KAAKuB,QAAQy6C,aAAa33C,QAAQmkD,IACnDC,EAAYtI,EAAMp5B,YAAY,IAAKo5B,EAAMp5B,YAAY,KAAO,GAC5D/mB,KAAKkmD,cAAczhD,OAEnBgkD,EAAYtI,EAAMp5B,YAAY,KAEhCo5B,EAAQA,EAAMxkB,UAAU,EAAG8sB,GAE3BxC,EAAcjmD,KAAKkmD,cAAczhD,MACjC0jD,EAAW,GACX5jD,EAAI8jD,CACN,MAAO,GAAuB,MAAnBnM,EAAQ33C,EAAI,GAAY,CAEjC,IAAImkD,EAAUC,EAAWzM,EAAS33C,GAAG,EAAO,MAC5C,IAAKmkD,EAAS,MAAM,IAAI1jD,MAAM,yBAG9B,GADAmjD,EAAWnoD,KAAK8mD,oBAAoBqB,EAAUlC,EAAa9F,GACtDngD,KAAKuB,QAAQ2jD,mBAAyC,SAApBwD,EAAQxrD,SAAuB8C,KAAKuB,QAAQ4jD,kBAE5E,CAEL,MAAMyD,EAAY,IAAI,IAAQF,EAAQxrD,SACtC0rD,EAAUpP,IAAIx5C,KAAKuB,QAAQ88C,aAAc,IAErCqK,EAAQxrD,UAAYwrD,EAAQG,QAAUH,EAAQI,iBAChDF,EAAU,MAAQ5oD,KAAK2mD,mBAAmB+B,EAAQG,OAAQ1I,EAAOuI,EAAQxrD,UAE3E8C,KAAK+mD,SAASd,EAAa2C,EAAWzI,EAAO57C,EAC/C,CAGAA,EAAImkD,EAAQL,WAAa,CAC3B,MAAO,GAAiC,QAA7BnM,EAAQ91C,OAAO7B,EAAI,EAAG,GAAc,CAC7C,MAAMwkD,EAAWT,EAAiBpM,EAAS,SAAO33C,EAAI,EAAG,0BACzD,GAAIvE,KAAKuB,QAAQu9C,gBAAiB,CAChC,MAAMv/C,EAAU28C,EAAQvgB,UAAUp3B,EAAI,EAAGwkD,EAAW,GAEpDZ,EAAWnoD,KAAK8mD,oBAAoBqB,EAAUlC,EAAa9F,GAE3D8F,EAAYzM,IAAIx5C,KAAKuB,QAAQu9C,gBAAiB,CAAC,CAAE,CAAC9+C,KAAKuB,QAAQ88C,cAAe9+C,IAChF,CACAgF,EAAIwkD,CACN,MAAO,GAAiC,OAA7B7M,EAAQ91C,OAAO7B,EAAI,EAAG,GAAa,CAC5C,MAAMrC,EAASkmD,EAAc3F,YAAYvG,EAAS33C,GAClDvE,KAAKmmD,gBAAkBjkD,EAAO68C,SAC9Bx6C,EAAIrC,EAAOqC,CACb,MAAO,GAAiC,OAA7B23C,EAAQ91C,OAAO7B,EAAI,EAAG,GAAa,CAC5C,MAAM8jD,EAAaC,EAAiBpM,EAAS,MAAO33C,EAAG,wBAA0B,EAC3EskD,EAAS3M,EAAQvgB,UAAUp3B,EAAI,EAAG8jD,GAExCF,EAAWnoD,KAAK8mD,oBAAoBqB,EAAUlC,EAAa9F,GAE3D,IAAI72B,EAAMtpB,KAAKymD,cAAcoC,EAAQ5C,EAAYxI,QAAS0C,GAAO,GAAM,GAAO,GAAM,GACzE/iD,MAAPksB,IAAkBA,EAAM,IAGxBtpB,KAAKuB,QAAQ+8C,cACf2H,EAAYzM,IAAIx5C,KAAKuB,QAAQ+8C,cAAe,CAAC,CAAE,CAACt+C,KAAKuB,QAAQ88C,cAAewK,KAE5E5C,EAAYzM,IAAIx5C,KAAKuB,QAAQ88C,aAAc/0B,GAG7C/kB,EAAI8jD,EAAa,CACnB,KAAO,CACL,IAAInmD,EAASymD,EAAWzM,EAAS33C,EAAGvE,KAAKuB,QAAQijD,gBAC7CtnD,EAAUgF,EAAOhF,QACrB,MAAM8rD,EAAa9mD,EAAO8mD,WAC1B,IAAIH,EAAS3mD,EAAO2mD,OAChBC,EAAiB5mD,EAAO4mD,eACxBT,EAAanmD,EAAOmmD,WAExB,GAAIroD,KAAKuB,QAAQ6jD,iBAAkB,CAEjC,MAAM6D,EAAajpD,KAAKuB,QAAQ6jD,iBAAiBloD,GAC7C2rD,IAAW3rD,IACb2rD,EAASI,GAEX/rD,EAAU+rD,CACZ,CAGIhD,GAAekC,GACW,SAAxBlC,EAAYxI,UAEd0K,EAAWnoD,KAAK8mD,oBAAoBqB,EAAUlC,EAAa9F,GAAO,IAKtE,MAAM+I,EAAUjD,EACZiD,IAAmE,IAAxDlpD,KAAKuB,QAAQy6C,aAAa33C,QAAQ6kD,EAAQzL,WACvDwI,EAAcjmD,KAAKkmD,cAAczhD,MACjC07C,EAAQA,EAAMxkB,UAAU,EAAGwkB,EAAMp5B,YAAY,OAE3C7pB,IAAYgrD,EAAOzK,UACrB0C,GAASA,EAAQ,IAAMjjD,EAAUA,GAEnC,MAAMy+C,EAAap3C,EACnB,GAAIvE,KAAK4mD,aAAa5mD,KAAKknD,eAAgBlnD,KAAKmnD,kBAAmBhH,EAAOjjD,GAAU,CAClF,IAAIisD,EAAa,GAEjB,GAAIN,EAAOllD,OAAS,GAAKklD,EAAO9hC,YAAY,OAAS8hC,EAAOllD,OAAS,EAC/B,MAAhCzG,EAAQA,EAAQyG,OAAS,IAC3BzG,EAAUA,EAAQkJ,OAAO,EAAGlJ,EAAQyG,OAAS,GAC7Cw8C,EAAQA,EAAM/5C,OAAO,EAAG+5C,EAAMx8C,OAAS,GACvCklD,EAAS3rD,GAET2rD,EAASA,EAAOziD,OAAO,EAAGyiD,EAAOllD,OAAS,GAE5CY,EAAIrC,EAAOmmD,gBAGR,IAAoD,IAAhDroD,KAAKuB,QAAQy6C,aAAa33C,QAAQnH,GAEzCqH,EAAIrC,EAAOmmD,eAGR,CAEH,MAAMnmD,EAASlC,KAAK6mD,iBAAiB3K,EAAS8M,EAAYX,EAAa,GACvE,IAAKnmD,EAAQ,MAAM,IAAI8C,MAAM,qBAAqBgkD,KAClDzkD,EAAIrC,EAAOqC,EACX4kD,EAAajnD,EAAOinD,UACtB,CAEA,MAAMP,EAAY,IAAI,IAAQ1rD,GAE1BA,IAAY2rD,GAAUC,IACxBF,EAAU,MAAQ5oD,KAAK2mD,mBAAmBkC,EAAQ1I,EAAOjjD,IAEvDisD,IACFA,EAAanpD,KAAKymD,cAAc0C,EAAYjsD,EAASijD,GAAO,EAAM2I,GAAgB,GAAM,IAG1F3I,EAAQA,EAAM/5C,OAAO,EAAG+5C,EAAMp5B,YAAY,MAC1C6hC,EAAUpP,IAAIx5C,KAAKuB,QAAQ88C,aAAc8K,GAEzCnpD,KAAK+mD,SAASd,EAAa2C,EAAWzI,EAAOxE,EAC/C,KAAO,CAEL,GAAIkN,EAAOllD,OAAS,GAAKklD,EAAO9hC,YAAY,OAAS8hC,EAAOllD,OAAS,EAAG,CAStE,GARoC,MAAhCzG,EAAQA,EAAQyG,OAAS,IAC3BzG,EAAUA,EAAQkJ,OAAO,EAAGlJ,EAAQyG,OAAS,GAC7Cw8C,EAAQA,EAAM/5C,OAAO,EAAG+5C,EAAMx8C,OAAS,GACvCklD,EAAS3rD,GAET2rD,EAASA,EAAOziD,OAAO,EAAGyiD,EAAOllD,OAAS,GAGxC3D,KAAKuB,QAAQ6jD,iBAAkB,CACjC,MAAM6D,EAAajpD,KAAKuB,QAAQ6jD,iBAAiBloD,GAC7C2rD,IAAW3rD,IACb2rD,EAASI,GAEX/rD,EAAU+rD,CACZ,CAEA,MAAML,EAAY,IAAI,IAAQ1rD,GAC1BA,IAAY2rD,GAAUC,IACxBF,EAAU,MAAQ5oD,KAAK2mD,mBAAmBkC,EAAQ1I,EAAOjjD,IAE3D8C,KAAK+mD,SAASd,EAAa2C,EAAWzI,EAAOxE,GAC7CwE,EAAQA,EAAM/5C,OAAO,EAAG+5C,EAAMp5B,YAAY,KAC5C,KAEK,CACH,MAAM6hC,EAAY,IAAI,IAAQ1rD,GAC9B8C,KAAKkmD,cAAc1hD,KAAKyhD,GAEpB/oD,IAAY2rD,GAAUC,IACxBF,EAAU,MAAQ5oD,KAAK2mD,mBAAmBkC,EAAQ1I,EAAOjjD,IAE3D8C,KAAK+mD,SAASd,EAAa2C,EAAWzI,EAAOxE,GAC7CsK,EAAc2C,CAChB,CACAT,EAAW,GACX5jD,EAAI8jD,CACN,CACF,MAEAF,GAAYjM,EAAQ33C,GAGxB,OAAO2jD,EAAOv+B,KAChB,EAEA,SAASo9B,EAASd,EAAa2C,EAAWzI,EAAOxE,GAE1C37C,KAAKuB,QAAQgkD,kBAAiB5J,OAAav+C,GAChD,MAAM8E,EAASlC,KAAKuB,QAAQ+jD,UAAUsD,EAAUnL,QAAS0C,EAAOyI,EAAU,QAC3D,IAAX1mD,IAEyB,iBAAXA,GAChB0mD,EAAUnL,QAAUv7C,EACpB+jD,EAAYc,SAAS6B,EAAWjN,IAEhCsK,EAAYc,SAAS6B,EAAWjN,GAEpC,CAEA,MAAM4E,EAAuB,SAAUj3B,EAAKpsB,EAASijD,GAEnD,IAA0B,IAAtB72B,EAAIjlB,QAAQ,KACd,OAAOilB,EAGT,MAAM8/B,EAAeppD,KAAKuB,QAAQy9C,gBAElC,IAAKoK,EAAa7F,QAChB,OAAOj6B,EAIT,GAAI8/B,EAAaxD,cACVwD,EAAaxD,YAAYxD,SAASllD,GACrC,OAAOosB,EAIX,GAAI8/B,EAAavD,YACVuD,EAAavD,UAAU3oD,EAASijD,GACnC,OAAO72B,EAKX,IAAK,IAAIu5B,KAAc7iD,KAAKmmD,gBAAiB,CAC3C,MAAMlF,EAASjhD,KAAKmmD,gBAAgBtD,GAC9B9oB,EAAUzQ,EAAIvlB,MAAMk9C,EAAO+B,MAEjC,GAAIjpB,EAAS,CAKX,GAHA/5B,KAAKgnD,sBAAwBjtB,EAAQp2B,OAGjCylD,EAAa1D,oBACf1lD,KAAKgnD,qBAAuBoC,EAAa1D,mBACzC,MAAM,IAAI1gD,MACR,oCAAoChF,KAAKgnD,0BAA0BoC,EAAa1D,sBAKpF,MAAM2D,EAAe//B,EAAI3lB,OAIzB,GAHA2lB,EAAMA,EAAItjB,QAAQi7C,EAAO+B,KAAM/B,EAAO33B,KAGlC8/B,EAAazD,oBACf3lD,KAAKinD,uBAA0B39B,EAAI3lB,OAAS0lD,EAExCrpD,KAAKinD,sBAAwBmC,EAAazD,mBAC5C,MAAM,IAAI3gD,MACR,yCAAyChF,KAAKinD,2BAA2BmC,EAAazD,oBAI9F,CACF,CACA,IAA0B,IAAtBr8B,EAAIjlB,QAAQ,KAAa,OAAOilB,EAGpC,IAAK,IAAIu5B,KAAc7iD,KAAKomD,aAAc,CACxC,MAAMnF,EAASjhD,KAAKomD,aAAavD,GACjCv5B,EAAMA,EAAItjB,QAAQi7C,EAAOpxB,MAAOoxB,EAAO33B,IACzC,CACA,IAA0B,IAAtBA,EAAIjlB,QAAQ,KAAa,OAAOilB,EAGpC,GAAItpB,KAAKuB,QAAQ0jD,aACf,IAAK,IAAIpC,KAAc7iD,KAAKilD,aAAc,CACxC,MAAMhE,EAASjhD,KAAKilD,aAAapC,GACjCv5B,EAAMA,EAAItjB,QAAQi7C,EAAOpxB,MAAOoxB,EAAO33B,IACzC,CAMF,OAFMA,EAAItjB,QAAQhG,KAAKqmD,UAAUx2B,MAAO7vB,KAAKqmD,UAAU/8B,IAGzD,EAGA,SAASw9B,EAAoBqB,EAAUlC,EAAa9F,EAAOuH,GAezD,OAdIS,SACiB/qD,IAAfsqD,IAA0BA,EAA0C,IAA7BzB,EAAYt8B,MAAMhmB,aAS5CvG,KAPjB+qD,EAAWnoD,KAAKymD,cAAc0B,EAC5BlC,EAAYxI,QACZ0C,GACA,IACA8F,EAAY,OAAkD,IAA1CllD,OAAO2T,KAAKuxC,EAAY,OAAOtiD,OACnD+jD,KAEyC,KAAbS,GAC5BlC,EAAYzM,IAAIx5C,KAAKuB,QAAQ88C,aAAc8J,GAC7CA,EAAW,IAENA,CACT,CASA,SAASvB,EAAaM,EAAgBC,EAAmBhH,EAAOmJ,GAC9D,SAAInC,IAAqBA,EAAkBpvC,IAAIuxC,QAC3CpC,IAAkBA,EAAenvC,IAAIooC,GAE3C,CAsCA,SAASmI,EAAiBpM,EAASj5C,EAAKsB,EAAGglD,GACzC,MAAMC,EAAetN,EAAQ73C,QAAQpB,EAAKsB,GAC1C,IAAsB,IAAlBilD,EACF,MAAM,IAAIxkD,MAAMukD,GAEhB,OAAOC,EAAevmD,EAAIU,OAAS,CAEvC,CAEA,SAASglD,EAAWzM,EAAS33C,EAAGigD,EAAgBiF,EAAc,KAC5D,MAAMvnD,EAxCR,SAAgCg6C,EAAS33C,EAAGklD,EAAc,KACxD,IAAIC,EACAb,EAAS,GACb,IAAK,IAAI5uC,EAAQ1V,EAAG0V,EAAQiiC,EAAQv4C,OAAQsW,IAAS,CACnD,IAAI0vC,EAAKzN,EAAQjiC,GACjB,GAAIyvC,EACEC,IAAOD,IAAcA,EAAe,SACnC,GAAW,MAAPC,GAAqB,MAAPA,EACvBD,EAAeC,OACV,GAAIA,IAAOF,EAAY,GAAI,CAChC,IAAIA,EAAY,GAQd,MAAO,CACL1qD,KAAM8pD,EACN5uC,MAAOA,GATT,GAAIiiC,EAAQjiC,EAAQ,KAAOwvC,EAAY,GACrC,MAAO,CACL1qD,KAAM8pD,EACN5uC,MAAOA,EASf,KAAkB,OAAP0vC,IACTA,EAAK,KAEPd,GAAUc,CACZ,CACF,CAYiBC,CAAuB1N,EAAS33C,EAAI,EAAGklD,GACtD,IAAKvnD,EAAQ,OACb,IAAI2mD,EAAS3mD,EAAOnD,KACpB,MAAMspD,EAAanmD,EAAO+X,MACpB4vC,EAAiBhB,EAAO12B,OAAO,MACrC,IAAIj1B,EAAU2rD,EACVC,GAAiB,GACG,IAApBe,IACF3sD,EAAU2rD,EAAOltB,UAAU,EAAGkuB,GAC9BhB,EAASA,EAAOltB,UAAUkuB,EAAiB,GAAGC,aAGhD,MAAMd,EAAa9rD,EACnB,GAAIsnD,EAAgB,CAClB,MAAM+D,EAAarrD,EAAQmH,QAAQ,MACf,IAAhBkkD,IACFrrD,EAAUA,EAAQkJ,OAAOmiD,EAAa,GACtCO,EAAiB5rD,IAAYgF,EAAOnD,KAAKqH,OAAOmiD,EAAa,GAEjE,CAEA,MAAO,CACLrrD,QAASA,EACT2rD,OAAQA,EACRR,WAAYA,EACZS,eAAgBA,EAChBE,WAAYA,EAEhB,CAOA,SAASnC,EAAiB3K,EAASh/C,EAASqH,GAC1C,MAAMo3C,EAAap3C,EAEnB,IAAIwlD,EAAe,EAEnB,KAAOxlD,EAAI23C,EAAQv4C,OAAQY,IACzB,GAAmB,MAAf23C,EAAQ33C,GACV,GAAuB,MAAnB23C,EAAQ33C,EAAI,GAAY,CAC1B,MAAM8jD,EAAaC,EAAiBpM,EAAS,IAAK33C,EAAG,GAAGrH,mBAExD,GADmBg/C,EAAQvgB,UAAUp3B,EAAI,EAAG8jD,GAAYxkC,SACnC3mB,IACnB6sD,IACqB,IAAjBA,GACF,MAAO,CACLZ,WAAYjN,EAAQvgB,UAAUggB,EAAYp3C,GAC1CA,GAINA,EAAI8jD,CACN,MAAO,GAAuB,MAAnBnM,EAAQ33C,EAAI,GAErBA,EADmB+jD,EAAiBpM,EAAS,KAAM33C,EAAI,EAAG,gCAErD,GAAiC,QAA7B23C,EAAQ91C,OAAO7B,EAAI,EAAG,GAE/BA,EADmB+jD,EAAiBpM,EAAS,SAAO33C,EAAI,EAAG,gCAEtD,GAAiC,OAA7B23C,EAAQ91C,OAAO7B,EAAI,EAAG,GAE/BA,EADmB+jD,EAAiBpM,EAAS,MAAO33C,EAAG,2BAA6B,MAE/E,CACL,MAAMmkD,EAAUC,EAAWzM,EAAS33C,EAAG,KAEnCmkD,KACkBA,GAAWA,EAAQxrD,WACnBA,GAAyD,MAA9CwrD,EAAQG,OAAOH,EAAQG,OAAOllD,OAAS,IACpEomD,IAEFxlD,EAAImkD,EAAQL,WAEhB,CAGN,CAEA,SAAST,EAAWt+B,EAAK0gC,EAAazoD,GACpC,GAAIyoD,GAA8B,iBAAR1gC,EAAkB,CAE1C,MAAMg3B,EAASh3B,EAAIzF,OACnB,MAAe,SAAXy8B,GACgB,UAAXA,IACG,OAASh3B,EAAK/nB,EAC5B,CACE,OAAI,QAAQ+nB,GACHA,EAEA,EAGb,CAEA,SAASg9B,EAAcrjD,EAAKmc,EAAMqM,GAChC,MAAM3F,EAAY3U,OAAOlK,SAAShE,EAAKmc,GAEvC,OAAI0G,GAAa,GAAKA,GAAa,QAC1BvgB,OAAO+gD,cAAcxgC,GAErB2F,EAASxoB,EAAM,GAE1B,C,uGC5rBe,MAAMgnD,EAEjB,WAAAtyC,CAAYpW,GACRvB,KAAKqnD,iBAAmB,CAAC,EACzBrnD,KAAKuB,SAAU,OAAaA,EAEhC,CAMA,KAAAgU,CAAM2mC,EAAQgO,GACV,GAAsB,iBAAZhO,GAAwBA,EAAQx5C,SACtCw5C,EAAUA,EAAQx5C,gBAChB,GAAsB,iBAAZw5C,EACZ,MAAM,IAAIl3C,MAAM,mDAGpB,GAAIklD,EAAiB,EACO,IAArBA,IAA2BA,EAAmB,CAAC,GAElD,MAAMhoD,GAAS,OAASg6C,EAASgO,GACjC,IAAe,IAAXhoD,EACF,MAAM8C,MAAO,GAAG9C,EAAOyY,IAAI8gB,OAAOv5B,EAAOyY,IAAI49B,QAAQr2C,EAAOyY,IAAI2iC,MAEpE,CACF,MAAM6M,EAAmB,IAAI,IAAiBnqD,KAAKuB,SACnD4oD,EAAiB5D,oBAAoBvmD,KAAKqnD,kBAC1C,MAAM+C,EAAgBD,EAAiB3D,SAAStK,GAChD,OAAGl8C,KAAKuB,QAAQs9C,oBAAmCzhD,IAAlBgtD,EAAoCA,GACzD,OAASA,EAAepqD,KAAKuB,QAC7C,CAOA,SAAA8oD,CAAUj1C,EAAKlU,GACX,IAA2B,IAAxBA,EAAMmD,QAAQ,KACb,MAAM,IAAIW,MAAM,+BACd,IAAyB,IAAtBoQ,EAAI/Q,QAAQ,OAAqC,IAAtB+Q,EAAI/Q,QAAQ,KAC5C,MAAM,IAAIW,MAAM,wEACd,GAAa,MAAV9D,EACL,MAAM,IAAI8D,MAAM,6CAEhBhF,KAAKqnD,iBAAiBjyC,GAAOlU,CAErC,CAYA,wBAAOopD,GACH,OAAO,IAAQA,mBACnB,E,6CCjEJ,MAAMC,E,SAAkB,EAAQD,oBAQjB,SAASE,EAAS3sD,EAAM0D,GACrC,OAAOkpD,EAAU5sD,EAAM0D,EACzB,CASA,SAASkpD,EAASt9C,EAAK5L,EAAS4+C,GAC9B,IAAIn+C,EACJ,MAAM0oD,EAAgB,CAAC,EACvB,IAAK,IAAInmD,EAAI,EAAGA,EAAI4I,EAAIxJ,OAAQY,IAAK,CACnC,MAAMi9C,EAASr0C,EAAI5I,GACbuG,EAAW22C,EAASD,GAC1B,IAAImJ,EAAW,GAIf,GAHwBA,OAAXvtD,IAAV+iD,EAAgCr1C,EACnBq1C,EAAQ,IAAMr1C,EAE3BA,IAAavJ,EAAQ88C,kBACVjhD,IAAT4E,EAAoBA,EAAOw/C,EAAO12C,GAChC9I,GAAQ,GAAKw/C,EAAO12C,OACrB,SAAgB1N,IAAb0N,EACP,SACI,GAAG02C,EAAO12C,GAAU,CAExB,IAAIwe,EAAMmhC,EAASjJ,EAAO12C,GAAWvJ,EAASopD,GAC9C,MAAMC,EAASC,EAAUvhC,EAAK/nB,QACEnE,IAA5BokD,EAAO+I,KACTjhC,EAAIihC,GAAmB/I,EAAO+I,IAG7B/I,EAAO,MACRsJ,EAAkBxhC,EAAKk4B,EAAO,MAAOmJ,EAAUppD,GACZ,IAA5BR,OAAO2T,KAAK4U,GAAK3lB,aAA8CvG,IAA9BksB,EAAI/nB,EAAQ88C,eAAgC98C,EAAQyjD,qBAEzD,IAA5BjkD,OAAO2T,KAAK4U,GAAK3lB,SACrBpC,EAAQyjD,qBAAsB17B,EAAI/nB,EAAQ88C,cAAgB,GACxD/0B,EAAM,IAHXA,EAAMA,EAAI/nB,EAAQ88C,mBAMWjhD,IAA5BstD,EAAc5/C,IAA2B4/C,EAAcn+C,eAAezB,IACnE9B,MAAMgR,QAAQ0wC,EAAc5/C,MAC5B4/C,EAAc5/C,GAAY,CAAE4/C,EAAc5/C,KAE9C4/C,EAAc5/C,GAAUtG,KAAK8kB,IAIzB/nB,EAAQyY,QAAQlP,EAAU6/C,EAAUC,GACtCF,EAAc5/C,GAAY,CAACwe,GAE3BohC,EAAc5/C,GAAYwe,CAGhC,EAEF,CAKA,MAHmB,iBAATtnB,EACLA,EAAK2B,OAAS,IAAG+mD,EAAcnpD,EAAQ88C,cAAgBr8C,QAC1C5E,IAAT4E,IAAoB0oD,EAAcnpD,EAAQ88C,cAAgBr8C,GAC5D0oD,CACT,CAEA,SAASjJ,EAAS52C,GAChB,MAAM6J,EAAO3T,OAAO2T,KAAK7J,GACzB,IAAK,IAAItG,EAAI,EAAGA,EAAImQ,EAAK/Q,OAAQY,IAAK,CACpC,MAAM6Q,EAAMV,EAAKnQ,GACjB,GAAW,OAAR6Q,EAAc,OAAOA,CAC1B,CACF,CAEA,SAAS01C,EAAiBjgD,EAAKw3C,EAAS0I,EAAOxpD,GAC7C,GAAI8gD,EAAS,CACX,MAAM3tC,EAAO3T,OAAO2T,KAAK2tC,GACnBn5C,EAAMwL,EAAK/Q,OACjB,IAAK,IAAIY,EAAI,EAAGA,EAAI2E,EAAK3E,IAAK,CAC5B,MAAMymD,EAAWt2C,EAAKnQ,GAClBhD,EAAQyY,QAAQgxC,EAAUD,EAAQ,IAAMC,GAAU,GAAM,GAC1DngD,EAAImgD,GAAY,CAAE3I,EAAQ2I,IAE1BngD,EAAImgD,GAAY3I,EAAQ2I,EAE5B,CACF,CACF,CAEA,SAASH,EAAUhgD,EAAKtJ,GACtB,MAAM,aAAE88C,GAAiB98C,EACnB0pD,EAAYlqD,OAAO2T,KAAK7J,GAAKlH,OAEnC,OAAkB,IAAdsnD,KAKY,IAAdA,IACCpgD,EAAIwzC,IAA8C,kBAAtBxzC,EAAIwzC,IAAqD,IAAtBxzC,EAAIwzC,GAMxE,C,4BCpHA,IAAIkM,E,iBAGFA,EADoB,mBAAX56C,OACS,gBAEAA,OAAO,qBAGZ,MAAMu7C,EACnB,WAAAvzC,CAAY8lC,GACVz9C,KAAKy9C,QAAUA,EACfz9C,KAAK2pB,MAAQ,GACb3pB,KAAK,MAAQ,CAAC,CAChB,CACA,GAAAw5C,CAAIpkC,EAAIkU,GAEK,cAARlU,IAAqBA,EAAM,cAC9BpV,KAAK2pB,MAAMnlB,KAAM,CAAC,CAAC4Q,GAAMkU,GAC3B,CACA,QAAAy9B,CAASlpD,EAAM89C,GACO,cAAjB99C,EAAK4/C,UAAyB5/C,EAAK4/C,QAAU,cAC7C5/C,EAAK,OAASkD,OAAO2T,KAAK7W,EAAK,OAAO8F,OAAS,EAChD3D,KAAK2pB,MAAMnlB,KAAM,CAAE,CAAC3G,EAAK4/C,SAAU5/C,EAAK8rB,MAAO,KAAQ9rB,EAAK,QAE5DmC,KAAK2pB,MAAMnlB,KAAM,CAAE,CAAC3G,EAAK4/C,SAAU5/C,EAAK8rB,aAGvBvsB,IAAfu+C,IAGF37C,KAAK2pB,MAAM3pB,KAAK2pB,MAAMhmB,OAAS,GAAG4mD,GAAmB,CAAE5O,cAE3D,CAEA,wBAAO2O,GACL,OAAOC,CACT,E,4BCtCK,SAASY,KAAYC,GACxB,GAAuB,IAAnBA,EAAQznD,OACR,MAAM,IAAIqB,MAAM,mDAEpB,OAAO,YAA8B8E,GACjC,IAAI5H,EAAS4H,EACb,MAAMiP,EAAQ/Y,KACd,KAAOorD,EAAQznD,OAAS,GAEpBzB,EAAS,CADMkpD,EAAQ9jD,QACNC,MAAMwR,EAAO7W,IAElC,OAAOA,EAAO,EAClB,CACJ,C,4ECZA,MAAMmpD,EAAmB,eACnBC,EAAO,OACb,SAASC,EAAczpD,GACnB,MAAO,CACH+3C,SAAU/3C,EACVspD,QAAS,CAACtpD,GACVslC,OAAO,EAEf,CAIO,MAAMokB,EACT,WAAA7zC,GACI3X,KAAKyrD,eAAiB,CAClBC,SAAU,CAAC,EACXC,eAAgB,QAEpB3rD,KAAK4rD,SAAWP,CACpB,CAKA,iBAAIQ,GACA,OAAO7rD,KAAKyrD,cAChB,CAKA,kBAAIE,GACA,OAAO3rD,KAAK6rD,cAAcF,cAC9B,CACA,kBAAIA,CAAeG,GACf9rD,KAAK6rD,cAAcF,eAAiBG,CACxC,CAUA,OAAAC,CAAQ1+C,EAAQ2+C,GAAuB,GACnC,IAAK3+C,GAAUA,EAAOu+C,WAAaP,EAC/B,MAAM,IAAIrmD,MAAM,+EAapB,OAXAjE,OAAO2T,KAAKrH,EAAOw+C,cAAcH,UAAUrwC,QAAQ4wC,IAC3CjsD,KAAK6rD,cAAcH,SAASn/C,eAAe0/C,GACvCD,IACAhsD,KAAK6rD,cAAcH,SAASO,GAAclrD,OAAOotB,OAAO,CAAC,EAAG9gB,EAAOw+C,cAAcH,SAASO,KAI9FjsD,KAAK6rD,cAAcH,SAASO,GAAclrD,OAAOotB,OAAO,CAAC,EAAG9gB,EAAOw+C,cAAcH,SAASO,MAGlG5+C,EAAOo+C,eAAiBzrD,KAAK6rD,cACtB7rD,IACX,CAQA,OAAAksD,CAAQ92C,KAAQtL,GAEZ,OADe9J,KAAKmB,IAAIiU,IAAQk2C,MACfxhD,EACrB,CAUA,GAAA3I,CAAIiU,GACA,MAAM9S,EAAOtC,KAAK6rD,cAAcH,SAASt2C,GACzC,IAAK9S,EACD,OAAQtC,KAAK2rD,gBACT,IAAK,OACD,OAAO,KACX,IAAK,QACD,MAAM,IAAI3mD,MAAM,oEAAoEoQ,KACxF,QACI,MAAM,IAAIpQ,MAAM,8FAA8FhF,KAAK2rD,kBAG/H,OAAO,UAAYrpD,EAAK8oD,QAC5B,CAMA,SAAAe,CAAU/2C,GACN,QAASpV,KAAK6rD,cAAcH,SAASt2C,EACzC,CAQA,KAAAg3C,CAAMh3C,EAAKtT,EAAQqc,EAAO,CAAC,GACvB,MAAM,MAAE4L,GAAQ,GAAU5L,EAC1B,GAAIne,KAAK6rD,cAAcH,SAASt2C,IAAQpV,KAAK6rD,cAAcH,SAASt2C,GAAKgyB,MACrE,MAAM,IAAIpiC,MAAM,oBAAoBoQ,oCAExC,GAAsB,mBAAXtT,EACP,MAAM,IAAIkD,MAAM,oBAAoBoQ,yCAExC,GAAI2U,EAEK/pB,KAAK6rD,cAAcH,SAASt2C,GAM7BpV,KAAK6rD,cAAcH,SAASt2C,GAAKg2C,QAAQ5mD,KAAK1C,GAJ9C9B,KAAK6rD,cAAcH,SAASt2C,GAAOm2C,EAAczpD,QASrD,GAAI9B,KAAKmsD,UAAU/2C,GAAM,CACrB,MAAM,SAAEykC,GAAa75C,KAAK6rD,cAAcH,SAASt2C,GACjDpV,KAAK6rD,cAAcH,SAASt2C,GAAOrU,OAAOotB,OAAOo9B,EAAczpD,GAAS,CACpE+3C,YAER,MAEI75C,KAAK6rD,cAAcH,SAASt2C,GAAOm2C,EAAczpD,GAGzD,OAAO9B,IACX,CAkBA,WAAAqsD,CAAYj3C,EAAKtT,KAAWgI,GAIxB,OAHK9J,KAAKmsD,UAAU/2C,IAChBpV,KAAKosD,MAAMh3C,EAAKtT,GAEb9B,KAAKksD,QAAQ92C,KAAQtL,EAChC,CASA,MAAAwiD,CAAOl3C,KAAQg2C,GAIX,OAHAA,EAAQ/vC,QAAQvZ,IACZ9B,KAAKosD,MAAMh3C,EAAKtT,EAAQ,CAAEioB,OAAO,MAE9B/pB,IACX,CAMA,OAAAusD,CAAQn3C,GACJ,IAAKpV,KAAKmsD,UAAU/2C,GAChB,MAAM,IAAIpQ,MAAM,uDAAuDoQ,KAEtE,GAAyD,mBAA9CpV,KAAK6rD,cAAcH,SAASt2C,GAAKykC,SAC7C,MAAM,IAAI70C,MAAM,kFAAkFoQ,KAGtG,OADApV,KAAK6rD,cAAcH,SAASt2C,GAAKg2C,QAAU,CAACprD,KAAK6rD,cAAcH,SAASt2C,GAAKykC,UACtE75C,IACX,CAQA,QAAAwsD,CAASp3C,GACL,IAAKpV,KAAK6rD,cAAcH,SAASn/C,eAAe6I,GAC5C,MAAM,IAAIpQ,MAAM,mBAAmBoQ,wCAGvC,OADApV,KAAK6rD,cAAcH,SAASt2C,GAAKgyB,OAAQ,EAClCpnC,IACX,E,4BCnNG,SAASysD,EAAY9xC,GACxB,IAAK8F,EAAQ9F,GACT,MAAM,IAAI3V,MAAM,6BAExB,CACO,SAASyb,EAAQ9F,GACpB,QAAWA,GACQ,iBAARA,GACiB,oBAGR9P,EAHD8P,EAIZ5Z,OAAOE,UAAUyB,SAAS8G,KAAKqB,KAHlC8P,aAAe3V,MAEvB,IAAwB6F,CADxB,C,qECRO,SAAS6hD,IACZ,MAHS,QAIb,C,gJCDO,MAAMC,UAAe3nD,MACxB,WAAA2S,CAAYi1C,EAAuBC,GAC/B,MAAM/iD,EAAO,IAAIJ,YACX,QAAEnI,EAAO,aAAEurD,IAAiB,OAAehjD,GACjD,IAAI/E,EAAU+nD,EAmBd,GAlBIvrD,EAAQmf,QACR3b,EAAU,GAAGA,MAAYxD,EAAQmf,MAAM3b,WAE3CgoD,MAAMhoD,GACN/E,KAAK+E,QAAUA,EACXxD,EAAQ0D,MAAgC,iBAAjB1D,EAAQ0D,KAC/BjF,KAAKiF,KAAO1D,EAAQ0D,KAGpBjF,KAAKiF,MAAO,SAEZ1D,EAAQmf,OACR3f,OAAOC,eAAehB,KAAM,SAAU,CAAEkB,MAAOK,EAAQmf,QAE3D3f,OAAOC,eAAehB,KAAM,QAAS,CAAEkB,MAAO,CAAC,IAC3CK,EAAQ9C,MAAgC,iBAAjB8C,EAAQ9C,MAC/BsC,OAAOotB,OAAOnuB,KAAKgtD,MAAOzrD,EAAQ9C,MAElCuG,MAAMioD,kBAAmB,CACzB,MAAMC,EAAO3rD,EAAQ4rD,gBAAkBntD,KAAK2X,YAC5C3S,MAAMioD,kBAAkBjtD,KAAMktD,EAClC,CACJ,CACA,YAAOxsC,CAAM/F,GAET,OADA,OAAYA,GACPA,EAAIyyC,SAEF,OAAQzyC,EAAIyyC,QACbzyC,EAAIyyC,OAFC,IAIf,CACA,gBAAOC,CAAU1yC,IACb,OAAYA,GACZ,MAAM+F,EAAQisC,EAAOjsC,MAAM/F,GAC3B,OAAI+F,EACO,GAAG/F,EAAI2yC,qBAAqBX,EAAOU,UAAU3sC,KAEjD/F,EAAI2yC,OAAS,EACxB,CACA,WAAO7uD,CAAKkc,IACR,OAAYA,GACZ,MAAM/U,EAAS,CAAC,EACV8a,EAAQisC,EAAOjsC,MAAM/F,GAO3B,OANI+F,GACA3f,OAAOotB,OAAOvoB,EAAQ+mD,EAAOluD,KAAKiiB,IAElC/F,EAAIqyC,OACJjsD,OAAOotB,OAAOvoB,EAAQ+U,EAAIqyC,OAEvBpnD,CACX,CACA,QAAAlD,GACI,IAAIkD,EAAS5F,KAAKiF,MACdjF,KAAK2X,YAAY1S,MACjBjF,KAAK2X,YAAY1W,UAAUgE,KAI/B,OAHIjF,KAAK+E,UACLa,EAAS,GAAGA,MAAW5F,KAAK+E,WAEzBa,CACX,E,4DClEG,SAAS2nD,EAAezjD,GAC3B,IAAIvI,EAASurD,EAAe,GAC5B,GAAoB,IAAhBhjD,EAAKnG,OACLpC,EAAU,CAAC,OAEV,IAAI,OAAQuI,EAAK,IAClBvI,EAAU,CACNmf,MAAO5W,EAAK,IAEhBgjD,EAAehjD,EAAKrG,MAAM,GAAGhC,KAAK,MAAQ,QAEzC,GAAIqI,EAAK,IAAyB,iBAAZA,EAAK,GAC5BvI,EAAUR,OAAOotB,OAAO,CAAC,EAAGrkB,EAAK,IACjCgjD,EAAehjD,EAAKrG,MAAM,GAAGhC,KAAK,MAAQ,OAEzC,IAAuB,iBAAZqI,EAAK,GAKjB,MAAM,IAAI9E,MAAM,sCAJhBzD,EAAU,CAAC,EACXurD,EAAeA,EAAehjD,EAAKrI,KAAK,MAAQ,EAIpD,CACA,MAAO,CACHF,UACAurD,eAER,C,6CC3BA,MAAMU,EAAW,wBACXC,EAAW,qCAKXC,EAAW,CACb7I,KAAO,EAEPC,cAAc,EACd6I,aAAc,IACd5I,WAAW,GAIA,SAAS6I,EAAS3qD,EAAK1B,EAAU,CAAC,GAE7C,GADAA,EAAUR,OAAOotB,OAAO,CAAC,EAAGu/B,EAAUnsD,IAClC0B,GAAsB,iBAARA,EAAmB,OAAOA,EAE5C,IAAI4qD,EAAc5qD,EAAI4gB,OAEtB,QAAwBzmB,IAArBmE,EAAQusD,UAA0BvsD,EAAQusD,SAAStoD,KAAKqoD,GAAa,OAAO5qD,EAC1E,GAAS,MAANA,EAAW,OAAO,EACrB,GAAI1B,EAAQsjD,KAAO2I,EAAShoD,KAAKqoD,GAClC,OAkGR,SAAmBE,GAEf,GAAG9mD,SAAU,OAAOA,SAAS8mD,EApGI,IAqG5B,GAAG58C,OAAOlK,SAAU,OAAOkK,OAAOlK,SAAS8mD,EArGf,IAsG5B,GAAG1wD,QAAUA,OAAO4J,SAAU,OAAO5J,OAAO4J,SAAS8mD,EAtGzB,IAuG5B,MAAM,IAAI/oD,MAAM,+DACzB,CAxGegpD,CAAUH,GAGf,GAAIA,EAAWzL,SAAS,MAAQyL,EAAWzL,SAAS,KACtD,OAqDR,SAA0Bn/C,EAAI4qD,EAAWtsD,GACrC,IAAIA,EAAQwjD,UAAW,OAAO9hD,EAC9B,MAAMmhD,EAAWyJ,EAAW9pD,MAAMkqD,GAClC,GAAG7J,EAAS,CACR,IAAI51C,EAAO41C,EAAS,IAAM,GAC1B,MAAM8J,GAAsC,IAA9B9J,EAAS,GAAG//C,QAAQ,KAAc,IAAM,IAChDygD,EAAeV,EAAS,GACxB+J,EAA0B3/C,EAC5BvL,EAAI6hD,EAAanhD,OAAO,KAAOuqD,EAC7BjrD,EAAI6hD,EAAanhD,UAAYuqD,EAEnC,OAAGpJ,EAAanhD,OAAS,GAAKwqD,EAAgClrD,EAC9B,IAAxB6hD,EAAanhD,SACbygD,EAAS,GAAGpE,WAAW,IAAIkO,MAAY9J,EAAS,GAAG,KAAO8J,EAEzD3sD,EAAQujD,eAAiBqJ,GAE9BN,GAAczJ,EAAS,IAAM,IAAMA,EAAS,GACrCjzC,OAAO08C,IACL5qD,EALEkO,OAAO08C,EAM1B,CACI,OAAO5qD,CAEf,CA5EemrD,CAAiBnrD,EAAI4qD,EAAWtsD,GAGtC,CAED,MAAMwC,EAAQ0pD,EAAS76C,KAAKi7C,GAE5B,GAAG9pD,EAAM,CACL,MAAMyK,EAAOzK,EAAM,IAAM,GACnB+gD,EAAe/gD,EAAM,GAC3B,IAAIsqD,GAyEGN,EAzE2BhqD,EAAM,MA0EV,IAAzBgqD,EAAO1pD,QAAQ,MAEV,OADd0pD,EAASA,EAAO/nD,QAAQ,MAAO,KACX+nD,EAAS,IACP,MAAdA,EAAO,GAAaA,EAAS,IAAIA,EACL,MAA5BA,EAAOA,EAAOpqD,OAAO,KAAaoqD,EAASA,EAAOpyB,UAAU,EAAEoyB,EAAOpqD,OAAO,IAC7EoqD,GAEJA,EAhFC,MAAMO,EAAgC9/C,EACH,MAA/BvL,EAAI6hD,EAAanhD,OAAO,GACO,MAA7BV,EAAI6hD,EAAanhD,QAGvB,IAAIpC,EAAQujD,eACJA,EAAanhD,OAAS,GACM,IAAxBmhD,EAAanhD,SAAiB2qD,GAEtC,OAAOrrD,EAEP,CACA,MAAMia,EAAM/L,OAAO08C,GACbU,EAAYhpD,OAAO2X,GAEzB,GAAY,IAARA,EAAW,OAAOA,EACtB,IAAiC,IAA9BqxC,EAAUp8B,OAAO,QAChB,OAAG5wB,EAAQwjD,UAAkB7nC,EACjBja,EACV,IAAgC,IAA7B4qD,EAAWxpD,QAAQ,KACxB,MAAiB,MAAdkqD,GACKA,IAAcF,GACbE,IAAc,GAAG//C,IAAO6/C,IAFJnxC,EAGjBja,EAGhB,IAAIgF,EAAI68C,EAAcuJ,EAAoBR,EAC1C,OAAG/I,EAES78C,IAAMsmD,GAAe//C,EAAKvG,IAAMsmD,EAAarxC,EAAMja,EAGnDgF,IAAMsmD,GAAetmD,IAAMuG,EAAK+/C,EAAarxC,EAAMja,CAEnE,CACJ,CACI,OAAOA,CAEf,CAkCJ,IAAmB8qD,CAjCnB,CAEA,MAAME,EAAgB,yC,0BCrBP,SAASO,IAStB,OApEF,SAAoBC,GAClB,IAAIC,EAAc,GAClB,GAAwB,IAApBD,EAAS9qD,OAAgB,MAAO,GAEpC,GAA2B,iBAAhB8qD,EAAS,GAClB,MAAM,IAAItiD,UAAU,kCAAoCsiD,EAAS,IAInE,GAAIA,EAAS,GAAG1qD,MAAM,iBAAmB0qD,EAAS9qD,OAAS,EAAG,CAC5D,IAAIuP,EAAQu7C,EAASnnD,QACrBmnD,EAAS,GAAKv7C,EAAQu7C,EAAS,EACjC,CAGIA,EAAS,GAAG1qD,MAAM,gBACpB0qD,EAAS,GAAKA,EAAS,GAAGzoD,QAAQ,gBAAiB,UAEnDyoD,EAAS,GAAKA,EAAS,GAAGzoD,QAAQ,gBAAiB,SAGrD,IAAK,IAAIzB,EAAI,EAAGA,EAAIkqD,EAAS9qD,OAAQY,IAAK,CACxC,IAAIoqD,EAAYF,EAASlqD,GAEzB,GAAyB,iBAAdoqD,EACT,MAAM,IAAIxiD,UAAU,kCAAoCwiD,GAGxC,KAAdA,IAEApqD,EAAI,IAENoqD,EAAYA,EAAU3oD,QAAQ,SAAU,KAIxC2oD,EAFEpqD,EAAIkqD,EAAS9qD,OAAS,EAEZgrD,EAAU3oD,QAAQ,SAAU,IAG5B2oD,EAAU3oD,QAAQ,SAAU,KAG1C0oD,EAAYlqD,KAAKmqD,GAEnB,CAEA,IAAI1rD,EAAMyrD,EAAYjtD,KAAK,KAOvB0F,GAHJlE,EAAMA,EAAI+C,QAAQ,kBAAmB,OAGrBM,MAAM,KAGtB,OAFMa,EAAMG,SAAWH,EAAMxD,OAAS,EAAI,IAAK,IAAMwD,EAAM1F,KAAK,IAGlE,CAWS8hB,CANqB,iBAAjB7Z,UAAU,GACXA,UAAU,GAEV,GAAGjG,MAAM+F,KAAKE,WAI1B,C,4ECpEO,SAASklD,EAAwBjgB,EAAUC,GAE9C,MAAO,UADS,QAAS,GAAGD,KAAYC,MAE5C,C,mGCAO,SAASigB,EAAoBlgB,EAAUC,EAAUkgB,GACpD,MAAO,CAAEngB,WAAUC,WAAUkgB,MAAKC,GAAI,EAAGC,UAAW,MAAOC,eAAe,EAC9E,CACO,SAASC,EAAyB3tD,EAAS4tD,GAC9C,MAAMj6C,EAAM3T,EAAQ2T,IAAIlP,QAAQ,KAAM,IAChCopD,GAA2B,GAArBl6C,EAAI7Q,QAAQ,KAAa,IAAM6Q,EAAIzR,MAAMyR,EAAI7Q,QAAQ,MAC3DvC,EAASP,EAAQO,OAASP,EAAQO,OAAOsa,cAAgB,MACzDizC,IAAM,uBAAuB7pD,KAAK2pD,EAAOE,MAAO,OAChDC,EAAW,WAAWH,EAAOJ,KAAKtrD,OAAO,GACzCqrD,GAAM,OAAWK,EAAOH,UAAWG,EAAOxgB,SAAUwgB,EAAOI,MAAOJ,EAAOvgB,SAAUugB,EAAOK,MAAOL,EAAOM,OAAQN,EAAOL,KACvHY,EAAM,EAAI,GAAG5tD,KAAUstD,KACvBO,EACA,EADiBN,EACb,GAAGP,KAAOK,EAAOK,SAASF,KAAYH,EAAOM,UAAUJ,KAAOK,IAC9D,GAAGZ,KAAOK,EAAOK,SAASE,KAC9BE,EAAa,CACfjhB,SAAUwgB,EAAOxgB,SACjB4gB,MAAOJ,EAAOI,MACdC,MAAOL,EAAOK,MACdJ,MACAC,MACAztD,SAAU+tD,EACVZ,GAAIO,EACJG,OAAQN,EAAOM,OACfT,UAAWG,EAAOH,UAClBa,OAAQV,EAAOU,QAEbC,EAAa,GACnB,IAAK,MAAM/nD,KAAK6nD,EACRA,EAAW7nD,KACD,QAANA,GAAqB,OAANA,GAAoB,cAANA,EAC7B+nD,EAAWtrD,KAAK,GAAGuD,KAAK6nD,EAAW7nD,MAGnC+nD,EAAWtrD,KAAK,GAAGuD,MAAM6nD,EAAW7nD,QAIhD,MAAO,UAAU+nD,EAAWruD,KAAK,OACrC,CAQO,SAASsuD,EAAgBnuD,EAAUouD,GAEtC,IADiBC,EAA4BruD,GAEzC,OAAO,EAEX,MAAM62C,EAAK,8CACX,OAAS,CACL,MAAMqX,EAAcluD,EAAS0wB,SAAW1wB,EAAS0wB,QAAQnxB,IAAI,qBAAwB,GAC/E4C,EAAQ00C,EAAG7lC,KAAKk9C,GACtB,IAAK/rD,EACD,MAEJisD,EAAQjsD,EAAM,IAAMA,EAAM,IAAMA,EAAM,EAC1C,CAGA,OAFAisD,EAAQjB,IAAM,EACdiB,EAAQP,OAtBZ,WACI,IAAIS,EAAM,GACV,IAAK,IAAI3rD,EAAI,EAAGA,EA1CD,KA0CmBA,EAC9B2rD,EAAM,GAAGA,IA5CG,mBA4CeppD,KAAKsH,MAAsB+hD,GAAhBrpD,KAAKC,aAE/C,OAAOmpD,CACX,CAgBqBE,IACV,CACX,CACO,SAASH,EAA4BruD,GAExC,MAAmD,YAD/BA,EAAS0wB,SAAW1wB,EAAS0wB,QAAQnxB,IAAI,qBAAwB,IACnEmF,MAAM,MAAM,GAAGgW,aACrC,C,wGClEO,SAAS+zC,EAAUC,EAAS3hB,EAAUC,EAAU2hB,EAAYzB,GAC/D,OAAQwB,EAAQE,UACZ,KAAK,KAASC,KACN9hB,GAAYC,IACZ0hB,EAAQh+B,QAAQo+B,eAAgB,OAAwB/hB,EAAUC,IAEtE,MACJ,KAAK,KAAS+hB,OACVL,EAAQnB,QAAS,QAAoBxgB,EAAUC,EAAUkgB,GACzD,MACJ,KAAK,KAAS8B,KAEV,MACJ,KAAK,KAASC,SACVP,EAAQh+B,QAAQo+B,eAAgB,OAAwB/hB,EAAUC,GAClE,MACJ,KAAK,KAASkiB,MACVR,EAAQh+B,QAAQo+B,eAAgB,OAAwBH,GACxD,MACJ,QACI,MAAM,IAAI,KAAO,CACb9xD,KAAM,CACF0K,KAAM,KAAU4nD,kBAErB,sBAAsBT,EAAQE,YAE7C,C,4BC/BO,SAASQ,EAAwB10D,GACpC,MAAO,GAAGA,EAAM20D,cAAc30D,EAAM40D,cACxC,C,6DCFA,MAAMC,EAAwC,mBAAhBzhD,aACtBhN,SAAU0uD,GAAgBrwD,OAAOE,UAElC,SAAS+yC,EAAc9yC,GAC1B,OAAQiwD,IACHjwD,aAAiBwO,aAA2C,yBAA5B0hD,EAAY5nD,KAAKtI,GAC1D,C,4BCNO,SAASgsB,EAAShsB,GACrB,OAAiB,MAATA,GACiB,MAArBA,EAAMyW,aACgC,mBAA/BzW,EAAMyW,YAAYuV,UACzBhsB,EAAMyW,YAAYuV,SAAShsB,EACnC,C,4CCLO,SAASmwD,IACZ,MAAyB,iBAAXC,QAAkC,iBAAXA,MACzC,CACO,SAASC,IACZ,MAAyB,iBAAXD,QAAkC,QAAXA,MACzC,C,oFCJA,IAAIE,EAAY,KACT,SAASC,IAIZ,OAHKD,IACDA,EAAY,IAAI,KAEbA,CACX,C,6QCaA,MAAME,EAAuB,8EACtB,SAASv1D,EAAaw1D,EAAWpwD,EAAU,CAAC,GAC/C,MAAQivD,SAAUoB,EAAc,KAAI,eAAEC,EAAc,YAAEC,EAAcJ,EAAoB,IAAE5C,EAAG,QAAEx8B,EAAU,CAAC,EAAC,UAAEy/B,EAAS,WAAEC,EAAU,SAAEpjB,EAAQ,MAAEtyC,EAAK,SAAEqyC,EAAQ,gBAAElY,GAAoBl1B,EACnL,IAAIivD,EAAWoB,EACVpB,IACDA,EAAW7hB,GAAYC,EAAW,KAASiiB,SAAW,KAASD,MAEnE,MAAMN,EAAU,CACZE,WACAqB,iBACAC,cACAhD,MACAx8B,QAASvxB,OAAOotB,OAAO,CAAC,EAAGmE,GAC3By/B,YACAC,aACApjB,WACAqjB,QAAS,CACL9T,oBAAqB58C,EAAQ48C,qBAAuB,IACpD+T,iBAAkB,GAClBC,WAAY,CAAC,OAEjBC,YAAY,QAAeT,GAC3BA,YACAr1D,QACAqyC,WACAlY,mBAGJ,OADA,OAAU65B,EAAS3hB,EAAUC,EAAUtyC,EAAOwyD,GACvC,CACHuD,SAAU,CAACpvC,EAAUqvC,EAAa/wD,KAAY,OAAS+uD,EAASrtC,EAAUqvC,EAAa/wD,GACvFgxD,gBAAiB,CAAC94C,EAAMlY,KAAY,IAAAkE,GAAgB6qD,EAAS72C,EAAMlY,GACnEixD,iBAAkB,CAACvvC,EAAU1hB,KAAY,OAAiB+uD,EAASrtC,EAAU1hB,GAC7EkxD,kBAAmB,CAACxvC,EAAU1hB,EAASmY,KAAa,OAAkB42C,EAASrtC,EAAU1hB,EAASmY,GAClG7X,cAAe,CAAC4X,EAAMi5C,KAAmB,OAAcpC,EAAS72C,EAAMi5C,GACtEC,WAAY,CAAC1vC,EAAU1hB,KAAY,OAAW+uD,EAASrtC,EAAU1hB,GACjEqxD,OAAQ,CAACn5C,EAAMlY,KAAY,OAAO+uD,EAAS72C,EAAMlY,GACjDsxD,qBAAsB,CAACp5C,EAAMlY,KAExB,OAAqB+uD,EAAS72C,EAAMlY,GACzCuxD,gBAAiB,CAAC7vC,EAAU1hB,KAAY,OAAgB+uD,EAASrtC,EAAU1hB,GAC3EwxD,oBAAsB9vC,IAAa,OAAoBqtC,EAASrtC,GAChE+vC,kBAAoB/vC,IAAa,OAAkBqtC,EAASrtC,GAC5DgwC,WAAY,IAAMlyD,OAAOotB,OAAO,CAAC,EAAGmiC,EAAQh+B,SAC5C4gC,SAAW3xD,IAAY,OAAS+uD,EAAS/uD,GACzC4xD,KAAM,CAAC15C,EAAMlY,KAAY,OAAK+uD,EAAS72C,EAAMlY,GAC7C6xD,SAAU,CAACnwC,EAAUowC,EAAqB9xD,KAAY,IAAAuC,GAASwsD,EAASrtC,EAAUowC,EAAqB9xD,GACvG+xD,gBAAiB,CAACrwC,EAAUlkB,EAAMwC,KAAY,OAAgB+uD,EAASrtC,EAAUlkB,EAAMwC,GACvFgyD,0BAA2B,CAACC,EAAUlwD,EAAOC,EAAKxE,EAAMwC,KAAY,OAA0B+uD,EAASkD,EAAUlwD,EAAOC,EAAKxE,EAAMwC,GACnIkyD,iBAAmBh6C,IAAS,OAAiB62C,EAAS72C,GACtD0Y,OAAQ,CAAC1Y,EAAMlY,KAAY,OAAU+uD,EAAS72C,EAAMlY,GACpDlF,WAAai2B,IACTg+B,EAAQh+B,QAAUvxB,OAAOotB,OAAO,CAAC,EAAGmE,IAExCrwB,KAAM,CAACwX,EAAMlY,KAAY,OAAQ+uD,EAAS72C,EAAMlY,GAChDmyD,OAAQ,CAACj6C,EAAMnd,EAAOiF,KAAY,OAAO+uD,EAAS72C,EAAMnd,EAAOiF,GAC/DoyD,wBAA0BjkC,IACtB4gC,EAAQ2B,QAAQC,iBAAiB1tD,KAAKkrB,IAE1CkkC,kBAAoBlkC,IAChB4gC,EAAQ2B,QAAQE,WAAW3tD,KAAKkrB,IAG5C,C,2MC9EO/xB,eAAe00D,EAAS/B,EAASrtC,EAAUqvC,EAAa/wD,EAAU,CAAC,GACtE,MAAMmxD,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,WAAW,QAAW1uC,IAC3CnhB,OAAQ,OACRwwB,QAAS,CACLuhC,aAAa,QAAQvD,EAAQqB,WAAW,QAAWW,IAOnDwB,WAAiC,IAAtBvyD,EAAQwyD,UAAsB,IAAM,IAM/CC,MAAOzyD,EAAQ0yD,QAAU,IAAM,aAEpC3D,EAAS/uD,GACNK,QAAiB,OAAQ8wD,EAAgBpC,IAC/C,QAAmBA,EAAS1uD,EAChC,C,sGCtBOjE,eAAe40D,EAAgBjC,EAAS4D,EAAS3yD,EAAU,CAAC,GAC/D,IAA0B,IAAtBA,EAAQ4yD,UACR,OAqBRx2D,eAA0C2yD,EAAS4D,EAAS3yD,EAAU,CAAC,GACnE,MAAM6yD,GAAQ,SAAkB,QAAcF,IAC9CE,EAAMvnC,KAAK,CAAC9pB,EAAGC,IACPD,EAAEY,OAASX,EAAEW,OACN,EAEFX,EAAEW,OAASZ,EAAEY,QACV,EAEL,GAEX,IAAI0wD,GAAW,EACf,IAAK,MAAMC,KAAYF,EACnB,GAAIC,QACM9B,EAAgBjC,EAASgE,EAAU,IAClC/yD,EACH4yD,WAAW,SAInB,IAEI,GAAsB,qBADE,OAAQ7D,EAASgE,IAC5Bn0D,KACT,MAAM,IAAI6E,MAAM,yBAAyBkvD,IAEjD,CACA,MAAOv5C,GAEH,GAAqB,MADPA,EACJid,OAQN,MAAMjd,EAPN05C,GAAW,QACL9B,EAAgBjC,EAASgE,EAAU,IAClC/yD,EACH4yD,WAAW,GAMvB,CAER,CA7DeI,CAA2BjE,EAAS4D,EAAS3yD,GACxD,MAAMmxD,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,WAaCl4C,GAb+B,QAAWy6C,GAc/Dz6C,EAAKmiB,SAAS,KAGZniB,EAFIA,EAAO,MAdd3X,OAAQ,SACTwuD,EAAS/uD,GACNK,QAAiB,OAAQ8wD,EAAgBpC,GAUnD,IAA8B72C,GAT1B,QAAmB62C,EAAS1uD,EAChC,C,8GCTA,MAAM0pD,EAAO,OACN,SAASkH,EAAiBlC,EAASkD,EAAUjyD,EAAU,CAAC,GAC3D,MACMizD,EAAY,IAAIC,EADI,eAS1B,OA6BJ92D,eAA6B2yD,EAASkD,EAAUjyD,EAAU,CAAC,GACvD,MAAM+wB,EAAU,CAAC,EACjB,GAA6B,iBAAlB/wB,EAAQ8B,OAAqD,iBAAxB9B,EAAQ8B,MAAMC,MAAoB,CAC9E,IAAIoxD,EAAc,SAASnzD,EAAQ8B,MAAMC,SACR,iBAAtB/B,EAAQ8B,MAAME,MACrBmxD,EAAc,GAAGA,IAAcnzD,EAAQ8B,MAAME,OAEjD+uB,EAAQqiC,MAAQD,CACpB,CACA,MAAMhC,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,WAAW,QAAW6B,IAC3C1xD,OAAQ,MACRwwB,WACDg+B,EAAS/uD,GACNK,QAAiB,OAAQ8wD,EAAgBpC,GAE/C,IADA,QAAmBA,EAAS1uD,GACxB0wB,EAAQqiC,OAA6B,MAApB/yD,EAASg2B,OAAgB,CAC1C,MAAMg9B,EAAgB,IAAI5vD,MAAM,8CAA8CpD,EAASg2B,UAEvF,MADAg9B,EAAch9B,OAASh2B,EAASg2B,OAC1Bg9B,CACV,CAOA,OANIrzD,EAAQmY,UACRmc,WAAW,KACPt0B,EAAQmY,SAAS9X,IAClB,GAGAA,EAAS8B,IACpB,CAhEImxD,CAAcvE,EAASkD,EAAUjyD,GAC5Bm1B,KAAKvC,IACNA,EAAO0N,KAAK2yB,KAEXh7B,MAAM7e,IACP65C,EAAUl+B,KAAK,QAAS3b,KAErB65C,CACX,CACO,SAAS/B,EAAkBnC,EAASkD,EAAUjyD,EAAU,CAAC,EAAGmY,EAAW4xC,GAC1E,MACMwJ,EAAc,IAAIL,EADE,eAEpBniC,EAAU,CAAC,GACS,IAAtB/wB,EAAQwyD,YACRzhC,EAAQ,iBAAmB,KAE/B,MAAMogC,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,WAAW,QAAW6B,IAC3C1xD,OAAQ,MACRwwB,UACAvzB,KAAM+1D,EACNC,aAAc,GACfzE,EAAS/uD,GAYZ,OAXA,OAAQmxD,EAAgBpC,GACnB55B,KAAK90B,IAAY,QAAmB0uD,EAAS1uD,IAC7C80B,KAAK90B,IAENi0B,WAAW,KACPnc,EAAS9X,IACV,KAEF43B,MAAM7e,IACPm6C,EAAYx+B,KAAK,QAAS3b,KAEvBm6C,CACX,C,2FCxCOn3D,eAAekE,EAAcyuD,EAAS8B,EAAYM,GAChDA,EAAex9C,MAChBw9C,EAAex9C,KAAM,QAAQo7C,EAAQqB,WAAW,QAAWS,KAE/D,MAAM4C,GAAe,OAAsBtC,EAAgBpC,EAAS,CAAC,GAC/D1uD,QAAiB,OAAQozD,EAAc1E,GAE7C,OADA,QAAmBA,EAAS1uD,GACrBA,CACX,C,2FCROjE,eAAeg1D,EAAWrC,EAASrtC,EAAU1hB,EAAU,CAAC,GAC3D,MAAMmxD,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,WAAW,QAAW1uC,IAC3CnhB,OAAQ,UACTwuD,EAAS/uD,GACNK,QAAiB,OAAQ8wD,EAAgBpC,IAC/C,QAAmBA,EAAS1uD,EAChC,C,iHCLOjE,eAAek1D,EAAqBvC,EAAS8B,EAAY7wD,EAAU,CAAC,GACvE,MAAMmxD,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,WAAW,QAAWS,GAAa,KACxDtwD,OAAQ,WACRwwB,QAAS,CACL2iC,OAAQ,6BACRjB,MAAOzyD,EAAQ2zD,KAAO,WAAa,MAExC5E,EAAS/uD,GACNK,QAAiB,OAAQ8wD,EAAgBpC,IAC/C,QAAmBA,EAAS1uD,GAC5B,MAAMG,QAAqBH,EAASI,OACpC,IAAKD,EACD,MAAM,IAAIiD,MAAM,qDAEpB,MAAMmwD,QAAgB,QAASpzD,EAAcuuD,EAAQ2B,SAC/CmD,GAAc,QAAiBhD,GAErC,IAAIiD,EAMR,SAA2BnzD,EAAQozD,EAAsBC,EAAapzD,GAAa,EAAOqzD,GAAc,GACpG,MAAMC,EAAa,OAAeH,EAAsB,MAEhDlzD,aAAeR,SAAUS,IAAoBH,EAE/CwzD,EAAQrzD,EAAc/C,IAAIgD,IAE5B,MAAM0rC,GAAO,QAAc1rC,EAAK0rC,OAExBzrC,UAAYC,KAAM7C,IAAY2C,EAEhC2gB,EAA0B,MAAfwyC,EACXrlD,oBAAmB,QAAc49B,KACjC,QAAc,WAAmB59B,mBAAmBqlD,GAAarlD,mBAAmB49B,KAC1F,OAAO,QAAqBruC,EAAOsjB,EAAU9gB,KAGjD,OAAIqzD,EACOE,EAGJA,EAAMppC,OAAOhqB,GAAQA,EAAKgiB,WACd,SAAdhiB,EAAKnC,MAAmBmC,EAAK2gB,WAAasyC,EAAYvvD,QAAQ,MAAO,KAC9E,CA7BgBrD,CAAkBwyD,GADP,QAAiB7E,EAAQuB,gBAAkBvB,EAAQ8B,YACnBgD,EAAa7zD,EAAQo0D,QAASp0D,EAAQi0D,aAI7F,OAHIj0D,EAAQq0D,OACRP,GAAQ,QAAkBA,EAAO9zD,EAAQq0D,QAEtC,QAAuBh0D,EAAUyzD,EAAO9zD,EAAQo0D,QAC3D,C,4DC5BOh4D,eAAei1D,EAAOtC,EAAS8B,EAAY7wD,EAAU,CAAC,GACzD,IAEI,aADM,OAAQ+uD,EAAS8B,EAAY7wD,IAC5B,CACX,CACA,MAAOoZ,GACH,GAAmB,MAAfA,EAAIid,OACJ,OAAO,EAEX,MAAMjd,CACV,CACJ,C,2FCROhd,eAAe81D,EAAiBnD,EAASkD,EAAUjyD,EAAU,CAAC,GACjE,MAAMmxD,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,WAAW,QAAW6B,IAC3C1xD,OAAQ,WACTwuD,EAAS/uD,GACNK,QAAiB,OAAQ8wD,EAAgBpC,GAC/C,KACI,QAAmBA,EAAS1uD,EAChC,CACA,MAAO+Y,GAEH,MADcA,CAElB,CAIA,MAAO,CACHk7C,YAJcj0D,EAAS0wB,QAAQnxB,IAAI,QAAU,IACpBmF,MAAM,KAAKhH,IAAIgD,GAAQA,EAAKuhB,QAIrDiyC,OAHWl0D,EAAS0wB,QAAQnxB,IAAI,WAAa,GAKrD,C,6JChBA,MAAM40D,EAA2Bh8C,GAAMA,EAChCpc,eAAem1D,EAAgBxC,EAASkD,EAAUjyD,EAAU,CAAC,GAChE,MAAM,OAAEkjB,EAAS,UAAaljB,EAC9B,GAAe,WAAXkjB,GAAkC,SAAXA,EACvB,MAAM,IAAI,KAAO,CACbhmB,KAAM,CACF0K,KAAM,KAAU6sD,sBAErB,0BAA0BvxC,KAEjC,MAAkB,SAAXA,EAoBX9mB,eAAqC2yD,EAASkD,EAAUjyD,EAAU,CAAC,GAC/D,MAAMmxD,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,WAAW,QAAW6B,IAC3C1xD,OAAQ,MACRwwB,QAAS,CACL2iC,OAAQ,cAEZgB,kBAAmB,CAACF,IACrBzF,EAAS/uD,GACNK,QAAiB,OAAQ8wD,EAAgBpC,IAC/C,QAAmBA,EAAS1uD,GAC5B,MAAM8B,QAAa9B,EAASI,OAC5B,OAAO,QAAuBJ,EAAU8B,EAAMnC,EAAQo0D,QAC1D,CAhCUO,CAAsB5F,EAASkD,EAAUjyD,GAGnD5D,eAAqC2yD,EAASkD,EAAUjyD,EAAU,CAAC,GAC/D,MAAMmxD,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,WAAW,QAAW6B,IAC3C1xD,OAAQ,OACTwuD,EAAS/uD,GACNK,QAAiB,OAAQ8wD,EAAgBpC,GAE/C,IAAI5sD,EAOJ,OARA,QAAmB4sD,EAAS1uD,GAGxB8B,GADA,WAAW,eACE9B,EAASu0D,cAGfthC,EAAOrV,WAAW5d,EAASu0D,gBAE/B,QAAuBv0D,EAAU8B,EAAMnC,EAAQo0D,QAC1D,CAjBUS,CAAsB9F,EAASkD,EAAUjyD,EACnD,CA+BO,SAASwxD,EAAoBzC,EAASkD,GACzC,IAAIt+C,GAAM,QAAQo7C,EAAQqB,WAAW,QAAW6B,IAChD,MAAMh+C,EAAW,WAAWhQ,KAAK0P,GAAO,QAAU,OAClD,OAAQo7C,EAAQE,UACZ,KAAK,KAASI,KAEV,MACJ,KAAK,KAASC,SAAU,CACpB,MAAMwF,EAAW/F,EAAQh+B,QAAQo+B,cAAc1qD,QAAQ,WAAY,IAAI6d,OACjEyyC,GAAe,QAAWD,GAChCnhD,EAAMA,EAAIlP,QAAQ,eAAgB,GAAGwP,OAAc8gD,MACnD,KACJ,CACA,QACI,MAAM,IAAI,KAAO,CACb73D,KAAM,CACF0K,KAAM,KAAUotD,0BAErB,wCAAwCjG,EAAQE,YAE3D,OAAOt7C,CACX,C,qGCpEOvX,eAAeu1D,EAAS5C,EAAS/uD,EAAU,CAAC,GAC/C,MAAMkY,EAAOlY,EAAQkY,MAAQ,IACvBi5C,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,UAAWl4C,GAChC3X,OAAQ,WACRwwB,QAAS,CACL2iC,OAAQ,6BACRjB,MAAO,MAEZ1D,EAAS/uD,GACNK,QAAiB,OAAQ8wD,EAAgBpC,IAC/C,QAAmBA,EAAS1uD,GAC5B,MAAMG,QAAqBH,EAASI,OAC9BE,QAAe,QAASH,EAAcuuD,EAAQ2B,SAC9CuE,GAAQ,OAAWt0D,GACzB,OAAO,QAAuBN,EAAU40D,EAAOj1D,EAAQo0D,QAC3D,C,yHCfA,MAAMc,EAAkB,8BACjB94D,eAAew1D,EAAK7C,EAAS72C,EAAMlY,EAAU,CAAC,GACjD,MAAM,aAAEm1D,EAAY,QAAE9gC,EAAU6gC,GAAoBl1D,EAC9C+wB,EAAU,CACZ2iC,OAAQ,6BACR0B,QAAS/gC,GAET8gC,IACApkC,EAAQskC,GAAKF,GAEjB,MAAMhE,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,WAAW,QAAWl4C,IAC3C3X,OAAQ,OACRwwB,UACAvzB,MAAM,OAAgBuxD,EAAQwB,cAC/BxB,EAAS/uD,GACNK,QAAiB,OAAQ8wD,EAAgBpC,IAC/C,QAAmBA,EAAS1uD,GAC5B,MAAMG,QAAqBH,EAASI,OAC9B60D,GAAc,OAAqB90D,GACnCzF,EAAQ,MAAeu6D,EAAa,gDACpCC,EAAgB,MAAeD,EAAa,yCAClD,IAAKv6D,EAED,MADY,QAAwBsF,EAAU,4BAGlD,MAAO,CACHtF,QACAw6D,gBAER,CACOn5D,eAAe+1D,EAAOpD,EAAS72C,EAAMnd,EAAOiF,EAAU,CAAC,GAC1D,MAAMmxD,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,WAAW,QAAWl4C,IAC3C3X,OAAQ,SACRwwB,QAAS,CACL,aAAch2B,IAEnBg0D,EAAS/uD,GACNK,QAAiB,OAAQ8wD,EAAgBpC,GAE/C,IADA,QAAmBA,EAAS1uD,GACJ,MAApBA,EAASg2B,QAAsC,MAApBh2B,EAASg2B,OAEpC,MADY,QAAwBh2B,EAG5C,C,2FC/COjE,eAAey1D,EAAS9C,EAASrtC,EAAUqvC,EAAa/wD,EAAU,CAAC,GACtE,MAAMmxD,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,WAAW,QAAW1uC,IAC3CnhB,OAAQ,OACRwwB,QAAS,CACLuhC,aAAa,QAAQvD,EAAQqB,WAAW,QAAWW,IAOnDwB,WAAiC,IAAtBvyD,EAAQwyD,UAAsB,IAAM,MAEpDzD,EAAS/uD,GACNK,QAAiB,OAAQ8wD,EAAgBpC,IAC/C,QAAmBA,EAAS1uD,EAChC,C,4HCdOjE,eAAe41D,EAA0BjD,EAASkD,EAAUlwD,EAAOC,EAAKxE,EAAMwC,EAAU,CAAC,GAC5F,MAAMs0D,QAAmB,OAAiBvF,EAASkD,EAAUjyD,GAC7D,GAAIs0D,EAAWA,WAAWzT,SAAS,0BAC/B,aAYRzkD,eAAiD2yD,EAASkD,EAAUlwD,EAAOC,EAAKxE,EAAMwC,EAAU,CAAC,GAC7F,GAAI+B,EAAQC,GAAOD,EAAQ,EAGvB,MAAM,IAAI,KAAO,CACb7E,KAAM,CACF0K,KAAM,KAAU4tD,qBAErB,wBAAwBzzD,wBAE/B,MAAMgvB,EAAU,CACZ,eAAgB,uCAChB,iBAAkB,IAAG/uB,EAAMD,EAAQ,GACnC,iBAAkB,SAASA,KAASC,KAElCmvD,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,WAAW,QAAW6B,IAC3C1xD,OAAQ,QACRwwB,UACAvzB,QACDuxD,EAAS/uD,GACNK,QAAiB,OAAQ8wD,EAAgBpC,IAC/C,QAAmBA,EAAS1uD,EAChC,CAnCqBo1D,CAAkC1G,EAASkD,EAAUlwD,EAAOC,EAAKxE,EAAMwC,GAExF,GAAIs0D,EAAWC,OAAO1T,SAAS,WAC3ByT,EAAWA,WAAWzT,SAAS,wCAC/B,aAgCRzkD,eAA+C2yD,EAASkD,EAAUlwD,EAAOC,EAAKxE,EAAMwC,EAAU,CAAC,GAC3F,GAAI+B,EAAQC,GAAOD,EAAQ,EACvB,MAAM,IAAI,KAAO,CACb7E,KAAM,CACF0K,KAAM,KAAU4tD,qBAErB,wBAAwBzzD,wBAE/B,MAAMgvB,EAAU,CACZ,eAAgB,2BAChB,iBAAkB,IAAG/uB,EAAMD,EAAQ,GACnC,gBAAiB,SAASA,KAASC,OAEjCmvD,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,WAAW,QAAW6B,IAC3C1xD,OAAQ,MACRwwB,UACAvzB,QACDuxD,EAAS/uD,GACNK,QAAiB,OAAQ8wD,EAAgBpC,IAC/C,QAAmBA,EAAS1uD,EAChC,CArDqBq1D,CAAgC3G,EAASkD,EAAUlwD,EAAOC,EAAKxE,EAAMwC,GAEtF,MAAM,IAAI,KAAO,CACb9C,KAAM,CACF0K,KAAM,KAAU+tD,eAErB,gBACP,C,qKCXOv5D,eAAe21D,EAAgBhD,EAASkD,EAAUz0D,EAAMwC,EAAU,CAAC,GACtE,MAAM,cAAE41D,GAAgB,EAAI,UAAEpD,GAAY,GAASxyD,EAC7C+wB,EAAU,CACZ,eAAgB,8BAEf,YACA,eACiB,IAAX,QACqB,IAArB,GAAQsG,UACf75B,aAAgB,aAGO,IAAlBo4D,IAIL7kC,EAAQ,kBADsB,iBAAlB6kC,EACgB,GAAGA,IAGH,IAAG,OAAoBp4D,MAElDg1D,IACDzhC,EAAQ,iBAAmB,KAE/B,MAAMogC,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,WAAW,QAAW6B,IAC3C1xD,OAAQ,MACRwwB,UACAvzB,QACDuxD,EAAS/uD,GACNK,QAAiB,OAAQ8wD,EAAgBpC,GAC/C,KACI,QAAmBA,EAAS1uD,EAChC,CACA,MAAO+Y,GACH,MAAMzV,EAAQyV,EACd,GAAqB,MAAjBzV,EAAM0yB,QAAmBm8B,EAIzB,MAAM7uD,EAHN,OAAO,CAKf,CACA,OAAO,CACX,CACO,SAAS8tD,EAAkB1C,EAASkD,GACvC,IAAIt+C,EAAM,IAAG,QAAQo7C,EAAQqB,WAAW,QAAW6B,4CACnD,MAAMh+C,EAAW,WAAWhQ,KAAK0P,GAAO,QAAU,OAClD,OAAQo7C,EAAQE,UACZ,KAAK,KAASI,KAEV,MACJ,KAAK,KAASC,SAAU,CACpB,MAAMwF,EAAW/F,EAAQh+B,QAAQo+B,cAAc1qD,QAAQ,WAAY,IAAI6d,OACjEyyC,GAAe,QAAWD,GAChCnhD,EAAMA,EAAIlP,QAAQ,eAAgB,GAAGwP,OAAc8gD,MACnD,KACJ,CACA,QACI,MAAM,IAAI,KAAO,CACb73D,KAAM,CACF0K,KAAM,KAAUotD,0BAErB,wCAAwCjG,EAAQE,YAE3D,OAAOt7C,CACX,C,sGCvEOvX,eAAey5D,EAAU9G,EAAS+G,EAAe91D,EAAU,CAAC,GAC/D,MAAQo0D,QAASxzD,GAAa,GAAUZ,EAClCmxD,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,WAAW,QAAW0F,IAC3Cv1D,OAAQ,SACRwwB,QAAS,CACL2iC,OAAQ,6BAER,eAAgB3E,EAAQh+B,QAAQ,iBAAmB,mCAExDg+B,EAAS/uD,GACNK,QAAiB,OAAQ8wD,EAAgBpC,IAC/C,QAAmBA,EAAS1uD,GAC5B,MAAMw4B,QAAqBx4B,EAASI,OAC9BD,QAAqB,QAASq4B,EAAck2B,EAAQ2B,SACpDqF,GAAU,QAAYv1D,EAAcs1D,EAAel1D,GACzD,OAAO,QAAuBP,EAAU01D,EAASn1D,EACrD,C,sGCjBOxE,eAAe45D,EAAQjH,EAASrtC,EAAU1hB,EAAU,CAAC,GACxD,MAAQo0D,QAASxzD,GAAa,GAAUZ,EAClCmxD,GAAiB,OAAsB,CACzCx9C,KAAK,QAAQo7C,EAAQqB,WAAW,QAAW1uC,IAC3CnhB,OAAQ,WACRwwB,QAAS,CACL2iC,OAAQ,6BACRjB,MAAO,MAEZ1D,EAAS/uD,GACNK,QAAiB,OAAQ8wD,EAAgBpC,IAC/C,QAAmBA,EAAS1uD,GAC5B,MAAMG,QAAqBH,EAASI,OAC9BE,QAAe,QAASH,EAAcuuD,EAAQ2B,SAC9ChwD,GAAO,QAAUC,EAAQ+gB,EAAU9gB,GACzC,OAAO,QAAuBP,EAAUK,EAAME,EAClD,C,kLCyBO,SAASq1D,EAAsB9E,EAAgBpC,EAASmH,GAC3D,MAAMzC,GAAe,OAAatC,GAoBlC,OAnBAsC,EAAa1iC,SAAU,OAAag+B,EAAQh+B,QAAS0iC,EAAa1iC,SAAW,CAAC,EAAGmlC,EAAYnlC,SAAW,CAAC,QACzE,IAArBmlC,EAAY14D,OACnBi2D,EAAaj2D,KAAO04D,EAAY14D,MAEhC04D,EAAYvhC,SACZ8+B,EAAa9+B,OAASuhC,EAAYvhC,QAElCo6B,EAAQyB,YACRiD,EAAajD,UAAYzB,EAAQyB,WAEjCzB,EAAQ0B,aACRgD,EAAahD,WAAa1B,EAAQ0B,YAElC1B,EAAQnB,SACR6F,EAAahF,QAAUM,EAAQnB,QAEI,kBAA5BmB,EAAQ75B,kBACfu+B,EAAav+B,gBAAkB65B,EAAQ75B,iBAEpCu+B,CACX,CACOr3D,eAAe8X,EAAQi9C,EAAgBpC,GAC1C,OAAIA,EAAQE,WAAa,KAASC,KAQtC9yD,eAA2B+0D,EAAgBpC,GACvC,MAAM1uD,QAAiB81D,EAAgBhF,GACvC,OAAI9wD,EAAS+1D,IACTrH,EAAQE,SAAW,KAASK,SACrBjvD,GAEY,KAAnBA,EAASg2B,SAAiB,QAA4Bh2B,IACtD0uD,EAAQE,SAAW,KAASG,QAC5B,OAAUL,EAASA,EAAQ3hB,SAAU2hB,EAAQ1hB,cAAUxxC,OAAWA,GAClEs1D,EAAe1C,QAAUM,EAAQnB,OAC1ByI,EAAclF,IAElB9wD,CACX,CApBei2D,CAAYnF,EAAgBpC,GAEnCoC,EAAe1C,QACR4H,EAAclF,GAElBgF,EAAgBhF,EAC3B,CAeA/0D,eAAei6D,EAAclF,GAEzB,MAAM1C,EAAU0C,EAAe1C,eACxB0C,EAAe1C,QAElBA,EAAQf,gBACRyD,GAAiB,OAAMA,EAAgB,CACnCpgC,QAAS,CACLo+B,eAAe,QAAyBgC,EAAgB1C,OAKpE,MAAMpuD,QAAiB81D,EAAgBhF,GACvC,GAAuB,KAAnB9wD,EAASg2B,QAET,GADAo4B,EAAQf,eAAgB,QAAgBrtD,EAAUouD,GAC9CA,EAAQf,cAAe,CACvByD,GAAiB,OAAMA,EAAgB,CACnCpgC,QAAS,CACLo+B,eAAe,QAAyBgC,EAAgB1C,MAGhE,MAAM8H,QAAkBJ,EAAgBhF,GAOxC,OANwB,KAApBoF,EAAUlgC,OACVo4B,EAAQf,eAAgB,EAGxBe,EAAQjB,KAEL+I,CACX,OAGA9H,EAAQjB,KAEZ,OAAOntD,CACX,CACA,SAAS81D,EAAgBhF,GACrB,MAAMqF,GAAU,SAChB,OAAOA,EAAQ1L,YAAY,UAAY9qD,GAAYw2D,EAAQ1L,YAAY,QAAS,KAAO9qD,EAAQ2T,IAxHnG,SAAyBw9C,GACrB,IAAIpgC,EAAU,CAAC,EAEf,MAAMnU,EAAO,CACTrc,OAAQ4wD,EAAe5wD,QAK3B,GAHI4wD,EAAepgC,UACfA,GAAU,OAAaA,EAASogC,EAAepgC,eAEhB,IAAxBogC,EAAe3zD,KAAsB,CAC5C,MAAO2E,EAAMs0D,IAAc,OAAuBtF,EAAe3zD,MACjEof,EAAKza,KAAOA,EACZ4uB,GAAU,OAAaA,EAAS0lC,EACpC,CAoBA,OAnBItF,EAAex8B,SACf/X,EAAK+X,OAASw8B,EAAex8B,QAE7Bw8B,EAAej8B,kBACftY,EAAKqY,YAAc,YAGlB,WAAY,WACTk8B,EAAeX,WAAaW,EAAeV,cAC3C7zC,EAAK85C,MAASC,GACiB,UAAvBA,EAAU1iD,SACHk9C,EAAeX,WAAa,IAAI,QAEpCW,EAAeV,YAAc,IAAI,SAKpD7zC,EAAKmU,QAAUA,EACRnU,CACX,CAsFwGg6C,CAAgB52D,IAAWmxD,EACnI,C,iGClIO,SAAS0F,EAAwBx2D,EAAU6pB,EAAS,IACvD,MAAM9Q,EAAM,IAAI3V,MAAM,GAAGymB,sBAA2B7pB,EAASg2B,UAAUh2B,EAASs3B,cAGhF,OAFAve,EAAIid,OAASh2B,EAASg2B,OACtBjd,EAAI/Y,SAAWA,EACR+Y,CACX,CACO,SAAS09C,EAAmB/H,EAAS1uD,GACxC,MAAM,OAAEg2B,GAAWh2B,EACnB,GAAe,MAAXg2B,GAAkB04B,EAAQnB,OAC1B,OAAOvtD,EACX,GAAIg2B,GAAU,IAEV,MADYwgC,EAAwBx2D,GAGxC,OAAOA,CACX,CACO,SAAS02D,EAAkBjD,EAAOO,GACrC,OAAOP,EAAM/oC,OAAOyjB,IAAQ,QAAUA,EAAK9sB,SAAU2yC,EAAM,CAAE2C,WAAW,IAC5E,CAYO,SAAS11D,EAAuBjB,EAAU7C,EAAMoD,GAAa,GAChE,OAAOA,EACD,CACEpD,OACAuzB,QAAS1wB,EAAS0wB,SAAU,OAAuB1wB,EAAS0wB,SAAW,CAAC,EACxEsF,OAAQh2B,EAASg2B,OACjBsB,WAAYt3B,EAASs3B,YAEvBn6B,CACV,C,6FCrCO,SAASy5D,EAAuBz5D,GACnC,KAAK,YAAY,UAAmBA,aAAgB,WAEhD,MAAO,CAACA,EAAM,CAAC,GAEnB,GAAoB,iBAATA,EACP,MAAO,CAACA,EAAM,CAAC,GAEd,IAAI,OAASA,GACd,MAAO,CAACA,EAAM,CAAC,GAEd,IAAI,OAAcA,GACnB,MAAO,CAACA,EAAM,CAAC,GAEd,GAAIA,GAAwB,iBAATA,EACpB,MAAO,CACHkS,KAAK2W,UAAU7oB,GACf,CACI,eAAgB,qBAI5B,MAAM,IAAIiG,MAAM,gEAAgEjG,EACpF,C,4DC1BO,SAAS05D,EAAWzJ,EAAW0J,EAAMnJ,EAAOoJ,EAAMnJ,EAAOC,EAAQX,GACpE,MAAM8J,EAAU9J,GAAO,EAAI,GAAG4J,KAAQnJ,KAASoJ,KAC/C,OAAI3J,GAAyC,aAA5BA,EAAU1yC,cAChB,EAAI,GAAGs8C,KAAWpJ,KAASC,KAE/BmJ,CACX,C,+FCHIC,E,2CAqDG,SAASC,EAAqBr/C,EAAMvY,GACvC,IAAIuY,EAAKmiB,SAAS,6BAIlB,OAAO16B,CACX,CACA,SAAS63D,EAAkBluD,EAAKrI,EAAMrC,EAAO04D,EAAaG,UACtD,MAAM1vC,EAAM,MAAeze,EAAKrI,GAChC,MAAa,UAATrC,IAA2C,IAAvB6I,MAAMgR,QAAQsP,GAC3B,CAACA,GAEM,WAATnpB,GAAqB6I,MAAMgR,QAAQsP,GACjCA,EAAI,GAERA,CACX,CAuCO,SAAS1mB,EAASq2D,EAAK3I,GAO1B,OALAA,EAAUA,GAAW,CACjBnS,oBAAqB,IACrB+T,iBAAkB,GAClBC,WAAY,CAAC2G,IAEV,IAAIznD,QAAQ6R,IAEfA,EAnCR,SAAyBhhB,GACrB,MAAM,YAAEE,GAAgBF,EACxB,GAAoB,KAAhBE,EACA,MAAO,CACHA,YAAa,CACTR,SAAU,KAItB,IAAKQ,EACD,MAAM,IAAI4C,MAAM,+CAEpB,MAAMY,EAAS,CACXxD,YAAa4G,MAAMgR,QAAQ5X,GAAeA,EAAY,GAAKA,GAI/D,OAFA,MAAewD,EAAQ,uBAAwBmzD,EAAkBnzD,EAAQ,uBAAwBizD,EAAa7vD,QAC9G,MAAepD,EAAQ,uBAAwB,MAAeA,EAAQ,wBAAwBtG,IAAIsC,GA5BtG,SAA2BA,GACvB,MAAMgE,EAAS7E,OAAOotB,OAAO,CAAC,EAAGvsB,GASjC,OAPIgE,EAAOgyB,OACP,MAAehyB,EAAQ,SAAUmzD,EAAkBnzD,EAAQ,SAAUizD,EAAa93D,UAGlF,MAAe6E,EAAQ,WAAYmzD,EAAkBnzD,EAAQ,WAAYizD,EAAa93D,SACtF,MAAe6E,EAAQ,gBAAiBmzD,EAAkBnzD,EAAQ,gBAAiBizD,EAAa93D,UAE7F6E,CACX,CAiBkHszD,CAAkBt3D,KACzHgE,CACX,CAiBgBuzD,CA/GhB,UAAmB,oBAAEhb,EAAmB,iBAAE+T,EAAgB,WAAEC,IACxD,OAAO,IAAI,IAAU,CACjBpW,wBAAwB,EACxBoC,sBACAE,aAAc,OACdjD,kBAAkB,EAClBoJ,gBAAgB,EAChBI,mBAAoB,CAChBC,KAAK,EACLC,cAAc,GAElB,uBAAAlG,CAAwBnqC,EAAG2kD,EAAWjZ,GAClC,IAAK,MAAMkZ,KAAanH,EACpB,IACI,MAAMhxD,EAAQm4D,EAAUlZ,EAAOiZ,GAC/B,GAAIl4D,IAAUk4D,EACV,OAAOl4D,CAEf,CACA,MAAOgE,GAEP,CAEJ,OAAOk0D,CACX,EACA,iBAAAza,CAAkBzhD,EAASilD,EAAUhC,GACjC,IAAK,MAAMkZ,KAAalH,EACpB,IACI,MAAMjxD,EAAQm4D,EAAUlZ,EAAOgC,GAC/B,GAAIjhD,IAAUihD,EACV,OAAOjhD,CAEf,CACA,MAAOgE,GAEP,CAEJ,OAAOi9C,CACX,GAER,CAsEuBmX,CAAUhJ,GAAS/6C,MAAM0jD,MAGhD,CAQO,SAASx2D,EAAqB9C,EAAOsjB,EAAU9gB,GAAa,GAE/D,MAAQo3D,gBAAiBC,EAAU,KAAMC,iBAAkBC,EAAU,IAAKC,aAAcz6D,EAAe,KAAM06D,eAAgB3/B,EAAW,KAAM4/B,QAASC,EAAO,MAASn6D,EACjKQ,EAAOjB,GACe,iBAAjBA,QAC4B,IAA5BA,EAAa66D,WAClB,YACA,OACA93D,EAAO,CACTghB,WACAqB,SAAU,WAAcrB,GACxB+2C,QAASR,EACTn3C,KAAMpb,SAASyyD,EAAS,IACxBv5D,OACA25D,KAAsB,iBAATA,EAAoBA,EAAK9zD,QAAQ,KAAM,IAAM,MAY9D,MAVa,SAAT7F,IACA8B,EAAKg4D,KAAOhgC,GAAgC,iBAAbA,EAAwBA,EAAS3zB,MAAM,KAAK,GAAK,IAEhFnE,SAEiC,IAAtBxC,EAAMu6D,cACbv6D,EAAMu6D,YAAc30D,OAAO5F,EAAMu6D,cAErCj4D,EAAKtC,MAAQA,GAEVsC,CACX,CASO,SAASk4D,EAAUj4D,EAAQ+gB,EAAU9gB,GAAa,GACrD,IAAIi4D,EAAe,KACnB,IAEQl4D,EAAOE,YAAYR,SAAS,GAAGW,WAC/B63D,EAAel4D,EAAOE,YAAYR,SAAS,GAEnD,CACA,MAAO+J,GAEP,CACA,IAAKyuD,EACD,MAAM,IAAIp1D,MAAM,0CAEpB,MAAQzC,UAAYC,KAAM7C,EAAOi4B,OAAQyiC,IAAiBD,GAEnD3lD,EAAG6lD,EAAephC,GAAcmhC,EAAW/zD,MAAM,IAAK,GACvD0yB,EAAa/xB,SAASqzD,EAAe,IAC3C,GAAIthC,GAAc,IAAK,CACnB,MAAMre,EAAM,IAAI3V,MAAM,qBAAqBg0B,KAAcE,KAEzD,MADAve,EAAIid,OAASoB,EACPre,CACV,CAEA,OAAOlY,EAAqB9C,GADX,QAAcsjB,GACc9gB,EACjD,CAQO,SAASo4D,EAAYr4D,EAAQm1D,EAAel1D,GAC/C,MAAMP,EAAW,CACb44D,WAAW,EACXlD,QAAS,IAab,OAXA11D,EAAS44D,UAAYt4D,EAAOE,YAAYR,SAASiH,KAAKkR,GACc,SAAvDA,EAAE6d,QAAU7d,EAAExX,UAAUq1B,QAAQtxB,MAAM,IAAK,KAAK,IACrDyT,EAAEi0B,KAAKhoC,QAAQ,MAAO,IAAI41B,UAAS,QAAWy7B,GAAerxD,QAAQ,MAAO,MAEpF9D,EAAOE,YAAYR,SAASyZ,QAAQnZ,IAChC,QAAwB9E,IAApB8E,EAAOK,SACP,OAEJ,MAAM0gB,EAAW/gB,EAAO8rC,KAAK1nC,MAAM,KAAKhH,IAAI8Q,oBAAoB3O,KAAK,KACrEG,EAAS01D,QAAQ9yD,KAAK/B,EAAqBP,EAAOK,SAASC,KAAMygB,EAAU9gB,MAExEP,CACX,CAOO,SAAS64D,EAAmBv5D,GAC/B,OAAQqE,OAAOrE,IACX,IAAK,KACD,MAAO,YACX,IAAK,KAEL,IAAK,KAED,MAAO,UACX,QACI,OAAO+F,SAAS1B,OAAOrE,GAAQ,IAE3C,EAvOA,SAAW23D,GACPA,EAAoB,MAAI,QACxBA,EAAqB,OAAI,SACzBA,EAAuB,SAAI,UAC9B,CAJD,CAIGA,IAAiBA,EAAe,CAAC,G,sECE7B,SAAS6B,EAAW14D,GACvB,OAAO,SAAcA,EACzB,CACO,SAAS24D,EAAS34D,GACrB,OAAO,SAAcA,EACzB,C,oCChBO,SAAS44D,EAAuBtoC,GACnC,MAAM1sB,EAAS,CAAC,EAChB,IAAK,MAAMwP,KAAOkd,EAAQ5d,OACtB9O,EAAOwP,GAAOkd,EAAQnxB,IAAIiU,GAE9B,OAAOxP,CACX,CACO,SAASi1D,KAAgBC,GAC5B,GAA8B,IAA1BA,EAAen3D,OACf,MAAO,CAAC,EACZ,MAAMo3D,EAAa,CAAC,EACpB,OAAOD,EAAe1sC,OAAO,CAACxoB,EAAQ0sB,KAClCvxB,OAAO2T,KAAK4d,GAASjX,QAAQoa,IACzB,MAAMulC,EAAcvlC,EAAOnZ,cACvBy+C,EAAWxuD,eAAeyuD,GAC1Bp1D,EAAOm1D,EAAWC,IAAgB1oC,EAAQmD,IAG1CslC,EAAWC,GAAevlC,EAC1B7vB,EAAO6vB,GAAUnD,EAAQmD,MAG1B7vB,GACR,CAAC,EACR,C,oDCxBO,SAASq1D,EAAapwD,GACzB,OAIJ,SAAuBA,GACnB,GAAmB,iBAARA,GACC,OAARA,GACuC,mBAAvC9J,OAAOE,UAAUyB,SAAS8G,KAAKqB,GAE/B,OAAO,EAEX,GAAmC,OAA/B9J,OAAO+K,eAAejB,GACtB,OAAO,EAEX,IAAI4lC,EAAQ5lC,EAEZ,KAAwC,OAAjC9J,OAAO+K,eAAe2kC,IACzBA,EAAQ1vC,OAAO+K,eAAe2kC,GAElC,OAAO1vC,OAAO+K,eAAejB,KAAS4lC,CAC1C,CApBW9uB,CAAc9W,GACf9J,OAAOotB,OAAO,CAAC,EAAGtjB,GAClB9J,OAAO6X,eAAe7X,OAAOotB,OAAO,CAAC,EAAGtjB,GAAM9J,OAAO+K,eAAejB,GAC9E,CAkBO,SAASugB,KAASthB,GACrB,IAAIlE,EAAS,KAAMs1D,EAAQ,IAAIpxD,GAC/B,KAAOoxD,EAAMv3D,OAAS,GAAG,CACrB,MAAMw3D,EAAWD,EAAM5zD,QAKnB1B,EAJCA,EAIQw1D,EAAax1D,EAAQu1D,GAHrBF,EAAaE,EAK9B,CACA,OAAOv1D,CACX,CACA,SAASw1D,EAAaC,EAAMC,GACxB,MAAM11D,EAASq1D,EAAaI,GAqB5B,OApBAt6D,OAAO2T,KAAK4mD,GAAMjgD,QAAQjG,IACjBxP,EAAO2G,eAAe6I,GAIvBpM,MAAMgR,QAAQshD,EAAKlmD,IACnBxP,EAAOwP,GAAOpM,MAAMgR,QAAQpU,EAAOwP,IAC7B,IAAIxP,EAAOwP,MAASkmD,EAAKlmD,IACzB,IAAIkmD,EAAKlmD,IAEW,iBAAdkmD,EAAKlmD,IAAuBkmD,EAAKlmD,GAC7CxP,EAAOwP,GACoB,iBAAhBxP,EAAOwP,IAAuBxP,EAAOwP,GACtCgmD,EAAax1D,EAAOwP,GAAMkmD,EAAKlmD,IAC/B6lD,EAAaK,EAAKlmD,IAG5BxP,EAAOwP,GAAOkmD,EAAKlmD,GAfnBxP,EAAOwP,GAAOkmD,EAAKlmD,KAkBpBxP,CACX,C,2HCxDA,MAAM21D,EAAiB,2BACjBC,EAAmB,6BAClB,SAASC,EAAWjI,GACvB,IACI,MAAMkI,EAAWlI,EAASxtD,QAAQ,MAAOu1D,GAAgBv1D,QAAQ,QAASw1D,GAE1E,OADkBlrD,mBAAmBorD,GACpBp1D,MAAMk1D,GAAkB/5D,KAAK,QAAQ6E,MAAMi1D,GAAgB95D,KAAK,IACrF,CACA,MAAOkZ,GACH,MAAM,IAAI,KAAOA,EAAK,uBAC1B,CACJ,CACO,SAASghD,EAAkBC,GAC9B,IAAKA,GAA2B,MAAdA,EACd,MAAO,GACX,IAAIC,EAAcD,EAClB,MAAMh2D,EAAS,GACf,GACIA,EAAOpB,KAAKq3D,GACZA,EAAc,UAAaA,SACtBA,GAA+B,MAAhBA,GACxB,OAAOj2D,CACX,CACO,SAASk2D,EAAiBC,GAC7B,OAAOA,EAAQ/b,WAAW,KAAO+b,EAAU,IAAMA,CACrD,CACO,SAASC,EAAcD,GAC1B,IAAIE,EAAiBF,EAOrB,MAN0B,MAAtBE,EAAe,KACfA,EAAiB,IAAMA,GAEvB,SAASz2D,KAAKy2D,KACdA,EAAiBA,EAAe71D,OAAO,EAAG61D,EAAet4D,OAAS,IAE/Ds4D,CACX,C,2DCpCO,SAASC,EAAWh6D,GACvB,IACI,MAAOk4D,GAAgBl4D,EAAOE,YAAYR,UAClCW,UAAYC,MAAQ,mBAAoB25D,EAAW,wBAAyBC,KAAmBhC,EACvG,YAA4B,IAAd+B,QAAmD,IAAfC,EAC5C,CAEEC,KAAMp1D,SAAS1B,OAAO42D,GAAY,IAClCG,WAAW,QAAmBF,IAEhC,IACV,CACA,MAAOzhD,GAEP,CACA,OAAO,IACX,C,wGCZO,SAAS4hD,EAAoBx9D,GAChC,IAAI,OAAcA,GACd,OAAOA,EAAKy7B,WAEX,IAAI,OAASz7B,GACd,OAAOA,EAAK4E,OAEX,GAAoB,iBAAT5E,EACZ,OAAO,OAAWA,GAEtB,MAAM,IAAI,KAAO,CACbN,KAAM,CACF0K,KAAM,KAAUqzD,mBAErB,6CACP,C,8GChBO,SAASC,EAAeC,GAE3B,IAAIC,EADQ,IAAI,EAAID,GACF3uB,SAIlB,OAHI4uB,EAAQh5D,QAAU,IAClBg5D,EAAU,MAEP,QAAcA,EACzB,CACO,SAASC,KAAWz1D,GACvB,OAAO,OAASA,EAAMinB,OAAO,CAACxoB,EAAQi3D,EAAUC,MAC1B,IAAdA,GACa,MAAbD,GACc,MAAbA,GAAkD,MAA9Bj3D,EAAOA,EAAOjC,OAAS,KAC5CiC,EAAOpB,KAAKq4D,GAETj3D,GACR,IACP,CACO,SAASm3D,EAAc/uB,GAC1B,IAEI,OADuBA,EAAKhoC,QAAQ,qBAAsB,GAE9D,CACA,MAAO2U,GACH,MAAM,IAAI,KAAOA,EAAK,0BAC1B,CACJ,C,8EC7BO,SAASqiD,EAAgBC,GAC5B,OAgBO,IAAI,IAAW,CAClB9e,oBAAqB,KACrB15B,QAAQ,EACR22B,kBAAkB,EAClBoD,mBAAmB,IApBHviD,MAAMihE,EAAU,CAChCC,SAAU,CACN,YAAa,OACbC,UAAW,CACPC,UAAW,CAAC,GAEhBC,SAAU,CACNnkC,MAAO,CAAC,GAEZokC,MAAO,CACHvvB,KAAMivB,KAGf,KACP,CAgBA,SAASC,EAAUryD,EAAK2yD,GACpB,MAAM/yB,EAAO,IAAK5/B,GAClB,IAAK,MAAMuK,KAAOq1B,EACTA,EAAKl+B,eAAe6I,KAGrBq1B,EAAKr1B,IAA6B,iBAAdq1B,EAAKr1B,KAA2C,IAAtBA,EAAI/Q,QAAQ,MAC1DomC,EAAK,GAAG+yB,KAAMpoD,KAAS8nD,EAAUzyB,EAAKr1B,GAAMooD,UACrC/yB,EAAKr1B,KAEa,IAApB,MAAM5P,KAAK4P,KAChBq1B,EAAK,GAAG+yB,KAAMpoD,KAASq1B,EAAKr1B,UACrBq1B,EAAKr1B,KAGpB,OAAOq1B,CACX,CACO,SAASgzB,EAAqBxE,GACjC,OAxBO,IAAI,IAAU,CACjBzU,gBAAgB,EAChBE,qBAAqB,EACrBD,eAAe,IAqBAlvC,MAAM0jD,EAC7B,C,gCClDWyE,EAQAC,E,oCAPX,SAAWD,GACPA,EAAe,KAAI,OACnBA,EAAiB,OAAI,SACrBA,EAAe,KAAI,OACnBA,EAAmB,SAAI,WACvBA,EAAgB,MAAI,OACvB,CAND,CAMGA,IAAaA,EAAW,CAAC,IAE5B,SAAWC,GACPA,EAA4B,iBAAI,sBAChCA,EAA2B,gBAAI,oBAC/BA,EAA+B,oBAAI,wBACnCA,EAAmC,wBAAI,wBACvCA,EAA8B,mBAAI,uBAClCA,EAAwB,aAAI,eAC/B,CAPD,CAOGA,IAAcA,EAAY,CAAC,G,4BCfZ,IAAIzsD,IAAI,CACtB,CAAC,EAAG,OAEJ,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,MACN,CAAC,IAAK,KACN,CAAC,IAAK,KACN,CAAC,IAAK,OAOJ3L,OAAO+gD,a,gCCnCTsX,EAiBOC,EA2BPC,EAQOC,E,2BAnDX,SAAWH,GACPA,EAAUA,EAAe,IAAI,IAAM,MACnCA,EAAUA,EAAgB,KAAI,IAAM,OACpCA,EAAUA,EAAkB,OAAI,IAAM,SACtCA,EAAUA,EAAgB,KAAI,IAAM,OACpCA,EAAUA,EAAgB,KAAI,IAAM,OACpCA,EAAUA,EAAmB,QAAI,IAAM,UACvCA,EAAUA,EAAmB,QAAI,KAAO,UACxCA,EAAUA,EAAmB,QAAI,KAAO,UACxCA,EAAUA,EAAmB,QAAI,KAAO,UACxCA,EAAUA,EAAmB,QAAI,IAAM,UACvCA,EAAUA,EAAmB,QAAI,IAAM,UACvCA,EAAUA,EAAmB,QAAI,IAAM,SAC1C,CAbD,CAaGA,IAAcA,EAAY,CAAC,IAI9B,SAAWC,GACPA,EAAaA,EAA2B,aAAI,OAAS,eACrDA,EAAaA,EAA4B,cAAI,OAAS,gBACtDA,EAAaA,EAAyB,WAAI,KAAO,YACpD,CAJD,CAIGA,IAAiBA,EAAe,CAAC,IAuBpC,SAAWC,GACPA,EAAmBA,EAAgC,YAAI,GAAK,cAC5DA,EAAmBA,EAAiC,aAAI,GAAK,eAC7DA,EAAmBA,EAAmC,eAAI,GAAK,iBAC/DA,EAAmBA,EAA+B,WAAI,GAAK,aAC3DA,EAAmBA,EAAgC,YAAI,GAAK,aAC/D,CAND,CAMGA,IAAuBA,EAAqB,CAAC,IAEhD,SAAWC,GAEPA,EAAaA,EAAqB,OAAI,GAAK,SAE3CA,EAAaA,EAAqB,OAAI,GAAK,SAE3CA,EAAaA,EAAwB,UAAI,GAAK,WACjD,CAPD,CAOGA,IAAiBA,EAAe,CAAC,G,yEC9DjB,IAAI7sD,IAAI,CACvB,CAAC,GAAI,UACL,CAAC,GAAI,SACL,CAAC,GAAI,UACL,CAAC,GAAI,QACL,CAAC,GAAI,UAKT3L,OAAOtE,UAAU+8D,YAwFyB,IAAI9sD,IAAI,CAC9C,CAAC,GAAI,UACL,CAAC,GAAI,SACL,CAAC,IAAK,YAQ2D,IAAIA,IAAI,CACzE,CAAC,GAAI,SACL,CAAC,GAAI,QACL,CAAC,GAAI,QACL,CAAC,IAAK,W,6EC9GC+sD,EAOAC,E,2BANX,SAAWD,GAEPA,EAAYA,EAAiB,IAAI,GAAK,MAEtCA,EAAYA,EAAkB,KAAI,GAAK,MAC1C,CALD,CAKGA,IAAgBA,EAAc,CAAC,IAElC,SAAWC,GAKPA,EAAaA,EAAmB,KAAI,GAAK,OAMzCA,EAAaA,EAAoB,MAAI,GAAK,QAK1CA,EAAaA,EAAwB,UAAI,GAAK,YAK9CA,EAAaA,EAAwB,UAAI,GAAK,YAK9CA,EAAaA,EAAmB,KAAI,GAAK,MAC5C,CA3BD,CA2BGA,IAAiBA,EAAe,CAAC,G,6CCvCpC,MACaC,EAAsB7iB,IAC/B,GAAuB,iBAAZA,EACP,MAAM,IAAInvC,UAAU,mBAExB,GAAImvC,EAAQ33C,OALW,MAMnB,MAAM,IAAIwI,UAAU,uB,uECH5B,MAAMysC,EAAQ,IAAIrnC,IAAI,CAAC,IAAK,IAAK,IAAK,IAAK,MACrC6sD,EAAiB34D,GAAMmzC,EAAM7gC,IAAItS,GAMjC44D,EAAa,UAIbC,EAAkB,IAAI/sD,IAAI,CAAC,IAAK,MAEhCgtD,EAAW,IAAIhtD,IAAI,CAAC,KAAM,MAC1BitD,EAAa,IAAIjtD,IAAI,mBACrBktD,EAAgBxgD,GAAMA,EAAEjY,QAAQ,2BAA4B,QAE5D04D,EAAQ,OAERC,EAAOD,EAAQ,KAGfE,EAAcF,EAAQ,KAGrB,MAAMG,EACT1+D,KACA,GACA,GACA,IAAS,EACT,GAAS,GACT,GACA,GACA,GACA,IAAc,EACd,GACA,GAGA,IAAY,EACZ,WAAAwX,CAAYxX,EAAMypB,EAAQroB,EAAU,CAAC,GACjCvB,KAAKG,KAAOA,EAERA,IACAH,MAAK,GAAY,GACrBA,MAAK,EAAU4pB,EACf5pB,MAAK,EAAQA,MAAK,EAAUA,MAAK,GAAQ,EAAQA,KACjDA,MAAK,EAAWA,MAAK,IAAUA,KAAOuB,EAAUvB,MAAK,GAAM,EAC3DA,MAAK,EAAQA,MAAK,IAAUA,KAAO,GAAKA,MAAK,GAAM,EACtC,MAATG,GAAiBH,MAAK,GAAM,GAC5BA,MAAK,EAAMwE,KAAKxE,MACpBA,MAAK,EAAeA,MAAK,EAAUA,MAAK,GAAQ,EAAO2D,OAAS,CACpE,CACA,YAAIm7D,GAEA,QAAuB1hE,IAAnB4C,MAAK,EACL,OAAOA,MAAK,EAEhB,IAAK,MAAMoH,KAAKpH,MAAK,EACjB,GAAiB,iBAANoH,IAEPA,EAAEjH,MAAQiH,EAAE03D,UACZ,OAAQ9+D,MAAK,GAAY,EAGjC,OAAOA,MAAK,CAChB,CAEA,QAAA0C,GACI,YAAuBtF,IAAnB4C,MAAK,EACEA,MAAK,EACXA,KAAKG,KAIEH,MAAK,EACTA,KAAKG,KAAO,IAAMH,MAAK,EAAOV,IAAI8H,GAAK7B,OAAO6B,IAAI3F,KAAK,KAAO,IAJ1DzB,MAAK,EAAYA,MAAK,EAAOV,IAAI8H,GAAK7B,OAAO6B,IAAI3F,KAAK,GAMtE,CACA,KAEI,GAAIzB,OAASA,MAAK,EACd,MAAM,IAAIgF,MAAM,4BACpB,GAAIhF,MAAK,EACL,OAAOA,KAKX,IAAIiI,EACJ,IAHAjI,KAAK0C,WACL1C,MAAK,GAAc,EAEXiI,EAAIjI,MAAK,EAAMyE,OAAQ,CAC3B,GAAe,MAAXwD,EAAE9H,KACF,SAEJ,IAAIiH,EAAIa,EACJ82D,EAAK33D,GAAE,EACX,KAAO23D,GAAI,CACP,IAAK,IAAIx6D,EAAI6C,GAAE,EAAe,GAAI23D,EAAG5+D,MAAQoE,EAAIw6D,GAAG,EAAOp7D,OAAQY,IAC/D,IAAK,MAAMqP,KAAQ3L,GAAE,EAAQ,CAEzB,GAAoB,iBAAT2L,EACP,MAAM,IAAI5O,MAAM,gCAGpB4O,EAAKorD,OAAOD,GAAG,EAAOx6D,GAC1B,CAEJ6C,EAAI23D,EACJA,EAAK33D,GAAE,CACX,CACJ,CACA,OAAOpH,IACX,CACA,IAAAwE,IAAQ2C,GACJ,IAAK,MAAMC,KAAKD,EACZ,GAAU,KAANC,EAAJ,CAGA,GAAiB,iBAANA,KAAoBA,aAAay3D,GAAOz3D,GAAE,IAAYpH,MAC7D,MAAM,IAAIgF,MAAM,iBAAmBoC,GAGvCpH,MAAK,EAAOwE,KAAK4C,EANL,CAQpB,CACA,MAAA63D,GACI,MAAM59B,EAAoB,OAAdrhC,KAAKG,KACXH,MAAK,EAAOyD,QAAQnE,IAAI8H,GAAmB,iBAANA,EAAiBA,EAAIA,EAAE63D,UAC5D,CAACj/D,KAAKG,QAASH,MAAK,EAAOV,IAAI8H,GAAKA,EAAE63D,WAQ5C,OAPIj/D,KAAKk/D,YAAcl/D,KAAKG,MACxBkhC,EAAIpB,QAAQ,IACZjgC,KAAKm/D,UACJn/D,OAASA,MAAK,GACVA,MAAK,GAAM,GAAsC,MAAvBA,MAAK,GAASG,OAC7CkhC,EAAI78B,KAAK,CAAC,GAEP68B,CACX,CACA,OAAA69B,GACI,GAAIl/D,MAAK,IAAUA,KACf,OAAO,EAEX,IAAKA,MAAK,GAASk/D,UACf,OAAO,EACX,GAA0B,IAAtBl/D,MAAK,EACL,OAAO,EAEX,MAAMoH,EAAIpH,MAAK,EACf,IAAK,IAAIuE,EAAI,EAAGA,EAAIvE,MAAK,EAAcuE,IAAK,CACxC,MAAMw6D,EAAK33D,GAAE,EAAO7C,GACpB,KAAMw6D,aAAcF,GAAmB,MAAZE,EAAG5+D,MAC1B,OAAO,CAEf,CACA,OAAO,CACX,CACA,KAAAg/D,GACI,GAAIn/D,MAAK,IAAUA,KACf,OAAO,EACX,GAA2B,MAAvBA,MAAK,GAASG,KACd,OAAO,EACX,IAAKH,MAAK,GAASm/D,QACf,OAAO,EACX,IAAKn/D,KAAKG,KACN,OAAOH,MAAK,GAASm/D,QAGzB,MAAMC,EAAKp/D,MAAK,EAAUA,MAAK,GAAQ,EAAO2D,OAAS,EAEvD,OAAO3D,MAAK,IAAiBo/D,EAAK,CACtC,CACA,MAAAJ,CAAOprD,GACiB,iBAATA,EACP5T,KAAKwE,KAAKoP,GAEV5T,KAAKwE,KAAKoP,EAAKyrD,MAAMr/D,MAC7B,CACA,KAAAq/D,CAAMz1C,GACF,MAAMnkB,EAAI,IAAIo5D,EAAI7+D,KAAKG,KAAMypB,GAC7B,IAAK,MAAMxiB,KAAKpH,MAAK,EACjByF,EAAEu5D,OAAO53D,GAEb,OAAO3B,CACX,CACA,QAAO,CAAUxC,EAAKq8D,EAAKx0C,EAAKy0C,GAC5B,IAAIC,GAAW,EACXC,GAAU,EACVC,GAAc,EACdC,GAAW,EACf,GAAiB,OAAbL,EAAIn/D,KAAe,CAEnB,IAAIoE,EAAIumB,EACJuD,EAAM,GACV,KAAO9pB,EAAItB,EAAIU,QAAQ,CACnB,MAAM8B,EAAIxC,EAAI8C,OAAOxB,KAGrB,GAAIi7D,GAAkB,OAAN/5D,EACZ+5D,GAAYA,EACZnxC,GAAO5oB,OAGX,GAAIg6D,EACIl7D,IAAMm7D,EAAa,EACT,MAANj6D,GAAmB,MAANA,IACbk6D,GAAW,GAGJ,MAANl6D,GAAelB,IAAMm7D,EAAa,GAAKC,IAC5CF,GAAU,GAEdpxC,GAAO5oB,OAGN,GAAU,MAANA,EAAJ,CAOL,IAAK85D,EAAIK,OAASxB,EAAc34D,IAAwB,MAAlBxC,EAAI8C,OAAOxB,GAAY,CACzD+6D,EAAI96D,KAAK6pB,GACTA,EAAM,GACN,MAAM9J,EAAM,IAAIs6C,EAAIp5D,EAAG65D,GACvB/6D,EAAIs6D,GAAI,EAAU57D,EAAKshB,EAAKhgB,EAAGg7D,GAC/BD,EAAI96D,KAAK+f,GACT,QACJ,CACA8J,GAAO5oB,CATP,MALIg6D,GAAU,EACVC,EAAan7D,EACbo7D,GAAW,EACXtxC,GAAO5oB,CAYf,CAEA,OADA65D,EAAI96D,KAAK6pB,GACF9pB,CACX,CAGA,IAAIA,EAAIumB,EAAM,EACVlX,EAAO,IAAIirD,EAAI,KAAMS,GACzB,MAAMn4D,EAAQ,GACd,IAAIknB,EAAM,GACV,KAAO9pB,EAAItB,EAAIU,QAAQ,CACnB,MAAM8B,EAAIxC,EAAI8C,OAAOxB,KAGrB,GAAIi7D,GAAkB,OAAN/5D,EACZ+5D,GAAYA,EACZnxC,GAAO5oB,OAGX,GAAIg6D,EACIl7D,IAAMm7D,EAAa,EACT,MAANj6D,GAAmB,MAANA,IACbk6D,GAAW,GAGJ,MAANl6D,GAAelB,IAAMm7D,EAAa,GAAKC,IAC5CF,GAAU,GAEdpxC,GAAO5oB,OAGN,GAAU,MAANA,EAAJ,CAOL,GAAI24D,EAAc34D,IAAwB,MAAlBxC,EAAI8C,OAAOxB,GAAY,CAC3CqP,EAAKpP,KAAK6pB,GACVA,EAAM,GACN,MAAM9J,EAAM,IAAIs6C,EAAIp5D,EAAGmO,GACvBA,EAAKpP,KAAK+f,GACVhgB,EAAIs6D,GAAI,EAAU57D,EAAKshB,EAAKhgB,EAAGg7D,GAC/B,QACJ,CACA,GAAU,MAAN95D,EAAJ,CAOA,GAAU,MAANA,EAOA,MANY,KAAR4oB,GAAoC,IAAtBixC,GAAI,EAAO37D,SACzB27D,GAAI,GAAY,GAEpB1rD,EAAKpP,KAAK6pB,GACVA,EAAM,GACNixC,EAAI96D,QAAQ2C,EAAOyM,GACZrP,EAEX8pB,GAAO5oB,CAVP,MALImO,EAAKpP,KAAK6pB,GACVA,EAAM,GACNlnB,EAAM3C,KAAKoP,GACXA,EAAO,IAAIirD,EAAI,KAAMS,EAbzB,MALIG,GAAU,EACVC,EAAan7D,EACbo7D,GAAW,EACXtxC,GAAO5oB,CA4Bf,CAOA,OAHA65D,EAAIn/D,KAAO,KACXm/D,GAAI,OAAYliE,EAChBkiE,GAAI,EAAS,CAACr8D,EAAI04B,UAAU7Q,EAAM,IAC3BvmB,CACX,CACA,eAAOs7D,CAASvkB,EAAS/5C,EAAU,CAAC,GAChC,MAAM+9D,EAAM,IAAIT,EAAI,UAAMzhE,EAAWmE,GAErC,OADAs9D,GAAI,EAAUvjB,EAASgkB,EAAK,EAAG/9D,GACxB+9D,CACX,CAGA,WAAAQ,GAGI,GAAI9/D,OAASA,MAAK,EACd,OAAOA,MAAK,EAAM8/D,cAEtB,MAAMlK,EAAO51D,KAAK0C,YACX+1C,EAAI/0C,EAAMo7D,EAAUiB,GAAS//D,KAAKggE,iBASzC,KALiBlB,GACb9+D,MAAK,GACJA,MAAK,EAASigE,SACVjgE,MAAK,EAASkgE,iBACftK,EAAKx5C,gBAAkBw5C,EAAKt5C,eAEhC,OAAO5Y,EAEX,MAAMy8D,GAASngE,MAAK,EAASigE,OAAS,IAAM,KAAOF,EAAQ,IAAM,IACjE,OAAOh/D,OAAOotB,OAAO,IAAIjrB,OAAO,IAAIu1C,KAAO0nB,GAAQ,CAC/CC,KAAM3nB,EACN4nB,MAAOzK,GAEf,CACA,WAAIr0D,GACA,OAAOvB,MAAK,CAChB,CAsEA,cAAAggE,CAAeM,GACX,MAAMC,EAAMD,KAActgE,MAAK,EAASugE,IAGxC,GAFIvgE,MAAK,IAAUA,MACfA,MAAK,KACJA,KAAKG,KAAM,CACZ,MAAMqgE,EAAUxgE,KAAKk/D,WAAal/D,KAAKm/D,QACjCn9B,EAAMhiC,MAAK,EACZV,IAAI8H,IACL,MAAOqxC,EAAIhkC,EAAGqqD,EAAUiB,GAAsB,iBAAN34D,EAClCy3D,GAAI,EAAWz3D,EAAGpH,MAAK,EAAWwgE,GAClCp5D,EAAE44D,eAAeM,GAGvB,OAFAtgE,MAAK,EAAYA,MAAK,GAAa8+D,EACnC9+D,MAAK,EAASA,MAAK,GAAU+/D,EACtBtnB,IAENh3C,KAAK,IACV,IAAI6B,EAAQ,GACZ,GAAItD,KAAKk/D,WACyB,iBAAnBl/D,MAAK,EAAO,KAK2B,IAAvBA,MAAK,EAAO2D,SAAgB46D,EAASxmD,IAAI/X,MAAK,EAAO,KACvD,CACjB,MAAMygE,EAAMnC,EAGNoC,EAELH,GAAOE,EAAI1oD,IAAIiqB,EAAIj8B,OAAO,KAEtBi8B,EAAIge,WAAW,QAAUygB,EAAI1oD,IAAIiqB,EAAIj8B,OAAO,KAE5Ci8B,EAAIge,WAAW,WAAaygB,EAAI1oD,IAAIiqB,EAAIj8B,OAAO,IAG9C46D,GAAaJ,IAAQD,GAAYG,EAAI1oD,IAAIiqB,EAAIj8B,OAAO,IAC1DzC,EAAQo9D,EAtbP,4BAsbuCC,EAAYtC,EAAa,EACrE,CAIR,IAAI96D,EAAM,GAOV,OANIvD,KAAKm/D,SACLn/D,MAAK,GAAM,GACY,MAAvBA,MAAK,GAASG,OACdoD,EAAM,aAGH,CADOD,EAAQ0+B,EAAMz+B,GAGxB,OAASy+B,GACRhiC,MAAK,IAAcA,MAAK,EACzBA,MAAK,EAEb,CAIA,MAAM4gE,EAAyB,MAAd5gE,KAAKG,MAA8B,MAAdH,KAAKG,KAErCmD,EAAsB,MAAdtD,KAAKG,KAAe,YAAc,MAChD,IAAIuD,EAAO1D,MAAK,EAAeugE,GAC/B,GAAIvgE,KAAKk/D,WAAal/D,KAAKm/D,UAAYz7D,GAAsB,MAAd1D,KAAKG,KAAc,CAG9D,MAAM8d,EAAIje,KAAK0C,WAIf,OAHA1C,MAAK,EAAS,CAACie,GACfje,KAAKG,KAAO,KACZH,MAAK,OAAY5C,EACV,CAAC6gB,GAAG,OAASje,KAAK0C,aAAa,GAAO,EACjD,CAEA,IAAIm+D,GAAkBD,GAAYN,GAAYC,EACxC,GACAvgE,MAAK,GAAe,GACtB6gE,IAAmBn9D,IACnBm9D,EAAiB,IAEjBA,IACAn9D,EAAO,MAAMA,QAAWm9D,QAG5B,IAAIz5B,EAAQ,GAsBZ,OApBIA,EADc,MAAdpnC,KAAKG,MAAgBH,MAAK,GACjBA,KAAKk/D,YAAcqB,EAAMlC,EAAa,IAAMO,EAkB7Ct7D,EAAQI,GAfY,MAAd1D,KAAKG,KAEX,OACKH,KAAKk/D,WAAcqB,GAAQD,EAAwB,GAAbjC,GACvCM,EACA,IACQ,MAAd3+D,KAAKG,KACD,IACc,MAAdH,KAAKG,KACD,KACc,MAAdH,KAAKG,MAAgB0gE,EACjB,IACc,MAAd7gE,KAAKG,MAAgB0gE,EACjB,KACA,IAAI7gE,KAAKG,QAG5B,CACHinC,GACA,OAAS1jC,GACR1D,MAAK,IAAcA,MAAK,EACzBA,MAAK,EAEb,CACA,GAAeugE,GACX,OAAOvgE,MAAK,EACPV,IAAI8H,IAGL,GAAiB,iBAANA,EACP,MAAM,IAAIpC,MAAM,gCAIpB,MAAOyzC,EAAIhkC,EAAGqsD,EAAWf,GAAS34D,EAAE44D,eAAeO,GAEnD,OADAvgE,MAAK,EAASA,MAAK,GAAU+/D,EACtBtnB,IAENnsB,OAAOllB,KAAOpH,KAAKk/D,WAAal/D,KAAKm/D,UAAc/3D,IACnD3F,KAAK,IACd,CACA,QAAO,CAAWm0D,EAAMkJ,EAAU0B,GAAU,GACxC,IAAIhB,GAAW,EACX/mB,EAAK,GACLsnB,GAAQ,EACZ,IAAK,IAAIx7D,EAAI,EAAGA,EAAIqxD,EAAKjyD,OAAQY,IAAK,CAClC,MAAMkB,EAAImwD,EAAK7vD,OAAOxB,GACtB,GAAIi7D,EACAA,GAAW,EACX/mB,IAAO+lB,EAAWzmD,IAAItS,GAAK,KAAO,IAAMA,OAG5C,GAAU,OAANA,EAAJ,CASA,GAAU,MAANA,EAAW,CACX,MAAOu8B,EAAK++B,EAAWC,EAAUC,IAAS,OAAWrL,EAAMrxD,GAC3D,GAAIy8D,EAAU,CACVvoB,GAAMzW,EACN+9B,EAAQA,GAASgB,EACjBx8D,GAAKy8D,EAAW,EAChBlC,EAAWA,GAAYmC,EACvB,QACJ,CACJ,CACU,MAANx7D,EAQM,MAANA,EAKJgzC,GAAMgmB,EAAah5D,IAJfgzC,GAAMimB,EACNI,GAAW,IARPrmB,GADA+nB,GAAoB,MAAT5K,EACLgJ,EAEAD,EACVG,GAAW,EAhBf,MAPQv6D,IAAMqxD,EAAKjyD,OAAS,EACpB80C,GAAM,OAGN+mB,GAAW,CA4BvB,CACA,MAAO,CAAC/mB,GAAI,OAASmd,KAASkJ,EAAUiB,EAC5C,E,6CCtkBJ,MAAMmB,EAAe,CACjB,YAAa,CAAC,wBAAwB,GACtC,YAAa,CAAC,iBAAiB,GAC/B,YAAa,CAAC,eAAyB,GACvC,YAAa,CAAC,cAAc,GAC5B,YAAa,CAAC,WAAW,GACzB,YAAa,CAAC,WAAW,GACzB,YAAa,CAAC,gBAAgB,GAAM,GACpC,YAAa,CAAC,WAAW,GACzB,YAAa,CAAC,UAAU,GACxB,YAAa,CAAC,UAAU,GACxB,YAAa,CAAC,yBAAyB,GACvC,YAAa,CAAC,WAAW,GACzB,WAAY,CAAC,+BAA+B,GAC5C,aAAc,CAAC,aAAa,IAI1BC,EAAeljD,GAAMA,EAAEjY,QAAQ,YAAa,QAI5Co7D,EAAkBC,GAAWA,EAAO5/D,KAAK,IAOlC6/D,EAAa,CAAC1L,EAAM/vD,KAC7B,MAAMilB,EAAMjlB,EAEZ,GAAyB,MAArB+vD,EAAK7vD,OAAO+kB,GACZ,MAAM,IAAI9lB,MAAM,6BAGpB,MAAMq8D,EAAS,GACTE,EAAO,GACb,IAAIh9D,EAAIumB,EAAM,EACV02C,GAAW,EACXzB,GAAQ,EACRP,GAAW,EACXiC,GAAS,EACTC,EAAS52C,EACT62C,EAAa,GACjBC,EAAO,KAAOr9D,EAAIqxD,EAAKjyD,QAAQ,CAC3B,MAAM8B,EAAImwD,EAAK7vD,OAAOxB,GACtB,GAAW,MAANkB,GAAmB,MAANA,GAAclB,IAAMumB,EAAM,EAA5C,CAKA,GAAU,MAANrlB,GAAa+7D,IAAahC,EAAU,CACpCkC,EAASn9D,EAAI,EACb,KACJ,CAEA,GADAi9D,GAAW,EACD,OAAN/7D,GACK+5D,EADT,CAQA,GAAU,MAAN/5D,IAAc+5D,EAEd,IAAK,MAAOqC,GAAMC,EAAM1xB,EAAG2xB,MAAShhE,OAAOuhB,QAAQ4+C,GAC/C,GAAItL,EAAK5V,WAAW6hB,EAAKt9D,GAAI,CAEzB,GAAIo9D,EACA,MAAO,CAAC,MAAM,EAAO/L,EAAKjyD,OAASmnB,GAAK,GAE5CvmB,GAAKs9D,EAAIl+D,OACLo+D,EACAR,EAAK/8D,KAAKs9D,GAEVT,EAAO78D,KAAKs9D,GAChB/B,EAAQA,GAAS3vB,EACjB,SAASwxB,CACb,CAIRpC,GAAW,EACPmC,GAGIl8D,EAAIk8D,EACJN,EAAO78D,KAAK28D,EAAYQ,GAAc,IAAMR,EAAY17D,IAEnDA,IAAMk8D,GACXN,EAAO78D,KAAK28D,EAAY17D,IAE5Bk8D,EAAa,GACbp9D,KAKAqxD,EAAK5V,WAAW,KAAMz7C,EAAI,IAC1B88D,EAAO78D,KAAK28D,EAAY17D,EAAI,MAC5BlB,GAAK,GAGLqxD,EAAK5V,WAAW,IAAKz7C,EAAI,IACzBo9D,EAAal8D,EACblB,GAAK,IAIT88D,EAAO78D,KAAK28D,EAAY17D,IACxBlB,IAhDA,MALQi7D,GAAW,EACXj7D,GATR,MAHIk9D,GAAS,EACTl9D,GAgER,CACA,GAAIm9D,EAASn9D,EAGT,MAAO,CAAC,IAAI,EAAO,GAAG,GAI1B,IAAK88D,EAAO19D,SAAW49D,EAAK59D,OACxB,MAAO,CAAC,MAAM,EAAOiyD,EAAKjyD,OAASmnB,GAAK,GAM5C,GAAoB,IAAhBy2C,EAAK59D,QACa,IAAlB09D,EAAO19D,QACP,SAAS6B,KAAK67D,EAAO,MACpBI,EAAQ,CAET,MAAO,EAjHOxjD,EAgHiB,IAArBojD,EAAO,GAAG19D,OAAe09D,EAAO,GAAG59D,OAAO,GAAK49D,EAAO,GAhH5CpjD,EAAEjY,QAAQ,2BAA4B,UAiHjC,EAAO07D,EAAS52C,GAAK,EAClD,CAlHiB,IAAC7M,EAmHlB,MAAM+jD,EAAU,KAAOP,EAAS,IAAM,IAAML,EAAeC,GAAU,IAC/DY,EAAQ,KAAOR,EAAS,GAAK,KAAOL,EAAeG,GAAQ,IAMjE,MAAO,CALMF,EAAO19D,QAAU49D,EAAK59D,OAC7B,IAAMq+D,EAAU,IAAMC,EAAQ,IAC9BZ,EAAO19D,OACHq+D,EACAC,EACIlC,EAAO2B,EAAS52C,GAAK,G,6CCxIhC,MAAMkE,EAAS,CAAC/Q,GAAKikD,wBAAuB,GAAW,CAAC,IAIpDA,EACDjkD,EAAEjY,QAAQ,aAAc,QACxBiY,EAAEjY,QAAQ,eAAgB,O,oHCV7B,MAAMm8D,EAAY,CAAC/6D,EAAGk0C,EAAS/5C,EAAU,CAAC,MAC7C,OAAmB+5C,MAEd/5C,EAAQ6gE,WAAmC,MAAtB9mB,EAAQv1C,OAAO,KAGlC,IAAIs8D,EAAU/mB,EAAS/5C,GAASwC,MAAMqD,IAG3Ck7D,EAAe,wBACfC,EAAkBh+C,GAAS5E,IAAOA,EAAEqgC,WAAW,MAAQrgC,EAAEic,SAASrX,GAClEi+C,EAAqBj+C,GAAS5E,GAAMA,EAAEic,SAASrX,GAC/Ck+C,EAAwBl+C,IAC1BA,EAAMA,EAAIjI,cACFqD,IAAOA,EAAEqgC,WAAW,MAAQrgC,EAAErD,cAAcsf,SAASrX,IAE3Dm+C,EAA2Bn+C,IAC7BA,EAAMA,EAAIjI,cACFqD,GAAMA,EAAErD,cAAcsf,SAASrX,IAErCo+C,EAAgB,aAChBC,EAAmBjjD,IAAOA,EAAEqgC,WAAW,MAAQrgC,EAAEyiC,SAAS,KAC1DygB,EAAsBljD,GAAY,MAANA,GAAmB,OAANA,GAAcA,EAAEyiC,SAAS,KAClE0gB,EAAY,UACZC,EAAepjD,GAAY,MAANA,GAAmB,OAANA,GAAcA,EAAEqgC,WAAW,KAC7DgjB,EAAS,QACTC,EAAYtjD,GAAmB,IAAbA,EAAEhc,SAAiBgc,EAAEqgC,WAAW,KAClDkjB,EAAevjD,GAAmB,IAAbA,EAAEhc,QAAsB,MAANgc,GAAmB,OAANA,EACpDwjD,EAAW,yBACXC,EAAmB,EAAEj6C,EAAI5E,EAAM,OACjC,MAAMq7C,EAAQyD,EAAgB,CAACl6C,IAC/B,OAAK5E,GAELA,EAAMA,EAAIjI,cACFqD,GAAMigD,EAAMjgD,IAAMA,EAAErD,cAAcsf,SAASrX,IAFxCq7C,GAIT0D,EAAsB,EAAEn6C,EAAI5E,EAAM,OACpC,MAAMq7C,EAAQ2D,EAAmB,CAACp6C,IAClC,OAAK5E,GAELA,EAAMA,EAAIjI,cACFqD,GAAMigD,EAAMjgD,IAAMA,EAAErD,cAAcsf,SAASrX,IAFxCq7C,GAIT4D,EAAgB,EAAEr6C,EAAI5E,EAAM,OAC9B,MAAMq7C,EAAQ2D,EAAmB,CAACp6C,IAClC,OAAQ5E,EAAe5E,GAAMigD,EAAMjgD,IAAMA,EAAEic,SAASrX,GAAtCq7C,GAEZ6D,EAAa,EAAEt6C,EAAI5E,EAAM,OAC3B,MAAMq7C,EAAQyD,EAAgB,CAACl6C,IAC/B,OAAQ5E,EAAe5E,GAAMigD,EAAMjgD,IAAMA,EAAEic,SAASrX,GAAtCq7C,GAEZyD,EAAkB,EAAEl6C,MACtB,MAAMjgB,EAAMigB,EAAGxlB,OACf,OAAQgc,GAAMA,EAAEhc,SAAWuF,IAAQyW,EAAEqgC,WAAW,MAE9CujB,EAAqB,EAAEp6C,MACzB,MAAMjgB,EAAMigB,EAAGxlB,OACf,OAAQgc,GAAMA,EAAEhc,SAAWuF,GAAa,MAANyW,GAAmB,OAANA,GAG7C+jD,EAAsC,iBAAZrgD,GAAwBA,EAC1B,iBAAhBA,EAAQuzB,KACdvzB,EAAQuzB,KACRvzB,EAAQuzB,IAAI+sB,gCACZtgD,EAAQugD,SACV,QAMOh/C,EAA0B,UAApB8+C,EAJD,KACA,IAIlBvB,EAAUv9C,IAAMA,EACT,MAAMi/C,EAAWl0D,OAAO,eAC/BwyD,EAAU0B,SAAWA,EAcrB1B,EAAU71C,OADY,CAACgvB,EAAS/5C,EAAU,CAAC,IAAO6F,GAAM+6D,EAAU/6D,EAAGk0C,EAAS/5C,GAE9E,MAAMgjB,EAAM,CAACxhB,EAAGC,EAAI,CAAC,IAAMjC,OAAOotB,OAAO,CAAC,EAAGprB,EAAGC,GAqChDm/D,EAAUp6C,SApCe+7C,IACrB,IAAKA,GAAsB,iBAARA,IAAqB/iE,OAAO2T,KAAKovD,GAAKngE,OACrD,OAAOw+D,EAEX,MAAM4B,EAAO5B,EAEb,OAAOphE,OAAOotB,OADJ,CAAC/mB,EAAGk0C,EAAS/5C,EAAU,CAAC,IAAMwiE,EAAK38D,EAAGk0C,EAAS/2B,EAAIu/C,EAAKviE,IAC1C,CACpB8gE,UAAW,cAAwB0B,EAAK1B,UACpC,WAAA1qD,CAAY2jC,EAAS/5C,EAAU,CAAC,GAC5BwrD,MAAMzR,EAAS/2B,EAAIu/C,EAAKviE,GAC5B,CACA,eAAOwmB,CAASxmB,GACZ,OAAOwiE,EAAKh8C,SAASxD,EAAIu/C,EAAKviE,IAAU8gE,SAC5C,GAEJxD,IAAK,cAAkBkF,EAAKlF,IAExB,WAAAlnD,CAAYxX,EAAMypB,EAAQroB,EAAU,CAAC,GACjCwrD,MAAM5sD,EAAMypB,EAAQrF,EAAIu/C,EAAKviE,GACjC,CAEA,eAAOs+D,CAASvkB,EAAS/5C,EAAU,CAAC,GAChC,OAAOwiE,EAAKlF,IAAIgB,SAASvkB,EAAS/2B,EAAIu/C,EAAKviE,GAC/C,GAEJstB,SAAU,CAAC5Q,EAAG1c,EAAU,CAAC,IAAMwiE,EAAKl1C,SAAS5Q,EAAGsG,EAAIu/C,EAAKviE,IACzDytB,OAAQ,CAAC/Q,EAAG1c,EAAU,CAAC,IAAMwiE,EAAK/0C,OAAO/Q,EAAGsG,EAAIu/C,EAAKviE,IACrD+qB,OAAQ,CAACgvB,EAAS/5C,EAAU,CAAC,IAAMwiE,EAAKz3C,OAAOgvB,EAAS/2B,EAAIu/C,EAAKviE,IACjEwmB,SAAWxmB,GAAYwiE,EAAKh8C,SAASxD,EAAIu/C,EAAKviE,IAC9CyiE,OAAQ,CAAC1oB,EAAS/5C,EAAU,CAAC,IAAMwiE,EAAKC,OAAO1oB,EAAS/2B,EAAIu/C,EAAKviE,IACjE0iE,YAAa,CAAC3oB,EAAS/5C,EAAU,CAAC,IAAMwiE,EAAKE,YAAY3oB,EAAS/2B,EAAIu/C,EAAKviE,IAC3EwC,MAAO,CAACyI,EAAM8uC,EAAS/5C,EAAU,CAAC,IAAMwiE,EAAKhgE,MAAMyI,EAAM8uC,EAAS/2B,EAAIu/C,EAAKviE,IAC3EqjB,IAAKm/C,EAAKn/C,IACVi/C,SAAUA,KAcX,MAAMI,EAAc,CAAC3oB,EAAS/5C,EAAU,CAAC,MAC5C,OAAmB+5C,GAGf/5C,EAAQ2iE,UAAY,mBAAmB1+D,KAAK81C,GAErC,CAACA,GAEL,EAAOA,IAElB6mB,EAAU8B,YAAcA,EAaxB9B,EAAU6B,OADY,CAAC1oB,EAAS/5C,EAAU,CAAC,IAAM,IAAI8gE,EAAU/mB,EAAS/5C,GAASyiE,SAUjF7B,EAAUp+D,MARW,CAACyI,EAAM8uC,EAAS/5C,EAAU,CAAC,KAC5C,MAAM4iE,EAAK,IAAI9B,EAAU/mB,EAAS/5C,GAKlC,OAJAiL,EAAOA,EAAK8f,OAAO3M,GAAKwkD,EAAGpgE,MAAM4b,IAC7BwkD,EAAG5iE,QAAQ6iE,SAAW53D,EAAK7I,QAC3B6I,EAAKhI,KAAK82C,GAEP9uC,GAIX,MAAM63D,EAAY,0BAEX,MAAMhC,EACT9gE,QACAyW,IACAsjC,QACA4mB,qBACAoC,SACA7C,OACAliE,QACAglE,MACAC,wBACAC,QACAC,QACAC,UACA1E,OACA2E,UACAhB,SACAiB,mBACAC,OACA,WAAAntD,CAAY2jC,EAAS/5C,EAAU,CAAC,IAC5B,OAAmB+5C,GACnB/5C,EAAUA,GAAW,CAAC,EACtBvB,KAAKuB,QAAUA,EACfvB,KAAKs7C,QAAUA,EACft7C,KAAK4jE,SAAWriE,EAAQqiE,UAAYF,EACpC1jE,KAAK4kE,UAA8B,UAAlB5kE,KAAK4jE,SACtB5jE,KAAKkiE,uBACC3gE,EAAQ2gE,uBAAuD,IAA/B3gE,EAAQwjE,mBAC1C/kE,KAAKkiE,uBACLliE,KAAKs7C,QAAUt7C,KAAKs7C,QAAQt1C,QAAQ,MAAO,MAE/ChG,KAAKwkE,0BAA4BjjE,EAAQijE,wBACzCxkE,KAAK8kE,OAAS,KACd9kE,KAAKyhE,QAAS,EACdzhE,KAAKskE,WAAa/iE,EAAQ+iE,SAC1BtkE,KAAKT,SAAU,EACfS,KAAKukE,OAAQ,EACbvkE,KAAKykE,UAAYljE,EAAQkjE,QACzBzkE,KAAKigE,SAAWjgE,KAAKuB,QAAQ0+D,OAC7BjgE,KAAK6kE,wBAC8BznE,IAA/BmE,EAAQsjE,mBACFtjE,EAAQsjE,sBACL7kE,KAAK4kE,YAAa5kE,KAAKigE,QACpCjgE,KAAK0kE,QAAU,GACf1kE,KAAK2kE,UAAY,GACjB3kE,KAAKgY,IAAM,GAEXhY,KAAKglE,MACT,CACA,QAAAlG,GACI,GAAI9+D,KAAKuB,QAAQ0jE,eAAiBjlE,KAAKgY,IAAIrU,OAAS,EAChD,OAAO,EAEX,IAAK,MAAM23C,KAAWt7C,KAAKgY,IACvB,IAAK,MAAMpE,KAAQ0nC,EACf,GAAoB,iBAAT1nC,EACP,OAAO,EAGnB,OAAO,CACX,CACA,KAAAzU,IAASsV,GAAK,CACd,IAAAuwD,GACI,MAAM1pB,EAAUt7C,KAAKs7C,QACf/5C,EAAUvB,KAAKuB,QAErB,IAAKA,EAAQ6gE,WAAmC,MAAtB9mB,EAAQv1C,OAAO,GAErC,YADA/F,KAAKT,SAAU,GAGnB,IAAK+7C,EAED,YADAt7C,KAAKukE,OAAQ,GAIjBvkE,KAAKklE,cAELllE,KAAK0kE,QAAU,IAAI,IAAInzD,IAAIvR,KAAKikE,gBAC5B1iE,EAAQpC,QACRa,KAAKb,MAAQ,IAAI2K,IAAS0sC,QAAQtxC,SAAS4E,IAE/C9J,KAAKb,MAAMa,KAAKs7C,QAASt7C,KAAK0kE,SAU9B,MAAMS,EAAenlE,KAAK0kE,QAAQplE,IAAI2e,GAAKje,KAAKolE,WAAWnnD,IAC3Dje,KAAK2kE,UAAY3kE,KAAKqlE,WAAWF,GACjCnlE,KAAKb,MAAMa,KAAKs7C,QAASt7C,KAAK2kE,WAE9B,IAAI3sD,EAAMhY,KAAK2kE,UAAUrlE,IAAI,CAAC2e,EAAGxJ,EAAG6wD,KAChC,GAAItlE,KAAK4kE,WAAa5kE,KAAK6kE,mBAAoB,CAE3C,MAAMU,IAAiB,KAATtnD,EAAE,IACH,KAATA,EAAE,IACQ,MAATA,EAAE,IAAeomD,EAAU7+D,KAAKyY,EAAE,KAClComD,EAAU7+D,KAAKyY,EAAE,KAChBunD,EAAU,WAAWhgE,KAAKyY,EAAE,IAClC,GAAIsnD,EACA,MAAO,IAAItnD,EAAExa,MAAM,EAAG,MAAOwa,EAAExa,MAAM,GAAGnE,IAAImmE,GAAMzlE,KAAKuV,MAAMkwD,KAE5D,GAAID,EACL,MAAO,CAACvnD,EAAE,MAAOA,EAAExa,MAAM,GAAGnE,IAAImmE,GAAMzlE,KAAKuV,MAAMkwD,IAEzD,CACA,OAAOxnD,EAAE3e,IAAImmE,GAAMzlE,KAAKuV,MAAMkwD,MAMlC,GAJAzlE,KAAKb,MAAMa,KAAKs7C,QAAStjC,GAEzBhY,KAAKgY,IAAMA,EAAIsU,OAAOrO,IAA2B,IAAtBA,EAAE5Z,SAAQ,IAEjCrE,KAAK4kE,UACL,IAAK,IAAIrgE,EAAI,EAAGA,EAAIvE,KAAKgY,IAAIrU,OAAQY,IAAK,CACtC,MAAM6C,EAAIpH,KAAKgY,IAAIzT,GACN,KAAT6C,EAAE,IACO,KAATA,EAAE,IACuB,MAAzBpH,KAAK2kE,UAAUpgE,GAAG,IACF,iBAAT6C,EAAE,IACT,YAAY5B,KAAK4B,EAAE,MACnBA,EAAE,GAAK,IAEf,CAEJpH,KAAKb,MAAMa,KAAKs7C,QAASt7C,KAAKgY,IAClC,CAMA,UAAAqtD,CAAWV,GAEP,GAAI3kE,KAAKuB,QAAQmkE,WACb,IAAK,IAAInhE,EAAI,EAAGA,EAAIogE,EAAUhhE,OAAQY,IAClC,IAAK,IAAI0E,EAAI,EAAGA,EAAI07D,EAAUpgE,GAAGZ,OAAQsF,IACb,OAApB07D,EAAUpgE,GAAG0E,KACb07D,EAAUpgE,GAAG0E,GAAK,KAKlC,MAAM,kBAAE08D,EAAoB,GAAM3lE,KAAKuB,QAcvC,OAbIokE,GAAqB,GAErBhB,EAAY3kE,KAAK4lE,qBAAqBjB,GACtCA,EAAY3kE,KAAK6lE,sBAAsBlB,IAIvCA,EAFKgB,GAAqB,EAEd3lE,KAAK8lE,iBAAiBnB,GAItB3kE,KAAK+lE,0BAA0BpB,GAExCA,CACX,CAEA,yBAAAoB,CAA0BpB,GACtB,OAAOA,EAAUrlE,IAAI6H,IACjB,IAAI6+D,GAAM,EACV,MAAQ,KAAOA,EAAK7+D,EAAM9C,QAAQ,KAAM2hE,EAAK,KAAK,CAC9C,IAAIzhE,EAAIyhE,EACR,KAAwB,OAAjB7+D,EAAM5C,EAAI,IACbA,IAEAA,IAAMyhE,GACN7+D,EAAMqL,OAAOwzD,EAAIzhE,EAAIyhE,EAE7B,CACA,OAAO7+D,GAEf,CAEA,gBAAA2+D,CAAiBnB,GACb,OAAOA,EAAUrlE,IAAI6H,GAeO,KAdxBA,EAAQA,EAAMinB,OAAO,CAACpW,EAAKpE,KACvB,MAAMyL,EAAOrH,EAAIA,EAAIrU,OAAS,GAC9B,MAAa,OAATiQ,GAA0B,OAATyL,EACVrH,EAEE,OAATpE,GACIyL,GAAiB,OAATA,GAA0B,MAATA,GAAyB,OAATA,GACzCrH,EAAIvT,MACGuT,IAGfA,EAAIxT,KAAKoP,GACFoE,IACR,KACUrU,OAAe,CAAC,IAAMwD,EAE3C,CACA,oBAAA8+D,CAAqB9+D,GACZ6B,MAAMgR,QAAQ7S,KACfA,EAAQnH,KAAKolE,WAAWj+D,IAE5B,IAAI++D,GAAe,EACnB,EAAG,CAGC,GAFAA,GAAe,GAEVlmE,KAAKwkE,wBAAyB,CAC/B,IAAK,IAAIjgE,EAAI,EAAGA,EAAI4C,EAAMxD,OAAS,EAAGY,IAAK,CACvC,MAAM6C,EAAID,EAAM5C,GAEN,IAANA,GAAiB,KAAN6C,GAAyB,KAAbD,EAAM,IAEvB,MAANC,GAAmB,KAANA,IACb8+D,GAAe,EACf/+D,EAAMqL,OAAOjO,EAAG,GAChBA,IAER,CACiB,MAAb4C,EAAM,IACW,IAAjBA,EAAMxD,QACQ,MAAbwD,EAAM,IAA2B,KAAbA,EAAM,KAC3B++D,GAAe,EACf/+D,EAAM1C,MAEd,CAEA,IAAI0hE,EAAK,EACT,MAAQ,KAAOA,EAAKh/D,EAAM9C,QAAQ,KAAM8hE,EAAK,KAAK,CAC9C,MAAM/+D,EAAID,EAAMg/D,EAAK,GACjB/+D,GAAW,MAANA,GAAmB,OAANA,GAAoB,OAANA,IAChC8+D,GAAe,EACf/+D,EAAMqL,OAAO2zD,EAAK,EAAG,GACrBA,GAAM,EAEd,CACJ,OAASD,GACT,OAAwB,IAAjB/+D,EAAMxD,OAAe,CAAC,IAAMwD,CACvC,CAmBA,oBAAAy+D,CAAqBjB,GACjB,IAAIuB,GAAe,EACnB,EAAG,CACCA,GAAe,EAEf,IAAK,IAAI/+D,KAASw9D,EAAW,CACzB,IAAIqB,GAAM,EACV,MAAQ,KAAOA,EAAK7+D,EAAM9C,QAAQ,KAAM2hE,EAAK,KAAK,CAC9C,IAAII,EAAMJ,EACV,KAA0B,OAAnB7+D,EAAMi/D,EAAM,IAEfA,IAIAA,EAAMJ,GACN7+D,EAAMqL,OAAOwzD,EAAK,EAAGI,EAAMJ,GAE/B,IAAI51C,EAAOjpB,EAAM6+D,EAAK,GACtB,MAAM5+D,EAAID,EAAM6+D,EAAK,GACfK,EAAKl/D,EAAM6+D,EAAK,GACtB,GAAa,OAAT51C,EACA,SACJ,IAAKhpB,GACK,MAANA,GACM,OAANA,IACCi/D,GACM,MAAPA,GACO,OAAPA,EACA,SAEJH,GAAe,EAEf/+D,EAAMqL,OAAOwzD,EAAI,GACjB,MAAMM,EAAQn/D,EAAM1D,MAAM,GAC1B6iE,EAAMN,GAAM,KACZrB,EAAUngE,KAAK8hE,GACfN,GACJ,CAEA,IAAKhmE,KAAKwkE,wBAAyB,CAC/B,IAAK,IAAIjgE,EAAI,EAAGA,EAAI4C,EAAMxD,OAAS,EAAGY,IAAK,CACvC,MAAM6C,EAAID,EAAM5C,GAEN,IAANA,GAAiB,KAAN6C,GAAyB,KAAbD,EAAM,IAEvB,MAANC,GAAmB,KAANA,IACb8+D,GAAe,EACf/+D,EAAMqL,OAAOjO,EAAG,GAChBA,IAER,CACiB,MAAb4C,EAAM,IACW,IAAjBA,EAAMxD,QACQ,MAAbwD,EAAM,IAA2B,KAAbA,EAAM,KAC3B++D,GAAe,EACf/+D,EAAM1C,MAEd,CAEA,IAAI0hE,EAAK,EACT,MAAQ,KAAOA,EAAKh/D,EAAM9C,QAAQ,KAAM8hE,EAAK,KAAK,CAC9C,MAAM/+D,EAAID,EAAMg/D,EAAK,GACrB,GAAI/+D,GAAW,MAANA,GAAmB,OAANA,GAAoB,OAANA,EAAY,CAC5C8+D,GAAe,EACf,MACMK,EADiB,IAAPJ,GAA8B,OAAlBh/D,EAAMg/D,EAAK,GACf,CAAC,KAAO,GAChCh/D,EAAMqL,OAAO2zD,EAAK,EAAG,KAAMI,GACN,IAAjBp/D,EAAMxD,QACNwD,EAAM3C,KAAK,IACf2hE,GAAM,CACV,CACJ,CACJ,CACJ,OAASD,GACT,OAAOvB,CACX,CAQA,qBAAAkB,CAAsBlB,GAClB,IAAK,IAAIpgE,EAAI,EAAGA,EAAIogE,EAAUhhE,OAAS,EAAGY,IACtC,IAAK,IAAI0E,EAAI1E,EAAI,EAAG0E,EAAI07D,EAAUhhE,OAAQsF,IAAK,CAC3C,MAAMu9D,EAAUxmE,KAAKymE,WAAW9B,EAAUpgE,GAAIogE,EAAU17D,IAAKjJ,KAAKwkE,yBAClE,GAAIgC,EAAS,CACT7B,EAAUpgE,GAAK,GACfogE,EAAU17D,GAAKu9D,EACf,KACJ,CACJ,CAEJ,OAAO7B,EAAUr4C,OAAO05C,GAAMA,EAAGriE,OACrC,CACA,UAAA8iE,CAAW1jE,EAAGC,EAAG0jE,GAAe,GAC5B,IAAItiE,EAAK,EACLE,EAAK,EACLpC,EAAS,GACTykE,EAAQ,GACZ,KAAOviE,EAAKrB,EAAEY,QAAUW,EAAKtB,EAAEW,QAC3B,GAAIZ,EAAEqB,KAAQpB,EAAEsB,GACZpC,EAAOsC,KAAe,MAAVmiE,EAAgB3jE,EAAEsB,GAAMvB,EAAEqB,IACtCA,IACAE,SAEC,GAAIoiE,GAA0B,OAAV3jE,EAAEqB,IAAgBpB,EAAEsB,KAAQvB,EAAEqB,EAAK,GACxDlC,EAAOsC,KAAKzB,EAAEqB,IACdA,SAEC,GAAIsiE,GAA0B,OAAV1jE,EAAEsB,IAAgBvB,EAAEqB,KAAQpB,EAAEsB,EAAK,GACxDpC,EAAOsC,KAAKxB,EAAEsB,IACdA,SAEC,GAAc,MAAVvB,EAAEqB,KACPpB,EAAEsB,KACDtE,KAAKuB,QAAQg/D,KAAQv9D,EAAEsB,GAAI07C,WAAW,MAC7B,OAAVh9C,EAAEsB,GAQD,IAAc,MAAVtB,EAAEsB,KACPvB,EAAEqB,KACDpE,KAAKuB,QAAQg/D,KAAQx9D,EAAEqB,GAAI47C,WAAW,MAC7B,OAAVj9C,EAAEqB,GASF,OAAO,EARP,GAAc,MAAVuiE,EACA,OAAO,EACXA,EAAQ,IACRzkE,EAAOsC,KAAKxB,EAAEsB,IACdF,IACAE,GAIJ,KArBoB,CAChB,GAAc,MAAVqiE,EACA,OAAO,EACXA,EAAQ,IACRzkE,EAAOsC,KAAKzB,EAAEqB,IACdA,IACAE,GACJ,CAkBJ,OAAOvB,EAAEY,SAAWX,EAAEW,QAAUzB,CACpC,CACA,WAAAgjE,GACI,GAAIllE,KAAKskE,SACL,OACJ,MAAMhpB,EAAUt7C,KAAKs7C,QACrB,IAAImmB,GAAS,EACTmF,EAAe,EACnB,IAAK,IAAIriE,EAAI,EAAGA,EAAI+2C,EAAQ33C,QAAgC,MAAtB23C,EAAQv1C,OAAOxB,GAAYA,IAC7Dk9D,GAAUA,EACVmF,IAEAA,IACA5mE,KAAKs7C,QAAUA,EAAQ73C,MAAMmjE,IACjC5mE,KAAKyhE,OAASA,CAClB,CAMA,QAAAoF,CAAS92B,EAAMuL,EAASmpB,GAAU,GAC9B,MAAMljE,EAAUvB,KAAKuB,QAIrB,GAAIvB,KAAK4kE,UAAW,CAChB,MAAMkC,EAA+B,iBAAZ/2B,EAAK,IAAmB,YAAYvqC,KAAKuqC,EAAK,IACjEg3B,GAAWD,GACD,KAAZ/2B,EAAK,IACO,KAAZA,EAAK,IACO,MAAZA,EAAK,IACL,YAAYvqC,KAAKuqC,EAAK,IACpBi3B,EAAqC,iBAAf1rB,EAAQ,IAAmB,YAAY91C,KAAK81C,EAAQ,IAO1E2rB,EAAMF,EAAU,EAAID,EAAY,OAAI1pE,EACpC8pE,GAPcF,GACD,KAAf1rB,EAAQ,IACO,KAAfA,EAAQ,IACO,MAAfA,EAAQ,IACc,iBAAfA,EAAQ,IACf,YAAY91C,KAAK81C,EAAQ,IAEJ,EAAI0rB,EAAe,OAAI5pE,EAChD,GAAmB,iBAAR6pE,GAAmC,iBAARC,EAAkB,CACpD,MAAOC,EAAIC,GAAM,CAACr3B,EAAKk3B,GAAM3rB,EAAQ4rB,IACjCC,EAAG7qD,gBAAkB8qD,EAAG9qD,gBACxBg/B,EAAQ4rB,GAAOC,EACXD,EAAMD,EACN3rB,EAAUA,EAAQ73C,MAAMyjE,GAEnBD,EAAMC,IACXn3B,EAAOA,EAAKtsC,MAAMwjE,IAG9B,CACJ,CAGA,MAAM,kBAAEtB,EAAoB,GAAM3lE,KAAKuB,QACnCokE,GAAqB,IACrB51B,EAAO/vC,KAAKimE,qBAAqBl2B,IAErC/vC,KAAKb,MAAM,WAAYa,KAAM,CAAE+vC,OAAMuL,YACrCt7C,KAAKb,MAAM,WAAY4wC,EAAKpsC,OAAQ23C,EAAQ33C,QAC5C,IAAK,IAAI0jE,EAAK,EAAGC,EAAK,EAAGC,EAAKx3B,EAAKpsC,OAAQy7D,EAAK9jB,EAAQ33C,OAAQ0jE,EAAKE,GAAMD,EAAKlI,EAAIiI,IAAMC,IAAM,CAC5FtnE,KAAKb,MAAM,iBACX,IAAIiI,EAAIk0C,EAAQgsB,GACZ3nD,EAAIowB,EAAKs3B,GAKb,GAJArnE,KAAKb,MAAMm8C,EAASl0C,EAAGuY,IAIb,IAANvY,EACA,OAAO,EAGX,GAAIA,IAAMy8D,EAAU,CAChB7jE,KAAKb,MAAM,WAAY,CAACm8C,EAASl0C,EAAGuY,IAuBpC,IAAI6nD,EAAKH,EACLI,EAAKH,EAAK,EACd,GAAIG,IAAOrI,EAAI,CAQX,IAPAp/D,KAAKb,MAAM,iBAOJkoE,EAAKE,EAAIF,IACZ,GAAiB,MAAbt3B,EAAKs3B,IACQ,OAAbt3B,EAAKs3B,KACH9lE,EAAQg/D,KAA8B,MAAvBxwB,EAAKs3B,GAAIthE,OAAO,GACjC,OAAO,EAEf,OAAO,CACX,CAEA,KAAOyhE,EAAKD,GAAI,CACZ,IAAIG,EAAY33B,EAAKy3B,GAGrB,GAFAxnE,KAAKb,MAAM,mBAAoB4wC,EAAMy3B,EAAIlsB,EAASmsB,EAAIC,GAElD1nE,KAAK6mE,SAAS92B,EAAKtsC,MAAM+jE,GAAKlsB,EAAQ73C,MAAMgkE,GAAKhD,GAGjD,OAFAzkE,KAAKb,MAAM,wBAAyBqoE,EAAID,EAAIG,IAErC,EAKP,GAAkB,MAAdA,GACc,OAAdA,IACEnmE,EAAQg/D,KAA+B,MAAxBmH,EAAU3hE,OAAO,GAAa,CAC/C/F,KAAKb,MAAM,gBAAiB4wC,EAAMy3B,EAAIlsB,EAASmsB,GAC/C,KACJ,CAEAznE,KAAKb,MAAM,4CACXqoE,GAER,CAIA,SAAI/C,IAEAzkE,KAAKb,MAAM,2BAA4B4wC,EAAMy3B,EAAIlsB,EAASmsB,GACtDD,IAAOD,GAMnB,CAIA,IAAII,EASJ,GARiB,iBAANvgE,GACPugE,EAAMhoD,IAAMvY,EACZpH,KAAKb,MAAM,eAAgBiI,EAAGuY,EAAGgoD,KAGjCA,EAAMvgE,EAAE5B,KAAKma,GACb3f,KAAKb,MAAM,gBAAiBiI,EAAGuY,EAAGgoD,KAEjCA,EACD,OAAO,CACf,CAYA,GAAIN,IAAOE,GAAMD,IAAOlI,EAGpB,OAAO,EAEN,GAAIiI,IAAOE,EAIZ,OAAO9C,EAEN,GAAI6C,IAAOlI,EAKZ,OAAOiI,IAAOE,EAAK,GAAkB,KAAbx3B,EAAKs3B,GAK7B,MAAM,IAAIriE,MAAM,OAGxB,CACA,WAAAi/D,GACI,OAAOA,EAAYjkE,KAAKs7C,QAASt7C,KAAKuB,QAC1C,CACA,KAAAgU,CAAM+lC,IACF,OAAmBA,GACnB,MAAM/5C,EAAUvB,KAAKuB,QAErB,GAAgB,OAAZ+5C,EACA,OAAOuoB,EACX,GAAgB,KAAZvoB,EACA,MAAO,GAGX,IAAIx3C,EACA8jE,EAAW,MACV9jE,EAAIw3C,EAAQv3C,MAAMi/D,IACnB4E,EAAWrmE,EAAQg/D,IAAM2C,EAAcD,GAEjCn/D,EAAIw3C,EAAQv3C,MAAMu+D,IACxBsF,GAAYrmE,EAAQ0+D,OACd1+D,EAAQg/D,IACJmC,EACAD,EACJlhE,EAAQg/D,IACJiC,EACAD,GAAgBz+D,EAAE,KAEtBA,EAAIw3C,EAAQv3C,MAAMo/D,IACxByE,GAAYrmE,EAAQ0+D,OACd1+D,EAAQg/D,IACJ+C,EACAF,EACJ7hE,EAAQg/D,IACJiD,EACAC,GAAY3/D,IAEhBA,EAAIw3C,EAAQv3C,MAAM4+D,IACxBiF,EAAWrmE,EAAQg/D,IAAMsC,EAAqBD,GAExC9+D,EAAIw3C,EAAQv3C,MAAM++D,MACxB8E,EAAW7E,GAEf,MAAMtqB,EAAK,IAAIonB,SAASvkB,EAASt7C,KAAKuB,SAASu+D,cAK/C,OAJI8H,GAA0B,iBAAPnvB,GAEnB1uC,QAAQ/I,eAAey3C,EAAI,OAAQ,CAAEv3C,MAAO0mE,IAEzCnvB,CACX,CACA,MAAAurB,GACI,GAAIhkE,KAAK8kE,SAA0B,IAAhB9kE,KAAK8kE,OACpB,OAAO9kE,KAAK8kE,OAOhB,MAAM9sD,EAAMhY,KAAKgY,IACjB,IAAKA,EAAIrU,OAEL,OADA3D,KAAK8kE,QAAS,EACP9kE,KAAK8kE,OAEhB,MAAMvjE,EAAUvB,KAAKuB,QACfsmE,EAAUtmE,EAAQmkE,WA1vBnBhH,SA4vBCn9D,EAAQg/D,IAxvBH,0CAGE,0BAwvBPJ,EAAQ,IAAI5uD,IAAIhQ,EAAQ0+D,OAAS,CAAC,KAAO,IAO/C,IAAIxnB,EAAKzgC,EACJ1Y,IAAIg8C,IACL,MAAMyjB,EAAKzjB,EAAQh8C,IAAI8H,IACnB,GAAIA,aAAalE,OACb,IAAK,MAAMyc,KAAKvY,EAAE+4D,MAAM75D,MAAM,IAC1B65D,EAAM3mB,IAAI75B,GAElB,MAAoB,iBAANvY,EACKA,EAjrBLpB,QAAQ,2BAA4B,QAkrB5CoB,IAAMy8D,EACFA,EACAz8D,EAAEg5D,OAwBhB,OAtBArB,EAAG1jD,QAAQ,CAACjU,EAAG7C,KACX,MAAM6rB,EAAO2uC,EAAGx6D,EAAI,GACd8a,EAAO0/C,EAAGx6D,EAAI,GAChB6C,IAAMy8D,GAAYxkD,IAASwkD,SAGlBzmE,IAATiiB,OACajiB,IAATgzB,GAAsBA,IAASyzC,EAC/B9E,EAAGx6D,EAAI,GAAK,UAAYsjE,EAAU,QAAUz3C,EAG5C2uC,EAAGx6D,GAAKsjE,OAGEzqE,IAATgzB,EACL2uC,EAAGx6D,EAAI,GAAK8a,EAAO,UAAYwoD,EAAU,KAEpCz3C,IAASyzC,IACd9E,EAAGx6D,EAAI,GAAK8a,EAAO,aAAewoD,EAAU,OAASz3C,EACrD2uC,EAAGx6D,EAAI,GAAKs/D,MAGb9E,EAAGzyC,OAAOllB,GAAKA,IAAMy8D,GAAUpiE,KAAK,OAE1CA,KAAK,KAGV,MAAOyxB,EAAMoG,GAASthB,EAAIrU,OAAS,EAAI,CAAC,MAAO,KAAO,CAAC,GAAI,IAG3D80C,EAAK,IAAMvlB,EAAOulB,EAAKnf,EAAQ,IAE3Bt5B,KAAKyhE,SACLhpB,EAAK,OAASA,EAAK,QACvB,IACIz4C,KAAK8kE,OAAS,IAAI5hE,OAAOu1C,EAAI,IAAI0nB,GAAO1+D,KAAK,IAEjD,CACA,MAAOqmE,GAEH9nE,KAAK8kE,QAAS,CAClB,CAEA,OAAO9kE,KAAK8kE,MAChB,CACA,UAAAM,CAAWh+D,GAKP,OAAIpH,KAAKwkE,wBACEp9D,EAAEd,MAAM,KAEVtG,KAAK4kE,WAAa,cAAcp/D,KAAK4B,GAEnC,CAAC,MAAOA,EAAEd,MAAM,QAGhBc,EAAEd,MAAM,MAEvB,CACA,KAAAvC,CAAM4b,EAAG8kD,EAAUzkE,KAAKykE,SAIpB,GAHAzkE,KAAKb,MAAM,QAASwgB,EAAG3f,KAAKs7C,SAGxBt7C,KAAKT,QACL,OAAO,EAEX,GAAIS,KAAKukE,MACL,MAAa,KAAN5kD,EAEX,GAAU,MAANA,GAAa8kD,EACb,OAAO,EAEX,MAAMljE,EAAUvB,KAAKuB,QAEjBvB,KAAK4kE,YACLjlD,EAAIA,EAAErZ,MAAM,MAAM7E,KAAK,MAG3B,MAAMsmE,EAAK/nE,KAAKolE,WAAWzlD,GAC3B3f,KAAKb,MAAMa,KAAKs7C,QAAS,QAASysB,GAKlC,MAAM/vD,EAAMhY,KAAKgY,IACjBhY,KAAKb,MAAMa,KAAKs7C,QAAS,MAAOtjC,GAEhC,IAAIiL,EAAW8kD,EAAGA,EAAGpkE,OAAS,GAC9B,IAAKsf,EACD,IAAK,IAAI1e,EAAIwjE,EAAGpkE,OAAS,GAAIsf,GAAY1e,GAAK,EAAGA,IAC7C0e,EAAW8kD,EAAGxjE,GAGtB,IAAK,IAAIA,EAAI,EAAGA,EAAIyT,EAAIrU,OAAQY,IAAK,CACjC,MAAM+2C,EAAUtjC,EAAIzT,GACpB,IAAIwrC,EAAOg4B,EAKX,GAJIxmE,EAAQg3D,WAAgC,IAAnBjd,EAAQ33C,SAC7BosC,EAAO,CAAC9sB,IAEAjjB,KAAK6mE,SAAS92B,EAAMuL,EAASmpB,GAErC,QAAIljE,EAAQymE,aAGJhoE,KAAKyhE,MAErB,CAGA,OAAIlgE,EAAQymE,YAGLhoE,KAAKyhE,MAChB,CACA,eAAO15C,CAAS+7C,GACZ,OAAO3B,EAAUp6C,SAAS+7C,GAAKzB,SACnC,EAOJF,EAAUtD,IAAM,IAChBsD,EAAUE,UAAYA,EACtBF,EAAUnzC,OAAS,IACnBmzC,EAAUtzC,SAAW,G,6CCz9Bd,MAAMA,EAAW,CAAC5Q,GAAKikD,wBAAuB,GAAW,CAAC,IACtDA,EACDjkD,EAAEjY,QAAQ,iBAAkB,MAC5BiY,EAAEjY,QAAQ,4BAA6B,QAAQA,QAAQ,aAAc,K,GChB3EiiE,EAA2B,CAAC,EAGhC,SAASC,EAAoBC,GAE5B,IAAIC,EAAeH,EAAyBE,GAC5C,QAAqB/qE,IAAjBgrE,EACH,OAAOA,EAAazjE,QAGrB,IAAID,EAASujE,EAAyBE,GAAY,CACjD9nE,GAAI8nE,EACJE,QAAQ,EACR1jE,QAAS,CAAC,GAUX,OANA2jE,EAAoBH,GAAU3+D,KAAK9E,EAAOC,QAASD,EAAQA,EAAOC,QAASujE,GAG3ExjE,EAAO2jE,QAAS,EAGT3jE,EAAOC,OACf,CAGAujE,EAAoBpkE,EAAIwkE,EhL5BpB3sE,EAAW,GACfusE,EAAoBl0D,EAAI,CAAC9R,EAAQqmE,EAAUt2D,EAAIu2D,KAC9C,IAAGD,EAAH,CAMA,IAAIE,EAAetrD,IACnB,IAAS5Y,EAAI,EAAGA,EAAI5I,EAASgI,OAAQY,IAAK,CAGzC,IAFA,IAAKgkE,EAAUt2D,EAAIu2D,GAAY7sE,EAAS4I,GACpCmkE,GAAY,EACPz/D,EAAI,EAAGA,EAAIs/D,EAAS5kE,OAAQsF,MACpB,EAAXu/D,GAAsBC,GAAgBD,IAAaznE,OAAO2T,KAAKwzD,EAAoBl0D,GAAG20D,MAAOvzD,GAAS8yD,EAAoBl0D,EAAEoB,GAAKmzD,EAASt/D,KAC9Is/D,EAAS/1D,OAAOvJ,IAAK,IAErBy/D,GAAY,EACTF,EAAWC,IAAcA,EAAeD,IAG7C,GAAGE,EAAW,CACb/sE,EAAS6W,OAAOjO,IAAK,GACrB,IAAInB,EAAI6O,SACE7U,IAANgG,IAAiBlB,EAASkB,EAC/B,CACD,CACA,OAAOlB,CAnBP,CAJCsmE,EAAWA,GAAY,EACvB,IAAI,IAAIjkE,EAAI5I,EAASgI,OAAQY,EAAI,GAAK5I,EAAS4I,EAAI,GAAG,GAAKikE,EAAUjkE,IAAK5I,EAAS4I,GAAK5I,EAAS4I,EAAI,GACrG5I,EAAS4I,GAAK,CAACgkE,EAAUt2D,EAAIu2D,IiLJ/BN,EAAoBjgE,EAAKvD,IACxB,IAAIi2C,EAASj2C,GAAUA,EAAOkkE,WAC7B,IAAOlkE,EAAiB,QACxB,IAAM,EAEP,OADAwjE,EAAoBxvB,EAAEiC,EAAQ,CAAE53C,EAAG43C,IAC5BA,GCLRutB,EAAoBxvB,EAAI,CAAC/zC,EAASkkE,KACjC,IAAI,IAAIzzD,KAAOyzD,EACXX,EAAoBvvD,EAAEkwD,EAAYzzD,KAAS8yD,EAAoBvvD,EAAEhU,EAASyQ,IAC5ErU,OAAOC,eAAe2D,EAASyQ,EAAK,CAAE/J,YAAY,EAAMlK,IAAK0nE,EAAWzzD,MCJ3E8yD,EAAoBvoD,EAAI,CAAC,EAGzBuoD,EAAoBv8D,EAAKm9D,GACjBz3D,QAAQwF,IAAI9V,OAAO2T,KAAKwzD,EAAoBvoD,GAAGyO,OAAO,CAAC26C,EAAU3zD,KACvE8yD,EAAoBvoD,EAAEvK,GAAK0zD,EAASC,GAC7BA,GACL,KCNJb,EAAoB93B,EAAK04B,GAEZA,EAAU,IAAMA,EAAU,SAAW,CAAC,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,uBAAuB,KAAO,wBAAwBA,GCHxdZ,EAAoBvvD,EAAI,CAAC9N,EAAKrI,IAAUzB,OAAOE,UAAUsL,eAAe/C,KAAKqB,EAAKrI,GpLA9E5G,EAAa,CAAC,EACdC,EAAoB,uBAExBqsE,EAAoBnmD,EAAI,CAAC7M,EAAK+iB,EAAM7iB,EAAK0zD,KACxC,GAAGltE,EAAWsZ,GAAQtZ,EAAWsZ,GAAK1Q,KAAKyzB,OAA3C,CACA,IAAI+wC,EAAQC,EACZ,QAAW7rE,IAARgY,EAEF,IADA,IAAI8zD,EAAUtyD,SAASuyD,qBAAqB,UACpC5kE,EAAI,EAAGA,EAAI2kE,EAAQvlE,OAAQY,IAAK,CACvC,IAAI0Z,EAAIirD,EAAQ3kE,GAChB,GAAG0Z,EAAEiC,aAAa,QAAUhL,GAAO+I,EAAEiC,aAAa,iBAAmBrkB,EAAoBuZ,EAAK,CAAE4zD,EAAS/qD,EAAG,KAAO,CACpH,CAEG+qD,IACHC,GAAa,GACbD,EAASpyD,SAASwyD,cAAc,WAEzB/gD,QAAU,QACb6/C,EAAoBnZ,IACvBia,EAAOK,aAAa,QAASnB,EAAoBnZ,IAElDia,EAAOK,aAAa,eAAgBxtE,EAAoBuZ,GAExD4zD,EAAOhnC,IAAM9sB,GAEdtZ,EAAWsZ,GAAO,CAAC+iB,GACnB,IAAIqxC,EAAmB,CAACjqD,EAAM4jB,KAE7B+lC,EAAOtxC,QAAUsxC,EAAOvuC,OAAS,KACjCvC,aAAatC,GACb,IAAI2zC,EAAU3tE,EAAWsZ,GAIzB,UAHOtZ,EAAWsZ,GAClB8zD,EAAOQ,YAAcR,EAAOQ,WAAWC,YAAYT,GACnDO,GAAWA,EAAQluD,QAASpJ,GAAQA,EAAGgxB,IACpC5jB,EAAM,OAAOA,EAAK4jB,IAElBrN,EAAUC,WAAWyzC,EAAiBlgE,KAAK,UAAMhM,EAAW,CAAE+C,KAAM,UAAWkN,OAAQ27D,IAAW,MACtGA,EAAOtxC,QAAU4xC,EAAiBlgE,KAAK,KAAM4/D,EAAOtxC,SACpDsxC,EAAOvuC,OAAS6uC,EAAiBlgE,KAAK,KAAM4/D,EAAOvuC,QACnDwuC,GAAcryD,SAAS2pB,KAAKmpC,YAAYV,EAnCkB,GqLH3Dd,EAAoB9kE,EAAKuB,IACH,oBAAXgL,QAA0BA,OAAOoF,aAC1ChU,OAAOC,eAAe2D,EAASgL,OAAOoF,YAAa,CAAE7T,MAAO,WAE7DH,OAAOC,eAAe2D,EAAS,aAAc,CAAEzD,OAAO,KCLvDgnE,EAAoByB,IAAOjlE,IAC1BA,EAAO0vD,MAAQ,GACV1vD,EAAOklE,WAAUllE,EAAOklE,SAAW,IACjCllE,GCHRwjE,EAAoBj/D,EAAI,K,MCAxB,IAAI4gE,EACAroD,WAAWsoD,gBAAeD,EAAYroD,WAAW0Q,SAAW,IAChE,IAAItb,EAAW4K,WAAW5K,SAC1B,IAAKizD,GAAajzD,IACbA,EAASmzD,eAAkE,WAAjDnzD,EAASmzD,cAAc7sE,QAAQkf,gBAC5DytD,EAAYjzD,EAASmzD,cAAc/nC,MAC/B6nC,GAAW,CACf,IAAIX,EAAUtyD,EAASuyD,qBAAqB,UAC5C,GAAGD,EAAQvlE,OAEV,IADA,IAAIY,EAAI2kE,EAAQvlE,OAAS,EAClBY,GAAK,KAAOslE,IAAc,aAAarkE,KAAKqkE,KAAaA,EAAYX,EAAQ3kE,KAAKy9B,GAE3F,CAID,IAAK6nC,EAAW,MAAM,IAAI7kE,MAAM,yDAChC6kE,EAAYA,EAAU7jE,QAAQ,SAAU,IAAIA,QAAQ,OAAQ,IAAIA,QAAQ,QAAS,IAAIA,QAAQ,YAAa,KAC1GkiE,EAAoB9gE,EAAIyiE,C,WClBxB3B,EAAoBllE,EAAyB,oBAAb4T,UAA4BA,SAASozD,SAAY9wD,KAAKgZ,SAAS8b,KAK/F,IAAIi8B,EAAkB,CACrB,KAAM,GAGP/B,EAAoBvoD,EAAE1W,EAAI,CAAC6/D,EAASC,KAElC,IAAImB,EAAqBhC,EAAoBvvD,EAAEsxD,EAAiBnB,GAAWmB,EAAgBnB,QAAW1rE,EACtG,GAA0B,IAAvB8sE,EAGF,GAAGA,EACFnB,EAASvkE,KAAK0lE,EAAmB,QAC3B,CAGL,IAAItgC,EAAU,IAAIv4B,QAAQ,CAAC6R,EAASkW,IAAY8wC,EAAqBD,EAAgBnB,GAAW,CAAC5lD,EAASkW,IAC1G2vC,EAASvkE,KAAK0lE,EAAmB,GAAKtgC,GAGtC,IAAI10B,EAAMgzD,EAAoB9gE,EAAI8gE,EAAoB93B,EAAE04B,GAEpD5jE,EAAQ,IAAIF,MAgBhBkjE,EAAoBnmD,EAAE7M,EAfF+tB,IACnB,GAAGilC,EAAoBvvD,EAAEsxD,EAAiBnB,KAEf,KAD1BoB,EAAqBD,EAAgBnB,MACRmB,EAAgBnB,QAAW1rE,GACrD8sE,GAAoB,CACtB,IAAIC,EAAYlnC,IAAyB,SAAfA,EAAM9iC,KAAkB,UAAY8iC,EAAM9iC,MAChEiqE,EAAUnnC,GAASA,EAAM51B,QAAU41B,EAAM51B,OAAO20B,IACpD98B,EAAMH,QAAU,iBAAmB+jE,EAAU,cAAgBqB,EAAY,KAAOC,EAAU,IAC1FllE,EAAMD,KAAO,iBACbC,EAAM/E,KAAOgqE,EACbjlE,EAAMuQ,QAAU20D,EAChBF,EAAmB,GAAGhlE,EACvB,GAGuC,SAAW4jE,EAASA,EAE/D,GAYHZ,EAAoBl0D,EAAE/K,EAAK6/D,GAA0C,IAA7BmB,EAAgBnB,GAGxD,IAAIuB,EAAuB,CAACC,EAA4BvrE,KACvD,IAGIopE,EAAUW,GAHTP,EAAUgC,EAAaC,GAAWzrE,EAGhBwF,EAAI,EAC3B,GAAGgkE,EAAS1/D,KAAMxI,GAAgC,IAAxB4pE,EAAgB5pE,IAAa,CACtD,IAAI8nE,KAAYoC,EACZrC,EAAoBvvD,EAAE4xD,EAAapC,KACrCD,EAAoBpkE,EAAEqkE,GAAYoC,EAAYpC,IAGhD,GAAGqC,EAAS,IAAItoE,EAASsoE,EAAQtC,EAClC,CAEA,IADGoC,GAA4BA,EAA2BvrE,GACrDwF,EAAIgkE,EAAS5kE,OAAQY,IACzBukE,EAAUP,EAAShkE,GAChB2jE,EAAoBvvD,EAAEsxD,EAAiBnB,IAAYmB,EAAgBnB,IACrEmB,EAAgBnB,GAAS,KAE1BmB,EAAgBnB,GAAW,EAE5B,OAAOZ,EAAoBl0D,EAAE9R,IAG1BuoE,EAAqBjpD,WAA4C,gCAAIA,WAA4C,iCAAK,GAC1HipD,EAAmBpvD,QAAQgvD,EAAqBjhE,KAAK,KAAM,IAC3DqhE,EAAmBjmE,KAAO6lE,EAAqBjhE,KAAK,KAAMqhE,EAAmBjmE,KAAK4E,KAAKqhE,G,KCrFvFvC,EAAoBnZ,QAAK3xD,ECGzB,IAAIstE,EAAsBxC,EAAoBl0D,OAAE5W,EAAW,CAAC,MAAO,IAAO8qE,EAAoB,QAC9FwC,EAAsBxC,EAAoBl0D,EAAE02D,E","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/comments/src/logger.js","webpack:///nextcloud/apps/comments/src/services/DavClient.js","webpack:///nextcloud/apps/comments/src/utils/davUtils.js","webpack:///nextcloud/apps/comments/src/comments-activity-tab.ts","webpack:///nextcloud/apps/comments/src/files-sidebar.ts","webpack:///nextcloud/apps/comments/src/utils/activity.ts","webpack:///nextcloud/apps/comments/src/services/GetComments.ts","webpack:///nextcloud/node_modules/balanced-match/index.js","webpack:///nextcloud/node_modules/base-64/base64.js","webpack:///nextcloud/node_modules/brace-expansion/index.js","webpack:///nextcloud/node_modules/builtin-status-codes/browser.js","webpack:///nextcloud/node_modules/byte-length/dist/index.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/actualApply.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/applyBind.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/functionApply.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/functionCall.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/index.js","webpack:///nextcloud/node_modules/call-bind-apply-helpers/reflectApply.js","webpack:///nextcloud/node_modules/call-bind/index.js","webpack:///nextcloud/node_modules/call-bound/index.js","webpack:///nextcloud/node_modules/define-data-property/index.js","webpack:///nextcloud/node_modules/dunder-proto/get.js","webpack:///nextcloud/node_modules/es-define-property/index.js","webpack:///nextcloud/node_modules/es-errors/eval.js","webpack:///nextcloud/node_modules/es-errors/index.js","webpack:///nextcloud/node_modules/es-errors/range.js","webpack:///nextcloud/node_modules/es-errors/ref.js","webpack:///nextcloud/node_modules/es-errors/syntax.js","webpack:///nextcloud/node_modules/es-errors/type.js","webpack:///nextcloud/node_modules/es-errors/uri.js","webpack:///nextcloud/node_modules/es-object-atoms/index.js","webpack:///nextcloud/node_modules/for-each/index.js","webpack:///nextcloud/node_modules/function-bind/implementation.js","webpack:///nextcloud/node_modules/function-bind/index.js","webpack:///nextcloud/node_modules/generator-function/index.js","webpack:///nextcloud/node_modules/get-intrinsic/index.js","webpack:///nextcloud/node_modules/get-proto/Object.getPrototypeOf.js","webpack:///nextcloud/node_modules/get-proto/Reflect.getPrototypeOf.js","webpack:///nextcloud/node_modules/get-proto/index.js","webpack:///nextcloud/node_modules/gopd/gOPD.js","webpack:///nextcloud/node_modules/gopd/index.js","webpack:///nextcloud/node_modules/has-property-descriptors/index.js","webpack:///nextcloud/node_modules/has-symbols/index.js","webpack:///nextcloud/node_modules/has-symbols/shams.js","webpack:///nextcloud/node_modules/has-tostringtag/shams.js","webpack:///nextcloud/node_modules/hasown/index.js","webpack:///nextcloud/node_modules/https-browserify/index.js","webpack:///nextcloud/node_modules/is-arguments/index.js","webpack:///nextcloud/node_modules/is-callable/index.js","webpack:///nextcloud/node_modules/is-generator-function/index.js","webpack:///nextcloud/node_modules/is-regex/index.js","webpack:///nextcloud/node_modules/is-typed-array/index.js","webpack:///nextcloud/node_modules/math-intrinsics/abs.js","webpack:///nextcloud/node_modules/math-intrinsics/floor.js","webpack:///nextcloud/node_modules/math-intrinsics/isNaN.js","webpack:///nextcloud/node_modules/math-intrinsics/max.js","webpack:///nextcloud/node_modules/math-intrinsics/min.js","webpack:///nextcloud/node_modules/math-intrinsics/pow.js","webpack:///nextcloud/node_modules/math-intrinsics/round.js","webpack:///nextcloud/node_modules/math-intrinsics/sign.js","webpack:///nextcloud/node_modules/nested-property/dist/nested-property.js","webpack:///nextcloud/node_modules/object-inspect/index.js","webpack:///nextcloud/node_modules/path-posix/index.js","webpack:///nextcloud/node_modules/possible-typed-array-names/index.js","webpack:///nextcloud/node_modules/punycode/punycode.js","webpack:///nextcloud/node_modules/qs/lib/formats.js","webpack:///nextcloud/node_modules/qs/lib/index.js","webpack:///nextcloud/node_modules/qs/lib/parse.js","webpack:///nextcloud/node_modules/qs/lib/stringify.js","webpack:///nextcloud/node_modules/qs/lib/utils.js","webpack:///nextcloud/node_modules/querystringify/index.js","webpack:///nextcloud/node_modules/requires-port/index.js","webpack:///nextcloud/node_modules/safe-regex-test/index.js","webpack:///nextcloud/node_modules/set-function-length/index.js","webpack:///nextcloud/node_modules/side-channel-list/index.js","webpack:///nextcloud/node_modules/side-channel-map/index.js","webpack:///nextcloud/node_modules/side-channel-weakmap/index.js","webpack:///nextcloud/node_modules/side-channel/index.js","webpack:///nextcloud/node_modules/stream-http/index.js","webpack:///nextcloud/node_modules/stream-http/lib/capability.js","webpack:///nextcloud/node_modules/stream-http/lib/request.js","webpack:///nextcloud/node_modules/stream-http/lib/response.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/errors-browser.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_duplex.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_passthrough.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_readable.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_transform.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/_stream_writable.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/async_iterator.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/buffer_list.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/destroy.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/from-browser.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/pipeline.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/state.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/lib/internal/streams/stream-browser.js","webpack:///nextcloud/node_modules/stream-http/node_modules/readable-stream/readable-browser.js","webpack:///nextcloud/node_modules/url-parse/index.js","webpack:///nextcloud/node_modules/url/url.js","webpack:///nextcloud/node_modules/util/support/isBufferBrowser.js","webpack:///nextcloud/node_modules/util/support/types.js","webpack:///nextcloud/node_modules/util/util.js","webpack:///nextcloud/node_modules/which-typed-array/index.js","webpack:///nextcloud/node_modules/xtend/immutable.js","webpack:///nextcloud/node_modules/available-typed-arrays/index.js","webpack:///nextcloud/node_modules/@buttercup/fetch/dist/index.browser.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/ignoreAttributes.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/util.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/validator.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/XMLParser.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/node2json.js","webpack:///nextcloud/node_modules/fast-xml-parser/src/xmlparser/xmlNode.js","webpack:///nextcloud/node_modules/hot-patcher/dist/functions.js","webpack:///nextcloud/node_modules/hot-patcher/dist/patcher.js","webpack:///nextcloud/node_modules/layerr/dist/error.js","webpack:///nextcloud/node_modules/layerr/dist/global.js","webpack:///nextcloud/node_modules/layerr/dist/layerr.js","webpack:///nextcloud/node_modules/layerr/dist/tools.js","webpack:///nextcloud/node_modules/strnum/strnum.js","webpack:///nextcloud/node_modules/url-join/lib/url-join.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/basic.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/digest.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/index.js","webpack:///nextcloud/node_modules/webdav/dist/node/auth/oauth.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/arrayBuffer.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/buffer.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/env.js","webpack:///nextcloud/node_modules/webdav/dist/node/compat/patcher.js","webpack:///nextcloud/node_modules/webdav/dist/node/factory.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/copyFile.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/createDirectory.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/createStream.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/customRequest.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/deleteFile.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/directoryContents.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/exists.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/getDAVCompliance.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/getFileContents.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/getQuota.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/lock.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/moveFile.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/partialUpdateFileContents.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/putFileContents.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/search.js","webpack:///nextcloud/node_modules/webdav/dist/node/operations/stat.js","webpack:///nextcloud/node_modules/webdav/dist/node/request.js","webpack:///nextcloud/node_modules/webdav/dist/node/response.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/body.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/crypto.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/dav.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/encode.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/headers.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/merge.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/path.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/quota.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/size.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/url.js","webpack:///nextcloud/node_modules/webdav/dist/node/tools/xml.js","webpack:///nextcloud/node_modules/webdav/dist/node/types.js","webpack:///nextcloud/node_modules/webdav/node_modules/entities/dist/esm/decode-codepoint.js","webpack:///nextcloud/node_modules/webdav/node_modules/entities/dist/esm/decode.js","webpack:///nextcloud/node_modules/webdav/node_modules/entities/dist/esm/escape.js","webpack:///nextcloud/node_modules/webdav/node_modules/entities/dist/esm/index.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/assert-valid-pattern.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/ast.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/brace-expressions.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/escape.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/index.js","webpack:///nextcloud/node_modules/webdav/node_modules/minimatch/dist/esm/unescape.js","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud-ui-legacy:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nexport default getLoggerBuilder()\n\t.setApp('comments')\n\t.detectUser()\n\t.build()\n","/**\n * SPDX-FileCopyrightText: 2021 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getRequestToken, onRequestTokenUpdate } from '@nextcloud/auth'\nimport { createClient } from 'webdav'\nimport { getRootPath } from '../utils/davUtils.js'\n\n// init webdav client\nconst client = createClient(getRootPath())\n\n// set CSRF token header\n/**\n * @param token\n */\nfunction setHeaders(token) {\n\tclient.setHeaders({\n\t\t// Add this so the server knows it is an request from the browser\n\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t// Inject user auth\n\t\trequesttoken: token ?? '',\n\t})\n}\n\n// refresh headers when request token changes\nonRequestTokenUpdate(setHeaders)\nsetHeaders(getRequestToken())\n\nexport default client\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { generateRemoteUrl } from '@nextcloud/router'\n\n/**\n *\n */\nfunction getRootPath() {\n\treturn generateRemoteUrl('dav/comments')\n}\n\nexport { getRootPath }\n","/*!\n * SPDX-FileCopyrightText: 2023 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport moment from '@nextcloud/moment';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport Vue, {} from 'vue';\nimport logger from './logger.js';\nimport { getComments } from './services/GetComments.js';\nVue.use(PiniaVuePlugin);\nlet ActivityTabPluginView;\nlet ActivityTabPluginInstance;\n/**\n * Register the comments plugins for the Activity sidebar\n */\nexport function registerCommentsPlugins() {\n    window.OCA.Activity.registerSidebarAction({\n        mount: async (el, { node, reload }) => {\n            const pinia = createPinia();\n            if (!ActivityTabPluginView) {\n                const { default: ActivityCommentAction } = await import('./views/ActivityCommentAction.vue');\n                // @ts-expect-error Types are broken for Vue2\n                ActivityTabPluginView = Vue.extend(ActivityCommentAction);\n            }\n            ActivityTabPluginInstance = new ActivityTabPluginView({\n                el,\n                pinia,\n                propsData: {\n                    reloadCallback: reload,\n                    resourceId: node.fileid,\n                },\n            });\n            logger.info('Comments plugin mounted in Activity sidebar action', { node });\n        },\n        unmount: () => {\n            // destroy previous instance if available\n            if (ActivityTabPluginInstance) {\n                ActivityTabPluginInstance.$destroy();\n            }\n        },\n    });\n    window.OCA.Activity.registerSidebarEntries(async ({ node, limit, offset }) => {\n        const { data: comments } = await getComments({ resourceType: 'files', resourceId: node.fileid }, {\n            limit,\n            offset: offset ?? 0,\n        });\n        logger.debug('Loaded comments', { node, comments });\n        const { default: CommentView } = await import('./views/ActivityCommentEntry.vue');\n        // @ts-expect-error Types are broken for Vue2\n        const CommentsViewObject = Vue.extend(CommentView);\n        return comments.map((comment) => ({\n            _CommentsViewInstance: undefined,\n            timestamp: moment(comment.props?.creationDateTime).toDate().getTime(),\n            mount(element, { reload }) {\n                this._CommentsViewInstance = new CommentsViewObject({\n                    el: element,\n                    propsData: {\n                        comment,\n                        resourceId: node.fileid,\n                        reloadCallback: reload,\n                    },\n                });\n            },\n            unmount() {\n                this._CommentsViewInstance?.$destroy();\n            },\n        }));\n    });\n    window.OCA.Activity.registerSidebarFilter((activity) => activity.type !== 'comments');\n    logger.info('Comments plugin registered for Activity sidebar action');\n}\n","/*!\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport MessageReplyText from '@mdi/svg/svg/message-reply-text.svg?raw';\nimport { getCSPNonce } from '@nextcloud/auth';\nimport { registerSidebarTab } from '@nextcloud/files';\nimport { t } from '@nextcloud/l10n';\nimport wrap from '@vue/web-component-wrapper';\nimport { createPinia, PiniaVuePlugin } from 'pinia';\nimport Vue from 'vue';\nimport { registerCommentsPlugins } from './comments-activity-tab.ts';\nimport { isUsingActivityIntegration } from './utils/activity.ts';\n__webpack_nonce__ = getCSPNonce();\nconst tagName = 'comments_files-sidebar-tab';\nif (isUsingActivityIntegration()) {\n    // Do not mount own tab but mount into activity\n    window.addEventListener('DOMContentLoaded', function () {\n        registerCommentsPlugins();\n    });\n}\nelse {\n    registerSidebarTab({\n        id: 'comments',\n        displayName: t('comments', 'Comments'),\n        iconSvgInline: MessageReplyText,\n        order: 50,\n        tagName,\n        async onInit() {\n            const { default: FilesSidebarTab } = await import('./views/FilesSidebarTab.vue');\n            Vue.use(PiniaVuePlugin);\n            Vue.mixin({ pinia: createPinia() });\n            const webComponent = wrap(Vue, FilesSidebarTab);\n            // In Vue 2, wrap doesn't support disabling shadow. Disable with a hack\n            Object.defineProperty(webComponent.prototype, 'attachShadow', {\n                value() { return this; },\n            });\n            Object.defineProperty(webComponent.prototype, 'shadowRoot', {\n                get() { return this; },\n            });\n            window.customElements.define(tagName, webComponent);\n        },\n    });\n}\n","/*!\n * SPDX-FileCopyrightText: 2026 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { loadState } from '@nextcloud/initial-state';\n/**\n * Check if the comments app is using the Activity app integration for the sidebar.\n */\nexport function isUsingActivityIntegration() {\n    return loadState('comments', 'activityEnabled', false) && window.OCA?.Activity?.registerSidebarAction !== undefined;\n}\n","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\nimport { parseXML } from 'webdav';\nimport { processResponsePayload } from 'webdav/dist/node/response.js';\nimport { prepareFileFromProps } from 'webdav/dist/node/tools/dav.js';\nimport client from './DavClient.js';\nexport const DEFAULT_LIMIT = 20;\n/**\n * Retrieve the comments list\n *\n * @param data destructuring object\n * @param data.resourceType the resource type\n * @param data.resourceId the resource ID\n * @param [options] optional options for axios\n * @param [options.offset] the pagination offset\n * @param [options.limit] the pagination limit, defaults to 20\n * @param [options.datetime] optional date to query\n * @return the comments list\n */\nexport async function getComments({ resourceType, resourceId }, options) {\n    const resourcePath = ['', resourceType, resourceId].join('/');\n    const datetime = options.datetime ? `${options.datetime.toISOString()}` : '';\n    const response = await client.customRequest(resourcePath, {\n        method: 'REPORT',\n        data: `\n\t\t\t\n\t\t\t\t${options.limit ?? DEFAULT_LIMIT}\n\t\t\t\t${options.offset || 0}\n\t\t\t\t${datetime}\n\t\t\t`,\n        ...options,\n    });\n    const responseData = await response.text();\n    const result = await parseXML(responseData);\n    const stat = getDirectoryFiles(result, true);\n    // https://github.com/perry-mitchell/webdav-client/issues/339\n    return processResponsePayload(response, stat, true);\n}\n/**\n * https://github.com/perry-mitchell/webdav-client/blob/8d9694613c978ce7404e26a401c39a41f125f87f/source/operations/directoryContents.ts\n *\n * @param result\n * @param isDetailed\n */\nfunction getDirectoryFiles(result, isDetailed = false) {\n    // Extract the response items (directory contents)\n    const { multistatus: { response: responseItems }, } = result;\n    // Map all items to a consistent output structure (results)\n    return responseItems.map((item) => {\n        // Each item should contain a stat object\n        const props = item.propstat.prop;\n        return prepareFileFromProps(props, props.id.toString(), isDetailed);\n    });\n}\n","'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n  if (a instanceof RegExp) a = maybeMatch(a, str);\n  if (b instanceof RegExp) b = maybeMatch(b, str);\n\n  var r = range(a, b, str);\n\n  return r && {\n    start: r[0],\n    end: r[1],\n    pre: str.slice(0, r[0]),\n    body: str.slice(r[0] + a.length, r[1]),\n    post: str.slice(r[1] + b.length)\n  };\n}\n\nfunction maybeMatch(reg, str) {\n  var m = str.match(reg);\n  return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n  var begs, beg, left, right, result;\n  var ai = str.indexOf(a);\n  var bi = str.indexOf(b, ai + 1);\n  var i = ai;\n\n  if (ai >= 0 && bi > 0) {\n    if(a===b) {\n      return [ai, bi];\n    }\n    begs = [];\n    left = str.length;\n\n    while (i >= 0 && !result) {\n      if (i == ai) {\n        begs.push(i);\n        ai = str.indexOf(a, i + 1);\n      } else if (begs.length == 1) {\n        result = [ begs.pop(), bi ];\n      } else {\n        beg = begs.pop();\n        if (beg < left) {\n          left = beg;\n          right = bi;\n        }\n\n        bi = str.indexOf(b, i + 1);\n      }\n\n      i = ai < bi && ai >= 0 ? ai : bi;\n    }\n\n    if (begs.length) {\n      result = [ left, right ];\n    }\n  }\n\n  return result;\n}\n","/*! https://mths.be/base64 v1.0.0 by @mathias | MIT license */\n;(function(root) {\n\n\t// Detect free variables `exports`.\n\tvar freeExports = typeof exports == 'object' && exports;\n\n\t// Detect free variable `module`.\n\tvar freeModule = typeof module == 'object' && module &&\n\t\tmodule.exports == freeExports && module;\n\n\t// Detect free variable `global`, from Node.js or Browserified code, and use\n\t// it as `root`.\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (freeGlobal.global === freeGlobal || freeGlobal.window === freeGlobal) {\n\t\troot = freeGlobal;\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\tvar InvalidCharacterError = function(message) {\n\t\tthis.message = message;\n\t};\n\tInvalidCharacterError.prototype = new Error;\n\tInvalidCharacterError.prototype.name = 'InvalidCharacterError';\n\n\tvar error = function(message) {\n\t\t// Note: the error messages used throughout this file match those used by\n\t\t// the native `atob`/`btoa` implementation in Chromium.\n\t\tthrow new InvalidCharacterError(message);\n\t};\n\n\tvar TABLE = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\n\t// http://whatwg.org/html/common-microsyntaxes.html#space-character\n\tvar REGEX_SPACE_CHARACTERS = /[\\t\\n\\f\\r ]/g;\n\n\t// `decode` is designed to be fully compatible with `atob` as described in the\n\t// HTML Standard. http://whatwg.org/html/webappapis.html#dom-windowbase64-atob\n\t// The optimized base64-decoding algorithm used is based on @atk’s excellent\n\t// implementation. https://gist.github.com/atk/1020396\n\tvar decode = function(input) {\n\t\tinput = String(input)\n\t\t\t.replace(REGEX_SPACE_CHARACTERS, '');\n\t\tvar length = input.length;\n\t\tif (length % 4 == 0) {\n\t\t\tinput = input.replace(/==?$/, '');\n\t\t\tlength = input.length;\n\t\t}\n\t\tif (\n\t\t\tlength % 4 == 1 ||\n\t\t\t// http://whatwg.org/C#alphanumeric-ascii-characters\n\t\t\t/[^+a-zA-Z0-9/]/.test(input)\n\t\t) {\n\t\t\terror(\n\t\t\t\t'Invalid character: the string to be decoded is not correctly encoded.'\n\t\t\t);\n\t\t}\n\t\tvar bitCounter = 0;\n\t\tvar bitStorage;\n\t\tvar buffer;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\twhile (++position < length) {\n\t\t\tbuffer = TABLE.indexOf(input.charAt(position));\n\t\t\tbitStorage = bitCounter % 4 ? bitStorage * 64 + buffer : buffer;\n\t\t\t// Unless this is the first of a group of 4 characters…\n\t\t\tif (bitCounter++ % 4) {\n\t\t\t\t// …convert the first 8 bits to a single ASCII character.\n\t\t\t\toutput += String.fromCharCode(\n\t\t\t\t\t0xFF & bitStorage >> (-2 * bitCounter & 6)\n\t\t\t\t);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t};\n\n\t// `encode` is designed to be fully compatible with `btoa` as described in the\n\t// HTML Standard: http://whatwg.org/html/webappapis.html#dom-windowbase64-btoa\n\tvar encode = function(input) {\n\t\tinput = String(input);\n\t\tif (/[^\\0-\\xFF]/.test(input)) {\n\t\t\t// Note: no need to special-case astral symbols here, as surrogates are\n\t\t\t// matched, and the input is supposed to only contain ASCII anyway.\n\t\t\terror(\n\t\t\t\t'The string to be encoded contains characters outside of the ' +\n\t\t\t\t'Latin1 range.'\n\t\t\t);\n\t\t}\n\t\tvar padding = input.length % 3;\n\t\tvar output = '';\n\t\tvar position = -1;\n\t\tvar a;\n\t\tvar b;\n\t\tvar c;\n\t\tvar buffer;\n\t\t// Make sure any padding is handled outside of the loop.\n\t\tvar length = input.length - padding;\n\n\t\twhile (++position < length) {\n\t\t\t// Read three bytes, i.e. 24 bits.\n\t\t\ta = input.charCodeAt(position) << 16;\n\t\t\tb = input.charCodeAt(++position) << 8;\n\t\t\tc = input.charCodeAt(++position);\n\t\t\tbuffer = a + b + c;\n\t\t\t// Turn the 24 bits into four chunks of 6 bits each, and append the\n\t\t\t// matching character for each of them to the output.\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 18 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 12 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer >> 6 & 0x3F) +\n\t\t\t\tTABLE.charAt(buffer & 0x3F)\n\t\t\t);\n\t\t}\n\n\t\tif (padding == 2) {\n\t\t\ta = input.charCodeAt(position) << 8;\n\t\t\tb = input.charCodeAt(++position);\n\t\t\tbuffer = a + b;\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 10) +\n\t\t\t\tTABLE.charAt((buffer >> 4) & 0x3F) +\n\t\t\t\tTABLE.charAt((buffer << 2) & 0x3F) +\n\t\t\t\t'='\n\t\t\t);\n\t\t} else if (padding == 1) {\n\t\t\tbuffer = input.charCodeAt(position);\n\t\t\toutput += (\n\t\t\t\tTABLE.charAt(buffer >> 2) +\n\t\t\t\tTABLE.charAt((buffer << 4) & 0x3F) +\n\t\t\t\t'=='\n\t\t\t);\n\t\t}\n\n\t\treturn output;\n\t};\n\n\tvar base64 = {\n\t\t'encode': encode,\n\t\t'decode': decode,\n\t\t'version': '1.0.0'\n\t};\n\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine(function() {\n\t\t\treturn base64;\n\t\t});\n\t}\telse if (freeExports && !freeExports.nodeType) {\n\t\tif (freeModule) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = base64;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (var key in base64) {\n\t\t\t\tbase64.hasOwnProperty(key) && (freeExports[key] = base64[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.base64 = base64;\n\t}\n\n}(this));\n","var balanced = require('balanced-match');\n\nmodule.exports = expandTop;\n\nvar escSlash = '\\0SLASH'+Math.random()+'\\0';\nvar escOpen = '\\0OPEN'+Math.random()+'\\0';\nvar escClose = '\\0CLOSE'+Math.random()+'\\0';\nvar escComma = '\\0COMMA'+Math.random()+'\\0';\nvar escPeriod = '\\0PERIOD'+Math.random()+'\\0';\n\nfunction numeric(str) {\n  return parseInt(str, 10) == str\n    ? parseInt(str, 10)\n    : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n  return str.split('\\\\\\\\').join(escSlash)\n            .split('\\\\{').join(escOpen)\n            .split('\\\\}').join(escClose)\n            .split('\\\\,').join(escComma)\n            .split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n  return str.split(escSlash).join('\\\\')\n            .split(escOpen).join('{')\n            .split(escClose).join('}')\n            .split(escComma).join(',')\n            .split(escPeriod).join('.');\n}\n\n\n// Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\nfunction parseCommaParts(str) {\n  if (!str)\n    return [''];\n\n  var parts = [];\n  var m = balanced('{', '}', str);\n\n  if (!m)\n    return str.split(',');\n\n  var pre = m.pre;\n  var body = m.body;\n  var post = m.post;\n  var p = pre.split(',');\n\n  p[p.length-1] += '{' + body + '}';\n  var postParts = parseCommaParts(post);\n  if (post.length) {\n    p[p.length-1] += postParts.shift();\n    p.push.apply(p, postParts);\n  }\n\n  parts.push.apply(parts, p);\n\n  return parts;\n}\n\nfunction expandTop(str) {\n  if (!str)\n    return [];\n\n  // I don't know why Bash 4.3 does this, but it does.\n  // Anything starting with {} will have the first two bytes preserved\n  // but *only* at the top level, so {},a}b will not expand to anything,\n  // but a{},b}c will be expanded to [a}c,abc].\n  // One could argue that this is a bug in Bash, but since the goal of\n  // this module is to match Bash's rules, we escape a leading {}\n  if (str.substr(0, 2) === '{}') {\n    str = '\\\\{\\\\}' + str.substr(2);\n  }\n\n  return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction embrace(str) {\n  return '{' + str + '}';\n}\nfunction isPadded(el) {\n  return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n  return i <= y;\n}\nfunction gte(i, y) {\n  return i >= y;\n}\n\nfunction expand(str, isTop) {\n  var expansions = [];\n\n  var m = balanced('{', '}', str);\n  if (!m) return [str];\n\n  // no need to expand pre, since it is guaranteed to be free of brace-sets\n  var pre = m.pre;\n  var post = m.post.length\n    ? expand(m.post, false)\n    : [''];\n\n  if (/\\$$/.test(m.pre)) {    \n    for (var k = 0; k < post.length; k++) {\n      var expansion = pre+ '{' + m.body + '}' + post[k];\n      expansions.push(expansion);\n    }\n  } else {\n    var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n    var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n    var isSequence = isNumericSequence || isAlphaSequence;\n    var isOptions = m.body.indexOf(',') >= 0;\n    if (!isSequence && !isOptions) {\n      // {a},b}\n      if (m.post.match(/,(?!,).*\\}/)) {\n        str = m.pre + '{' + m.body + escClose + m.post;\n        return expand(str);\n      }\n      return [str];\n    }\n\n    var n;\n    if (isSequence) {\n      n = m.body.split(/\\.\\./);\n    } else {\n      n = parseCommaParts(m.body);\n      if (n.length === 1) {\n        // x{{a,b}}y ==> x{a}y x{b}y\n        n = expand(n[0], false).map(embrace);\n        if (n.length === 1) {\n          return post.map(function(p) {\n            return m.pre + n[0] + p;\n          });\n        }\n      }\n    }\n\n    // at this point, n is the parts, and we know it's not a comma set\n    // with a single entry.\n    var N;\n\n    if (isSequence) {\n      var x = numeric(n[0]);\n      var y = numeric(n[1]);\n      var width = Math.max(n[0].length, n[1].length)\n      var incr = n.length == 3\n        ? Math.abs(numeric(n[2]))\n        : 1;\n      var test = lte;\n      var reverse = y < x;\n      if (reverse) {\n        incr *= -1;\n        test = gte;\n      }\n      var pad = n.some(isPadded);\n\n      N = [];\n\n      for (var i = x; test(i, y); i += incr) {\n        var c;\n        if (isAlphaSequence) {\n          c = String.fromCharCode(i);\n          if (c === '\\\\')\n            c = '';\n        } else {\n          c = String(i);\n          if (pad) {\n            var need = width - c.length;\n            if (need > 0) {\n              var z = new Array(need + 1).join('0');\n              if (i < 0)\n                c = '-' + z + c.slice(1);\n              else\n                c = z + c;\n            }\n          }\n        }\n        N.push(c);\n      }\n    } else {\n      N = [];\n\n      for (var j = 0; j < n.length; j++) {\n        N.push.apply(N, expand(n[j], false));\n      }\n    }\n\n    for (var j = 0; j < N.length; j++) {\n      for (var k = 0; k < post.length; k++) {\n        var expansion = pre + N[j] + post[k];\n        if (!isTop || isSequence || expansion)\n          expansions.push(expansion);\n      }\n    }\n  }\n\n  return expansions;\n}\n\n","module.exports = {\n  \"100\": \"Continue\",\n  \"101\": \"Switching Protocols\",\n  \"102\": \"Processing\",\n  \"200\": \"OK\",\n  \"201\": \"Created\",\n  \"202\": \"Accepted\",\n  \"203\": \"Non-Authoritative Information\",\n  \"204\": \"No Content\",\n  \"205\": \"Reset Content\",\n  \"206\": \"Partial Content\",\n  \"207\": \"Multi-Status\",\n  \"208\": \"Already Reported\",\n  \"226\": \"IM Used\",\n  \"300\": \"Multiple Choices\",\n  \"301\": \"Moved Permanently\",\n  \"302\": \"Found\",\n  \"303\": \"See Other\",\n  \"304\": \"Not Modified\",\n  \"305\": \"Use Proxy\",\n  \"307\": \"Temporary Redirect\",\n  \"308\": \"Permanent Redirect\",\n  \"400\": \"Bad Request\",\n  \"401\": \"Unauthorized\",\n  \"402\": \"Payment Required\",\n  \"403\": \"Forbidden\",\n  \"404\": \"Not Found\",\n  \"405\": \"Method Not Allowed\",\n  \"406\": \"Not Acceptable\",\n  \"407\": \"Proxy Authentication Required\",\n  \"408\": \"Request Timeout\",\n  \"409\": \"Conflict\",\n  \"410\": \"Gone\",\n  \"411\": \"Length Required\",\n  \"412\": \"Precondition Failed\",\n  \"413\": \"Payload Too Large\",\n  \"414\": \"URI Too Long\",\n  \"415\": \"Unsupported Media Type\",\n  \"416\": \"Range Not Satisfiable\",\n  \"417\": \"Expectation Failed\",\n  \"418\": \"I'm a teapot\",\n  \"421\": \"Misdirected Request\",\n  \"422\": \"Unprocessable Entity\",\n  \"423\": \"Locked\",\n  \"424\": \"Failed Dependency\",\n  \"425\": \"Unordered Collection\",\n  \"426\": \"Upgrade Required\",\n  \"428\": \"Precondition Required\",\n  \"429\": \"Too Many Requests\",\n  \"431\": \"Request Header Fields Too Large\",\n  \"451\": \"Unavailable For Legal Reasons\",\n  \"500\": \"Internal Server Error\",\n  \"501\": \"Not Implemented\",\n  \"502\": \"Bad Gateway\",\n  \"503\": \"Service Unavailable\",\n  \"504\": \"Gateway Timeout\",\n  \"505\": \"HTTP Version Not Supported\",\n  \"506\": \"Variant Also Negotiates\",\n  \"507\": \"Insufficient Storage\",\n  \"508\": \"Loop Detected\",\n  \"509\": \"Bandwidth Limit Exceeded\",\n  \"510\": \"Not Extended\",\n  \"511\": \"Network Authentication Required\"\n}\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\n * Calculate the byte lengths for utf8 encoded strings.\n */\nfunction byteLength(str) {\n    if (!str) {\n        return 0;\n    }\n    str = str.toString();\n    var len = str.length;\n    for (var i = str.length; i--;) {\n        var code = str.charCodeAt(i);\n        if (0xdc00 <= code && code <= 0xdfff) {\n            i--;\n        }\n        if (0x7f < code && code <= 0x7ff) {\n            len++;\n        }\n        else if (0x7ff < code && code <= 0xffff) {\n            len += 2;\n        }\n    }\n    return len;\n}\nexports.byteLength = byteLength;\n//# sourceMappingURL=index.js.map","'use strict';\n\nvar bind = require('function-bind');\n\nvar $apply = require('./functionApply');\nvar $call = require('./functionCall');\nvar $reflectApply = require('./reflectApply');\n\n/** @type {import('./actualApply')} */\nmodule.exports = $reflectApply || bind.call($call, $apply);\n","'use strict';\n\nvar bind = require('function-bind');\nvar $apply = require('./functionApply');\nvar actualApply = require('./actualApply');\n\n/** @type {import('./applyBind')} */\nmodule.exports = function applyBind() {\n\treturn actualApply(bind, $apply, arguments);\n};\n","'use strict';\n\n/** @type {import('./functionApply')} */\nmodule.exports = Function.prototype.apply;\n","'use strict';\n\n/** @type {import('./functionCall')} */\nmodule.exports = Function.prototype.call;\n","'use strict';\n\nvar bind = require('function-bind');\nvar $TypeError = require('es-errors/type');\n\nvar $call = require('./functionCall');\nvar $actualApply = require('./actualApply');\n\n/** @type {(args: [Function, thisArg?: unknown, ...args: unknown[]]) => Function} TODO FIXME, find a way to use import('.') */\nmodule.exports = function callBindBasic(args) {\n\tif (args.length < 1 || typeof args[0] !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\treturn $actualApply(bind, $call, args);\n};\n","'use strict';\n\n/** @type {import('./reflectApply')} */\nmodule.exports = typeof Reflect !== 'undefined' && Reflect && Reflect.apply;\n","'use strict';\n\nvar setFunctionLength = require('set-function-length');\n\nvar $defineProperty = require('es-define-property');\n\nvar callBindBasic = require('call-bind-apply-helpers');\nvar applyBind = require('call-bind-apply-helpers/applyBind');\n\nmodule.exports = function callBind(originalFunction) {\n\tvar func = callBindBasic(arguments);\n\tvar adjustedLength = originalFunction.length - (arguments.length - 1);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + (adjustedLength > 0 ? adjustedLength : 0),\n\t\ttrue\n\t);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBindBasic = require('call-bind-apply-helpers');\n\n/** @type {(thisArg: string, searchString: string, position?: number) => number} */\nvar $indexOf = callBindBasic([GetIntrinsic('%String.prototype.indexOf%')]);\n\n/** @type {import('.')} */\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\t/* eslint no-extra-parens: 0 */\n\n\tvar intrinsic = /** @type {(this: unknown, ...args: unknown[]) => unknown} */ (GetIntrinsic(name, !!allowMissing));\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBindBasic(/** @type {const} */ ([intrinsic]));\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar callBind = require('call-bind-apply-helpers');\nvar gOPD = require('gopd');\n\nvar hasProtoAccessor;\ntry {\n\t// eslint-disable-next-line no-extra-parens, no-proto\n\thasProtoAccessor = /** @type {{ __proto__?: typeof Array.prototype }} */ ([]).__proto__ === Array.prototype;\n} catch (e) {\n\tif (!e || typeof e !== 'object' || !('code' in e) || e.code !== 'ERR_PROTO_ACCESS') {\n\t\tthrow e;\n\t}\n}\n\n// eslint-disable-next-line no-extra-parens\nvar desc = !!hasProtoAccessor && gOPD && gOPD(Object.prototype, /** @type {keyof typeof Object.prototype} */ ('__proto__'));\n\nvar $Object = Object;\nvar $getPrototypeOf = $Object.getPrototypeOf;\n\n/** @type {import('./get')} */\nmodule.exports = desc && typeof desc.get === 'function'\n\t? callBind([desc.get])\n\t: typeof $getPrototypeOf === 'function'\n\t\t? /** @type {import('./get')} */ function getDunder(value) {\n\t\t\t// eslint-disable-next-line eqeqeq\n\t\t\treturn $getPrototypeOf(value == null ? value : $Object(value));\n\t\t}\n\t\t: false;\n","'use strict';\n\n/** @type {import('.')} */\nvar $defineProperty = Object.defineProperty || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Object;\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\n/** @type {(arr: A, iterator: (this: This | void, value: A[number], index: number, arr: A) => void, receiver: This | undefined) => void} */\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n    for (var i = 0, len = array.length; i < len; i++) {\n        if (hasOwnProperty.call(array, i)) {\n            if (receiver == null) {\n                iterator(array[i], i, array);\n            } else {\n                iterator.call(receiver, array[i], i, array);\n            }\n        }\n    }\n};\n\n/** @type {(string: S, iterator: (this: This | void, value: S[number], index: number, string: S) => void, receiver: This | undefined) => void} */\nvar forEachString = function forEachString(string, iterator, receiver) {\n    for (var i = 0, len = string.length; i < len; i++) {\n        // no such thing as a sparse string.\n        if (receiver == null) {\n            iterator(string.charAt(i), i, string);\n        } else {\n            iterator.call(receiver, string.charAt(i), i, string);\n        }\n    }\n};\n\n/** @type {(obj: O, iterator: (this: This | void, value: O[keyof O], index: keyof O, obj: O) => void, receiver: This | undefined) => void} */\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n    for (var k in object) {\n        if (hasOwnProperty.call(object, k)) {\n            if (receiver == null) {\n                iterator(object[k], k, object);\n            } else {\n                iterator.call(receiver, object[k], k, object);\n            }\n        }\n    }\n};\n\n/** @type {(x: unknown) => x is readonly unknown[]} */\nfunction isArray(x) {\n    return toStr.call(x) === '[object Array]';\n}\n\n/** @type {import('.')._internal} */\nmodule.exports = function forEach(list, iterator, thisArg) {\n    if (!isCallable(iterator)) {\n        throw new TypeError('iterator must be a function');\n    }\n\n    var receiver;\n    if (arguments.length >= 3) {\n        receiver = thisArg;\n    }\n\n    if (isArray(list)) {\n        forEachArray(list, iterator, receiver);\n    } else if (typeof list === 'string') {\n        forEachString(list, iterator, receiver);\n    } else {\n        forEachObject(list, iterator, receiver);\n    }\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n    var arr = [];\n\n    for (var i = 0; i < a.length; i += 1) {\n        arr[i] = a[i];\n    }\n    for (var j = 0; j < b.length; j += 1) {\n        arr[j + a.length] = b[j];\n    }\n\n    return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n    var arr = [];\n    for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n        arr[j] = arrLike[i];\n    }\n    return arr;\n};\n\nvar joiny = function (arr, joiner) {\n    var str = '';\n    for (var i = 0; i < arr.length; i += 1) {\n        str += arr[i];\n        if (i + 1 < arr.length) {\n            str += joiner;\n        }\n    }\n    return str;\n};\n\nmodule.exports = function bind(that) {\n    var target = this;\n    if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n        throw new TypeError(ERROR_MESSAGE + target);\n    }\n    var args = slicy(arguments, 1);\n\n    var bound;\n    var binder = function () {\n        if (this instanceof bound) {\n            var result = target.apply(\n                this,\n                concatty(args, arguments)\n            );\n            if (Object(result) === result) {\n                return result;\n            }\n            return this;\n        }\n        return target.apply(\n            that,\n            concatty(args, arguments)\n        );\n\n    };\n\n    var boundLength = max(0, target.length - args.length);\n    var boundArgs = [];\n    for (var i = 0; i < boundLength; i++) {\n        boundArgs[i] = '$' + i;\n    }\n\n    bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n    if (target.prototype) {\n        var Empty = function Empty() {};\n        Empty.prototype = target.prototype;\n        bound.prototype = new Empty();\n        Empty.prototype = null;\n    }\n\n    return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\n// eslint-disable-next-line no-extra-parens, no-empty-function\nconst cached = /** @type {GeneratorFunctionConstructor} */ (function* () {}.constructor);\n\n/** @type {import('.')} */\nmodule.exports = () => cached;\n\n","'use strict';\n\nvar undefined;\n\nvar $Object = require('es-object-atoms');\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar abs = require('math-intrinsics/abs');\nvar floor = require('math-intrinsics/floor');\nvar max = require('math-intrinsics/max');\nvar min = require('math-intrinsics/min');\nvar pow = require('math-intrinsics/pow');\nvar round = require('math-intrinsics/round');\nvar sign = require('math-intrinsics/sign');\n\nvar $Function = Function;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = require('gopd');\nvar $defineProperty = require('es-define-property');\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\n\nvar getProto = require('get-proto');\nvar $ObjectGPO = require('get-proto/Object.getPrototypeOf');\nvar $ReflectGPO = require('get-proto/Reflect.getPrototypeOf');\n\nvar $apply = require('call-bind-apply-helpers/functionApply');\nvar $call = require('call-bind-apply-helpers/functionCall');\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t__proto__: null,\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': $Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': $EvalError,\n\t'%Float16Array%': typeof Float16Array === 'undefined' ? undefined : Float16Array,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': $Object,\n\t'%Object.getOwnPropertyDescriptor%': $gOPD,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': $RangeError,\n\t'%ReferenceError%': $ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': $URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet,\n\n\t'%Function.prototype.call%': $call,\n\t'%Function.prototype.apply%': $apply,\n\t'%Object.defineProperty%': $defineProperty,\n\t'%Object.getPrototypeOf%': $ObjectGPO,\n\t'%Math.abs%': abs,\n\t'%Math.floor%': floor,\n\t'%Math.max%': max,\n\t'%Math.min%': min,\n\t'%Math.pow%': pow,\n\t'%Math.round%': round,\n\t'%Math.sign%': sign,\n\t'%Reflect.getPrototypeOf%': $ReflectGPO\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t__proto__: null,\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call($call, Array.prototype.concat);\nvar $spliceApply = bind.call($apply, Array.prototype.splice);\nvar $replace = bind.call($call, String.prototype.replace);\nvar $strSlice = bind.call($call, String.prototype.slice);\nvar $exec = bind.call($call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","'use strict';\n\nvar $Object = require('es-object-atoms');\n\n/** @type {import('./Object.getPrototypeOf')} */\nmodule.exports = $Object.getPrototypeOf || null;\n","'use strict';\n\n/** @type {import('./Reflect.getPrototypeOf')} */\nmodule.exports = (typeof Reflect !== 'undefined' && Reflect.getPrototypeOf) || null;\n","'use strict';\n\nvar reflectGetProto = require('./Reflect.getPrototypeOf');\nvar originalGetProto = require('./Object.getPrototypeOf');\n\nvar getDunderProto = require('dunder-proto/get');\n\n/** @type {import('.')} */\nmodule.exports = reflectGetProto\n\t? function getProto(O) {\n\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\treturn reflectGetProto(O);\n\t}\n\t: originalGetProto\n\t\t? function getProto(O) {\n\t\t\tif (!O || (typeof O !== 'object' && typeof O !== 'function')) {\n\t\t\t\tthrow new TypeError('getProto: not an object');\n\t\t\t}\n\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\treturn originalGetProto(O);\n\t\t}\n\t\t: getDunderProto\n\t\t\t? function getProto(O) {\n\t\t\t\t// @ts-expect-error TS can't narrow inside a closure, for some reason\n\t\t\t\treturn getDunderProto(O);\n\t\t\t}\n\t\t\t: null;\n","'use strict';\n\n/** @type {import('./gOPD')} */\nmodule.exports = Object.getOwnPropertyDescriptor;\n","'use strict';\n\n/** @type {import('.')} */\nvar $gOPD = require('./gOPD');\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!$defineProperty) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\n/** @type {import('./shams')} */\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\t/** @type {{ [k in symbol]?: unknown }} */\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (var _ in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {PropertyDescriptor} */ (Object.getOwnPropertyDescriptor(obj, sym));\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar hasSymbols = require('has-symbols/shams');\n\n/** @type {import('.')} */\nmodule.exports = function hasToStringTagShams() {\n\treturn hasSymbols() && !!Symbol.toStringTag;\n};\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","var http = require('http')\nvar url = require('url')\n\nvar https = module.exports\n\nfor (var key in http) {\n  if (http.hasOwnProperty(key)) https[key] = http[key]\n}\n\nhttps.request = function (params, cb) {\n  params = validateParams(params)\n  return http.request.call(this, params, cb)\n}\n\nhttps.get = function (params, cb) {\n  params = validateParams(params)\n  return http.get.call(this, params, cb)\n}\n\nfunction validateParams (params) {\n  if (typeof params === 'string') {\n    params = url.parse(params)\n  }\n  if (!params.protocol) {\n    params.protocol = 'https:'\n  }\n  if (params.protocol !== 'https:') {\n    throw new Error('Protocol \"' + params.protocol + '\" not supported. Expected \"https:\"')\n  }\n  return params\n}\n","'use strict';\n\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar callBound = require('call-bound');\n\nvar $toString = callBound('Object.prototype.toString');\n\n/** @type {import('.')} */\nvar isStandardArguments = function isArguments(value) {\n\tif (\n\t\thasToStringTag\n\t\t&& value\n\t\t&& typeof value === 'object'\n\t\t&& Symbol.toStringTag in value\n\t) {\n\t\treturn false;\n\t}\n\treturn $toString(value) === '[object Arguments]';\n};\n\n/** @type {import('.')} */\nvar isLegacyArguments = function isArguments(value) {\n\tif (isStandardArguments(value)) {\n\t\treturn true;\n\t}\n\treturn value !== null\n\t\t&& typeof value === 'object'\n\t\t&& 'length' in value\n\t\t&& typeof value.length === 'number'\n\t\t&& value.length >= 0\n\t\t&& $toString(value) !== '[object Array]'\n\t\t&& 'callee' in value\n\t\t&& $toString(value.callee) === '[object Function]';\n};\n\nvar supportsStandardArguments = (function () {\n\treturn isStandardArguments(arguments);\n}());\n\n// @ts-expect-error TODO make this not error\nisStandardArguments.isLegacyArguments = isLegacyArguments; // for tests\n\n/** @type {import('.')} */\nmodule.exports = supportsStandardArguments ? isStandardArguments : isLegacyArguments;\n","'use strict';\n\nvar fnToStr = Function.prototype.toString;\nvar reflectApply = typeof Reflect === 'object' && Reflect !== null && Reflect.apply;\nvar badArrayLike;\nvar isCallableMarker;\nif (typeof reflectApply === 'function' && typeof Object.defineProperty === 'function') {\n\ttry {\n\t\tbadArrayLike = Object.defineProperty({}, 'length', {\n\t\t\tget: function () {\n\t\t\t\tthrow isCallableMarker;\n\t\t\t}\n\t\t});\n\t\tisCallableMarker = {};\n\t\t// eslint-disable-next-line no-throw-literal\n\t\treflectApply(function () { throw 42; }, null, badArrayLike);\n\t} catch (_) {\n\t\tif (_ !== isCallableMarker) {\n\t\t\treflectApply = null;\n\t\t}\n\t}\n} else {\n\treflectApply = null;\n}\n\nvar constructorRegex = /^\\s*class\\b/;\nvar isES6ClassFn = function isES6ClassFunction(value) {\n\ttry {\n\t\tvar fnStr = fnToStr.call(value);\n\t\treturn constructorRegex.test(fnStr);\n\t} catch (e) {\n\t\treturn false; // not a function\n\t}\n};\n\nvar tryFunctionObject = function tryFunctionToStr(value) {\n\ttry {\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tfnToStr.call(value);\n\t\treturn true;\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\nvar toStr = Object.prototype.toString;\nvar objectClass = '[object Object]';\nvar fnClass = '[object Function]';\nvar genClass = '[object GeneratorFunction]';\nvar ddaClass = '[object HTMLAllCollection]'; // IE 11\nvar ddaClass2 = '[object HTML document.all class]';\nvar ddaClass3 = '[object HTMLCollection]'; // IE 9-10\nvar hasToStringTag = typeof Symbol === 'function' && !!Symbol.toStringTag; // better: use `has-tostringtag`\n\nvar isIE68 = !(0 in [,]); // eslint-disable-line no-sparse-arrays, comma-spacing\n\nvar isDDA = function isDocumentDotAll() { return false; };\nif (typeof document === 'object') {\n\t// Firefox 3 canonicalizes DDA to undefined when it's not accessed directly\n\tvar all = document.all;\n\tif (toStr.call(all) === toStr.call(document.all)) {\n\t\tisDDA = function isDocumentDotAll(value) {\n\t\t\t/* globals document: false */\n\t\t\t// in IE 6-8, typeof document.all is \"object\" and it's truthy\n\t\t\tif ((isIE68 || !value) && (typeof value === 'undefined' || typeof value === 'object')) {\n\t\t\t\ttry {\n\t\t\t\t\tvar str = toStr.call(value);\n\t\t\t\t\treturn (\n\t\t\t\t\t\tstr === ddaClass\n\t\t\t\t\t\t|| str === ddaClass2\n\t\t\t\t\t\t|| str === ddaClass3 // opera 12.16\n\t\t\t\t\t\t|| str === objectClass // IE 6-8\n\t\t\t\t\t) && value('') == null; // eslint-disable-line eqeqeq\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t\treturn false;\n\t\t};\n\t}\n}\n\nmodule.exports = reflectApply\n\t? function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\ttry {\n\t\t\treflectApply(value, null, badArrayLike);\n\t\t} catch (e) {\n\t\t\tif (e !== isCallableMarker) { return false; }\n\t\t}\n\t\treturn !isES6ClassFn(value) && tryFunctionObject(value);\n\t}\n\t: function isCallable(value) {\n\t\tif (isDDA(value)) { return true; }\n\t\tif (!value) { return false; }\n\t\tif (typeof value !== 'function' && typeof value !== 'object') { return false; }\n\t\tif (hasToStringTag) { return tryFunctionObject(value); }\n\t\tif (isES6ClassFn(value)) { return false; }\n\t\tvar strClass = toStr.call(value);\n\t\tif (strClass !== fnClass && strClass !== genClass && !(/^\\[object HTML/).test(strClass)) { return false; }\n\t\treturn tryFunctionObject(value);\n\t};\n","'use strict';\n\nvar callBound = require('call-bound');\nvar safeRegexTest = require('safe-regex-test');\nvar isFnRegex = safeRegexTest(/^\\s*(?:function)?\\*/);\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar getProto = require('get-proto');\n\nvar toStr = callBound('Object.prototype.toString');\nvar fnToStr = callBound('Function.prototype.toString');\n\nvar getGeneratorFunction = require('generator-function');\n\n/** @type {import('.')} */\nmodule.exports = function isGeneratorFunction(fn) {\n\tif (typeof fn !== 'function') {\n\t\treturn false;\n\t}\n\tif (isFnRegex(fnToStr(fn))) {\n\t\treturn true;\n\t}\n\tif (!hasToStringTag) {\n\t\tvar str = toStr(fn);\n\t\treturn str === '[object GeneratorFunction]';\n\t}\n\tif (!getProto) {\n\t\treturn false;\n\t}\n\tvar GeneratorFunction = getGeneratorFunction();\n\treturn GeneratorFunction && getProto(fn) === GeneratorFunction.prototype;\n};\n","'use strict';\n\nvar callBound = require('call-bound');\nvar hasToStringTag = require('has-tostringtag/shams')();\nvar hasOwn = require('hasown');\nvar gOPD = require('gopd');\n\n/** @type {import('.')} */\nvar fn;\n\nif (hasToStringTag) {\n\t/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */\n\tvar $exec = callBound('RegExp.prototype.exec');\n\t/** @type {object} */\n\tvar isRegexMarker = {};\n\n\tvar throwRegexMarker = function () {\n\t\tthrow isRegexMarker;\n\t};\n\t/** @type {{ toString(): never, valueOf(): never, [Symbol.toPrimitive]?(): never }} */\n\tvar badStringifier = {\n\t\ttoString: throwRegexMarker,\n\t\tvalueOf: throwRegexMarker\n\t};\n\n\tif (typeof Symbol.toPrimitive === 'symbol') {\n\t\tbadStringifier[Symbol.toPrimitive] = throwRegexMarker;\n\t}\n\n\t/** @type {import('.')} */\n\t// @ts-expect-error TS can't figure out that the $exec call always throws\n\t// eslint-disable-next-line consistent-return\n\tfn = function isRegex(value) {\n\t\tif (!value || typeof value !== 'object') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// eslint-disable-next-line no-extra-parens\n\t\tvar descriptor = /** @type {NonNullable} */ (gOPD)(/** @type {{ lastIndex?: unknown }} */ (value), 'lastIndex');\n\t\tvar hasLastIndexDataProperty = descriptor && hasOwn(descriptor, 'value');\n\t\tif (!hasLastIndexDataProperty) {\n\t\t\treturn false;\n\t\t}\n\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t$exec(value, /** @type {string} */ (/** @type {unknown} */ (badStringifier)));\n\t\t} catch (e) {\n\t\t\treturn e === isRegexMarker;\n\t\t}\n\t};\n} else {\n\t/** @type {(receiver: ThisParameterType, ...args: Parameters) => ReturnType} */\n\tvar $toString = callBound('Object.prototype.toString');\n\t/** @const @type {'[object RegExp]'} */\n\tvar regexClass = '[object RegExp]';\n\n\t/** @type {import('.')} */\n\tfn = function isRegex(value) {\n\t\t// In older browsers, typeof regex incorrectly returns 'function'\n\t\tif (!value || (typeof value !== 'object' && typeof value !== 'function')) {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn $toString(value) === regexClass;\n\t};\n}\n\nmodule.exports = fn;\n","'use strict';\n\nvar whichTypedArray = require('which-typed-array');\n\n/** @type {import('.')} */\nmodule.exports = function isTypedArray(value) {\n\treturn !!whichTypedArray(value);\n};\n","'use strict';\n\n/** @type {import('./abs')} */\nmodule.exports = Math.abs;\n","'use strict';\n\n/** @type {import('./floor')} */\nmodule.exports = Math.floor;\n","'use strict';\n\n/** @type {import('./isNaN')} */\nmodule.exports = Number.isNaN || function isNaN(a) {\n\treturn a !== a;\n};\n","'use strict';\n\n/** @type {import('./max')} */\nmodule.exports = Math.max;\n","'use strict';\n\n/** @type {import('./min')} */\nmodule.exports = Math.min;\n","'use strict';\n\n/** @type {import('./pow')} */\nmodule.exports = Math.pow;\n","'use strict';\n\n/** @type {import('./round')} */\nmodule.exports = Math.round;\n","'use strict';\n\nvar $isNaN = require('./isNaN');\n\n/** @type {import('./sign')} */\nmodule.exports = function sign(number) {\n\tif ($isNaN(number) || number === 0) {\n\t\treturn number;\n\t}\n\treturn number < 0 ? -1 : +1;\n};\n","/**\n* @license nested-property https://github.com/cosmosio/nested-property\n*\n* The MIT License (MIT)\n*\n* Copyright (c) 2014-2020 Olivier Scherrer \n*/\n\"use strict\";\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Date.prototype.toString.call(Reflect.construct(Date, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nvar ARRAY_WILDCARD = \"+\";\nvar PATH_DELIMITER = \".\";\n\nvar ObjectPrototypeMutationError = /*#__PURE__*/function (_Error) {\n  _inherits(ObjectPrototypeMutationError, _Error);\n\n  function ObjectPrototypeMutationError(params) {\n    var _this;\n\n    _classCallCheck(this, ObjectPrototypeMutationError);\n\n    _this = _possibleConstructorReturn(this, _getPrototypeOf(ObjectPrototypeMutationError).call(this, params));\n    _this.name = \"ObjectPrototypeMutationError\";\n    return _this;\n  }\n\n  return ObjectPrototypeMutationError;\n}(_wrapNativeSuper(Error));\n\nmodule.exports = {\n  set: setNestedProperty,\n  get: getNestedProperty,\n  has: hasNestedProperty,\n  hasOwn: function hasOwn(object, property, options) {\n    return this.has(object, property, options || {\n      own: true\n    });\n  },\n  isIn: isInNestedProperty,\n  ObjectPrototypeMutationError: ObjectPrototypeMutationError\n};\n/**\n * Get the property of an object nested in one or more objects or array\n * Given an object such as a.b.c.d = 5, getNestedProperty(a, \"b.c.d\") will return 5.\n * It also works through arrays. Given a nested array such as a[0].b = 5, getNestedProperty(a, \"0.b\") will return 5.\n * For accessing nested properties through all items in an array, you may use the array wildcard \"+\".\n * For instance, getNestedProperty([{a:1}, {a:2}, {a:3}], \"+.a\") will return [1, 2, 3]\n * @param {Object} object the object to get the property from\n * @param {String} property the path to the property as a string\n * @returns the object or the the property value if found\n */\n\nfunction getNestedProperty(object, property) {\n  if (_typeof(object) != \"object\" || object === null) {\n    return object;\n  }\n\n  if (typeof property == \"undefined\") {\n    return object;\n  }\n\n  if (typeof property == \"number\") {\n    return object[property];\n  }\n\n  try {\n    return traverse(object, property, function _getNestedProperty(currentObject, currentProperty) {\n      return currentObject[currentProperty];\n    });\n  } catch (err) {\n    return object;\n  }\n}\n/**\n * Tell if a nested object has a given property (or array a given index)\n * given an object such as a.b.c.d = 5, hasNestedProperty(a, \"b.c.d\") will return true.\n * It also returns true if the property is in the prototype chain.\n * @param {Object} object the object to get the property from\n * @param {String} property the path to the property as a string\n * @param {Object} options:\n *  - own: set to reject properties from the prototype\n * @returns true if has (property in object), false otherwise\n */\n\n\nfunction hasNestedProperty(object, property) {\n  var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n  if (_typeof(object) != \"object\" || object === null) {\n    return false;\n  }\n\n  if (typeof property == \"undefined\") {\n    return false;\n  }\n\n  if (typeof property == \"number\") {\n    return property in object;\n  }\n\n  try {\n    var has = false;\n    traverse(object, property, function _hasNestedProperty(currentObject, currentProperty, segments, index) {\n      if (isLastSegment(segments, index)) {\n        if (options.own) {\n          has = currentObject.hasOwnProperty(currentProperty);\n        } else {\n          has = currentProperty in currentObject;\n        }\n      } else {\n        return currentObject && currentObject[currentProperty];\n      }\n    });\n    return has;\n  } catch (err) {\n    return false;\n  }\n}\n/**\n * Set the property of an object nested in one or more objects\n * If the property doesn't exist, it gets created.\n * @param {Object} object\n * @param {String} property\n * @param value the value to set\n * @returns object if no assignment was made or the value if the assignment was made\n */\n\n\nfunction setNestedProperty(object, property, value) {\n  if (_typeof(object) != \"object\" || object === null) {\n    return object;\n  }\n\n  if (typeof property == \"undefined\") {\n    return object;\n  }\n\n  if (typeof property == \"number\") {\n    object[property] = value;\n    return object[property];\n  }\n\n  try {\n    return traverse(object, property, function _setNestedProperty(currentObject, currentProperty, segments, index) {\n      if (currentObject === Reflect.getPrototypeOf({})) {\n        throw new ObjectPrototypeMutationError(\"Attempting to mutate Object.prototype\");\n      }\n\n      if (!currentObject[currentProperty]) {\n        var nextPropIsNumber = Number.isInteger(Number(segments[index + 1]));\n        var nextPropIsArrayWildcard = segments[index + 1] === ARRAY_WILDCARD;\n\n        if (nextPropIsNumber || nextPropIsArrayWildcard) {\n          currentObject[currentProperty] = [];\n        } else {\n          currentObject[currentProperty] = {};\n        }\n      }\n\n      if (isLastSegment(segments, index)) {\n        currentObject[currentProperty] = value;\n      }\n\n      return currentObject[currentProperty];\n    });\n  } catch (err) {\n    if (err instanceof ObjectPrototypeMutationError) {\n      // rethrow\n      throw err;\n    } else {\n      return object;\n    }\n  }\n}\n/**\n * Tell if an object is on the path to a nested property\n * If the object is on the path, and the path exists, it returns true, and false otherwise.\n * @param {Object} object to get the nested property from\n * @param {String} property name of the nested property\n * @param {Object} objectInPath the object to check\n * @param {Object} options:\n *  - validPath: return false if the path is invalid, even if the object is in the path\n * @returns {boolean} true if the object is on the path\n */\n\n\nfunction isInNestedProperty(object, property, objectInPath) {\n  var options = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};\n\n  if (_typeof(object) != \"object\" || object === null) {\n    return false;\n  }\n\n  if (typeof property == \"undefined\") {\n    return false;\n  }\n\n  try {\n    var isIn = false,\n        pathExists = false;\n    traverse(object, property, function _isInNestedProperty(currentObject, currentProperty, segments, index) {\n      isIn = isIn || currentObject === objectInPath || !!currentObject && currentObject[currentProperty] === objectInPath;\n      pathExists = isLastSegment(segments, index) && _typeof(currentObject) === \"object\" && currentProperty in currentObject;\n      return currentObject && currentObject[currentProperty];\n    });\n\n    if (options.validPath) {\n      return isIn && pathExists;\n    } else {\n      return isIn;\n    }\n  } catch (err) {\n    return false;\n  }\n}\n\nfunction traverse(object, path) {\n  var callback = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function () {};\n  var segments = path.split(PATH_DELIMITER);\n  var length = segments.length;\n\n  var _loop = function _loop(idx) {\n    var currentSegment = segments[idx];\n\n    if (!object) {\n      return {\n        v: void 0\n      };\n    }\n\n    if (currentSegment === ARRAY_WILDCARD) {\n      if (Array.isArray(object)) {\n        return {\n          v: object.map(function (value, index) {\n            var remainingSegments = segments.slice(idx + 1);\n\n            if (remainingSegments.length > 0) {\n              return traverse(value, remainingSegments.join(PATH_DELIMITER), callback);\n            } else {\n              return callback(object, index, segments, idx);\n            }\n          })\n        };\n      } else {\n        var pathToHere = segments.slice(0, idx).join(PATH_DELIMITER);\n        throw new Error(\"Object at wildcard (\".concat(pathToHere, \") is not an array\"));\n      }\n    } else {\n      object = callback(object, currentSegment, segments, idx);\n    }\n  };\n\n  for (var idx = 0; idx < length; idx++) {\n    var _ret = _loop(idx);\n\n    if (_typeof(_ret) === \"object\") return _ret.v;\n  }\n\n  return object;\n}\n\nfunction isLastSegment(segments, index) {\n  return segments.length === index + 1;\n}\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n    ? Symbol.toStringTag\n    : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n    [].__proto__ === Array.prototype // eslint-disable-line no-proto\n        ? function (O) {\n            return O.__proto__; // eslint-disable-line no-proto\n        }\n        : null\n);\n\nfunction addNumericSeparator(num, str) {\n    if (\n        num === Infinity\n        || num === -Infinity\n        || num !== num\n        || (num && num > -1000 && num < 1000)\n        || $test.call(/e/, str)\n    ) {\n        return str;\n    }\n    var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n    if (typeof num === 'number') {\n        var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n        if (int !== num) {\n            var intStr = String(int);\n            var dec = $slice.call(str, intStr.length + 1);\n            return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n        }\n    }\n    return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nvar quotes = {\n    __proto__: null,\n    'double': '\"',\n    single: \"'\"\n};\nvar quoteREs = {\n    __proto__: null,\n    'double': /([\"\\\\])/g,\n    single: /(['\\\\])/g\n};\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n    var opts = options || {};\n\n    if (has(opts, 'quoteStyle') && !has(quotes, opts.quoteStyle)) {\n        throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n    }\n    if (\n        has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n            ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n            : opts.maxStringLength !== null\n        )\n    ) {\n        throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n    }\n    var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n    if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n        throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n    }\n\n    if (\n        has(opts, 'indent')\n        && opts.indent !== null\n        && opts.indent !== '\\t'\n        && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n    ) {\n        throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n    }\n    if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n        throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n    }\n    var numericSeparator = opts.numericSeparator;\n\n    if (typeof obj === 'undefined') {\n        return 'undefined';\n    }\n    if (obj === null) {\n        return 'null';\n    }\n    if (typeof obj === 'boolean') {\n        return obj ? 'true' : 'false';\n    }\n\n    if (typeof obj === 'string') {\n        return inspectString(obj, opts);\n    }\n    if (typeof obj === 'number') {\n        if (obj === 0) {\n            return Infinity / obj > 0 ? '0' : '-0';\n        }\n        var str = String(obj);\n        return numericSeparator ? addNumericSeparator(obj, str) : str;\n    }\n    if (typeof obj === 'bigint') {\n        var bigIntStr = String(obj) + 'n';\n        return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n    }\n\n    var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n    if (typeof depth === 'undefined') { depth = 0; }\n    if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n        return isArray(obj) ? '[Array]' : '[Object]';\n    }\n\n    var indent = getIndent(opts, depth);\n\n    if (typeof seen === 'undefined') {\n        seen = [];\n    } else if (indexOf(seen, obj) >= 0) {\n        return '[Circular]';\n    }\n\n    function inspect(value, from, noIndent) {\n        if (from) {\n            seen = $arrSlice.call(seen);\n            seen.push(from);\n        }\n        if (noIndent) {\n            var newOpts = {\n                depth: opts.depth\n            };\n            if (has(opts, 'quoteStyle')) {\n                newOpts.quoteStyle = opts.quoteStyle;\n            }\n            return inspect_(value, newOpts, depth + 1, seen);\n        }\n        return inspect_(value, opts, depth + 1, seen);\n    }\n\n    if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n        var name = nameOf(obj);\n        var keys = arrObjKeys(obj, inspect);\n        return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n    }\n    if (isSymbol(obj)) {\n        var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n        return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n    }\n    if (isElement(obj)) {\n        var s = '<' + $toLowerCase.call(String(obj.nodeName));\n        var attrs = obj.attributes || [];\n        for (var i = 0; i < attrs.length; i++) {\n            s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n        }\n        s += '>';\n        if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n        s += '';\n        return s;\n    }\n    if (isArray(obj)) {\n        if (obj.length === 0) { return '[]'; }\n        var xs = arrObjKeys(obj, inspect);\n        if (indent && !singleLineValues(xs)) {\n            return '[' + indentedJoin(xs, indent) + ']';\n        }\n        return '[ ' + $join.call(xs, ', ') + ' ]';\n    }\n    if (isError(obj)) {\n        var parts = arrObjKeys(obj, inspect);\n        if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n            return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n        }\n        if (parts.length === 0) { return '[' + String(obj) + ']'; }\n        return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n    }\n    if (typeof obj === 'object' && customInspect) {\n        if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n            return utilInspect(obj, { depth: maxDepth - depth });\n        } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n            return obj.inspect();\n        }\n    }\n    if (isMap(obj)) {\n        var mapParts = [];\n        if (mapForEach) {\n            mapForEach.call(obj, function (value, key) {\n                mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n            });\n        }\n        return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n    }\n    if (isSet(obj)) {\n        var setParts = [];\n        if (setForEach) {\n            setForEach.call(obj, function (value) {\n                setParts.push(inspect(value, obj));\n            });\n        }\n        return collectionOf('Set', setSize.call(obj), setParts, indent);\n    }\n    if (isWeakMap(obj)) {\n        return weakCollectionOf('WeakMap');\n    }\n    if (isWeakSet(obj)) {\n        return weakCollectionOf('WeakSet');\n    }\n    if (isWeakRef(obj)) {\n        return weakCollectionOf('WeakRef');\n    }\n    if (isNumber(obj)) {\n        return markBoxed(inspect(Number(obj)));\n    }\n    if (isBigInt(obj)) {\n        return markBoxed(inspect(bigIntValueOf.call(obj)));\n    }\n    if (isBoolean(obj)) {\n        return markBoxed(booleanValueOf.call(obj));\n    }\n    if (isString(obj)) {\n        return markBoxed(inspect(String(obj)));\n    }\n    // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n    /* eslint-env browser */\n    if (typeof window !== 'undefined' && obj === window) {\n        return '{ [object Window] }';\n    }\n    if (\n        (typeof globalThis !== 'undefined' && obj === globalThis)\n        || (typeof global !== 'undefined' && obj === global)\n    ) {\n        return '{ [object globalThis] }';\n    }\n    if (!isDate(obj) && !isRegExp(obj)) {\n        var ys = arrObjKeys(obj, inspect);\n        var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n        var protoTag = obj instanceof Object ? '' : 'null prototype';\n        var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n        var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n        var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n        if (ys.length === 0) { return tag + '{}'; }\n        if (indent) {\n            return tag + '{' + indentedJoin(ys, indent) + '}';\n        }\n        return tag + '{ ' + $join.call(ys, ', ') + ' }';\n    }\n    return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n    var style = opts.quoteStyle || defaultStyle;\n    var quoteChar = quotes[style];\n    return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n    return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction canTrustToString(obj) {\n    return !toStringTag || !(typeof obj === 'object' && (toStringTag in obj || typeof obj[toStringTag] !== 'undefined'));\n}\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && canTrustToString(obj); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && canTrustToString(obj); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && canTrustToString(obj); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && canTrustToString(obj); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && canTrustToString(obj); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && canTrustToString(obj); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && canTrustToString(obj); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n    if (hasShammedSymbols) {\n        return obj && typeof obj === 'object' && obj instanceof Symbol;\n    }\n    if (typeof obj === 'symbol') {\n        return true;\n    }\n    if (!obj || typeof obj !== 'object' || !symToString) {\n        return false;\n    }\n    try {\n        symToString.call(obj);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nfunction isBigInt(obj) {\n    if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n        return false;\n    }\n    try {\n        bigIntValueOf.call(obj);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n    return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n    return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n    if (f.name) { return f.name; }\n    var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n    if (m) { return m[1]; }\n    return null;\n}\n\nfunction indexOf(xs, x) {\n    if (xs.indexOf) { return xs.indexOf(x); }\n    for (var i = 0, l = xs.length; i < l; i++) {\n        if (xs[i] === x) { return i; }\n    }\n    return -1;\n}\n\nfunction isMap(x) {\n    if (!mapSize || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        mapSize.call(x);\n        try {\n            setSize.call(x);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof Map; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakMap(x) {\n    if (!weakMapHas || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakMapHas.call(x, weakMapHas);\n        try {\n            weakSetHas.call(x, weakSetHas);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakRef(x) {\n    if (!weakRefDeref || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakRefDeref.call(x);\n        return true;\n    } catch (e) {}\n    return false;\n}\n\nfunction isSet(x) {\n    if (!setSize || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        setSize.call(x);\n        try {\n            mapSize.call(x);\n        } catch (m) {\n            return true;\n        }\n        return x instanceof Set; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isWeakSet(x) {\n    if (!weakSetHas || !x || typeof x !== 'object') {\n        return false;\n    }\n    try {\n        weakSetHas.call(x, weakSetHas);\n        try {\n            weakMapHas.call(x, weakMapHas);\n        } catch (s) {\n            return true;\n        }\n        return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n    } catch (e) {}\n    return false;\n}\n\nfunction isElement(x) {\n    if (!x || typeof x !== 'object') { return false; }\n    if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n        return true;\n    }\n    return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n    if (str.length > opts.maxStringLength) {\n        var remaining = str.length - opts.maxStringLength;\n        var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n        return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n    }\n    var quoteRE = quoteREs[opts.quoteStyle || 'single'];\n    quoteRE.lastIndex = 0;\n    // eslint-disable-next-line no-control-regex\n    var s = $replace.call($replace.call(str, quoteRE, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n    return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n    var n = c.charCodeAt(0);\n    var x = {\n        8: 'b',\n        9: 't',\n        10: 'n',\n        12: 'f',\n        13: 'r'\n    }[n];\n    if (x) { return '\\\\' + x; }\n    return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n    return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n    return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n    var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n    return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n    for (var i = 0; i < xs.length; i++) {\n        if (indexOf(xs[i], '\\n') >= 0) {\n            return false;\n        }\n    }\n    return true;\n}\n\nfunction getIndent(opts, depth) {\n    var baseIndent;\n    if (opts.indent === '\\t') {\n        baseIndent = '\\t';\n    } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n        baseIndent = $join.call(Array(opts.indent + 1), ' ');\n    } else {\n        return null;\n    }\n    return {\n        base: baseIndent,\n        prev: $join.call(Array(depth + 1), baseIndent)\n    };\n}\n\nfunction indentedJoin(xs, indent) {\n    if (xs.length === 0) { return ''; }\n    var lineJoiner = '\\n' + indent.prev + indent.base;\n    return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n    var isArr = isArray(obj);\n    var xs = [];\n    if (isArr) {\n        xs.length = obj.length;\n        for (var i = 0; i < obj.length; i++) {\n            xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n        }\n    }\n    var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n    var symMap;\n    if (hasShammedSymbols) {\n        symMap = {};\n        for (var k = 0; k < syms.length; k++) {\n            symMap['$' + syms[k]] = syms[k];\n        }\n    }\n\n    for (var key in obj) { // eslint-disable-line no-restricted-syntax\n        if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n        if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n        if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n            // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n            continue; // eslint-disable-line no-restricted-syntax, no-continue\n        } else if ($test.call(/[^\\w$]/, key)) {\n            xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n        } else {\n            xs.push(key + ': ' + inspect(obj[key], obj));\n        }\n    }\n    if (typeof gOPS === 'function') {\n        for (var j = 0; j < syms.length; j++) {\n            if (isEnumerable.call(obj, syms[j])) {\n                xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n            }\n        }\n    }\n    return xs;\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\nvar util = require('util');\nvar isString = function (x) {\n  return typeof x === 'string';\n};\n\n\n// resolves . and .. elements in a path array with directory names there\n// must be no slashes or device names (c:\\) in the array\n// (so also no leading and trailing slashes - it does not distinguish\n// relative and absolute paths)\nfunction normalizeArray(parts, allowAboveRoot) {\n  var res = [];\n  for (var i = 0; i < parts.length; i++) {\n    var p = parts[i];\n\n    // ignore empty parts\n    if (!p || p === '.')\n      continue;\n\n    if (p === '..') {\n      if (res.length && res[res.length - 1] !== '..') {\n        res.pop();\n      } else if (allowAboveRoot) {\n        res.push('..');\n      }\n    } else {\n      res.push(p);\n    }\n  }\n\n  return res;\n}\n\n// Split a filename into [root, dir, basename, ext], unix version\n// 'root' is just a slash, or nothing.\nvar splitPathRe =\n    /^(\\/?|)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?|)(\\.[^.\\/]*|))(?:[\\/]*)$/;\nvar posix = {};\n\n\nfunction posixSplitPath(filename) {\n  return splitPathRe.exec(filename).slice(1);\n}\n\n\n// path.resolve([from ...], to)\n// posix version\nposix.resolve = function() {\n  var resolvedPath = '',\n      resolvedAbsolute = false;\n\n  for (var i = arguments.length - 1; i >= -1 && !resolvedAbsolute; i--) {\n    var path = (i >= 0) ? arguments[i] : process.cwd();\n\n    // Skip empty and invalid entries\n    if (!isString(path)) {\n      throw new TypeError('Arguments to path.resolve must be strings');\n    } else if (!path) {\n      continue;\n    }\n\n    resolvedPath = path + '/' + resolvedPath;\n    resolvedAbsolute = path.charAt(0) === '/';\n  }\n\n  // At this point the path should be resolved to a full absolute path, but\n  // handle relative paths to be safe (might happen when process.cwd() fails)\n\n  // Normalize the path\n  resolvedPath = normalizeArray(resolvedPath.split('/'),\n                                !resolvedAbsolute).join('/');\n\n  return ((resolvedAbsolute ? '/' : '') + resolvedPath) || '.';\n};\n\n// path.normalize(path)\n// posix version\nposix.normalize = function(path) {\n  var isAbsolute = posix.isAbsolute(path),\n      trailingSlash = path.substr(-1) === '/';\n\n  // Normalize the path\n  path = normalizeArray(path.split('/'), !isAbsolute).join('/');\n\n  if (!path && !isAbsolute) {\n    path = '.';\n  }\n  if (path && trailingSlash) {\n    path += '/';\n  }\n\n  return (isAbsolute ? '/' : '') + path;\n};\n\n// posix version\nposix.isAbsolute = function(path) {\n  return path.charAt(0) === '/';\n};\n\n// posix version\nposix.join = function() {\n  var path = '';\n  for (var i = 0; i < arguments.length; i++) {\n    var segment = arguments[i];\n    if (!isString(segment)) {\n      throw new TypeError('Arguments to path.join must be strings');\n    }\n    if (segment) {\n      if (!path) {\n        path += segment;\n      } else {\n        path += '/' + segment;\n      }\n    }\n  }\n  return posix.normalize(path);\n};\n\n\n// path.relative(from, to)\n// posix version\nposix.relative = function(from, to) {\n  from = posix.resolve(from).substr(1);\n  to = posix.resolve(to).substr(1);\n\n  function trim(arr) {\n    var start = 0;\n    for (; start < arr.length; start++) {\n      if (arr[start] !== '') break;\n    }\n\n    var end = arr.length - 1;\n    for (; end >= 0; end--) {\n      if (arr[end] !== '') break;\n    }\n\n    if (start > end) return [];\n    return arr.slice(start, end + 1);\n  }\n\n  var fromParts = trim(from.split('/'));\n  var toParts = trim(to.split('/'));\n\n  var length = Math.min(fromParts.length, toParts.length);\n  var samePartsLength = length;\n  for (var i = 0; i < length; i++) {\n    if (fromParts[i] !== toParts[i]) {\n      samePartsLength = i;\n      break;\n    }\n  }\n\n  var outputParts = [];\n  for (var i = samePartsLength; i < fromParts.length; i++) {\n    outputParts.push('..');\n  }\n\n  outputParts = outputParts.concat(toParts.slice(samePartsLength));\n\n  return outputParts.join('/');\n};\n\n\nposix._makeLong = function(path) {\n  return path;\n};\n\n\nposix.dirname = function(path) {\n  var result = posixSplitPath(path),\n      root = result[0],\n      dir = result[1];\n\n  if (!root && !dir) {\n    // No dirname whatsoever\n    return '.';\n  }\n\n  if (dir) {\n    // It has a dirname, strip trailing slash\n    dir = dir.substr(0, dir.length - 1);\n  }\n\n  return root + dir;\n};\n\n\nposix.basename = function(path, ext) {\n  var f = posixSplitPath(path)[2];\n  // TODO: make this comparison case-insensitive on windows?\n  if (ext && f.substr(-1 * ext.length) === ext) {\n    f = f.substr(0, f.length - ext.length);\n  }\n  return f;\n};\n\n\nposix.extname = function(path) {\n  return posixSplitPath(path)[3];\n};\n\n\nposix.format = function(pathObject) {\n  if (!util.isObject(pathObject)) {\n    throw new TypeError(\n        \"Parameter 'pathObject' must be an object, not \" + typeof pathObject\n    );\n  }\n\n  var root = pathObject.root || '';\n\n  if (!isString(root)) {\n    throw new TypeError(\n        \"'pathObject.root' must be a string or undefined, not \" +\n        typeof pathObject.root\n    );\n  }\n\n  var dir = pathObject.dir ? pathObject.dir + posix.sep : '';\n  var base = pathObject.base || '';\n  return dir + base;\n};\n\n\nposix.parse = function(pathString) {\n  if (!isString(pathString)) {\n    throw new TypeError(\n        \"Parameter 'pathString' must be a string, not \" + typeof pathString\n    );\n  }\n  var allParts = posixSplitPath(pathString);\n  if (!allParts || allParts.length !== 4) {\n    throw new TypeError(\"Invalid path '\" + pathString + \"'\");\n  }\n  allParts[1] = allParts[1] || '';\n  allParts[2] = allParts[2] || '';\n  allParts[3] = allParts[3] || '';\n\n  return {\n    root: allParts[0],\n    dir: allParts[0] + allParts[1].slice(0, allParts[1].length - 1),\n    base: allParts[2],\n    ext: allParts[3],\n    name: allParts[2].slice(0, allParts[2].length - allParts[3].length)\n  };\n};\n\n\nposix.sep = '/';\nposix.delimiter = ':';\n\n  module.exports = posix;\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = [\n\t'Float16Array',\n\t'Float32Array',\n\t'Float64Array',\n\t'Int8Array',\n\t'Int16Array',\n\t'Int32Array',\n\t'Uint8Array',\n\t'Uint8ClampedArray',\n\t'Uint16Array',\n\t'Uint32Array',\n\t'BigInt64Array',\n\t'BigUint64Array'\n];\n","/*! https://mths.be/punycode v1.4.1 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow new RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t    counter = 0,\n\t\t    length = string.length,\n\t\t    value,\n\t\t    extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t//  0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * https://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t    inputLength = input.length,\n\t\t    out,\n\t\t    i = 0,\n\t\t    n = initialN,\n\t\t    bias = initialBias,\n\t\t    basic,\n\t\t    j,\n\t\t    index,\n\t\t    oldi,\n\t\t    w,\n\t\t    k,\n\t\t    digit,\n\t\t    t,\n\t\t    /** Cached calculation results */\n\t\t    baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t    delta,\n\t\t    handledCPCount,\n\t\t    basicLength,\n\t\t    bias,\n\t\t    j,\n\t\t    m,\n\t\t    q,\n\t\t    k,\n\t\t    t,\n\t\t    currentValue,\n\t\t    output = [],\n\t\t    /** `inputLength` will hold the number of code points in `input`. */\n\t\t    inputLength,\n\t\t    /** Cached calculation results */\n\t\t    handledCPCountPlusOne,\n\t\t    baseMinusT,\n\t\t    qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's  state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.4.1',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) {\n\t\t\t// in Node.js, io.js, or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else {\n\t\t\t// in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\t// in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n    RFC1738: 'RFC1738',\n    RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n    'default': Format.RFC3986,\n    formatters: {\n        RFC1738: function (value) {\n            return replace.call(value, percentTwenties, '+');\n        },\n        RFC3986: function (value) {\n            return String(value);\n        }\n    },\n    RFC1738: Format.RFC1738,\n    RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n    formats: formats,\n    parse: parse,\n    stringify: stringify\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n    allowDots: false,\n    allowEmptyArrays: false,\n    allowPrototypes: false,\n    allowSparse: false,\n    arrayLimit: 20,\n    charset: 'utf-8',\n    charsetSentinel: false,\n    comma: false,\n    decodeDotInKeys: false,\n    decoder: utils.decode,\n    delimiter: '&',\n    depth: 5,\n    duplicates: 'combine',\n    ignoreQueryPrefix: false,\n    interpretNumericEntities: false,\n    parameterLimit: 1000,\n    parseArrays: true,\n    plainObjects: false,\n    strictDepth: false,\n    strictNullHandling: false,\n    throwOnLimitExceeded: false\n};\n\nvar interpretNumericEntities = function (str) {\n    return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n        return String.fromCharCode(parseInt(numberStr, 10));\n    });\n};\n\nvar parseArrayValue = function (val, options, currentArrayLength) {\n    if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n        return val.split(',');\n    }\n\n    if (options.throwOnLimitExceeded && currentArrayLength >= options.arrayLimit) {\n        throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n    }\n\n    return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n    var obj = { __proto__: null };\n\n    var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n    cleanStr = cleanStr.replace(/%5B/gi, '[').replace(/%5D/gi, ']');\n\n    var limit = options.parameterLimit === Infinity ? void undefined : options.parameterLimit;\n    var parts = cleanStr.split(\n        options.delimiter,\n        options.throwOnLimitExceeded ? limit + 1 : limit\n    );\n\n    if (options.throwOnLimitExceeded && parts.length > limit) {\n        throw new RangeError('Parameter limit exceeded. Only ' + limit + ' parameter' + (limit === 1 ? '' : 's') + ' allowed.');\n    }\n\n    var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n    var i;\n\n    var charset = options.charset;\n    if (options.charsetSentinel) {\n        for (i = 0; i < parts.length; ++i) {\n            if (parts[i].indexOf('utf8=') === 0) {\n                if (parts[i] === charsetSentinel) {\n                    charset = 'utf-8';\n                } else if (parts[i] === isoSentinel) {\n                    charset = 'iso-8859-1';\n                }\n                skipIndex = i;\n                i = parts.length; // The eslint settings do not allow break;\n            }\n        }\n    }\n\n    for (i = 0; i < parts.length; ++i) {\n        if (i === skipIndex) {\n            continue;\n        }\n        var part = parts[i];\n\n        var bracketEqualsPos = part.indexOf(']=');\n        var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n        var key;\n        var val;\n        if (pos === -1) {\n            key = options.decoder(part, defaults.decoder, charset, 'key');\n            val = options.strictNullHandling ? null : '';\n        } else {\n            key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n\n            if (key !== null) {\n                val = utils.maybeMap(\n                    parseArrayValue(\n                        part.slice(pos + 1),\n                        options,\n                        isArray(obj[key]) ? obj[key].length : 0\n                    ),\n                    function (encodedVal) {\n                        return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n                    }\n                );\n            }\n        }\n\n        if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n            val = interpretNumericEntities(String(val));\n        }\n\n        if (part.indexOf('[]=') > -1) {\n            val = isArray(val) ? [val] : val;\n        }\n\n        if (options.comma && isArray(val) && val.length > options.arrayLimit) {\n            if (options.throwOnLimitExceeded) {\n                throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n            }\n            val = utils.combine([], val, options.arrayLimit, options.plainObjects);\n        }\n\n        if (key !== null) {\n            var existing = has.call(obj, key);\n            if (existing && options.duplicates === 'combine') {\n                obj[key] = utils.combine(\n                    obj[key],\n                    val,\n                    options.arrayLimit,\n                    options.plainObjects\n                );\n            } else if (!existing || options.duplicates === 'last') {\n                obj[key] = val;\n            }\n        }\n    }\n\n    return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n    var currentArrayLength = 0;\n    if (chain.length > 0 && chain[chain.length - 1] === '[]') {\n        var parentKey = chain.slice(0, -1).join('');\n        currentArrayLength = Array.isArray(val) && val[parentKey] ? val[parentKey].length : 0;\n    }\n\n    var leaf = valuesParsed ? val : parseArrayValue(val, options, currentArrayLength);\n\n    for (var i = chain.length - 1; i >= 0; --i) {\n        var obj;\n        var root = chain[i];\n\n        if (root === '[]' && options.parseArrays) {\n            if (utils.isOverflow(leaf)) {\n                // leaf is already an overflow object, preserve it\n                obj = leaf;\n            } else {\n                obj = options.allowEmptyArrays && (leaf === '' || (options.strictNullHandling && leaf === null))\n                    ? []\n                    : utils.combine(\n                        [],\n                        leaf,\n                        options.arrayLimit,\n                        options.plainObjects\n                    );\n            }\n        } else {\n            obj = options.plainObjects ? { __proto__: null } : {};\n            var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n            var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;\n            var index = parseInt(decodedRoot, 10);\n            var isValidArrayIndex = !isNaN(index)\n                && root !== decodedRoot\n                && String(index) === decodedRoot\n                && index >= 0\n                && options.parseArrays;\n            if (!options.parseArrays && decodedRoot === '') {\n                obj = { 0: leaf };\n            } else if (isValidArrayIndex && index < options.arrayLimit) {\n                obj = [];\n                obj[index] = leaf;\n            } else if (isValidArrayIndex && options.throwOnLimitExceeded) {\n                throw new RangeError('Array limit exceeded. Only ' + options.arrayLimit + ' element' + (options.arrayLimit === 1 ? '' : 's') + ' allowed in an array.');\n            } else if (isValidArrayIndex) {\n                obj[index] = leaf;\n                utils.markOverflow(obj, index);\n            } else if (decodedRoot !== '__proto__') {\n                obj[decodedRoot] = leaf;\n            }\n        }\n\n        leaf = obj;\n    }\n\n    return leaf;\n};\n\nvar splitKeyIntoSegments = function splitKeyIntoSegments(givenKey, options) {\n    var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n    if (options.depth <= 0) {\n        if (!options.plainObjects && has.call(Object.prototype, key)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        return [key];\n    }\n\n    var brackets = /(\\[[^[\\]]*])/;\n    var child = /(\\[[^[\\]]*])/g;\n\n    var segment = brackets.exec(key);\n    var parent = segment ? key.slice(0, segment.index) : key;\n\n    var keys = [];\n\n    if (parent) {\n        if (!options.plainObjects && has.call(Object.prototype, parent)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        keys[keys.length] = parent;\n    }\n\n    var i = 0;\n    while ((segment = child.exec(key)) !== null && i < options.depth) {\n        i += 1;\n\n        var segmentContent = segment[1].slice(1, -1);\n        if (!options.plainObjects && has.call(Object.prototype, segmentContent)) {\n            if (!options.allowPrototypes) {\n                return;\n            }\n        }\n\n        keys[keys.length] = segment[1];\n    }\n\n    if (segment) {\n        if (options.strictDepth === true) {\n            throw new RangeError('Input depth exceeded depth option of ' + options.depth + ' and strictDepth is true');\n        }\n\n        keys[keys.length] = '[' + key.slice(segment.index) + ']';\n    }\n\n    return keys;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n    if (!givenKey) {\n        return;\n    }\n\n    var keys = splitKeyIntoSegments(givenKey, options);\n\n    if (!keys) {\n        return;\n    }\n\n    return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n    if (!opts) {\n        return defaults;\n    }\n\n    if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n        throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n    }\n\n    if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {\n        throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');\n    }\n\n    if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {\n        throw new TypeError('Decoder has to be a function.');\n    }\n\n    if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n        throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n    }\n\n    if (typeof opts.throwOnLimitExceeded !== 'undefined' && typeof opts.throwOnLimitExceeded !== 'boolean') {\n        throw new TypeError('`throwOnLimitExceeded` option must be a boolean');\n    }\n\n    var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n    var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;\n\n    if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {\n        throw new TypeError('The duplicates option must be either combine, first, or last');\n    }\n\n    var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n    return {\n        allowDots: allowDots,\n        allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n        allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n        allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n        arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n        charset: charset,\n        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n        comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n        decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,\n        decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n        delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n        // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n        depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n        duplicates: duplicates,\n        ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n        interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n        parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n        parseArrays: opts.parseArrays !== false,\n        plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n        strictDepth: typeof opts.strictDepth === 'boolean' ? !!opts.strictDepth : defaults.strictDepth,\n        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling,\n        throwOnLimitExceeded: typeof opts.throwOnLimitExceeded === 'boolean' ? opts.throwOnLimitExceeded : false\n    };\n};\n\nmodule.exports = function (str, opts) {\n    var options = normalizeParseOptions(opts);\n\n    if (str === '' || str === null || typeof str === 'undefined') {\n        return options.plainObjects ? { __proto__: null } : {};\n    }\n\n    var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n    var obj = options.plainObjects ? { __proto__: null } : {};\n\n    // Iterate over the keys and setup the new object\n\n    var keys = Object.keys(tempObj);\n    for (var i = 0; i < keys.length; ++i) {\n        var key = keys[i];\n        var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n        obj = utils.merge(obj, newObj, options);\n    }\n\n    if (options.allowSparse === true) {\n        return obj;\n    }\n\n    return utils.compact(obj);\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n    brackets: function brackets(prefix) {\n        return prefix + '[]';\n    },\n    comma: 'comma',\n    indices: function indices(prefix, key) {\n        return prefix + '[' + key + ']';\n    },\n    repeat: function repeat(prefix) {\n        return prefix;\n    }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n    push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n    addQueryPrefix: false,\n    allowDots: false,\n    allowEmptyArrays: false,\n    arrayFormat: 'indices',\n    charset: 'utf-8',\n    charsetSentinel: false,\n    commaRoundTrip: false,\n    delimiter: '&',\n    encode: true,\n    encodeDotInKeys: false,\n    encoder: utils.encode,\n    encodeValuesOnly: false,\n    filter: void undefined,\n    format: defaultFormat,\n    formatter: formats.formatters[defaultFormat],\n    // deprecated\n    indices: false,\n    serializeDate: function serializeDate(date) {\n        return toISO.call(date);\n    },\n    skipNulls: false,\n    strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n    return typeof v === 'string'\n        || typeof v === 'number'\n        || typeof v === 'boolean'\n        || typeof v === 'symbol'\n        || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n    object,\n    prefix,\n    generateArrayPrefix,\n    commaRoundTrip,\n    allowEmptyArrays,\n    strictNullHandling,\n    skipNulls,\n    encodeDotInKeys,\n    encoder,\n    filter,\n    sort,\n    allowDots,\n    serializeDate,\n    format,\n    formatter,\n    encodeValuesOnly,\n    charset,\n    sideChannel\n) {\n    var obj = object;\n\n    var tmpSc = sideChannel;\n    var step = 0;\n    var findFlag = false;\n    while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n        // Where object last appeared in the ref tree\n        var pos = tmpSc.get(object);\n        step += 1;\n        if (typeof pos !== 'undefined') {\n            if (pos === step) {\n                throw new RangeError('Cyclic object value');\n            } else {\n                findFlag = true; // Break while\n            }\n        }\n        if (typeof tmpSc.get(sentinel) === 'undefined') {\n            step = 0;\n        }\n    }\n\n    if (typeof filter === 'function') {\n        obj = filter(prefix, obj);\n    } else if (obj instanceof Date) {\n        obj = serializeDate(obj);\n    } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n        obj = utils.maybeMap(obj, function (value) {\n            if (value instanceof Date) {\n                return serializeDate(value);\n            }\n            return value;\n        });\n    }\n\n    if (obj === null) {\n        if (strictNullHandling) {\n            return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n        }\n\n        obj = '';\n    }\n\n    if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n        if (encoder) {\n            var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n            return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n        }\n        return [formatter(prefix) + '=' + formatter(String(obj))];\n    }\n\n    var values = [];\n\n    if (typeof obj === 'undefined') {\n        return values;\n    }\n\n    var objKeys;\n    if (generateArrayPrefix === 'comma' && isArray(obj)) {\n        // we need to join elements in\n        if (encodeValuesOnly && encoder) {\n            obj = utils.maybeMap(obj, encoder);\n        }\n        objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n    } else if (isArray(filter)) {\n        objKeys = filter;\n    } else {\n        var keys = Object.keys(obj);\n        objKeys = sort ? keys.sort(sort) : keys;\n    }\n\n    var encodedPrefix = encodeDotInKeys ? String(prefix).replace(/\\./g, '%2E') : String(prefix);\n\n    var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;\n\n    if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n        return adjustedPrefix + '[]';\n    }\n\n    for (var j = 0; j < objKeys.length; ++j) {\n        var key = objKeys[j];\n        var value = typeof key === 'object' && key && typeof key.value !== 'undefined'\n            ? key.value\n            : obj[key];\n\n        if (skipNulls && value === null) {\n            continue;\n        }\n\n        var encodedKey = allowDots && encodeDotInKeys ? String(key).replace(/\\./g, '%2E') : String(key);\n        var keyPrefix = isArray(obj)\n            ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix\n            : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');\n\n        sideChannel.set(object, step);\n        var valueSideChannel = getSideChannel();\n        valueSideChannel.set(sentinel, sideChannel);\n        pushToArray(values, stringify(\n            value,\n            keyPrefix,\n            generateArrayPrefix,\n            commaRoundTrip,\n            allowEmptyArrays,\n            strictNullHandling,\n            skipNulls,\n            encodeDotInKeys,\n            generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n            filter,\n            sort,\n            allowDots,\n            serializeDate,\n            format,\n            formatter,\n            encodeValuesOnly,\n            charset,\n            valueSideChannel\n        ));\n    }\n\n    return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n    if (!opts) {\n        return defaults;\n    }\n\n    if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n        throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n    }\n\n    if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n        throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n    }\n\n    if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n        throw new TypeError('Encoder has to be a function.');\n    }\n\n    var charset = opts.charset || defaults.charset;\n    if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n        throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n    }\n\n    var format = formats['default'];\n    if (typeof opts.format !== 'undefined') {\n        if (!has.call(formats.formatters, opts.format)) {\n            throw new TypeError('Unknown format option provided.');\n        }\n        format = opts.format;\n    }\n    var formatter = formats.formatters[format];\n\n    var filter = defaults.filter;\n    if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n        filter = opts.filter;\n    }\n\n    var arrayFormat;\n    if (opts.arrayFormat in arrayPrefixGenerators) {\n        arrayFormat = opts.arrayFormat;\n    } else if ('indices' in opts) {\n        arrayFormat = opts.indices ? 'indices' : 'repeat';\n    } else {\n        arrayFormat = defaults.arrayFormat;\n    }\n\n    if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n        throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n    }\n\n    var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n    return {\n        addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n        allowDots: allowDots,\n        allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n        arrayFormat: arrayFormat,\n        charset: charset,\n        charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n        commaRoundTrip: !!opts.commaRoundTrip,\n        delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n        encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n        encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n        encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n        encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n        filter: filter,\n        format: format,\n        formatter: formatter,\n        serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n        skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n        sort: typeof opts.sort === 'function' ? opts.sort : null,\n        strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n    };\n};\n\nmodule.exports = function (object, opts) {\n    var obj = object;\n    var options = normalizeStringifyOptions(opts);\n\n    var objKeys;\n    var filter;\n\n    if (typeof options.filter === 'function') {\n        filter = options.filter;\n        obj = filter('', obj);\n    } else if (isArray(options.filter)) {\n        filter = options.filter;\n        objKeys = filter;\n    }\n\n    var keys = [];\n\n    if (typeof obj !== 'object' || obj === null) {\n        return '';\n    }\n\n    var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];\n    var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n\n    if (!objKeys) {\n        objKeys = Object.keys(obj);\n    }\n\n    if (options.sort) {\n        objKeys.sort(options.sort);\n    }\n\n    var sideChannel = getSideChannel();\n    for (var i = 0; i < objKeys.length; ++i) {\n        var key = objKeys[i];\n        var value = obj[key];\n\n        if (options.skipNulls && value === null) {\n            continue;\n        }\n        pushToArray(keys, stringify(\n            value,\n            key,\n            generateArrayPrefix,\n            commaRoundTrip,\n            options.allowEmptyArrays,\n            options.strictNullHandling,\n            options.skipNulls,\n            options.encodeDotInKeys,\n            options.encode ? options.encoder : null,\n            options.filter,\n            options.sort,\n            options.allowDots,\n            options.serializeDate,\n            options.format,\n            options.formatter,\n            options.encodeValuesOnly,\n            options.charset,\n            sideChannel\n        ));\n    }\n\n    var joined = keys.join(options.delimiter);\n    var prefix = options.addQueryPrefix === true ? '?' : '';\n\n    if (options.charsetSentinel) {\n        if (options.charset === 'iso-8859-1') {\n            // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n            prefix += 'utf8=%26%2310003%3B&';\n        } else {\n            // encodeURIComponent('✓')\n            prefix += 'utf8=%E2%9C%93&';\n        }\n    }\n\n    return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar formats = require('./formats');\nvar getSideChannel = require('side-channel');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\n// Track objects created from arrayLimit overflow using side-channel\n// Stores the current max numeric index for O(1) lookup\nvar overflowChannel = getSideChannel();\n\nvar markOverflow = function markOverflow(obj, maxIndex) {\n    overflowChannel.set(obj, maxIndex);\n    return obj;\n};\n\nvar isOverflow = function isOverflow(obj) {\n    return overflowChannel.has(obj);\n};\n\nvar getMaxIndex = function getMaxIndex(obj) {\n    return overflowChannel.get(obj);\n};\n\nvar setMaxIndex = function setMaxIndex(obj, maxIndex) {\n    overflowChannel.set(obj, maxIndex);\n};\n\nvar hexTable = (function () {\n    var array = [];\n    for (var i = 0; i < 256; ++i) {\n        array[array.length] = '%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase();\n    }\n\n    return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n    while (queue.length > 1) {\n        var item = queue.pop();\n        var obj = item.obj[item.prop];\n\n        if (isArray(obj)) {\n            var compacted = [];\n\n            for (var j = 0; j < obj.length; ++j) {\n                if (typeof obj[j] !== 'undefined') {\n                    compacted[compacted.length] = obj[j];\n                }\n            }\n\n            item.obj[item.prop] = compacted;\n        }\n    }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n    var obj = options && options.plainObjects ? { __proto__: null } : {};\n    for (var i = 0; i < source.length; ++i) {\n        if (typeof source[i] !== 'undefined') {\n            obj[i] = source[i];\n        }\n    }\n\n    return obj;\n};\n\nvar merge = function merge(target, source, options) {\n    /* eslint no-param-reassign: 0 */\n    if (!source) {\n        return target;\n    }\n\n    if (typeof source !== 'object' && typeof source !== 'function') {\n        if (isArray(target)) {\n            var nextIndex = target.length;\n            if (options && typeof options.arrayLimit === 'number' && nextIndex > options.arrayLimit) {\n                return markOverflow(arrayToObject(target.concat(source), options), nextIndex);\n            }\n            target[nextIndex] = source;\n        } else if (target && typeof target === 'object') {\n            if (isOverflow(target)) {\n                // Add at next numeric index for overflow objects\n                var newIndex = getMaxIndex(target) + 1;\n                target[newIndex] = source;\n                setMaxIndex(target, newIndex);\n            } else if (\n                (options && (options.plainObjects || options.allowPrototypes))\n                || !has.call(Object.prototype, source)\n            ) {\n                target[source] = true;\n            }\n        } else {\n            return [target, source];\n        }\n\n        return target;\n    }\n\n    if (!target || typeof target !== 'object') {\n        if (isOverflow(source)) {\n            // Create new object with target at 0, source values shifted by 1\n            var sourceKeys = Object.keys(source);\n            var result = options && options.plainObjects\n                ? { __proto__: null, 0: target }\n                : { 0: target };\n            for (var m = 0; m < sourceKeys.length; m++) {\n                var oldKey = parseInt(sourceKeys[m], 10);\n                result[oldKey + 1] = source[sourceKeys[m]];\n            }\n            return markOverflow(result, getMaxIndex(source) + 1);\n        }\n        var combined = [target].concat(source);\n        if (options && typeof options.arrayLimit === 'number' && combined.length > options.arrayLimit) {\n            return markOverflow(arrayToObject(combined, options), combined.length - 1);\n        }\n        return combined;\n    }\n\n    var mergeTarget = target;\n    if (isArray(target) && !isArray(source)) {\n        mergeTarget = arrayToObject(target, options);\n    }\n\n    if (isArray(target) && isArray(source)) {\n        source.forEach(function (item, i) {\n            if (has.call(target, i)) {\n                var targetItem = target[i];\n                if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n                    target[i] = merge(targetItem, item, options);\n                } else {\n                    target[target.length] = item;\n                }\n            } else {\n                target[i] = item;\n            }\n        });\n        return target;\n    }\n\n    return Object.keys(source).reduce(function (acc, key) {\n        var value = source[key];\n\n        if (has.call(acc, key)) {\n            acc[key] = merge(acc[key], value, options);\n        } else {\n            acc[key] = value;\n        }\n\n        if (isOverflow(source) && !isOverflow(acc)) {\n            markOverflow(acc, getMaxIndex(source));\n        }\n        if (isOverflow(acc)) {\n            var keyNum = parseInt(key, 10);\n            if (String(keyNum) === key && keyNum >= 0 && keyNum > getMaxIndex(acc)) {\n                setMaxIndex(acc, keyNum);\n            }\n        }\n\n        return acc;\n    }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n    return Object.keys(source).reduce(function (acc, key) {\n        acc[key] = source[key];\n        return acc;\n    }, target);\n};\n\nvar decode = function (str, defaultDecoder, charset) {\n    var strWithoutPlus = str.replace(/\\+/g, ' ');\n    if (charset === 'iso-8859-1') {\n        // unescape never throws, no try...catch needed:\n        return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n    }\n    // utf-8\n    try {\n        return decodeURIComponent(strWithoutPlus);\n    } catch (e) {\n        return strWithoutPlus;\n    }\n};\n\nvar limit = 1024;\n\n/* eslint operator-linebreak: [2, \"before\"] */\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n    // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n    // It has been adapted here for stricter adherence to RFC 3986\n    if (str.length === 0) {\n        return str;\n    }\n\n    var string = str;\n    if (typeof str === 'symbol') {\n        string = Symbol.prototype.toString.call(str);\n    } else if (typeof str !== 'string') {\n        string = String(str);\n    }\n\n    if (charset === 'iso-8859-1') {\n        return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n            return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n        });\n    }\n\n    var out = '';\n    for (var j = 0; j < string.length; j += limit) {\n        var segment = string.length >= limit ? string.slice(j, j + limit) : string;\n        var arr = [];\n\n        for (var i = 0; i < segment.length; ++i) {\n            var c = segment.charCodeAt(i);\n            if (\n                c === 0x2D // -\n                || c === 0x2E // .\n                || c === 0x5F // _\n                || c === 0x7E // ~\n                || (c >= 0x30 && c <= 0x39) // 0-9\n                || (c >= 0x41 && c <= 0x5A) // a-z\n                || (c >= 0x61 && c <= 0x7A) // A-Z\n                || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n            ) {\n                arr[arr.length] = segment.charAt(i);\n                continue;\n            }\n\n            if (c < 0x80) {\n                arr[arr.length] = hexTable[c];\n                continue;\n            }\n\n            if (c < 0x800) {\n                arr[arr.length] = hexTable[0xC0 | (c >> 6)]\n                    + hexTable[0x80 | (c & 0x3F)];\n                continue;\n            }\n\n            if (c < 0xD800 || c >= 0xE000) {\n                arr[arr.length] = hexTable[0xE0 | (c >> 12)]\n                    + hexTable[0x80 | ((c >> 6) & 0x3F)]\n                    + hexTable[0x80 | (c & 0x3F)];\n                continue;\n            }\n\n            i += 1;\n            c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF));\n\n            arr[arr.length] = hexTable[0xF0 | (c >> 18)]\n                + hexTable[0x80 | ((c >> 12) & 0x3F)]\n                + hexTable[0x80 | ((c >> 6) & 0x3F)]\n                + hexTable[0x80 | (c & 0x3F)];\n        }\n\n        out += arr.join('');\n    }\n\n    return out;\n};\n\nvar compact = function compact(value) {\n    var queue = [{ obj: { o: value }, prop: 'o' }];\n    var refs = [];\n\n    for (var i = 0; i < queue.length; ++i) {\n        var item = queue[i];\n        var obj = item.obj[item.prop];\n\n        var keys = Object.keys(obj);\n        for (var j = 0; j < keys.length; ++j) {\n            var key = keys[j];\n            var val = obj[key];\n            if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n                queue[queue.length] = { obj: obj, prop: key };\n                refs[refs.length] = val;\n            }\n        }\n    }\n\n    compactQueue(queue);\n\n    return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n    return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n    if (!obj || typeof obj !== 'object') {\n        return false;\n    }\n\n    return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b, arrayLimit, plainObjects) {\n    // If 'a' is already an overflow object, add to it\n    if (isOverflow(a)) {\n        var newIndex = getMaxIndex(a) + 1;\n        a[newIndex] = b;\n        setMaxIndex(a, newIndex);\n        return a;\n    }\n\n    var result = [].concat(a, b);\n    if (result.length > arrayLimit) {\n        return markOverflow(arrayToObject(result, { plainObjects: plainObjects }), result.length - 1);\n    }\n    return result;\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n    if (isArray(val)) {\n        var mapped = [];\n        for (var i = 0; i < val.length; i += 1) {\n            mapped[mapped.length] = fn(val[i]);\n        }\n        return mapped;\n    }\n    return fn(val);\n};\n\nmodule.exports = {\n    arrayToObject: arrayToObject,\n    assign: assign,\n    combine: combine,\n    compact: compact,\n    decode: decode,\n    encode: encode,\n    isBuffer: isBuffer,\n    isOverflow: isOverflow,\n    isRegExp: isRegExp,\n    markOverflow: markOverflow,\n    maybeMap: maybeMap,\n    merge: merge\n};\n","'use strict';\n\nvar has = Object.prototype.hasOwnProperty\n  , undef;\n\n/**\n * Decode a URI encoded string.\n *\n * @param {String} input The URI encoded string.\n * @returns {String|Null} The decoded string.\n * @api private\n */\nfunction decode(input) {\n  try {\n    return decodeURIComponent(input.replace(/\\+/g, ' '));\n  } catch (e) {\n    return null;\n  }\n}\n\n/**\n * Attempts to encode a given input.\n *\n * @param {String} input The string that needs to be encoded.\n * @returns {String|Null} The encoded string.\n * @api private\n */\nfunction encode(input) {\n  try {\n    return encodeURIComponent(input);\n  } catch (e) {\n    return null;\n  }\n}\n\n/**\n * Simple query string parser.\n *\n * @param {String} query The query string that needs to be parsed.\n * @returns {Object}\n * @api public\n */\nfunction querystring(query) {\n  var parser = /([^=?#&]+)=?([^&]*)/g\n    , result = {}\n    , part;\n\n  while (part = parser.exec(query)) {\n    var key = decode(part[1])\n      , value = decode(part[2]);\n\n    //\n    // Prevent overriding of existing properties. This ensures that build-in\n    // methods like `toString` or __proto__ are not overriden by malicious\n    // querystrings.\n    //\n    // In the case if failed decoding, we want to omit the key/value pairs\n    // from the result.\n    //\n    if (key === null || value === null || key in result) continue;\n    result[key] = value;\n  }\n\n  return result;\n}\n\n/**\n * Transform a query string to an object.\n *\n * @param {Object} obj Object that should be transformed.\n * @param {String} prefix Optional prefix.\n * @returns {String}\n * @api public\n */\nfunction querystringify(obj, prefix) {\n  prefix = prefix || '';\n\n  var pairs = []\n    , value\n    , key;\n\n  //\n  // Optionally prefix with a '?' if needed\n  //\n  if ('string' !== typeof prefix) prefix = '?';\n\n  for (key in obj) {\n    if (has.call(obj, key)) {\n      value = obj[key];\n\n      //\n      // Edge cases where we actually want to encode the value to an empty\n      // string instead of the stringified value.\n      //\n      if (!value && (value === null || value === undef || isNaN(value))) {\n        value = '';\n      }\n\n      key = encode(key);\n      value = encode(value);\n\n      //\n      // If we failed to encode the strings, we should bail out as we don't\n      // want to add invalid strings to the query.\n      //\n      if (key === null || value === null) continue;\n      pairs.push(key +'='+ value);\n    }\n  }\n\n  return pairs.length ? prefix + pairs.join('&') : '';\n}\n\n//\n// Expose the module.\n//\nexports.stringify = querystringify;\nexports.parse = querystring;\n","'use strict';\n\n/**\n * Check if we're required to add a port number.\n *\n * @see https://url.spec.whatwg.org/#default-port\n * @param {Number|String} port Port number we need to check\n * @param {String} protocol Protocol we need to check against.\n * @returns {Boolean} Is it a default port for the given protocol\n * @api private\n */\nmodule.exports = function required(port, protocol) {\n  protocol = protocol.split(':')[0];\n  port = +port;\n\n  if (!port) return false;\n\n  switch (protocol) {\n    case 'http':\n    case 'ws':\n    return port !== 80;\n\n    case 'https':\n    case 'wss':\n    return port !== 443;\n\n    case 'ftp':\n    return port !== 21;\n\n    case 'gopher':\n    return port !== 70;\n\n    case 'file':\n    return false;\n  }\n\n  return port !== 0;\n};\n","'use strict';\n\nvar callBound = require('call-bound');\nvar isRegex = require('is-regex');\n\nvar $exec = callBound('RegExp.prototype.exec');\nvar $TypeError = require('es-errors/type');\n\n/** @type {import('.')} */\nmodule.exports = function regexTester(regex) {\n\tif (!isRegex(regex)) {\n\t\tthrow new $TypeError('`regex` must be a RegExp');\n\t}\n\treturn function test(s) {\n\t\treturn $exec(regex, s) !== null;\n\t};\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* 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.\n* By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('./list.d.ts').listGetNode} */\n// eslint-disable-next-line consistent-return\nvar listGetNode = function (list, key, isDelete) {\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\t// eslint-disable-next-line eqeqeq\n\tfor (; (curr = prev.next) != null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\tif (!isDelete) {\n\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\tcurr.next = /** @type {NonNullable} */ (list.next);\n\t\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\t}\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('./list.d.ts').listGet} */\nvar listGet = function (objects, key) {\n\tif (!objects) {\n\t\treturn void undefined;\n\t}\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('./list.d.ts').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('./list.d.ts').ListNode} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('./list.d.ts').listHas} */\nvar listHas = function (objects, key) {\n\tif (!objects) {\n\t\treturn false;\n\t}\n\treturn !!listGetNode(objects, key);\n};\n/** @type {import('./list.d.ts').listDelete} */\n// eslint-disable-next-line consistent-return\nvar listDelete = function (objects, key) {\n\tif (objects) {\n\t\treturn listGetNode(objects, key, true);\n\t}\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannelList() {\n\t/** @typedef {ReturnType} Channel */\n\t/** @typedef {Parameters[0]} K */\n\t/** @typedef {Parameters[1]} V */\n\n\t/** @type {import('./list.d.ts').RootNode | undefined} */ var $o;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tvar root = $o && $o.next;\n\t\t\tvar deletedNode = listDelete($o, key);\n\t\t\tif (deletedNode && root && root === deletedNode) {\n\t\t\t\t$o = void undefined;\n\t\t\t}\n\t\t\treturn !!deletedNode;\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn listGet($o, key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn listHas($o, key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$o) {\n\t\t\t\t// 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\n\t\t\t\t$o = {\n\t\t\t\t\tnext: void undefined\n\t\t\t\t};\n\t\t\t}\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tlistSet(/** @type {NonNullable} */ ($o), key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $Map = GetIntrinsic('%Map%', true);\n\n/** @type {(thisArg: Map, key: K) => V} */\nvar $mapGet = callBound('Map.prototype.get', true);\n/** @type {(thisArg: Map, key: K, value: V) => void} */\nvar $mapSet = callBound('Map.prototype.set', true);\n/** @type {(thisArg: Map, key: K) => boolean} */\nvar $mapHas = callBound('Map.prototype.has', true);\n/** @type {(thisArg: Map, key: K) => boolean} */\nvar $mapDelete = callBound('Map.prototype.delete', true);\n/** @type {(thisArg: Map) => number} */\nvar $mapSize = callBound('Map.prototype.size', true);\n\n/** @type {import('.')} */\nmodule.exports = !!$Map && /** @type {Exclude} */ function getSideChannelMap() {\n\t/** @typedef {ReturnType} Channel */\n\t/** @typedef {Parameters[0]} K */\n\t/** @typedef {Parameters[1]} V */\n\n\t/** @type {Map | undefined} */ var $m;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\tif ($m) {\n\t\t\t\tvar result = $mapDelete($m, key);\n\t\t\t\tif ($mapSize($m) === 0) {\n\t\t\t\t\t$m = void undefined;\n\t\t\t\t}\n\t\t\t\treturn result;\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($m) {\n\t\t\t\treturn $mapGet($m, key);\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($m) {\n\t\t\t\treturn $mapHas($m, key);\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$m) {\n\t\t\t\t// @ts-expect-error TS can't handle narrowing a variable inside a closure\n\t\t\t\t$m = new $Map();\n\t\t\t}\n\t\t\t$mapSet($m, key, value);\n\t\t}\n\t};\n\n\t// @ts-expect-error TODO: figure out why TS is erroring here\n\treturn channel;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bound');\nvar inspect = require('object-inspect');\nvar getSideChannelMap = require('side-channel-map');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\n\n/** @type {(thisArg: WeakMap, key: K) => V} */\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\n/** @type {(thisArg: WeakMap, key: K, value: V) => void} */\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\n/** @type {(thisArg: WeakMap, key: K) => boolean} */\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\n/** @type {(thisArg: WeakMap, key: K) => boolean} */\nvar $weakMapDelete = callBound('WeakMap.prototype.delete', true);\n\n/** @type {import('.')} */\nmodule.exports = $WeakMap\n\t? /** @type {Exclude} */ function getSideChannelWeakMap() {\n\t\t/** @typedef {ReturnType} Channel */\n\t\t/** @typedef {Parameters[0]} K */\n\t\t/** @typedef {Parameters[1]} V */\n\n\t\t/** @type {WeakMap | undefined} */ var $wm;\n\t\t/** @type {Channel | undefined} */ var $m;\n\n\t\t/** @type {Channel} */\n\t\tvar channel = {\n\t\t\tassert: function (key) {\n\t\t\t\tif (!channel.has(key)) {\n\t\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t\t}\n\t\t\t},\n\t\t\t'delete': function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapDelete($wm, key);\n\t\t\t\t\t}\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif ($m) {\n\t\t\t\t\t\treturn $m['delete'](key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tget: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn $m && $m.get(key);\n\t\t\t},\n\t\t\thas: function (key) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif ($wm) {\n\t\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\treturn !!$m && $m.has(key);\n\t\t\t},\n\t\t\tset: function (key, value) {\n\t\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\t\tif (!$wm) {\n\t\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t\t}\n\t\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t\t} else if (getSideChannelMap) {\n\t\t\t\t\tif (!$m) {\n\t\t\t\t\t\t$m = getSideChannelMap();\n\t\t\t\t\t}\n\t\t\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\t\t\t/** @type {NonNullable} */ ($m).set(key, value);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t// @ts-expect-error TODO: figure out why this is erroring\n\t\treturn channel;\n\t}\n\t: getSideChannelMap;\n","'use strict';\n\nvar $TypeError = require('es-errors/type');\nvar inspect = require('object-inspect');\nvar getSideChannelList = require('side-channel-list');\nvar getSideChannelMap = require('side-channel-map');\nvar getSideChannelWeakMap = require('side-channel-weakmap');\n\nvar makeChannel = getSideChannelWeakMap || getSideChannelMap || getSideChannelList;\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @typedef {ReturnType} Channel */\n\n\t/** @type {Channel | undefined} */ var $channelData;\n\n\t/** @type {Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\t'delete': function (key) {\n\t\t\treturn !!$channelData && $channelData['delete'](key);\n\t\t},\n\t\tget: function (key) {\n\t\t\treturn $channelData && $channelData.get(key);\n\t\t},\n\t\thas: function (key) {\n\t\t\treturn !!$channelData && $channelData.has(key);\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif (!$channelData) {\n\t\t\t\t$channelData = makeChannel();\n\t\t\t}\n\n\t\t\t$channelData.set(key, value);\n\t\t}\n\t};\n\t// @ts-expect-error TODO: figure out why this is erroring\n\treturn channel;\n};\n","var ClientRequest = require('./lib/request')\nvar response = require('./lib/response')\nvar extend = require('xtend')\nvar statusCodes = require('builtin-status-codes')\nvar url = require('url')\n\nvar http = exports\n\nhttp.request = function (opts, cb) {\n\tif (typeof opts === 'string')\n\t\topts = url.parse(opts)\n\telse\n\t\topts = extend(opts)\n\n\t// Normally, the page is loaded from http or https, so not specifying a protocol\n\t// will result in a (valid) protocol-relative url. However, this won't work if\n\t// the protocol is something else, like 'file:'\n\tvar defaultProtocol = global.location.protocol.search(/^https?:$/) === -1 ? 'http:' : ''\n\n\tvar protocol = opts.protocol || defaultProtocol\n\tvar host = opts.hostname || opts.host\n\tvar port = opts.port\n\tvar path = opts.path || '/'\n\n\t// Necessary for IPv6 addresses\n\tif (host && host.indexOf(':') !== -1)\n\t\thost = '[' + host + ']'\n\n\t// This may be a relative url. The browser should always be able to interpret it correctly.\n\topts.url = (host ? (protocol + '//' + host) : '') + (port ? ':' + port : '') + path\n\topts.method = (opts.method || 'GET').toUpperCase()\n\topts.headers = opts.headers || {}\n\n\t// Also valid opts.auth, opts.mode\n\n\tvar req = new ClientRequest(opts)\n\tif (cb)\n\t\treq.on('response', cb)\n\treturn req\n}\n\nhttp.get = function get (opts, cb) {\n\tvar req = http.request(opts, cb)\n\treq.end()\n\treturn req\n}\n\nhttp.ClientRequest = ClientRequest\nhttp.IncomingMessage = response.IncomingMessage\n\nhttp.Agent = function () {}\nhttp.Agent.defaultMaxSockets = 4\n\nhttp.globalAgent = new http.Agent()\n\nhttp.STATUS_CODES = statusCodes\n\nhttp.METHODS = [\n\t'CHECKOUT',\n\t'CONNECT',\n\t'COPY',\n\t'DELETE',\n\t'GET',\n\t'HEAD',\n\t'LOCK',\n\t'M-SEARCH',\n\t'MERGE',\n\t'MKACTIVITY',\n\t'MKCOL',\n\t'MOVE',\n\t'NOTIFY',\n\t'OPTIONS',\n\t'PATCH',\n\t'POST',\n\t'PROPFIND',\n\t'PROPPATCH',\n\t'PURGE',\n\t'PUT',\n\t'REPORT',\n\t'SEARCH',\n\t'SUBSCRIBE',\n\t'TRACE',\n\t'UNLOCK',\n\t'UNSUBSCRIBE'\n]","exports.fetch = isFunction(global.fetch) && isFunction(global.ReadableStream)\n\nexports.writableStream = isFunction(global.WritableStream)\n\nexports.abortController = isFunction(global.AbortController)\n\n// The xhr request to example.com may violate some restrictive CSP configurations,\n// so if we're running in a browser that supports `fetch`, avoid calling getXHR()\n// and assume support for certain features below.\nvar xhr\nfunction getXHR () {\n\t// Cache the xhr value\n\tif (xhr !== undefined) return xhr\n\n\tif (global.XMLHttpRequest) {\n\t\txhr = new global.XMLHttpRequest()\n\t\t// If XDomainRequest is available (ie only, where xhr might not work\n\t\t// cross domain), use the page location. Otherwise use example.com\n\t\t// Note: this doesn't actually make an http request.\n\t\ttry {\n\t\t\txhr.open('GET', global.XDomainRequest ? '/' : 'https://example.com')\n\t\t} catch(e) {\n\t\t\txhr = null\n\t\t}\n\t} else {\n\t\t// Service workers don't have XHR\n\t\txhr = null\n\t}\n\treturn xhr\n}\n\nfunction checkTypeSupport (type) {\n\tvar xhr = getXHR()\n\tif (!xhr) return false\n\ttry {\n\t\txhr.responseType = type\n\t\treturn xhr.responseType === type\n\t} catch (e) {}\n\treturn false\n}\n\n// If fetch is supported, then arraybuffer will be supported too. Skip calling\n// checkTypeSupport(), since that calls getXHR().\nexports.arraybuffer = exports.fetch || checkTypeSupport('arraybuffer')\n\n// These next two tests unavoidably show warnings in Chrome. Since fetch will always\n// be used if it's available, just return false for these to avoid the warnings.\nexports.msstream = !exports.fetch && checkTypeSupport('ms-stream')\nexports.mozchunkedarraybuffer = !exports.fetch && checkTypeSupport('moz-chunked-arraybuffer')\n\n// If fetch is supported, then overrideMimeType will be supported too. Skip calling\n// getXHR().\nexports.overrideMimeType = exports.fetch || (getXHR() ? isFunction(getXHR().overrideMimeType) : false)\n\nfunction isFunction (value) {\n\treturn typeof value === 'function'\n}\n\nxhr = null // Help gc\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar response = require('./response')\nvar stream = require('readable-stream')\n\nvar IncomingMessage = response.IncomingMessage\nvar rStates = response.readyStates\n\nfunction decideMode (preferBinary, useFetch) {\n\tif (capability.fetch && useFetch) {\n\t\treturn 'fetch'\n\t} else if (capability.mozchunkedarraybuffer) {\n\t\treturn 'moz-chunked-arraybuffer'\n\t} else if (capability.msstream) {\n\t\treturn 'ms-stream'\n\t} else if (capability.arraybuffer && preferBinary) {\n\t\treturn 'arraybuffer'\n\t} else {\n\t\treturn 'text'\n\t}\n}\n\nvar ClientRequest = module.exports = function (opts) {\n\tvar self = this\n\tstream.Writable.call(self)\n\n\tself._opts = opts\n\tself._body = []\n\tself._headers = {}\n\tif (opts.auth)\n\t\tself.setHeader('Authorization', 'Basic ' + Buffer.from(opts.auth).toString('base64'))\n\tObject.keys(opts.headers).forEach(function (name) {\n\t\tself.setHeader(name, opts.headers[name])\n\t})\n\n\tvar preferBinary\n\tvar useFetch = true\n\tif (opts.mode === 'disable-fetch' || ('requestTimeout' in opts && !capability.abortController)) {\n\t\t// If the use of XHR should be preferred. Not typically needed.\n\t\tuseFetch = false\n\t\tpreferBinary = true\n\t} else if (opts.mode === 'prefer-streaming') {\n\t\t// If streaming is a high priority but binary compatibility and\n\t\t// the accuracy of the 'content-type' header aren't\n\t\tpreferBinary = false\n\t} else if (opts.mode === 'allow-wrong-content-type') {\n\t\t// If streaming is more important than preserving the 'content-type' header\n\t\tpreferBinary = !capability.overrideMimeType\n\t} else if (!opts.mode || opts.mode === 'default' || opts.mode === 'prefer-fast') {\n\t\t// Use binary if text streaming may corrupt data or the content-type header, or for speed\n\t\tpreferBinary = true\n\t} else {\n\t\tthrow new Error('Invalid value for opts.mode')\n\t}\n\tself._mode = decideMode(preferBinary, useFetch)\n\tself._fetchTimer = null\n\tself._socketTimeout = null\n\tself._socketTimer = null\n\n\tself.on('finish', function () {\n\t\tself._onFinish()\n\t})\n}\n\ninherits(ClientRequest, stream.Writable)\n\nClientRequest.prototype.setHeader = function (name, value) {\n\tvar self = this\n\tvar lowerName = name.toLowerCase()\n\t// This check is not necessary, but it prevents warnings from browsers about setting unsafe\n\t// headers. To be honest I'm not entirely sure hiding these warnings is a good thing, but\n\t// http-browserify did it, so I will too.\n\tif (unsafeHeaders.indexOf(lowerName) !== -1)\n\t\treturn\n\n\tself._headers[lowerName] = {\n\t\tname: name,\n\t\tvalue: value\n\t}\n}\n\nClientRequest.prototype.getHeader = function (name) {\n\tvar header = this._headers[name.toLowerCase()]\n\tif (header)\n\t\treturn header.value\n\treturn null\n}\n\nClientRequest.prototype.removeHeader = function (name) {\n\tvar self = this\n\tdelete self._headers[name.toLowerCase()]\n}\n\nClientRequest.prototype._onFinish = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\tvar opts = self._opts\n\n\tif ('timeout' in opts && opts.timeout !== 0) {\n\t\tself.setTimeout(opts.timeout)\n\t}\n\n\tvar headersObj = self._headers\n\tvar body = null\n\tif (opts.method !== 'GET' && opts.method !== 'HEAD') {\n        body = new Blob(self._body, {\n            type: (headersObj['content-type'] || {}).value || ''\n        });\n    }\n\n\t// create flattened list of headers\n\tvar headersList = []\n\tObject.keys(headersObj).forEach(function (keyName) {\n\t\tvar name = headersObj[keyName].name\n\t\tvar value = headersObj[keyName].value\n\t\tif (Array.isArray(value)) {\n\t\t\tvalue.forEach(function (v) {\n\t\t\t\theadersList.push([name, v])\n\t\t\t})\n\t\t} else {\n\t\t\theadersList.push([name, value])\n\t\t}\n\t})\n\n\tif (self._mode === 'fetch') {\n\t\tvar signal = null\n\t\tif (capability.abortController) {\n\t\t\tvar controller = new AbortController()\n\t\t\tsignal = controller.signal\n\t\t\tself._fetchAbortController = controller\n\n\t\t\tif ('requestTimeout' in opts && opts.requestTimeout !== 0) {\n\t\t\t\tself._fetchTimer = global.setTimeout(function () {\n\t\t\t\t\tself.emit('requestTimeout')\n\t\t\t\t\tif (self._fetchAbortController)\n\t\t\t\t\t\tself._fetchAbortController.abort()\n\t\t\t\t}, opts.requestTimeout)\n\t\t\t}\n\t\t}\n\n\t\tglobal.fetch(self._opts.url, {\n\t\t\tmethod: self._opts.method,\n\t\t\theaders: headersList,\n\t\t\tbody: body || undefined,\n\t\t\tmode: 'cors',\n\t\t\tcredentials: opts.withCredentials ? 'include' : 'same-origin',\n\t\t\tsignal: signal\n\t\t}).then(function (response) {\n\t\t\tself._fetchResponse = response\n\t\t\tself._resetTimers(false)\n\t\t\tself._connect()\n\t\t}, function (reason) {\n\t\t\tself._resetTimers(true)\n\t\t\tif (!self._destroyed)\n\t\t\t\tself.emit('error', reason)\n\t\t})\n\t} else {\n\t\tvar xhr = self._xhr = new global.XMLHttpRequest()\n\t\ttry {\n\t\t\txhr.open(self._opts.method, self._opts.url, true)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\n\t\t// Can't set responseType on really old browsers\n\t\tif ('responseType' in xhr)\n\t\t\txhr.responseType = self._mode\n\n\t\tif ('withCredentials' in xhr)\n\t\t\txhr.withCredentials = !!opts.withCredentials\n\n\t\tif (self._mode === 'text' && 'overrideMimeType' in xhr)\n\t\t\txhr.overrideMimeType('text/plain; charset=x-user-defined')\n\n\t\tif ('requestTimeout' in opts) {\n\t\t\txhr.timeout = opts.requestTimeout\n\t\t\txhr.ontimeout = function () {\n\t\t\t\tself.emit('requestTimeout')\n\t\t\t}\n\t\t}\n\n\t\theadersList.forEach(function (header) {\n\t\t\txhr.setRequestHeader(header[0], header[1])\n\t\t})\n\n\t\tself._response = null\n\t\txhr.onreadystatechange = function () {\n\t\t\tswitch (xhr.readyState) {\n\t\t\t\tcase rStates.LOADING:\n\t\t\t\tcase rStates.DONE:\n\t\t\t\t\tself._onXHRProgress()\n\t\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// Necessary for streaming in Firefox, since xhr.response is ONLY defined\n\t\t// in onprogress, not in onreadystatechange with xhr.readyState = 3\n\t\tif (self._mode === 'moz-chunked-arraybuffer') {\n\t\t\txhr.onprogress = function () {\n\t\t\t\tself._onXHRProgress()\n\t\t\t}\n\t\t}\n\n\t\txhr.onerror = function () {\n\t\t\tif (self._destroyed)\n\t\t\t\treturn\n\t\t\tself._resetTimers(true)\n\t\t\tself.emit('error', new Error('XHR error'))\n\t\t}\n\n\t\ttry {\n\t\t\txhr.send(body)\n\t\t} catch (err) {\n\t\t\tprocess.nextTick(function () {\n\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t\treturn\n\t\t}\n\t}\n}\n\n/**\n * Checks if xhr.status is readable and non-zero, indicating no error.\n * Even though the spec says it should be available in readyState 3,\n * accessing it throws an exception in IE8\n */\nfunction statusValid (xhr) {\n\ttry {\n\t\tvar status = xhr.status\n\t\treturn (status !== null && status !== 0)\n\t} catch (e) {\n\t\treturn false\n\t}\n}\n\nClientRequest.prototype._onXHRProgress = function () {\n\tvar self = this\n\n\tself._resetTimers(false)\n\n\tif (!statusValid(self._xhr) || self._destroyed)\n\t\treturn\n\n\tif (!self._response)\n\t\tself._connect()\n\n\tself._response._onXHRProgress(self._resetTimers.bind(self))\n}\n\nClientRequest.prototype._connect = function () {\n\tvar self = this\n\n\tif (self._destroyed)\n\t\treturn\n\n\tself._response = new IncomingMessage(self._xhr, self._fetchResponse, self._mode, self._resetTimers.bind(self))\n\tself._response.on('error', function(err) {\n\t\tself.emit('error', err)\n\t})\n\n\tself.emit('response', self._response)\n}\n\nClientRequest.prototype._write = function (chunk, encoding, cb) {\n\tvar self = this\n\n\tself._body.push(chunk)\n\tcb()\n}\n\nClientRequest.prototype._resetTimers = function (done) {\n\tvar self = this\n\n\tglobal.clearTimeout(self._socketTimer)\n\tself._socketTimer = null\n\n\tif (done) {\n\t\tglobal.clearTimeout(self._fetchTimer)\n\t\tself._fetchTimer = null\n\t} else if (self._socketTimeout) {\n\t\tself._socketTimer = global.setTimeout(function () {\n\t\t\tself.emit('timeout')\n\t\t}, self._socketTimeout)\n\t}\n}\n\nClientRequest.prototype.abort = ClientRequest.prototype.destroy = function (err) {\n\tvar self = this\n\tself._destroyed = true\n\tself._resetTimers(true)\n\tif (self._response)\n\t\tself._response._destroyed = true\n\tif (self._xhr)\n\t\tself._xhr.abort()\n\telse if (self._fetchAbortController)\n\t\tself._fetchAbortController.abort()\n\n\tif (err)\n\t\tself.emit('error', err)\n}\n\nClientRequest.prototype.end = function (data, encoding, cb) {\n\tvar self = this\n\tif (typeof data === 'function') {\n\t\tcb = data\n\t\tdata = undefined\n\t}\n\n\tstream.Writable.prototype.end.call(self, data, encoding, cb)\n}\n\nClientRequest.prototype.setTimeout = function (timeout, cb) {\n\tvar self = this\n\n\tif (cb)\n\t\tself.once('timeout', cb)\n\n\tself._socketTimeout = timeout\n\tself._resetTimers(false)\n}\n\nClientRequest.prototype.flushHeaders = function () {}\nClientRequest.prototype.setNoDelay = function () {}\nClientRequest.prototype.setSocketKeepAlive = function () {}\n\n// Taken from http://www.w3.org/TR/XMLHttpRequest/#the-setrequestheader%28%29-method\nvar unsafeHeaders = [\n\t'accept-charset',\n\t'accept-encoding',\n\t'access-control-request-headers',\n\t'access-control-request-method',\n\t'connection',\n\t'content-length',\n\t'cookie',\n\t'cookie2',\n\t'date',\n\t'dnt',\n\t'expect',\n\t'host',\n\t'keep-alive',\n\t'origin',\n\t'referer',\n\t'te',\n\t'trailer',\n\t'transfer-encoding',\n\t'upgrade',\n\t'via'\n]\n","var capability = require('./capability')\nvar inherits = require('inherits')\nvar stream = require('readable-stream')\n\nvar rStates = exports.readyStates = {\n\tUNSENT: 0,\n\tOPENED: 1,\n\tHEADERS_RECEIVED: 2,\n\tLOADING: 3,\n\tDONE: 4\n}\n\nvar IncomingMessage = exports.IncomingMessage = function (xhr, response, mode, resetTimers) {\n\tvar self = this\n\tstream.Readable.call(self)\n\n\tself._mode = mode\n\tself.headers = {}\n\tself.rawHeaders = []\n\tself.trailers = {}\n\tself.rawTrailers = []\n\n\t// Fake the 'close' event, but only once 'end' fires\n\tself.on('end', function () {\n\t\t// The nextTick is necessary to prevent the 'request' module from causing an infinite loop\n\t\tprocess.nextTick(function () {\n\t\t\tself.emit('close')\n\t\t})\n\t})\n\n\tif (mode === 'fetch') {\n\t\tself._fetchResponse = response\n\n\t\tself.url = response.url\n\t\tself.statusCode = response.status\n\t\tself.statusMessage = response.statusText\n\t\t\n\t\tresponse.headers.forEach(function (header, key){\n\t\t\tself.headers[key.toLowerCase()] = header\n\t\t\tself.rawHeaders.push(key, header)\n\t\t})\n\n\t\tif (capability.writableStream) {\n\t\t\tvar writable = new WritableStream({\n\t\t\t\twrite: function (chunk) {\n\t\t\t\t\tresetTimers(false)\n\t\t\t\t\treturn new Promise(function (resolve, reject) {\n\t\t\t\t\t\tif (self._destroyed) {\n\t\t\t\t\t\t\treject()\n\t\t\t\t\t\t} else if(self.push(Buffer.from(chunk))) {\n\t\t\t\t\t\t\tresolve()\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself._resumeFetch = resolve\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t},\n\t\t\t\tclose: function () {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.push(null)\n\t\t\t\t},\n\t\t\t\tabort: function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t}\n\t\t\t})\n\n\t\t\ttry {\n\t\t\t\tresponse.body.pipeTo(writable).catch(function (err) {\n\t\t\t\t\tresetTimers(true)\n\t\t\t\t\tif (!self._destroyed)\n\t\t\t\t\t\tself.emit('error', err)\n\t\t\t\t})\n\t\t\t\treturn\n\t\t\t} catch (e) {} // pipeTo method isn't defined. Can't find a better way to feature test this\n\t\t}\n\t\t// fallback for when writableStream or pipeTo aren't available\n\t\tvar reader = response.body.getReader()\n\t\tfunction read () {\n\t\t\treader.read().then(function (result) {\n\t\t\t\tif (self._destroyed)\n\t\t\t\t\treturn\n\t\t\t\tresetTimers(result.done)\n\t\t\t\tif (result.done) {\n\t\t\t\t\tself.push(null)\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tself.push(Buffer.from(result.value))\n\t\t\t\tread()\n\t\t\t}).catch(function (err) {\n\t\t\t\tresetTimers(true)\n\t\t\t\tif (!self._destroyed)\n\t\t\t\t\tself.emit('error', err)\n\t\t\t})\n\t\t}\n\t\tread()\n\t} else {\n\t\tself._xhr = xhr\n\t\tself._pos = 0\n\n\t\tself.url = xhr.responseURL\n\t\tself.statusCode = xhr.status\n\t\tself.statusMessage = xhr.statusText\n\t\tvar headers = xhr.getAllResponseHeaders().split(/\\r?\\n/)\n\t\theaders.forEach(function (header) {\n\t\t\tvar matches = header.match(/^([^:]+):\\s*(.*)/)\n\t\t\tif (matches) {\n\t\t\t\tvar key = matches[1].toLowerCase()\n\t\t\t\tif (key === 'set-cookie') {\n\t\t\t\t\tif (self.headers[key] === undefined) {\n\t\t\t\t\t\tself.headers[key] = []\n\t\t\t\t\t}\n\t\t\t\t\tself.headers[key].push(matches[2])\n\t\t\t\t} else if (self.headers[key] !== undefined) {\n\t\t\t\t\tself.headers[key] += ', ' + matches[2]\n\t\t\t\t} else {\n\t\t\t\t\tself.headers[key] = matches[2]\n\t\t\t\t}\n\t\t\t\tself.rawHeaders.push(matches[1], matches[2])\n\t\t\t}\n\t\t})\n\n\t\tself._charset = 'x-user-defined'\n\t\tif (!capability.overrideMimeType) {\n\t\t\tvar mimeType = self.rawHeaders['mime-type']\n\t\t\tif (mimeType) {\n\t\t\t\tvar charsetMatch = mimeType.match(/;\\s*charset=([^;])(;|$)/)\n\t\t\t\tif (charsetMatch) {\n\t\t\t\t\tself._charset = charsetMatch[1].toLowerCase()\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (!self._charset)\n\t\t\t\tself._charset = 'utf-8' // best guess\n\t\t}\n\t}\n}\n\ninherits(IncomingMessage, stream.Readable)\n\nIncomingMessage.prototype._read = function () {\n\tvar self = this\n\n\tvar resolve = self._resumeFetch\n\tif (resolve) {\n\t\tself._resumeFetch = null\n\t\tresolve()\n\t}\n}\n\nIncomingMessage.prototype._onXHRProgress = function (resetTimers) {\n\tvar self = this\n\n\tvar xhr = self._xhr\n\n\tvar response = null\n\tswitch (self._mode) {\n\t\tcase 'text':\n\t\t\tresponse = xhr.responseText\n\t\t\tif (response.length > self._pos) {\n\t\t\t\tvar newData = response.substr(self._pos)\n\t\t\t\tif (self._charset === 'x-user-defined') {\n\t\t\t\t\tvar buffer = Buffer.alloc(newData.length)\n\t\t\t\t\tfor (var i = 0; i < newData.length; i++)\n\t\t\t\t\t\tbuffer[i] = newData.charCodeAt(i) & 0xff\n\n\t\t\t\t\tself.push(buffer)\n\t\t\t\t} else {\n\t\t\t\t\tself.push(newData, self._charset)\n\t\t\t\t}\n\t\t\t\tself._pos = response.length\n\t\t\t}\n\t\t\tbreak\n\t\tcase 'arraybuffer':\n\t\t\tif (xhr.readyState !== rStates.DONE || !xhr.response)\n\t\t\t\tbreak\n\t\t\tresponse = xhr.response\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'moz-chunked-arraybuffer': // take whole\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING || !response)\n\t\t\t\tbreak\n\t\t\tself.push(Buffer.from(new Uint8Array(response)))\n\t\t\tbreak\n\t\tcase 'ms-stream':\n\t\t\tresponse = xhr.response\n\t\t\tif (xhr.readyState !== rStates.LOADING)\n\t\t\t\tbreak\n\t\t\tvar reader = new global.MSStreamReader()\n\t\t\treader.onprogress = function () {\n\t\t\t\tif (reader.result.byteLength > self._pos) {\n\t\t\t\t\tself.push(Buffer.from(new Uint8Array(reader.result.slice(self._pos))))\n\t\t\t\t\tself._pos = reader.result.byteLength\n\t\t\t\t}\n\t\t\t}\n\t\t\treader.onload = function () {\n\t\t\t\tresetTimers(true)\n\t\t\t\tself.push(null)\n\t\t\t}\n\t\t\t// reader.onerror = ??? // TODO: this\n\t\t\treader.readAsArrayBuffer(response)\n\t\t\tbreak\n\t}\n\n\t// The ms-stream case handles end separately in reader.onload()\n\tif (self._xhr.readyState === rStates.DONE && self._mode !== 'ms-stream') {\n\t\tresetTimers(true)\n\t\tself.push(null)\n\t}\n}\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n  if (!Base) {\n    Base = Error;\n  }\n\n  function getMessage(arg1, arg2, arg3) {\n    if (typeof message === 'string') {\n      return message;\n    } else {\n      return message(arg1, arg2, arg3);\n    }\n  }\n\n  var NodeError =\n  /*#__PURE__*/\n  function (_Base) {\n    _inheritsLoose(NodeError, _Base);\n\n    function NodeError(arg1, arg2, arg3) {\n      return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n    }\n\n    return NodeError;\n  }(Base);\n\n  NodeError.prototype.name = Base.name;\n  NodeError.prototype.code = code;\n  codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n  if (Array.isArray(expected)) {\n    var len = expected.length;\n    expected = expected.map(function (i) {\n      return String(i);\n    });\n\n    if (len > 2) {\n      return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n    } else if (len === 2) {\n      return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n    } else {\n      return \"of \".concat(thing, \" \").concat(expected[0]);\n    }\n  } else {\n    return \"of \".concat(thing, \" \").concat(String(expected));\n  }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n  return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n  if (this_len === undefined || this_len > str.length) {\n    this_len = str.length;\n  }\n\n  return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n  if (typeof start !== 'number') {\n    start = 0;\n  }\n\n  if (start + search.length > str.length) {\n    return false;\n  } else {\n    return str.indexOf(search, start) !== -1;\n  }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n  return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n  // determiner: 'must be' or 'must not be'\n  var determiner;\n\n  if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n    determiner = 'must not be';\n    expected = expected.replace(/^not /, '');\n  } else {\n    determiner = 'must be';\n  }\n\n  var msg;\n\n  if (endsWith(name, ' argument')) {\n    // For cases like 'first argument'\n    msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n  } else {\n    var type = includes(name, '.') ? 'property' : 'argument';\n    msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n  }\n\n  msg += \". Received type \".concat(typeof actual);\n  return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n  return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n  return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n  return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n  var keys = [];\n  for (var key in obj) keys.push(key);\n  return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n  // Allow the keys array to be GC'ed.\n  var keys = objectKeys(Writable.prototype);\n  for (var v = 0; v < keys.length; v++) {\n    var method = keys[v];\n    if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n  }\n}\nfunction Duplex(options) {\n  if (!(this instanceof Duplex)) return new Duplex(options);\n  Readable.call(this, options);\n  Writable.call(this, options);\n  this.allowHalfOpen = true;\n  if (options) {\n    if (options.readable === false) this.readable = false;\n    if (options.writable === false) this.writable = false;\n    if (options.allowHalfOpen === false) {\n      this.allowHalfOpen = false;\n      this.once('end', onend);\n    }\n  }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.highWaterMark;\n  }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState && this._writableState.getBuffer();\n  }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.length;\n  }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n  // If the writable side ended, then we're ok.\n  if (this._writableState.ended) return;\n\n  // no more data can be written.\n  // But allow more writes to happen in this tick.\n  process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n  self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed && this._writableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (this._readableState === undefined || this._writableState === undefined) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n    this._writableState.destroyed = value;\n  }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n  if (!(this instanceof PassThrough)) return new PassThrough(options);\n  Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n  cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n  return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n  debug = debugUtil.debuglog('stream');\n} else {\n  debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n  getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n  ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n  ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n  ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n  // Sadly this is not cacheable as some libraries bundle their own\n  // event emitter implementation with them.\n  if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n  // This is a hack to make sure that our error handler is attached before any\n  // userland ones.  NEVER DO THIS. This is here only because this code needs\n  // to continue to work with older versions of Node.js that do not include\n  // the prependListener() method. The goal is to eventually remove this hack.\n  if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n  Duplex = Duplex || require('./_stream_duplex');\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream.\n  // These options can be provided separately as readableXXX and writableXXX.\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n  // object stream flag. Used to make read(n) ignore n and to\n  // make all the buffer merging and length checks go away\n  this.objectMode = !!options.objectMode;\n  if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n  // the point at which it stops calling _read() to fill the buffer\n  // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n  this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n  // A linked list is used to store data chunks instead of an array because the\n  // linked list can remove elements from the beginning faster than\n  // array.shift()\n  this.buffer = new BufferList();\n  this.length = 0;\n  this.pipes = null;\n  this.pipesCount = 0;\n  this.flowing = null;\n  this.ended = false;\n  this.endEmitted = false;\n  this.reading = false;\n\n  // a flag to be able to tell if the event 'readable'/'data' is emitted\n  // immediately, or on a later tick.  We set this to true at first, because\n  // any actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first read call.\n  this.sync = true;\n\n  // whenever we return null, then we set a flag to say\n  // that we're awaiting a 'readable' event emission.\n  this.needReadable = false;\n  this.emittedReadable = false;\n  this.readableListening = false;\n  this.resumeScheduled = false;\n  this.paused = true;\n\n  // Should close be emitted on destroy. Defaults to true.\n  this.emitClose = options.emitClose !== false;\n\n  // Should .destroy() be called after 'end' (and potentially 'finish')\n  this.autoDestroy = !!options.autoDestroy;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // the number of writers that are awaiting a drain event in .pipe()s\n  this.awaitDrain = 0;\n\n  // if true, a maybeReadMore has been scheduled\n  this.readingMore = false;\n  this.decoder = null;\n  this.encoding = null;\n  if (options.encoding) {\n    if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n    this.decoder = new StringDecoder(options.encoding);\n    this.encoding = options.encoding;\n  }\n}\nfunction Readable(options) {\n  Duplex = Duplex || require('./_stream_duplex');\n  if (!(this instanceof Readable)) return new Readable(options);\n\n  // Checking for a Stream.Duplex instance is faster here instead of inside\n  // the ReadableState constructor, at least with V8 6.5\n  var isDuplex = this instanceof Duplex;\n  this._readableState = new ReadableState(options, this, isDuplex);\n\n  // legacy\n  this.readable = true;\n  if (options) {\n    if (typeof options.read === 'function') this._read = options.read;\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n  }\n  Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._readableState === undefined) {\n      return false;\n    }\n    return this._readableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._readableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._readableState.destroyed = value;\n  }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n  cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n  var state = this._readableState;\n  var skipChunkCheck;\n  if (!state.objectMode) {\n    if (typeof chunk === 'string') {\n      encoding = encoding || state.defaultEncoding;\n      if (encoding !== state.encoding) {\n        chunk = Buffer.from(chunk, encoding);\n        encoding = '';\n      }\n      skipChunkCheck = true;\n    }\n  } else {\n    skipChunkCheck = true;\n  }\n  return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n  return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n  debug('readableAddChunk', chunk);\n  var state = stream._readableState;\n  if (chunk === null) {\n    state.reading = false;\n    onEofChunk(stream, state);\n  } else {\n    var er;\n    if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n    if (er) {\n      errorOrDestroy(stream, er);\n    } else if (state.objectMode || chunk && chunk.length > 0) {\n      if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n        chunk = _uint8ArrayToBuffer(chunk);\n      }\n      if (addToFront) {\n        if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n      } else if (state.ended) {\n        errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n      } else if (state.destroyed) {\n        return false;\n      } else {\n        state.reading = false;\n        if (state.decoder && !encoding) {\n          chunk = state.decoder.write(chunk);\n          if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n        } else {\n          addChunk(stream, state, chunk, false);\n        }\n      }\n    } else if (!addToFront) {\n      state.reading = false;\n      maybeReadMore(stream, state);\n    }\n  }\n\n  // We can push more data if we are below the highWaterMark.\n  // Also, if we have no data yet, we can stand some more bytes.\n  // This is to work around cases where hwm=0, such as the repl.\n  return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n  if (state.flowing && state.length === 0 && !state.sync) {\n    state.awaitDrain = 0;\n    stream.emit('data', chunk);\n  } else {\n    // update the buffer info.\n    state.length += state.objectMode ? 1 : chunk.length;\n    if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n    if (state.needReadable) emitReadable(stream);\n  }\n  maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n  var er;\n  if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n    er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n  }\n  return er;\n}\nReadable.prototype.isPaused = function () {\n  return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n  if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n  var decoder = new StringDecoder(enc);\n  this._readableState.decoder = decoder;\n  // If setEncoding(null), decoder.encoding equals utf8\n  this._readableState.encoding = this._readableState.decoder.encoding;\n\n  // Iterate over current buffer to convert already stored Buffers:\n  var p = this._readableState.buffer.head;\n  var content = '';\n  while (p !== null) {\n    content += decoder.write(p.data);\n    p = p.next;\n  }\n  this._readableState.buffer.clear();\n  if (content !== '') this._readableState.buffer.push(content);\n  this._readableState.length = content.length;\n  return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n  if (n >= MAX_HWM) {\n    // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n    n = MAX_HWM;\n  } else {\n    // Get the next highest power of 2 to prevent increasing hwm excessively in\n    // tiny amounts\n    n--;\n    n |= n >>> 1;\n    n |= n >>> 2;\n    n |= n >>> 4;\n    n |= n >>> 8;\n    n |= n >>> 16;\n    n++;\n  }\n  return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n  if (n <= 0 || state.length === 0 && state.ended) return 0;\n  if (state.objectMode) return 1;\n  if (n !== n) {\n    // Only flow one buffer at a time\n    if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n  }\n  // If we're asking for more than the current hwm, then raise the hwm.\n  if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n  if (n <= state.length) return n;\n  // Don't have enough\n  if (!state.ended) {\n    state.needReadable = true;\n    return 0;\n  }\n  return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n  debug('read', n);\n  n = parseInt(n, 10);\n  var state = this._readableState;\n  var nOrig = n;\n  if (n !== 0) state.emittedReadable = false;\n\n  // if we're doing read(0) to trigger a readable event, but we\n  // already have a bunch of data in the buffer, then just trigger\n  // the 'readable' event and move on.\n  if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n    debug('read: emitReadable', state.length, state.ended);\n    if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n    return null;\n  }\n  n = howMuchToRead(n, state);\n\n  // if we've ended, and we're now clear, then finish it up.\n  if (n === 0 && state.ended) {\n    if (state.length === 0) endReadable(this);\n    return null;\n  }\n\n  // All the actual chunk generation logic needs to be\n  // *below* the call to _read.  The reason is that in certain\n  // synthetic stream cases, such as passthrough streams, _read\n  // may be a completely synchronous operation which may change\n  // the state of the read buffer, providing enough data when\n  // before there was *not* enough.\n  //\n  // So, the steps are:\n  // 1. Figure out what the state of things will be after we do\n  // a read from the buffer.\n  //\n  // 2. If that resulting state will trigger a _read, then call _read.\n  // Note that this may be asynchronous, or synchronous.  Yes, it is\n  // deeply ugly to write APIs this way, but that still doesn't mean\n  // that the Readable class should behave improperly, as streams are\n  // designed to be sync/async agnostic.\n  // Take note if the _read call is sync or async (ie, if the read call\n  // has returned yet), so that we know whether or not it's safe to emit\n  // 'readable' etc.\n  //\n  // 3. Actually pull the requested chunks out of the buffer and return.\n\n  // if we need a readable event, then we need to do some reading.\n  var doRead = state.needReadable;\n  debug('need readable', doRead);\n\n  // if we currently have less than the highWaterMark, then also read some\n  if (state.length === 0 || state.length - n < state.highWaterMark) {\n    doRead = true;\n    debug('length less than watermark', doRead);\n  }\n\n  // however, if we've ended, then there's no point, and if we're already\n  // reading, then it's unnecessary.\n  if (state.ended || state.reading) {\n    doRead = false;\n    debug('reading or ended', doRead);\n  } else if (doRead) {\n    debug('do read');\n    state.reading = true;\n    state.sync = true;\n    // if the length is currently zero, then we *need* a readable event.\n    if (state.length === 0) state.needReadable = true;\n    // call internal read method\n    this._read(state.highWaterMark);\n    state.sync = false;\n    // If _read pushed data synchronously, then `reading` will be false,\n    // and we need to re-evaluate how much data we can return to the user.\n    if (!state.reading) n = howMuchToRead(nOrig, state);\n  }\n  var ret;\n  if (n > 0) ret = fromList(n, state);else ret = null;\n  if (ret === null) {\n    state.needReadable = state.length <= state.highWaterMark;\n    n = 0;\n  } else {\n    state.length -= n;\n    state.awaitDrain = 0;\n  }\n  if (state.length === 0) {\n    // If we have nothing in the buffer, then we want to know\n    // as soon as we *do* get something into the buffer.\n    if (!state.ended) state.needReadable = true;\n\n    // If we tried to read() past the EOF, then emit end on the next tick.\n    if (nOrig !== n && state.ended) endReadable(this);\n  }\n  if (ret !== null) this.emit('data', ret);\n  return ret;\n};\nfunction onEofChunk(stream, state) {\n  debug('onEofChunk');\n  if (state.ended) return;\n  if (state.decoder) {\n    var chunk = state.decoder.end();\n    if (chunk && chunk.length) {\n      state.buffer.push(chunk);\n      state.length += state.objectMode ? 1 : chunk.length;\n    }\n  }\n  state.ended = true;\n  if (state.sync) {\n    // if we are sync, wait until next tick to emit the data.\n    // Otherwise we risk emitting data in the flow()\n    // the readable code triggers during a read() call\n    emitReadable(stream);\n  } else {\n    // emit 'readable' now to make sure it gets picked up.\n    state.needReadable = false;\n    if (!state.emittedReadable) {\n      state.emittedReadable = true;\n      emitReadable_(stream);\n    }\n  }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow.  This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n  var state = stream._readableState;\n  debug('emitReadable', state.needReadable, state.emittedReadable);\n  state.needReadable = false;\n  if (!state.emittedReadable) {\n    debug('emitReadable', state.flowing);\n    state.emittedReadable = true;\n    process.nextTick(emitReadable_, stream);\n  }\n}\nfunction emitReadable_(stream) {\n  var state = stream._readableState;\n  debug('emitReadable_', state.destroyed, state.length, state.ended);\n  if (!state.destroyed && (state.length || state.ended)) {\n    stream.emit('readable');\n    state.emittedReadable = false;\n  }\n\n  // The stream needs another readable event if\n  // 1. It is not flowing, as the flow mechanism will take\n  //    care of it.\n  // 2. It is not ended.\n  // 3. It is below the highWaterMark, so we can schedule\n  //    another readable later.\n  state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n  flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data.  that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n  if (!state.readingMore) {\n    state.readingMore = true;\n    process.nextTick(maybeReadMore_, stream, state);\n  }\n}\nfunction maybeReadMore_(stream, state) {\n  // Attempt to read more data if we should.\n  //\n  // The conditions for reading more data are (one of):\n  // - Not enough data buffered (state.length < state.highWaterMark). The loop\n  //   is responsible for filling the buffer with enough data if such data\n  //   is available. If highWaterMark is 0 and we are not in the flowing mode\n  //   we should _not_ attempt to buffer any extra data. We'll get more data\n  //   when the stream consumer calls read() instead.\n  // - No data in the buffer, and the stream is in flowing mode. In this mode\n  //   the loop below is responsible for ensuring read() is called. Failing to\n  //   call read here would abort the flow and there's no other mechanism for\n  //   continuing the flow if the stream consumer has just subscribed to the\n  //   'data' event.\n  //\n  // In addition to the above conditions to keep reading data, the following\n  // conditions prevent the data from being read:\n  // - The stream has ended (state.ended).\n  // - There is already a pending 'read' operation (state.reading). This is a\n  //   case where the the stream has called the implementation defined _read()\n  //   method, but they are processing the call asynchronously and have _not_\n  //   called push() with new data. In this case we skip performing more\n  //   read()s. The execution ends in this method again after the _read() ends\n  //   up calling push() with more data.\n  while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n    var len = state.length;\n    debug('maybeReadMore read 0');\n    stream.read(0);\n    if (len === state.length)\n      // didn't get any data, stop spinning.\n      break;\n  }\n  state.readingMore = false;\n}\n\n// abstract method.  to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n  errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n  var src = this;\n  var state = this._readableState;\n  switch (state.pipesCount) {\n    case 0:\n      state.pipes = dest;\n      break;\n    case 1:\n      state.pipes = [state.pipes, dest];\n      break;\n    default:\n      state.pipes.push(dest);\n      break;\n  }\n  state.pipesCount += 1;\n  debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n  var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n  var endFn = doEnd ? onend : unpipe;\n  if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n  dest.on('unpipe', onunpipe);\n  function onunpipe(readable, unpipeInfo) {\n    debug('onunpipe');\n    if (readable === src) {\n      if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n        unpipeInfo.hasUnpiped = true;\n        cleanup();\n      }\n    }\n  }\n  function onend() {\n    debug('onend');\n    dest.end();\n  }\n\n  // when the dest drains, it reduces the awaitDrain counter\n  // on the source.  This would be more elegant with a .once()\n  // handler in flow(), but adding and removing repeatedly is\n  // too slow.\n  var ondrain = pipeOnDrain(src);\n  dest.on('drain', ondrain);\n  var cleanedUp = false;\n  function cleanup() {\n    debug('cleanup');\n    // cleanup event handlers once the pipe is broken\n    dest.removeListener('close', onclose);\n    dest.removeListener('finish', onfinish);\n    dest.removeListener('drain', ondrain);\n    dest.removeListener('error', onerror);\n    dest.removeListener('unpipe', onunpipe);\n    src.removeListener('end', onend);\n    src.removeListener('end', unpipe);\n    src.removeListener('data', ondata);\n    cleanedUp = true;\n\n    // if the reader is waiting for a drain event from this\n    // specific writer, then it would cause it to never start\n    // flowing again.\n    // So, if this is awaiting a drain, then we just call it now.\n    // If we don't know, then assume that we are waiting for one.\n    if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n  }\n  src.on('data', ondata);\n  function ondata(chunk) {\n    debug('ondata');\n    var ret = dest.write(chunk);\n    debug('dest.write', ret);\n    if (ret === false) {\n      // If the user unpiped during `dest.write()`, it is possible\n      // to get stuck in a permanently paused state if that write\n      // also returned false.\n      // => Check whether `dest` is still a piping destination.\n      if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n        debug('false write response, pause', state.awaitDrain);\n        state.awaitDrain++;\n      }\n      src.pause();\n    }\n  }\n\n  // if the dest has an error, then stop piping into it.\n  // however, don't suppress the throwing behavior for this.\n  function onerror(er) {\n    debug('onerror', er);\n    unpipe();\n    dest.removeListener('error', onerror);\n    if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n  }\n\n  // Make sure our error handler is attached before userland ones.\n  prependListener(dest, 'error', onerror);\n\n  // Both close and finish should trigger unpipe, but only once.\n  function onclose() {\n    dest.removeListener('finish', onfinish);\n    unpipe();\n  }\n  dest.once('close', onclose);\n  function onfinish() {\n    debug('onfinish');\n    dest.removeListener('close', onclose);\n    unpipe();\n  }\n  dest.once('finish', onfinish);\n  function unpipe() {\n    debug('unpipe');\n    src.unpipe(dest);\n  }\n\n  // tell the dest that it's being piped to\n  dest.emit('pipe', src);\n\n  // start the flow if it hasn't been started already.\n  if (!state.flowing) {\n    debug('pipe resume');\n    src.resume();\n  }\n  return dest;\n};\nfunction pipeOnDrain(src) {\n  return function pipeOnDrainFunctionResult() {\n    var state = src._readableState;\n    debug('pipeOnDrain', state.awaitDrain);\n    if (state.awaitDrain) state.awaitDrain--;\n    if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n      state.flowing = true;\n      flow(src);\n    }\n  };\n}\nReadable.prototype.unpipe = function (dest) {\n  var state = this._readableState;\n  var unpipeInfo = {\n    hasUnpiped: false\n  };\n\n  // if we're not piping anywhere, then do nothing.\n  if (state.pipesCount === 0) return this;\n\n  // just one destination.  most common case.\n  if (state.pipesCount === 1) {\n    // passed in one, but it's not the right one.\n    if (dest && dest !== state.pipes) return this;\n    if (!dest) dest = state.pipes;\n\n    // got a match.\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n    if (dest) dest.emit('unpipe', this, unpipeInfo);\n    return this;\n  }\n\n  // slow case. multiple pipe destinations.\n\n  if (!dest) {\n    // remove all.\n    var dests = state.pipes;\n    var len = state.pipesCount;\n    state.pipes = null;\n    state.pipesCount = 0;\n    state.flowing = false;\n    for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n      hasUnpiped: false\n    });\n    return this;\n  }\n\n  // try to find the right one.\n  var index = indexOf(state.pipes, dest);\n  if (index === -1) return this;\n  state.pipes.splice(index, 1);\n  state.pipesCount -= 1;\n  if (state.pipesCount === 1) state.pipes = state.pipes[0];\n  dest.emit('unpipe', this, unpipeInfo);\n  return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n  var res = Stream.prototype.on.call(this, ev, fn);\n  var state = this._readableState;\n  if (ev === 'data') {\n    // update readableListening so that resume() may be a no-op\n    // a few lines down. This is needed to support once('readable').\n    state.readableListening = this.listenerCount('readable') > 0;\n\n    // Try start flowing on next tick if stream isn't explicitly paused\n    if (state.flowing !== false) this.resume();\n  } else if (ev === 'readable') {\n    if (!state.endEmitted && !state.readableListening) {\n      state.readableListening = state.needReadable = true;\n      state.flowing = false;\n      state.emittedReadable = false;\n      debug('on readable', state.length, state.reading);\n      if (state.length) {\n        emitReadable(this);\n      } else if (!state.reading) {\n        process.nextTick(nReadingNextTick, this);\n      }\n    }\n  }\n  return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n  var res = Stream.prototype.removeListener.call(this, ev, fn);\n  if (ev === 'readable') {\n    // We need to check if there is someone still listening to\n    // readable and reset the state. However this needs to happen\n    // after readable has been emitted but before I/O (nextTick) to\n    // support once('readable', fn) cycles. This means that calling\n    // resume within the same tick will have no\n    // effect.\n    process.nextTick(updateReadableListening, this);\n  }\n  return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n  var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n  if (ev === 'readable' || ev === undefined) {\n    // We need to check if there is someone still listening to\n    // readable and reset the state. However this needs to happen\n    // after readable has been emitted but before I/O (nextTick) to\n    // support once('readable', fn) cycles. This means that calling\n    // resume within the same tick will have no\n    // effect.\n    process.nextTick(updateReadableListening, this);\n  }\n  return res;\n};\nfunction updateReadableListening(self) {\n  var state = self._readableState;\n  state.readableListening = self.listenerCount('readable') > 0;\n  if (state.resumeScheduled && !state.paused) {\n    // flowing needs to be set to true now, otherwise\n    // the upcoming resume will not flow.\n    state.flowing = true;\n\n    // crude way to check if we should resume\n  } else if (self.listenerCount('data') > 0) {\n    self.resume();\n  }\n}\nfunction nReadingNextTick(self) {\n  debug('readable nexttick read 0');\n  self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n  var state = this._readableState;\n  if (!state.flowing) {\n    debug('resume');\n    // we flow only if there is no one listening\n    // for readable, but we still have to call\n    // resume()\n    state.flowing = !state.readableListening;\n    resume(this, state);\n  }\n  state.paused = false;\n  return this;\n};\nfunction resume(stream, state) {\n  if (!state.resumeScheduled) {\n    state.resumeScheduled = true;\n    process.nextTick(resume_, stream, state);\n  }\n}\nfunction resume_(stream, state) {\n  debug('resume', state.reading);\n  if (!state.reading) {\n    stream.read(0);\n  }\n  state.resumeScheduled = false;\n  stream.emit('resume');\n  flow(stream);\n  if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n  debug('call pause flowing=%j', this._readableState.flowing);\n  if (this._readableState.flowing !== false) {\n    debug('pause');\n    this._readableState.flowing = false;\n    this.emit('pause');\n  }\n  this._readableState.paused = true;\n  return this;\n};\nfunction flow(stream) {\n  var state = stream._readableState;\n  debug('flow', state.flowing);\n  while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n  var _this = this;\n  var state = this._readableState;\n  var paused = false;\n  stream.on('end', function () {\n    debug('wrapped end');\n    if (state.decoder && !state.ended) {\n      var chunk = state.decoder.end();\n      if (chunk && chunk.length) _this.push(chunk);\n    }\n    _this.push(null);\n  });\n  stream.on('data', function (chunk) {\n    debug('wrapped data');\n    if (state.decoder) chunk = state.decoder.write(chunk);\n\n    // don't skip over falsy values in objectMode\n    if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n    var ret = _this.push(chunk);\n    if (!ret) {\n      paused = true;\n      stream.pause();\n    }\n  });\n\n  // proxy all the other methods.\n  // important when wrapping filters and duplexes.\n  for (var i in stream) {\n    if (this[i] === undefined && typeof stream[i] === 'function') {\n      this[i] = function methodWrap(method) {\n        return function methodWrapReturnFunction() {\n          return stream[method].apply(stream, arguments);\n        };\n      }(i);\n    }\n  }\n\n  // proxy certain important events.\n  for (var n = 0; n < kProxyEvents.length; n++) {\n    stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n  }\n\n  // when we try to consume some more bytes, simply unpause the\n  // underlying stream.\n  this._read = function (n) {\n    debug('wrapped _read', n);\n    if (paused) {\n      paused = false;\n      stream.resume();\n    }\n  };\n  return this;\n};\nif (typeof Symbol === 'function') {\n  Readable.prototype[Symbol.asyncIterator] = function () {\n    if (createReadableStreamAsyncIterator === undefined) {\n      createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n    }\n    return createReadableStreamAsyncIterator(this);\n  };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.highWaterMark;\n  }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState && this._readableState.buffer;\n  }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.flowing;\n  },\n  set: function set(state) {\n    if (this._readableState) {\n      this._readableState.flowing = state;\n    }\n  }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._readableState.length;\n  }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n  // nothing buffered\n  if (state.length === 0) return null;\n  var ret;\n  if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n    // read it all, truncate the list\n    if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n    state.buffer.clear();\n  } else {\n    // read part of list\n    ret = state.buffer.consume(n, state.decoder);\n  }\n  return ret;\n}\nfunction endReadable(stream) {\n  var state = stream._readableState;\n  debug('endReadable', state.endEmitted);\n  if (!state.endEmitted) {\n    state.ended = true;\n    process.nextTick(endReadableNT, state, stream);\n  }\n}\nfunction endReadableNT(state, stream) {\n  debug('endReadableNT', state.endEmitted, state.length);\n\n  // Check that we didn't get one last unshift.\n  if (!state.endEmitted && state.length === 0) {\n    state.endEmitted = true;\n    stream.readable = false;\n    stream.emit('end');\n    if (state.autoDestroy) {\n      // In case of duplex streams we need a way to detect\n      // if the writable side is ready for autoDestroy as well\n      var wState = stream._writableState;\n      if (!wState || wState.autoDestroy && wState.finished) {\n        stream.destroy();\n      }\n    }\n  }\n}\nif (typeof Symbol === 'function') {\n  Readable.from = function (iterable, opts) {\n    if (from === undefined) {\n      from = require('./internal/streams/from');\n    }\n    return from(Readable, iterable, opts);\n  };\n}\nfunction indexOf(xs, x) {\n  for (var i = 0, l = xs.length; i < l; i++) {\n    if (xs[i] === x) return i;\n  }\n  return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data.  Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored.  (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation.  For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes.  When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up.  When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer.  When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks.  If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk.  However,\n// a pathological inflate type of transform can cause excessive buffering\n// here.  For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output.  Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output.  In this case, you could write a very small\n// amount of input, and end up with a very large amount of output.  In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform.  A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n  ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n  ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n  ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n  var ts = this._transformState;\n  ts.transforming = false;\n  var cb = ts.writecb;\n  if (cb === null) {\n    return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n  }\n  ts.writechunk = null;\n  ts.writecb = null;\n  if (data != null)\n    // single equals check for both `null` and `undefined`\n    this.push(data);\n  cb(er);\n  var rs = this._readableState;\n  rs.reading = false;\n  if (rs.needReadable || rs.length < rs.highWaterMark) {\n    this._read(rs.highWaterMark);\n  }\n}\nfunction Transform(options) {\n  if (!(this instanceof Transform)) return new Transform(options);\n  Duplex.call(this, options);\n  this._transformState = {\n    afterTransform: afterTransform.bind(this),\n    needTransform: false,\n    transforming: false,\n    writecb: null,\n    writechunk: null,\n    writeencoding: null\n  };\n\n  // start out asking for a readable event once data is transformed.\n  this._readableState.needReadable = true;\n\n  // we have implemented the _read method, and done the other things\n  // that Readable wants before the first _read call, so unset the\n  // sync guard flag.\n  this._readableState.sync = false;\n  if (options) {\n    if (typeof options.transform === 'function') this._transform = options.transform;\n    if (typeof options.flush === 'function') this._flush = options.flush;\n  }\n\n  // When the writable side finishes, then flush out anything remaining.\n  this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n  var _this = this;\n  if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n    this._flush(function (er, data) {\n      done(_this, er, data);\n    });\n  } else {\n    done(this, null, null);\n  }\n}\nTransform.prototype.push = function (chunk, encoding) {\n  this._transformState.needTransform = false;\n  return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side.  You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk.  If you pass\n// an error, then that'll put the hurt on the whole operation.  If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n  cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n  var ts = this._transformState;\n  ts.writecb = cb;\n  ts.writechunk = chunk;\n  ts.writeencoding = encoding;\n  if (!ts.transforming) {\n    var rs = this._readableState;\n    if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n  }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n  var ts = this._transformState;\n  if (ts.writechunk !== null && !ts.transforming) {\n    ts.transforming = true;\n    this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n  } else {\n    // mark that we need a transform, so that any data that comes in\n    // will get processed, now that we've asked for it.\n    ts.needTransform = true;\n  }\n};\nTransform.prototype._destroy = function (err, cb) {\n  Duplex.prototype._destroy.call(this, err, function (err2) {\n    cb(err2);\n  });\n};\nfunction done(stream, er, data) {\n  if (er) return stream.emit('error', er);\n  if (data != null)\n    // single equals check for both `null` and `undefined`\n    stream.push(data);\n\n  // TODO(BridgeAR): Write a test for these two error cases\n  // if there's nothing in the write buffer, then that means\n  // that nothing more will ever be provided\n  if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n  if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n  return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/*  */\nfunction WriteReq(chunk, encoding, cb) {\n  this.chunk = chunk;\n  this.encoding = encoding;\n  this.callback = cb;\n  this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n  var _this = this;\n  this.next = null;\n  this.entry = null;\n  this.finish = function () {\n    onCorkedFinish(_this, state);\n  };\n}\n/*  */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n  deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n  return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n  return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n  getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n  ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n  ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n  ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n  ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n  ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n  ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n  ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n  ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n  Duplex = Duplex || require('./_stream_duplex');\n  options = options || {};\n\n  // Duplex streams are both readable and writable, but share\n  // the same options object.\n  // However, some cases require setting options to different\n  // values for the readable and the writable sides of the duplex stream,\n  // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n  if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n  // object stream flag to indicate whether or not this stream\n  // contains buffers or objects.\n  this.objectMode = !!options.objectMode;\n  if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n  // the point at which write() starts returning false\n  // Note: 0 is a valid value, means that we always return false if\n  // the entire buffer is not flushed immediately on write()\n  this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n  // if _final has been called\n  this.finalCalled = false;\n\n  // drain event flag.\n  this.needDrain = false;\n  // at the start of calling end()\n  this.ending = false;\n  // when end() has been called, and returned\n  this.ended = false;\n  // when 'finish' is emitted\n  this.finished = false;\n\n  // has it been destroyed\n  this.destroyed = false;\n\n  // should we decode strings into buffers before passing to _write?\n  // this is here so that some node-core streams can optimize string\n  // handling at a lower level.\n  var noDecode = options.decodeStrings === false;\n  this.decodeStrings = !noDecode;\n\n  // Crypto is kind of old and crusty.  Historically, its default string\n  // encoding is 'binary' so we have to make this configurable.\n  // Everything else in the universe uses 'utf8', though.\n  this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n  // not an actual buffer we keep track of, but a measurement\n  // of how much we're waiting to get pushed to some underlying\n  // socket or file.\n  this.length = 0;\n\n  // a flag to see when we're in the middle of a write.\n  this.writing = false;\n\n  // when true all writes will be buffered until .uncork() call\n  this.corked = 0;\n\n  // a flag to be able to tell if the onwrite cb is called immediately,\n  // or on a later tick.  We set this to true at first, because any\n  // actions that shouldn't happen until \"later\" should generally also\n  // not happen before the first write call.\n  this.sync = true;\n\n  // a flag to know if we're processing previously buffered items, which\n  // may call the _write() callback in the same tick, so that we don't\n  // end up in an overlapped onwrite situation.\n  this.bufferProcessing = false;\n\n  // the callback that's passed to _write(chunk,cb)\n  this.onwrite = function (er) {\n    onwrite(stream, er);\n  };\n\n  // the callback that the user supplies to write(chunk,encoding,cb)\n  this.writecb = null;\n\n  // the amount that is being written when _write is called.\n  this.writelen = 0;\n  this.bufferedRequest = null;\n  this.lastBufferedRequest = null;\n\n  // number of pending user-supplied write callbacks\n  // this must be 0 before 'finish' can be emitted\n  this.pendingcb = 0;\n\n  // emit prefinish if the only thing we're waiting for is _write cbs\n  // This is relevant for synchronous Transform streams\n  this.prefinished = false;\n\n  // True if the error was already emitted and should not be thrown again\n  this.errorEmitted = false;\n\n  // Should close be emitted on destroy. Defaults to true.\n  this.emitClose = options.emitClose !== false;\n\n  // Should .destroy() be called after 'finish' (and potentially 'end')\n  this.autoDestroy = !!options.autoDestroy;\n\n  // count buffered requests\n  this.bufferedRequestCount = 0;\n\n  // allocate the first CorkedRequest, there is always\n  // one allocated and free to use, and we maintain at most two\n  this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n  var current = this.bufferedRequest;\n  var out = [];\n  while (current) {\n    out.push(current);\n    current = current.next;\n  }\n  return out;\n};\n(function () {\n  try {\n    Object.defineProperty(WritableState.prototype, 'buffer', {\n      get: internalUtil.deprecate(function writableStateBufferGetter() {\n        return this.getBuffer();\n      }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n    });\n  } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n  realHasInstance = Function.prototype[Symbol.hasInstance];\n  Object.defineProperty(Writable, Symbol.hasInstance, {\n    value: function value(object) {\n      if (realHasInstance.call(this, object)) return true;\n      if (this !== Writable) return false;\n      return object && object._writableState instanceof WritableState;\n    }\n  });\n} else {\n  realHasInstance = function realHasInstance(object) {\n    return object instanceof this;\n  };\n}\nfunction Writable(options) {\n  Duplex = Duplex || require('./_stream_duplex');\n\n  // Writable ctor is applied to Duplexes, too.\n  // `realHasInstance` is necessary because using plain `instanceof`\n  // would return false, as no `_writableState` property is attached.\n\n  // Trying to use the custom `instanceof` for Writable here will also break the\n  // Node.js LazyTransform implementation, which has a non-trivial getter for\n  // `_writableState` that would lead to infinite recursion.\n\n  // Checking for a Stream.Duplex instance is faster here instead of inside\n  // the WritableState constructor, at least with V8 6.5\n  var isDuplex = this instanceof Duplex;\n  if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n  this._writableState = new WritableState(options, this, isDuplex);\n\n  // legacy.\n  this.writable = true;\n  if (options) {\n    if (typeof options.write === 'function') this._write = options.write;\n    if (typeof options.writev === 'function') this._writev = options.writev;\n    if (typeof options.destroy === 'function') this._destroy = options.destroy;\n    if (typeof options.final === 'function') this._final = options.final;\n  }\n  Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n  errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n  var er = new ERR_STREAM_WRITE_AFTER_END();\n  // TODO: defer error events consistently everywhere, not just the cb\n  errorOrDestroy(stream, er);\n  process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n  var er;\n  if (chunk === null) {\n    er = new ERR_STREAM_NULL_VALUES();\n  } else if (typeof chunk !== 'string' && !state.objectMode) {\n    er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n  }\n  if (er) {\n    errorOrDestroy(stream, er);\n    process.nextTick(cb, er);\n    return false;\n  }\n  return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n  var state = this._writableState;\n  var ret = false;\n  var isBuf = !state.objectMode && _isUint8Array(chunk);\n  if (isBuf && !Buffer.isBuffer(chunk)) {\n    chunk = _uint8ArrayToBuffer(chunk);\n  }\n  if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n  if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n  if (typeof cb !== 'function') cb = nop;\n  if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n    state.pendingcb++;\n    ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n  }\n  return ret;\n};\nWritable.prototype.cork = function () {\n  this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n  var state = this._writableState;\n  if (state.corked) {\n    state.corked--;\n    if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n  }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n  // node::ParseEncoding() requires lower case.\n  if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n  if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n  this._writableState.defaultEncoding = encoding;\n  return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState && this._writableState.getBuffer();\n  }\n});\nfunction decodeChunk(state, chunk, encoding) {\n  if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n    chunk = Buffer.from(chunk, encoding);\n  }\n  return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.highWaterMark;\n  }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn.  Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n  if (!isBuf) {\n    var newChunk = decodeChunk(state, chunk, encoding);\n    if (chunk !== newChunk) {\n      isBuf = true;\n      encoding = 'buffer';\n      chunk = newChunk;\n    }\n  }\n  var len = state.objectMode ? 1 : chunk.length;\n  state.length += len;\n  var ret = state.length < state.highWaterMark;\n  // we must ensure that previous needDrain will not be reset to false.\n  if (!ret) state.needDrain = true;\n  if (state.writing || state.corked) {\n    var last = state.lastBufferedRequest;\n    state.lastBufferedRequest = {\n      chunk: chunk,\n      encoding: encoding,\n      isBuf: isBuf,\n      callback: cb,\n      next: null\n    };\n    if (last) {\n      last.next = state.lastBufferedRequest;\n    } else {\n      state.bufferedRequest = state.lastBufferedRequest;\n    }\n    state.bufferedRequestCount += 1;\n  } else {\n    doWrite(stream, state, false, len, chunk, encoding, cb);\n  }\n  return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n  state.writelen = len;\n  state.writecb = cb;\n  state.writing = true;\n  state.sync = true;\n  if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n  state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n  --state.pendingcb;\n  if (sync) {\n    // defer the callback if we are being called synchronously\n    // to avoid piling up things on the stack\n    process.nextTick(cb, er);\n    // this can emit finish, and it will always happen\n    // after error\n    process.nextTick(finishMaybe, stream, state);\n    stream._writableState.errorEmitted = true;\n    errorOrDestroy(stream, er);\n  } else {\n    // the caller expect this to happen before if\n    // it is async\n    cb(er);\n    stream._writableState.errorEmitted = true;\n    errorOrDestroy(stream, er);\n    // this can emit finish, but finish must\n    // always follow error\n    finishMaybe(stream, state);\n  }\n}\nfunction onwriteStateUpdate(state) {\n  state.writing = false;\n  state.writecb = null;\n  state.length -= state.writelen;\n  state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n  var state = stream._writableState;\n  var sync = state.sync;\n  var cb = state.writecb;\n  if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n  onwriteStateUpdate(state);\n  if (er) onwriteError(stream, state, sync, er, cb);else {\n    // Check if we're actually ready to finish, but don't emit yet\n    var finished = needFinish(state) || stream.destroyed;\n    if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n      clearBuffer(stream, state);\n    }\n    if (sync) {\n      process.nextTick(afterWrite, stream, state, finished, cb);\n    } else {\n      afterWrite(stream, state, finished, cb);\n    }\n  }\n}\nfunction afterWrite(stream, state, finished, cb) {\n  if (!finished) onwriteDrain(stream, state);\n  state.pendingcb--;\n  cb();\n  finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n  if (state.length === 0 && state.needDrain) {\n    state.needDrain = false;\n    stream.emit('drain');\n  }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n  state.bufferProcessing = true;\n  var entry = state.bufferedRequest;\n  if (stream._writev && entry && entry.next) {\n    // Fast case, write everything using _writev()\n    var l = state.bufferedRequestCount;\n    var buffer = new Array(l);\n    var holder = state.corkedRequestsFree;\n    holder.entry = entry;\n    var count = 0;\n    var allBuffers = true;\n    while (entry) {\n      buffer[count] = entry;\n      if (!entry.isBuf) allBuffers = false;\n      entry = entry.next;\n      count += 1;\n    }\n    buffer.allBuffers = allBuffers;\n    doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n    // doWrite is almost always async, defer these to save a bit of time\n    // as the hot path ends with doWrite\n    state.pendingcb++;\n    state.lastBufferedRequest = null;\n    if (holder.next) {\n      state.corkedRequestsFree = holder.next;\n      holder.next = null;\n    } else {\n      state.corkedRequestsFree = new CorkedRequest(state);\n    }\n    state.bufferedRequestCount = 0;\n  } else {\n    // Slow case, write chunks one-by-one\n    while (entry) {\n      var chunk = entry.chunk;\n      var encoding = entry.encoding;\n      var cb = entry.callback;\n      var len = state.objectMode ? 1 : chunk.length;\n      doWrite(stream, state, false, len, chunk, encoding, cb);\n      entry = entry.next;\n      state.bufferedRequestCount--;\n      // if we didn't call the onwrite immediately, then\n      // it means that we need to wait until it does.\n      // also, that means that the chunk and cb are currently\n      // being processed, so move the buffer counter past them.\n      if (state.writing) {\n        break;\n      }\n    }\n    if (entry === null) state.lastBufferedRequest = null;\n  }\n  state.bufferedRequest = entry;\n  state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n  cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n  var state = this._writableState;\n  if (typeof chunk === 'function') {\n    cb = chunk;\n    chunk = null;\n    encoding = null;\n  } else if (typeof encoding === 'function') {\n    cb = encoding;\n    encoding = null;\n  }\n  if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n  // .end() fully uncorks\n  if (state.corked) {\n    state.corked = 1;\n    this.uncork();\n  }\n\n  // ignore unnecessary end() calls.\n  if (!state.ending) endWritable(this, state, cb);\n  return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    return this._writableState.length;\n  }\n});\nfunction needFinish(state) {\n  return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n  stream._final(function (err) {\n    state.pendingcb--;\n    if (err) {\n      errorOrDestroy(stream, err);\n    }\n    state.prefinished = true;\n    stream.emit('prefinish');\n    finishMaybe(stream, state);\n  });\n}\nfunction prefinish(stream, state) {\n  if (!state.prefinished && !state.finalCalled) {\n    if (typeof stream._final === 'function' && !state.destroyed) {\n      state.pendingcb++;\n      state.finalCalled = true;\n      process.nextTick(callFinal, stream, state);\n    } else {\n      state.prefinished = true;\n      stream.emit('prefinish');\n    }\n  }\n}\nfunction finishMaybe(stream, state) {\n  var need = needFinish(state);\n  if (need) {\n    prefinish(stream, state);\n    if (state.pendingcb === 0) {\n      state.finished = true;\n      stream.emit('finish');\n      if (state.autoDestroy) {\n        // In case of duplex streams we need a way to detect\n        // if the readable side is ready for autoDestroy as well\n        var rState = stream._readableState;\n        if (!rState || rState.autoDestroy && rState.endEmitted) {\n          stream.destroy();\n        }\n      }\n    }\n  }\n  return need;\n}\nfunction endWritable(stream, state, cb) {\n  state.ending = true;\n  finishMaybe(stream, state);\n  if (cb) {\n    if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n  }\n  state.ended = true;\n  stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n  var entry = corkReq.entry;\n  corkReq.entry = null;\n  while (entry) {\n    var cb = entry.callback;\n    state.pendingcb--;\n    cb(err);\n    entry = entry.next;\n  }\n\n  // reuse the free corkReq.\n  state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n  // making it explicit this property is not enumerable\n  // because otherwise some prototype manipulation in\n  // userland will fail\n  enumerable: false,\n  get: function get() {\n    if (this._writableState === undefined) {\n      return false;\n    }\n    return this._writableState.destroyed;\n  },\n  set: function set(value) {\n    // we ignore the value if the stream\n    // has not been initialized yet\n    if (!this._writableState) {\n      return;\n    }\n\n    // backward compatibility, the user is explicitly\n    // managing destroyed\n    this._writableState.destroyed = value;\n  }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n  cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n  return {\n    value: value,\n    done: done\n  };\n}\nfunction readAndResolve(iter) {\n  var resolve = iter[kLastResolve];\n  if (resolve !== null) {\n    var data = iter[kStream].read();\n    // we defer if data is null\n    // we can be expecting either 'end' or\n    // 'error'\n    if (data !== null) {\n      iter[kLastPromise] = null;\n      iter[kLastResolve] = null;\n      iter[kLastReject] = null;\n      resolve(createIterResult(data, false));\n    }\n  }\n}\nfunction onReadable(iter) {\n  // we wait for the next tick, because it might\n  // emit an error with process.nextTick\n  process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n  return function (resolve, reject) {\n    lastPromise.then(function () {\n      if (iter[kEnded]) {\n        resolve(createIterResult(undefined, true));\n        return;\n      }\n      iter[kHandlePromise](resolve, reject);\n    }, reject);\n  };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n  get stream() {\n    return this[kStream];\n  },\n  next: function next() {\n    var _this = this;\n    // if we have detected an error in the meanwhile\n    // reject straight away\n    var error = this[kError];\n    if (error !== null) {\n      return Promise.reject(error);\n    }\n    if (this[kEnded]) {\n      return Promise.resolve(createIterResult(undefined, true));\n    }\n    if (this[kStream].destroyed) {\n      // We need to defer via nextTick because if .destroy(err) is\n      // called, the error will be emitted via nextTick, and\n      // we cannot guarantee that there is no error lingering around\n      // waiting to be emitted.\n      return new Promise(function (resolve, reject) {\n        process.nextTick(function () {\n          if (_this[kError]) {\n            reject(_this[kError]);\n          } else {\n            resolve(createIterResult(undefined, true));\n          }\n        });\n      });\n    }\n\n    // if we have multiple next() calls\n    // we will wait for the previous Promise to finish\n    // this logic is optimized to support for await loops,\n    // where next() is only called once at a time\n    var lastPromise = this[kLastPromise];\n    var promise;\n    if (lastPromise) {\n      promise = new Promise(wrapForNext(lastPromise, this));\n    } else {\n      // fast path needed to support multiple this.push()\n      // without triggering the next() queue\n      var data = this[kStream].read();\n      if (data !== null) {\n        return Promise.resolve(createIterResult(data, false));\n      }\n      promise = new Promise(this[kHandlePromise]);\n    }\n    this[kLastPromise] = promise;\n    return promise;\n  }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n  return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n  var _this2 = this;\n  // destroy(err, cb) is a private API\n  // we can guarantee we have that here, because we control the\n  // Readable class this is attached to\n  return new Promise(function (resolve, reject) {\n    _this2[kStream].destroy(null, function (err) {\n      if (err) {\n        reject(err);\n        return;\n      }\n      resolve(createIterResult(undefined, true));\n    });\n  });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n  var _Object$create;\n  var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n    value: stream,\n    writable: true\n  }), _defineProperty(_Object$create, kLastResolve, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kLastReject, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kError, {\n    value: null,\n    writable: true\n  }), _defineProperty(_Object$create, kEnded, {\n    value: stream._readableState.endEmitted,\n    writable: true\n  }), _defineProperty(_Object$create, kHandlePromise, {\n    value: function value(resolve, reject) {\n      var data = iterator[kStream].read();\n      if (data) {\n        iterator[kLastPromise] = null;\n        iterator[kLastResolve] = null;\n        iterator[kLastReject] = null;\n        resolve(createIterResult(data, false));\n      } else {\n        iterator[kLastResolve] = resolve;\n        iterator[kLastReject] = reject;\n      }\n    },\n    writable: true\n  }), _Object$create));\n  iterator[kLastPromise] = null;\n  finished(stream, function (err) {\n    if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n      var reject = iterator[kLastReject];\n      // reject if we are waiting for data in the Promise\n      // returned by next() and store the error\n      if (reject !== null) {\n        iterator[kLastPromise] = null;\n        iterator[kLastResolve] = null;\n        iterator[kLastReject] = null;\n        reject(err);\n      }\n      iterator[kError] = err;\n      return;\n    }\n    var resolve = iterator[kLastResolve];\n    if (resolve !== null) {\n      iterator[kLastPromise] = null;\n      iterator[kLastResolve] = null;\n      iterator[kLastReject] = null;\n      resolve(createIterResult(undefined, true));\n    }\n    iterator[kEnded] = true;\n  });\n  stream.on('readable', onReadable.bind(null, iterator));\n  return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n  Buffer = _require.Buffer;\nvar _require2 = require('util'),\n  inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n  Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n  function BufferList() {\n    _classCallCheck(this, BufferList);\n    this.head = null;\n    this.tail = null;\n    this.length = 0;\n  }\n  _createClass(BufferList, [{\n    key: \"push\",\n    value: function push(v) {\n      var entry = {\n        data: v,\n        next: null\n      };\n      if (this.length > 0) this.tail.next = entry;else this.head = entry;\n      this.tail = entry;\n      ++this.length;\n    }\n  }, {\n    key: \"unshift\",\n    value: function unshift(v) {\n      var entry = {\n        data: v,\n        next: this.head\n      };\n      if (this.length === 0) this.tail = entry;\n      this.head = entry;\n      ++this.length;\n    }\n  }, {\n    key: \"shift\",\n    value: function shift() {\n      if (this.length === 0) return;\n      var ret = this.head.data;\n      if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n      --this.length;\n      return ret;\n    }\n  }, {\n    key: \"clear\",\n    value: function clear() {\n      this.head = this.tail = null;\n      this.length = 0;\n    }\n  }, {\n    key: \"join\",\n    value: function join(s) {\n      if (this.length === 0) return '';\n      var p = this.head;\n      var ret = '' + p.data;\n      while (p = p.next) ret += s + p.data;\n      return ret;\n    }\n  }, {\n    key: \"concat\",\n    value: function concat(n) {\n      if (this.length === 0) return Buffer.alloc(0);\n      var ret = Buffer.allocUnsafe(n >>> 0);\n      var p = this.head;\n      var i = 0;\n      while (p) {\n        copyBuffer(p.data, ret, i);\n        i += p.data.length;\n        p = p.next;\n      }\n      return ret;\n    }\n\n    // Consumes a specified amount of bytes or characters from the buffered data.\n  }, {\n    key: \"consume\",\n    value: function consume(n, hasStrings) {\n      var ret;\n      if (n < this.head.data.length) {\n        // `slice` is the same for buffers and strings.\n        ret = this.head.data.slice(0, n);\n        this.head.data = this.head.data.slice(n);\n      } else if (n === this.head.data.length) {\n        // First chunk is a perfect match.\n        ret = this.shift();\n      } else {\n        // Result spans more than one buffer.\n        ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n      }\n      return ret;\n    }\n  }, {\n    key: \"first\",\n    value: function first() {\n      return this.head.data;\n    }\n\n    // Consumes a specified amount of characters from the buffered data.\n  }, {\n    key: \"_getString\",\n    value: function _getString(n) {\n      var p = this.head;\n      var c = 1;\n      var ret = p.data;\n      n -= ret.length;\n      while (p = p.next) {\n        var str = p.data;\n        var nb = n > str.length ? str.length : n;\n        if (nb === str.length) ret += str;else ret += str.slice(0, n);\n        n -= nb;\n        if (n === 0) {\n          if (nb === str.length) {\n            ++c;\n            if (p.next) this.head = p.next;else this.head = this.tail = null;\n          } else {\n            this.head = p;\n            p.data = str.slice(nb);\n          }\n          break;\n        }\n        ++c;\n      }\n      this.length -= c;\n      return ret;\n    }\n\n    // Consumes a specified amount of bytes from the buffered data.\n  }, {\n    key: \"_getBuffer\",\n    value: function _getBuffer(n) {\n      var ret = Buffer.allocUnsafe(n);\n      var p = this.head;\n      var c = 1;\n      p.data.copy(ret);\n      n -= p.data.length;\n      while (p = p.next) {\n        var buf = p.data;\n        var nb = n > buf.length ? buf.length : n;\n        buf.copy(ret, ret.length - n, 0, nb);\n        n -= nb;\n        if (n === 0) {\n          if (nb === buf.length) {\n            ++c;\n            if (p.next) this.head = p.next;else this.head = this.tail = null;\n          } else {\n            this.head = p;\n            p.data = buf.slice(nb);\n          }\n          break;\n        }\n        ++c;\n      }\n      this.length -= c;\n      return ret;\n    }\n\n    // Make sure the linked list only shows the minimal necessary information.\n  }, {\n    key: custom,\n    value: function value(_, options) {\n      return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n        // Only inspect one level.\n        depth: 0,\n        // It should not recurse.\n        customInspect: false\n      }));\n    }\n  }]);\n  return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n  var _this = this;\n  var readableDestroyed = this._readableState && this._readableState.destroyed;\n  var writableDestroyed = this._writableState && this._writableState.destroyed;\n  if (readableDestroyed || writableDestroyed) {\n    if (cb) {\n      cb(err);\n    } else if (err) {\n      if (!this._writableState) {\n        process.nextTick(emitErrorNT, this, err);\n      } else if (!this._writableState.errorEmitted) {\n        this._writableState.errorEmitted = true;\n        process.nextTick(emitErrorNT, this, err);\n      }\n    }\n    return this;\n  }\n\n  // we set destroyed to true before firing error callbacks in order\n  // to make it re-entrance safe in case destroy() is called within callbacks\n\n  if (this._readableState) {\n    this._readableState.destroyed = true;\n  }\n\n  // if this is a duplex stream mark the writable part as destroyed as well\n  if (this._writableState) {\n    this._writableState.destroyed = true;\n  }\n  this._destroy(err || null, function (err) {\n    if (!cb && err) {\n      if (!_this._writableState) {\n        process.nextTick(emitErrorAndCloseNT, _this, err);\n      } else if (!_this._writableState.errorEmitted) {\n        _this._writableState.errorEmitted = true;\n        process.nextTick(emitErrorAndCloseNT, _this, err);\n      } else {\n        process.nextTick(emitCloseNT, _this);\n      }\n    } else if (cb) {\n      process.nextTick(emitCloseNT, _this);\n      cb(err);\n    } else {\n      process.nextTick(emitCloseNT, _this);\n    }\n  });\n  return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n  emitErrorNT(self, err);\n  emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n  if (self._writableState && !self._writableState.emitClose) return;\n  if (self._readableState && !self._readableState.emitClose) return;\n  self.emit('close');\n}\nfunction undestroy() {\n  if (this._readableState) {\n    this._readableState.destroyed = false;\n    this._readableState.reading = false;\n    this._readableState.ended = false;\n    this._readableState.endEmitted = false;\n  }\n  if (this._writableState) {\n    this._writableState.destroyed = false;\n    this._writableState.ended = false;\n    this._writableState.ending = false;\n    this._writableState.finalCalled = false;\n    this._writableState.prefinished = false;\n    this._writableState.finished = false;\n    this._writableState.errorEmitted = false;\n  }\n}\nfunction emitErrorNT(self, err) {\n  self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n  // We have tests that rely on errors being emitted\n  // in the same tick, so changing this is semver major.\n  // For now when you opt-in to autoDestroy we allow\n  // the error to be emitted nextTick. In a future\n  // semver major update we should change the default to this.\n\n  var rState = stream._readableState;\n  var wState = stream._writableState;\n  if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n  destroy: destroy,\n  undestroy: undestroy,\n  errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n  var called = false;\n  return function () {\n    if (called) return;\n    called = true;\n    for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n      args[_key] = arguments[_key];\n    }\n    callback.apply(this, args);\n  };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n  return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n  if (typeof opts === 'function') return eos(stream, null, opts);\n  if (!opts) opts = {};\n  callback = once(callback || noop);\n  var readable = opts.readable || opts.readable !== false && stream.readable;\n  var writable = opts.writable || opts.writable !== false && stream.writable;\n  var onlegacyfinish = function onlegacyfinish() {\n    if (!stream.writable) onfinish();\n  };\n  var writableEnded = stream._writableState && stream._writableState.finished;\n  var onfinish = function onfinish() {\n    writable = false;\n    writableEnded = true;\n    if (!readable) callback.call(stream);\n  };\n  var readableEnded = stream._readableState && stream._readableState.endEmitted;\n  var onend = function onend() {\n    readable = false;\n    readableEnded = true;\n    if (!writable) callback.call(stream);\n  };\n  var onerror = function onerror(err) {\n    callback.call(stream, err);\n  };\n  var onclose = function onclose() {\n    var err;\n    if (readable && !readableEnded) {\n      if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n      return callback.call(stream, err);\n    }\n    if (writable && !writableEnded) {\n      if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n      return callback.call(stream, err);\n    }\n  };\n  var onrequest = function onrequest() {\n    stream.req.on('finish', onfinish);\n  };\n  if (isRequest(stream)) {\n    stream.on('complete', onfinish);\n    stream.on('abort', onclose);\n    if (stream.req) onrequest();else stream.on('request', onrequest);\n  } else if (writable && !stream._writableState) {\n    // legacy streams\n    stream.on('end', onlegacyfinish);\n    stream.on('close', onlegacyfinish);\n  }\n  stream.on('end', onend);\n  stream.on('finish', onfinish);\n  if (opts.error !== false) stream.on('error', onerror);\n  stream.on('close', onclose);\n  return function () {\n    stream.removeListener('complete', onfinish);\n    stream.removeListener('abort', onclose);\n    stream.removeListener('request', onrequest);\n    if (stream.req) stream.req.removeListener('finish', onfinish);\n    stream.removeListener('end', onlegacyfinish);\n    stream.removeListener('close', onlegacyfinish);\n    stream.removeListener('finish', onfinish);\n    stream.removeListener('end', onend);\n    stream.removeListener('error', onerror);\n    stream.removeListener('close', onclose);\n  };\n}\nmodule.exports = eos;","module.exports = function () {\n  throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n  var called = false;\n  return function () {\n    if (called) return;\n    called = true;\n    callback.apply(void 0, arguments);\n  };\n}\nvar _require$codes = require('../../../errors').codes,\n  ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n  ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n  // Rethrow the error if it exists to avoid swallowing it\n  if (err) throw err;\n}\nfunction isRequest(stream) {\n  return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n  callback = once(callback);\n  var closed = false;\n  stream.on('close', function () {\n    closed = true;\n  });\n  if (eos === undefined) eos = require('./end-of-stream');\n  eos(stream, {\n    readable: reading,\n    writable: writing\n  }, function (err) {\n    if (err) return callback(err);\n    closed = true;\n    callback();\n  });\n  var destroyed = false;\n  return function (err) {\n    if (closed) return;\n    if (destroyed) return;\n    destroyed = true;\n\n    // request.destroy just do .end - .abort is what we want\n    if (isRequest(stream)) return stream.abort();\n    if (typeof stream.destroy === 'function') return stream.destroy();\n    callback(err || new ERR_STREAM_DESTROYED('pipe'));\n  };\n}\nfunction call(fn) {\n  fn();\n}\nfunction pipe(from, to) {\n  return from.pipe(to);\n}\nfunction popCallback(streams) {\n  if (!streams.length) return noop;\n  if (typeof streams[streams.length - 1] !== 'function') return noop;\n  return streams.pop();\n}\nfunction pipeline() {\n  for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n    streams[_key] = arguments[_key];\n  }\n  var callback = popCallback(streams);\n  if (Array.isArray(streams[0])) streams = streams[0];\n  if (streams.length < 2) {\n    throw new ERR_MISSING_ARGS('streams');\n  }\n  var error;\n  var destroys = streams.map(function (stream, i) {\n    var reading = i < streams.length - 1;\n    var writing = i > 0;\n    return destroyer(stream, reading, writing, function (err) {\n      if (!error) error = err;\n      if (err) destroys.forEach(call);\n      if (reading) return;\n      destroys.forEach(call);\n      callback(error);\n    });\n  });\n  return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n  return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n  var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n  if (hwm != null) {\n    if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n      var name = isDuplex ? duplexKey : 'highWaterMark';\n      throw new ERR_INVALID_OPT_VALUE(name, hwm);\n    }\n    return Math.floor(hwm);\n  }\n\n  // Default value\n  return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n  getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","'use strict';\n\nvar required = require('requires-port')\n  , qs = require('querystringify')\n  , controlOrWhitespace = /^[\\x00-\\x20\\u00a0\\u1680\\u2000-\\u200a\\u2028\\u2029\\u202f\\u205f\\u3000\\ufeff]+/\n  , CRHTLF = /[\\n\\r\\t]/g\n  , slashes = /^[A-Za-z][A-Za-z0-9+-.]*:\\/\\//\n  , port = /:\\d+$/\n  , protocolre = /^([a-z][a-z0-9.+-]*:)?(\\/\\/)?([\\\\/]+)?([\\S\\s]*)/i\n  , windowsDriveLetter = /^[a-zA-Z]:/;\n\n/**\n * Remove control characters and whitespace from the beginning of a string.\n *\n * @param {Object|String} str String to trim.\n * @returns {String} A new string representing `str` stripped of control\n *     characters and whitespace from its beginning.\n * @public\n */\nfunction trimLeft(str) {\n  return (str ? str : '').toString().replace(controlOrWhitespace, '');\n}\n\n/**\n * These are the parse rules for the URL parser, it informs the parser\n * about:\n *\n * 0. The char it Needs to parse, if it's a string it should be done using\n *    indexOf, RegExp using exec and NaN means set as current value.\n * 1. The property we should set when parsing this value.\n * 2. Indication if it's backwards or forward parsing, when set as number it's\n *    the value of extra chars that should be split off.\n * 3. Inherit from location if non existing in the parser.\n * 4. `toLowerCase` the resulting value.\n */\nvar rules = [\n  ['#', 'hash'],                        // Extract from the back.\n  ['?', 'query'],                       // Extract from the back.\n  function sanitize(address, url) {     // Sanitize what is left of the address\n    return isSpecial(url.protocol) ? address.replace(/\\\\/g, '/') : address;\n  },\n  ['/', 'pathname'],                    // Extract from the back.\n  ['@', 'auth', 1],                     // Extract from the front.\n  [NaN, 'host', undefined, 1, 1],       // Set left over value.\n  [/:(\\d*)$/, 'port', undefined, 1],    // RegExp the back.\n  [NaN, 'hostname', undefined, 1, 1]    // Set left over.\n];\n\n/**\n * These properties should not be copied or inherited from. This is only needed\n * for all non blob URL's as a blob URL does not include a hash, only the\n * origin.\n *\n * @type {Object}\n * @private\n */\nvar ignore = { hash: 1, query: 1 };\n\n/**\n * The location object differs when your code is loaded through a normal page,\n * Worker or through a worker using a blob. And with the blobble begins the\n * trouble as the location object will contain the URL of the blob, not the\n * location of the page where our code is loaded in. The actual origin is\n * encoded in the `pathname` so we can thankfully generate a good \"default\"\n * location from it so we can generate proper relative URL's again.\n *\n * @param {Object|String} loc Optional default location object.\n * @returns {Object} lolcation object.\n * @public\n */\nfunction lolcation(loc) {\n  var globalVar;\n\n  if (typeof window !== 'undefined') globalVar = window;\n  else if (typeof global !== 'undefined') globalVar = global;\n  else if (typeof self !== 'undefined') globalVar = self;\n  else globalVar = {};\n\n  var location = globalVar.location || {};\n  loc = loc || location;\n\n  var finaldestination = {}\n    , type = typeof loc\n    , key;\n\n  if ('blob:' === loc.protocol) {\n    finaldestination = new Url(unescape(loc.pathname), {});\n  } else if ('string' === type) {\n    finaldestination = new Url(loc, {});\n    for (key in ignore) delete finaldestination[key];\n  } else if ('object' === type) {\n    for (key in loc) {\n      if (key in ignore) continue;\n      finaldestination[key] = loc[key];\n    }\n\n    if (finaldestination.slashes === undefined) {\n      finaldestination.slashes = slashes.test(loc.href);\n    }\n  }\n\n  return finaldestination;\n}\n\n/**\n * Check whether a protocol scheme is special.\n *\n * @param {String} The protocol scheme of the URL\n * @return {Boolean} `true` if the protocol scheme is special, else `false`\n * @private\n */\nfunction isSpecial(scheme) {\n  return (\n    scheme === 'file:' ||\n    scheme === 'ftp:' ||\n    scheme === 'http:' ||\n    scheme === 'https:' ||\n    scheme === 'ws:' ||\n    scheme === 'wss:'\n  );\n}\n\n/**\n * @typedef ProtocolExtract\n * @type Object\n * @property {String} protocol Protocol matched in the URL, in lowercase.\n * @property {Boolean} slashes `true` if protocol is followed by \"//\", else `false`.\n * @property {String} rest Rest of the URL that is not part of the protocol.\n */\n\n/**\n * Extract protocol information from a URL with/without double slash (\"//\").\n *\n * @param {String} address URL we want to extract from.\n * @param {Object} location\n * @return {ProtocolExtract} Extracted information.\n * @private\n */\nfunction extractProtocol(address, location) {\n  address = trimLeft(address);\n  address = address.replace(CRHTLF, '');\n  location = location || {};\n\n  var match = protocolre.exec(address);\n  var protocol = match[1] ? match[1].toLowerCase() : '';\n  var forwardSlashes = !!match[2];\n  var otherSlashes = !!match[3];\n  var slashesCount = 0;\n  var rest;\n\n  if (forwardSlashes) {\n    if (otherSlashes) {\n      rest = match[2] + match[3] + match[4];\n      slashesCount = match[2].length + match[3].length;\n    } else {\n      rest = match[2] + match[4];\n      slashesCount = match[2].length;\n    }\n  } else {\n    if (otherSlashes) {\n      rest = match[3] + match[4];\n      slashesCount = match[3].length;\n    } else {\n      rest = match[4]\n    }\n  }\n\n  if (protocol === 'file:') {\n    if (slashesCount >= 2) {\n      rest = rest.slice(2);\n    }\n  } else if (isSpecial(protocol)) {\n    rest = match[4];\n  } else if (protocol) {\n    if (forwardSlashes) {\n      rest = rest.slice(2);\n    }\n  } else if (slashesCount >= 2 && isSpecial(location.protocol)) {\n    rest = match[4];\n  }\n\n  return {\n    protocol: protocol,\n    slashes: forwardSlashes || isSpecial(protocol),\n    slashesCount: slashesCount,\n    rest: rest\n  };\n}\n\n/**\n * Resolve a relative URL pathname against a base URL pathname.\n *\n * @param {String} relative Pathname of the relative URL.\n * @param {String} base Pathname of the base URL.\n * @return {String} Resolved pathname.\n * @private\n */\nfunction resolve(relative, base) {\n  if (relative === '') return base;\n\n  var path = (base || '/').split('/').slice(0, -1).concat(relative.split('/'))\n    , i = path.length\n    , last = path[i - 1]\n    , unshift = false\n    , up = 0;\n\n  while (i--) {\n    if (path[i] === '.') {\n      path.splice(i, 1);\n    } else if (path[i] === '..') {\n      path.splice(i, 1);\n      up++;\n    } else if (up) {\n      if (i === 0) unshift = true;\n      path.splice(i, 1);\n      up--;\n    }\n  }\n\n  if (unshift) path.unshift('');\n  if (last === '.' || last === '..') path.push('');\n\n  return path.join('/');\n}\n\n/**\n * The actual URL instance. Instead of returning an object we've opted-in to\n * create an actual constructor as it's much more memory efficient and\n * faster and it pleases my OCD.\n *\n * It is worth noting that we should not use `URL` as class name to prevent\n * clashes with the global URL instance that got introduced in browsers.\n *\n * @constructor\n * @param {String} address URL we want to parse.\n * @param {Object|String} [location] Location defaults for relative paths.\n * @param {Boolean|Function} [parser] Parser for the query string.\n * @private\n */\nfunction Url(address, location, parser) {\n  address = trimLeft(address);\n  address = address.replace(CRHTLF, '');\n\n  if (!(this instanceof Url)) {\n    return new Url(address, location, parser);\n  }\n\n  var relative, extracted, parse, instruction, index, key\n    , instructions = rules.slice()\n    , type = typeof location\n    , url = this\n    , i = 0;\n\n  //\n  // The following if statements allows this module two have compatibility with\n  // 2 different API:\n  //\n  // 1. Node.js's `url.parse` api which accepts a URL, boolean as arguments\n  //    where the boolean indicates that the query string should also be parsed.\n  //\n  // 2. The `URL` interface of the browser which accepts a URL, object as\n  //    arguments. The supplied object will be used as default values / fall-back\n  //    for relative paths.\n  //\n  if ('object' !== type && 'string' !== type) {\n    parser = location;\n    location = null;\n  }\n\n  if (parser && 'function' !== typeof parser) parser = qs.parse;\n\n  location = lolcation(location);\n\n  //\n  // Extract protocol information before running the instructions.\n  //\n  extracted = extractProtocol(address || '', location);\n  relative = !extracted.protocol && !extracted.slashes;\n  url.slashes = extracted.slashes || relative && location.slashes;\n  url.protocol = extracted.protocol || location.protocol || '';\n  address = extracted.rest;\n\n  //\n  // When the authority component is absent the URL starts with a path\n  // component.\n  //\n  if (\n    extracted.protocol === 'file:' && (\n      extracted.slashesCount !== 2 || windowsDriveLetter.test(address)) ||\n    (!extracted.slashes &&\n      (extracted.protocol ||\n        extracted.slashesCount < 2 ||\n        !isSpecial(url.protocol)))\n  ) {\n    instructions[3] = [/(.*)/, 'pathname'];\n  }\n\n  for (; i < instructions.length; i++) {\n    instruction = instructions[i];\n\n    if (typeof instruction === 'function') {\n      address = instruction(address, url);\n      continue;\n    }\n\n    parse = instruction[0];\n    key = instruction[1];\n\n    if (parse !== parse) {\n      url[key] = address;\n    } else if ('string' === typeof parse) {\n      index = parse === '@'\n        ? address.lastIndexOf(parse)\n        : address.indexOf(parse);\n\n      if (~index) {\n        if ('number' === typeof instruction[2]) {\n          url[key] = address.slice(0, index);\n          address = address.slice(index + instruction[2]);\n        } else {\n          url[key] = address.slice(index);\n          address = address.slice(0, index);\n        }\n      }\n    } else if ((index = parse.exec(address))) {\n      url[key] = index[1];\n      address = address.slice(0, index.index);\n    }\n\n    url[key] = url[key] || (\n      relative && instruction[3] ? location[key] || '' : ''\n    );\n\n    //\n    // Hostname, host and protocol should be lowercased so they can be used to\n    // create a proper `origin`.\n    //\n    if (instruction[4]) url[key] = url[key].toLowerCase();\n  }\n\n  //\n  // Also parse the supplied query string in to an object. If we're supplied\n  // with a custom parser as function use that instead of the default build-in\n  // parser.\n  //\n  if (parser) url.query = parser(url.query);\n\n  //\n  // If the URL is relative, resolve the pathname against the base URL.\n  //\n  if (\n      relative\n    && location.slashes\n    && url.pathname.charAt(0) !== '/'\n    && (url.pathname !== '' || location.pathname !== '')\n  ) {\n    url.pathname = resolve(url.pathname, location.pathname);\n  }\n\n  //\n  // Default to a / for pathname if none exists. This normalizes the URL\n  // to always have a /\n  //\n  if (url.pathname.charAt(0) !== '/' && isSpecial(url.protocol)) {\n    url.pathname = '/' + url.pathname;\n  }\n\n  //\n  // We should not add port numbers if they are already the default port number\n  // for a given protocol. As the host also contains the port number we're going\n  // override it with the hostname which contains no port number.\n  //\n  if (!required(url.port, url.protocol)) {\n    url.host = url.hostname;\n    url.port = '';\n  }\n\n  //\n  // Parse down the `auth` for the username and password.\n  //\n  url.username = url.password = '';\n\n  if (url.auth) {\n    index = url.auth.indexOf(':');\n\n    if (~index) {\n      url.username = url.auth.slice(0, index);\n      url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n      url.password = url.auth.slice(index + 1);\n      url.password = encodeURIComponent(decodeURIComponent(url.password))\n    } else {\n      url.username = encodeURIComponent(decodeURIComponent(url.auth));\n    }\n\n    url.auth = url.password ? url.username +':'+ url.password : url.username;\n  }\n\n  url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n    ? url.protocol +'//'+ url.host\n    : 'null';\n\n  //\n  // The href is just the compiled result.\n  //\n  url.href = url.toString();\n}\n\n/**\n * This is convenience method for changing properties in the URL instance to\n * insure that they all propagate correctly.\n *\n * @param {String} part          Property we need to adjust.\n * @param {Mixed} value          The newly assigned value.\n * @param {Boolean|Function} fn  When setting the query, it will be the function\n *                               used to parse the query.\n *                               When setting the protocol, double slash will be\n *                               removed from the final url if it is true.\n * @returns {URL} URL instance for chaining.\n * @public\n */\nfunction set(part, value, fn) {\n  var url = this;\n\n  switch (part) {\n    case 'query':\n      if ('string' === typeof value && value.length) {\n        value = (fn || qs.parse)(value);\n      }\n\n      url[part] = value;\n      break;\n\n    case 'port':\n      url[part] = value;\n\n      if (!required(value, url.protocol)) {\n        url.host = url.hostname;\n        url[part] = '';\n      } else if (value) {\n        url.host = url.hostname +':'+ value;\n      }\n\n      break;\n\n    case 'hostname':\n      url[part] = value;\n\n      if (url.port) value += ':'+ url.port;\n      url.host = value;\n      break;\n\n    case 'host':\n      url[part] = value;\n\n      if (port.test(value)) {\n        value = value.split(':');\n        url.port = value.pop();\n        url.hostname = value.join(':');\n      } else {\n        url.hostname = value;\n        url.port = '';\n      }\n\n      break;\n\n    case 'protocol':\n      url.protocol = value.toLowerCase();\n      url.slashes = !fn;\n      break;\n\n    case 'pathname':\n    case 'hash':\n      if (value) {\n        var char = part === 'pathname' ? '/' : '#';\n        url[part] = value.charAt(0) !== char ? char + value : value;\n      } else {\n        url[part] = value;\n      }\n      break;\n\n    case 'username':\n    case 'password':\n      url[part] = encodeURIComponent(value);\n      break;\n\n    case 'auth':\n      var index = value.indexOf(':');\n\n      if (~index) {\n        url.username = value.slice(0, index);\n        url.username = encodeURIComponent(decodeURIComponent(url.username));\n\n        url.password = value.slice(index + 1);\n        url.password = encodeURIComponent(decodeURIComponent(url.password));\n      } else {\n        url.username = encodeURIComponent(decodeURIComponent(value));\n      }\n  }\n\n  for (var i = 0; i < rules.length; i++) {\n    var ins = rules[i];\n\n    if (ins[4]) url[ins[1]] = url[ins[1]].toLowerCase();\n  }\n\n  url.auth = url.password ? url.username +':'+ url.password : url.username;\n\n  url.origin = url.protocol !== 'file:' && isSpecial(url.protocol) && url.host\n    ? url.protocol +'//'+ url.host\n    : 'null';\n\n  url.href = url.toString();\n\n  return url;\n}\n\n/**\n * Transform the properties back in to a valid and full URL string.\n *\n * @param {Function} stringify Optional query stringify function.\n * @returns {String} Compiled version of the URL.\n * @public\n */\nfunction toString(stringify) {\n  if (!stringify || 'function' !== typeof stringify) stringify = qs.stringify;\n\n  var query\n    , url = this\n    , host = url.host\n    , protocol = url.protocol;\n\n  if (protocol && protocol.charAt(protocol.length - 1) !== ':') protocol += ':';\n\n  var result =\n    protocol +\n    ((url.protocol && url.slashes) || isSpecial(url.protocol) ? '//' : '');\n\n  if (url.username) {\n    result += url.username;\n    if (url.password) result += ':'+ url.password;\n    result += '@';\n  } else if (url.password) {\n    result += ':'+ url.password;\n    result += '@';\n  } else if (\n    url.protocol !== 'file:' &&\n    isSpecial(url.protocol) &&\n    !host &&\n    url.pathname !== '/'\n  ) {\n    //\n    // Add back the empty userinfo, otherwise the original invalid URL\n    // might be transformed into a valid one with `url.pathname` as host.\n    //\n    result += '@';\n  }\n\n  //\n  // Trailing colon is removed from `url.host` when it is parsed. If it still\n  // ends with a colon, then add back the trailing colon that was removed. This\n  // prevents an invalid URL from being transformed into a valid one.\n  //\n  if (host[host.length - 1] === ':' || (port.test(url.hostname) && !url.port)) {\n    host += ':';\n  }\n\n  result += host + url.pathname;\n\n  query = 'object' === typeof url.query ? stringify(url.query) : url.query;\n  if (query) result += '?' !== query.charAt(0) ? '?'+ query : query;\n\n  if (url.hash) result += url.hash;\n\n  return result;\n}\n\nUrl.prototype = { set: set, toString: toString };\n\n//\n// Expose the URL parser and some additional properties that might be useful for\n// others or testing.\n//\nUrl.extractProtocol = extractProtocol;\nUrl.location = lolcation;\nUrl.trimLeft = trimLeft;\nUrl.qs = qs;\n\nmodule.exports = Url;\n","/*\n * Copyright Joyent, Inc. and other Node contributors.\n *\n * Permission is hereby granted, free of charge, to any person obtaining a\n * copy of this software and associated documentation files (the\n * \"Software\"), to deal in the Software without restriction, including\n * without limitation the rights to use, copy, modify, merge, publish,\n * distribute, sublicense, and/or sell copies of the Software, and to permit\n * persons to whom the Software is furnished to do so, subject to the\n * following conditions:\n *\n * The above copyright notice and this permission notice shall be included\n * in all copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n * NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n * DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n * OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n * USE OR OTHER DEALINGS IN THE SOFTWARE.\n */\n\n'use strict';\n\nvar punycode = require('punycode/');\n\nfunction Url() {\n  this.protocol = null;\n  this.slashes = null;\n  this.auth = null;\n  this.host = null;\n  this.port = null;\n  this.hostname = null;\n  this.hash = null;\n  this.search = null;\n  this.query = null;\n  this.pathname = null;\n  this.path = null;\n  this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n/*\n * define these here so at least they only have to be\n * compiled once on the first module load.\n */\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n  portPattern = /:[0-9]*$/,\n\n  // Special case for a simple path URL\n  simplePathPattern = /^(\\/\\/?(?!\\/)[^?\\s]*)(\\?[^\\s]*)?$/,\n\n  /*\n   * RFC 2396: characters reserved for delimiting URLs.\n   * We actually just auto-escape these.\n   */\n  delims = [\n    '<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'\n  ],\n\n  // RFC 2396: characters not allowed for various reasons.\n  unwise = [\n    '{', '}', '|', '\\\\', '^', '`'\n  ].concat(delims),\n\n  // Allowed by RFCs, but cause of XSS attacks.  Always escape these.\n  autoEscape = ['\\''].concat(unwise),\n  /*\n   * Characters that are never ever allowed in a hostname.\n   * Note that any invalid chars are also handled, but these\n   * are the ones that are *expected* to be seen, so we fast-path\n   * them.\n   */\n  nonHostChars = [\n    '%', '/', '?', ';', '#'\n  ].concat(autoEscape),\n  hostEndingChars = [\n    '/', '?', '#'\n  ],\n  hostnameMaxLen = 255,\n  hostnamePartPattern = /^[+a-z0-9A-Z_-]{0,63}$/,\n  hostnamePartStart = /^([+a-z0-9A-Z_-]{0,63})(.*)$/,\n  // protocols that can allow \"unsafe\" and \"unwise\" chars.\n  unsafeProtocol = {\n    javascript: true,\n    'javascript:': true\n  },\n  // protocols that never have a hostname.\n  hostlessProtocol = {\n    javascript: true,\n    'javascript:': true\n  },\n  // protocols that always contain a // bit.\n  slashedProtocol = {\n    http: true,\n    https: true,\n    ftp: true,\n    gopher: true,\n    file: true,\n    'http:': true,\n    'https:': true,\n    'ftp:': true,\n    'gopher:': true,\n    'file:': true\n  },\n  querystring = require('qs');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n  if (url && typeof url === 'object' && url instanceof Url) { return url; }\n\n  var u = new Url();\n  u.parse(url, parseQueryString, slashesDenoteHost);\n  return u;\n}\n\nUrl.prototype.parse = function (url, parseQueryString, slashesDenoteHost) {\n  if (typeof url !== 'string') {\n    throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n  }\n\n  /*\n   * Copy chrome, IE, opera backslash-handling behavior.\n   * Back slashes before the query string get converted to forward slashes\n   * See: https://code.google.com/p/chromium/issues/detail?id=25916\n   */\n  var queryIndex = url.indexOf('?'),\n    splitter = queryIndex !== -1 && queryIndex < url.indexOf('#') ? '?' : '#',\n    uSplit = url.split(splitter),\n    slashRegex = /\\\\/g;\n  uSplit[0] = uSplit[0].replace(slashRegex, '/');\n  url = uSplit.join(splitter);\n\n  var rest = url;\n\n  /*\n   * trim before proceeding.\n   * This is to support parse stuff like \"  http://foo.com  \\n\"\n   */\n  rest = rest.trim();\n\n  if (!slashesDenoteHost && url.split('#').length === 1) {\n    // Try fast path regexp\n    var simplePath = simplePathPattern.exec(rest);\n    if (simplePath) {\n      this.path = rest;\n      this.href = rest;\n      this.pathname = simplePath[1];\n      if (simplePath[2]) {\n        this.search = simplePath[2];\n        if (parseQueryString) {\n          this.query = querystring.parse(this.search.substr(1));\n        } else {\n          this.query = this.search.substr(1);\n        }\n      } else if (parseQueryString) {\n        this.search = '';\n        this.query = {};\n      }\n      return this;\n    }\n  }\n\n  var proto = protocolPattern.exec(rest);\n  if (proto) {\n    proto = proto[0];\n    var lowerProto = proto.toLowerCase();\n    this.protocol = lowerProto;\n    rest = rest.substr(proto.length);\n  }\n\n  /*\n   * figure out if it's got a host\n   * user@server is *always* interpreted as a hostname, and url\n   * resolution will treat //foo/bar as host=foo,path=bar because that's\n   * how the browser resolves relative URLs.\n   */\n  if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@/]+@[^@/]+/)) {\n    var slashes = rest.substr(0, 2) === '//';\n    if (slashes && !(proto && hostlessProtocol[proto])) {\n      rest = rest.substr(2);\n      this.slashes = true;\n    }\n  }\n\n  if (!hostlessProtocol[proto] && (slashes || (proto && !slashedProtocol[proto]))) {\n\n    /*\n     * there's a hostname.\n     * the first instance of /, ?, ;, or # ends the host.\n     *\n     * If there is an @ in the hostname, then non-host chars *are* allowed\n     * to the left of the last @ sign, unless some host-ending character\n     * comes *before* the @-sign.\n     * URLs are obnoxious.\n     *\n     * ex:\n     * http://a@b@c/ => user:a@b host:c\n     * http://a@b?@c => user:a host:c path:/?@c\n     */\n\n    /*\n     * v0.12 TODO(isaacs): This is not quite how Chrome does things.\n     * Review our test case against browsers more comprehensively.\n     */\n\n    // find the first instance of any hostEndingChars\n    var hostEnd = -1;\n    for (var i = 0; i < hostEndingChars.length; i++) {\n      var hec = rest.indexOf(hostEndingChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n    }\n\n    /*\n     * at this point, either we have an explicit point where the\n     * auth portion cannot go past, or the last @ char is the decider.\n     */\n    var auth, atSign;\n    if (hostEnd === -1) {\n      // atSign can be anywhere.\n      atSign = rest.lastIndexOf('@');\n    } else {\n      /*\n       * atSign must be in auth portion.\n       * http://a@b/c@d => host:b auth:a path:/c@d\n       */\n      atSign = rest.lastIndexOf('@', hostEnd);\n    }\n\n    /*\n     * Now we have a portion which is definitely the auth.\n     * Pull that off.\n     */\n    if (atSign !== -1) {\n      auth = rest.slice(0, atSign);\n      rest = rest.slice(atSign + 1);\n      this.auth = decodeURIComponent(auth);\n    }\n\n    // the host is the remaining to the left of the first non-host char\n    hostEnd = -1;\n    for (var i = 0; i < nonHostChars.length; i++) {\n      var hec = rest.indexOf(nonHostChars[i]);\n      if (hec !== -1 && (hostEnd === -1 || hec < hostEnd)) { hostEnd = hec; }\n    }\n    // if we still have not hit it, then the entire thing is a host.\n    if (hostEnd === -1) { hostEnd = rest.length; }\n\n    this.host = rest.slice(0, hostEnd);\n    rest = rest.slice(hostEnd);\n\n    // pull out port.\n    this.parseHost();\n\n    /*\n     * we've indicated that there is a hostname,\n     * so even if it's empty, it has to be present.\n     */\n    this.hostname = this.hostname || '';\n\n    /*\n     * if hostname begins with [ and ends with ]\n     * assume that it's an IPv6 address.\n     */\n    var ipv6Hostname = this.hostname[0] === '[' && this.hostname[this.hostname.length - 1] === ']';\n\n    // validate a little.\n    if (!ipv6Hostname) {\n      var hostparts = this.hostname.split(/\\./);\n      for (var i = 0, l = hostparts.length; i < l; i++) {\n        var part = hostparts[i];\n        if (!part) { continue; }\n        if (!part.match(hostnamePartPattern)) {\n          var newpart = '';\n          for (var j = 0, k = part.length; j < k; j++) {\n            if (part.charCodeAt(j) > 127) {\n              /*\n               * we replace non-ASCII char with a temporary placeholder\n               * we need this to make sure size of hostname is not\n               * broken by replacing non-ASCII by nothing\n               */\n              newpart += 'x';\n            } else {\n              newpart += part[j];\n            }\n          }\n          // we test again with ASCII char only\n          if (!newpart.match(hostnamePartPattern)) {\n            var validParts = hostparts.slice(0, i);\n            var notHost = hostparts.slice(i + 1);\n            var bit = part.match(hostnamePartStart);\n            if (bit) {\n              validParts.push(bit[1]);\n              notHost.unshift(bit[2]);\n            }\n            if (notHost.length) {\n              rest = '/' + notHost.join('.') + rest;\n            }\n            this.hostname = validParts.join('.');\n            break;\n          }\n        }\n      }\n    }\n\n    if (this.hostname.length > hostnameMaxLen) {\n      this.hostname = '';\n    } else {\n      // hostnames are always lower case.\n      this.hostname = this.hostname.toLowerCase();\n    }\n\n    if (!ipv6Hostname) {\n      /*\n       * IDNA Support: Returns a punycoded representation of \"domain\".\n       * It only converts parts of the domain name that\n       * have non-ASCII characters, i.e. it doesn't matter if\n       * you call it with a domain that already is ASCII-only.\n       */\n      this.hostname = punycode.toASCII(this.hostname);\n    }\n\n    var p = this.port ? ':' + this.port : '';\n    var h = this.hostname || '';\n    this.host = h + p;\n    this.href += this.host;\n\n    /*\n     * strip [ and ] from the hostname\n     * the host field still retains them, though\n     */\n    if (ipv6Hostname) {\n      this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n      if (rest[0] !== '/') {\n        rest = '/' + rest;\n      }\n    }\n  }\n\n  /*\n   * now rest is set to the post-host stuff.\n   * chop off any delim chars.\n   */\n  if (!unsafeProtocol[lowerProto]) {\n\n    /*\n     * First, make 100% sure that any \"autoEscape\" chars get\n     * escaped, even if encodeURIComponent doesn't think they\n     * need to be.\n     */\n    for (var i = 0, l = autoEscape.length; i < l; i++) {\n      var ae = autoEscape[i];\n      if (rest.indexOf(ae) === -1) { continue; }\n      var esc = encodeURIComponent(ae);\n      if (esc === ae) {\n        esc = escape(ae);\n      }\n      rest = rest.split(ae).join(esc);\n    }\n  }\n\n  // chop off from the tail first.\n  var hash = rest.indexOf('#');\n  if (hash !== -1) {\n    // got a fragment string.\n    this.hash = rest.substr(hash);\n    rest = rest.slice(0, hash);\n  }\n  var qm = rest.indexOf('?');\n  if (qm !== -1) {\n    this.search = rest.substr(qm);\n    this.query = rest.substr(qm + 1);\n    if (parseQueryString) {\n      this.query = querystring.parse(this.query);\n    }\n    rest = rest.slice(0, qm);\n  } else if (parseQueryString) {\n    // no query string, but parseQueryString still requested\n    this.search = '';\n    this.query = {};\n  }\n  if (rest) { this.pathname = rest; }\n  if (slashedProtocol[lowerProto] && this.hostname && !this.pathname) {\n    this.pathname = '/';\n  }\n\n  // to support http.request\n  if (this.pathname || this.search) {\n    var p = this.pathname || '';\n    var s = this.search || '';\n    this.path = p + s;\n  }\n\n  // finally, reconstruct the href based on what has been validated.\n  this.href = this.format();\n  return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n  /*\n   * ensure it's an object, and not a string url.\n   * If it's an obj, this is a no-op.\n   * this way, you can call url_format() on strings\n   * to clean up potentially wonky urls.\n   */\n  if (typeof obj === 'string') { obj = urlParse(obj); }\n  if (!(obj instanceof Url)) { return Url.prototype.format.call(obj); }\n  return obj.format();\n}\n\nUrl.prototype.format = function () {\n  var auth = this.auth || '';\n  if (auth) {\n    auth = encodeURIComponent(auth);\n    auth = auth.replace(/%3A/i, ':');\n    auth += '@';\n  }\n\n  var protocol = this.protocol || '',\n    pathname = this.pathname || '',\n    hash = this.hash || '',\n    host = false,\n    query = '';\n\n  if (this.host) {\n    host = auth + this.host;\n  } else if (this.hostname) {\n    host = auth + (this.hostname.indexOf(':') === -1 ? this.hostname : '[' + this.hostname + ']');\n    if (this.port) {\n      host += ':' + this.port;\n    }\n  }\n\n  if (this.query && typeof this.query === 'object' && Object.keys(this.query).length) {\n    query = querystring.stringify(this.query, {\n      arrayFormat: 'repeat',\n      addQueryPrefix: false\n    });\n  }\n\n  var search = this.search || (query && ('?' + query)) || '';\n\n  if (protocol && protocol.substr(-1) !== ':') { protocol += ':'; }\n\n  /*\n   * only the slashedProtocols get the //.  Not mailto:, xmpp:, etc.\n   * unless they had them to begin with.\n   */\n  if (this.slashes || (!protocol || slashedProtocol[protocol]) && host !== false) {\n    host = '//' + (host || '');\n    if (pathname && pathname.charAt(0) !== '/') { pathname = '/' + pathname; }\n  } else if (!host) {\n    host = '';\n  }\n\n  if (hash && hash.charAt(0) !== '#') { hash = '#' + hash; }\n  if (search && search.charAt(0) !== '?') { search = '?' + search; }\n\n  pathname = pathname.replace(/[?#]/g, function (match) {\n    return encodeURIComponent(match);\n  });\n  search = search.replace('#', '%23');\n\n  return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n  return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function (relative) {\n  return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n  if (!source) { return relative; }\n  return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function (relative) {\n  if (typeof relative === 'string') {\n    var rel = new Url();\n    rel.parse(relative, false, true);\n    relative = rel;\n  }\n\n  var result = new Url();\n  var tkeys = Object.keys(this);\n  for (var tk = 0; tk < tkeys.length; tk++) {\n    var tkey = tkeys[tk];\n    result[tkey] = this[tkey];\n  }\n\n  /*\n   * hash is always overridden, no matter what.\n   * even href=\"\" will remove it.\n   */\n  result.hash = relative.hash;\n\n  // if the relative url is empty, then there's nothing left to do here.\n  if (relative.href === '') {\n    result.href = result.format();\n    return result;\n  }\n\n  // hrefs like //foo/bar always cut to the protocol.\n  if (relative.slashes && !relative.protocol) {\n    // take everything except the protocol from relative\n    var rkeys = Object.keys(relative);\n    for (var rk = 0; rk < rkeys.length; rk++) {\n      var rkey = rkeys[rk];\n      if (rkey !== 'protocol') { result[rkey] = relative[rkey]; }\n    }\n\n    // urlParse appends trailing / to urls like http://www.example.com\n    if (slashedProtocol[result.protocol] && result.hostname && !result.pathname) {\n      result.pathname = '/';\n      result.path = result.pathname;\n    }\n\n    result.href = result.format();\n    return result;\n  }\n\n  if (relative.protocol && relative.protocol !== result.protocol) {\n    /*\n     * if it's a known url protocol, then changing\n     * the protocol does weird things\n     * first, if it's not file:, then we MUST have a host,\n     * and if there was a path\n     * to begin with, then we MUST have a path.\n     * if it is file:, then the host is dropped,\n     * because that's known to be hostless.\n     * anything else is assumed to be absolute.\n     */\n    if (!slashedProtocol[relative.protocol]) {\n      var keys = Object.keys(relative);\n      for (var v = 0; v < keys.length; v++) {\n        var k = keys[v];\n        result[k] = relative[k];\n      }\n      result.href = result.format();\n      return result;\n    }\n\n    result.protocol = relative.protocol;\n    if (!relative.host && !hostlessProtocol[relative.protocol]) {\n      var relPath = (relative.pathname || '').split('/');\n      while (relPath.length && !(relative.host = relPath.shift())) { }\n      if (!relative.host) { relative.host = ''; }\n      if (!relative.hostname) { relative.hostname = ''; }\n      if (relPath[0] !== '') { relPath.unshift(''); }\n      if (relPath.length < 2) { relPath.unshift(''); }\n      result.pathname = relPath.join('/');\n    } else {\n      result.pathname = relative.pathname;\n    }\n    result.search = relative.search;\n    result.query = relative.query;\n    result.host = relative.host || '';\n    result.auth = relative.auth;\n    result.hostname = relative.hostname || relative.host;\n    result.port = relative.port;\n    // to support http.request\n    if (result.pathname || result.search) {\n      var p = result.pathname || '';\n      var s = result.search || '';\n      result.path = p + s;\n    }\n    result.slashes = result.slashes || relative.slashes;\n    result.href = result.format();\n    return result;\n  }\n\n  var isSourceAbs = result.pathname && result.pathname.charAt(0) === '/',\n    isRelAbs = relative.host || relative.pathname && relative.pathname.charAt(0) === '/',\n    mustEndAbs = isRelAbs || isSourceAbs || (result.host && relative.pathname),\n    removeAllDots = mustEndAbs,\n    srcPath = result.pathname && result.pathname.split('/') || [],\n    relPath = relative.pathname && relative.pathname.split('/') || [],\n    psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n  /*\n   * if the url is a non-slashed url, then relative\n   * links like ../.. should be able\n   * to crawl up to the hostname, as well.  This is strange.\n   * result.protocol has already been set by now.\n   * Later on, put the first path part into the host field.\n   */\n  if (psychotic) {\n    result.hostname = '';\n    result.port = null;\n    if (result.host) {\n      if (srcPath[0] === '') { srcPath[0] = result.host; } else { srcPath.unshift(result.host); }\n    }\n    result.host = '';\n    if (relative.protocol) {\n      relative.hostname = null;\n      relative.port = null;\n      if (relative.host) {\n        if (relPath[0] === '') { relPath[0] = relative.host; } else { relPath.unshift(relative.host); }\n      }\n      relative.host = null;\n    }\n    mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n  }\n\n  if (isRelAbs) {\n    // it's absolute.\n    result.host = relative.host || relative.host === '' ? relative.host : result.host;\n    result.hostname = relative.hostname || relative.hostname === '' ? relative.hostname : result.hostname;\n    result.search = relative.search;\n    result.query = relative.query;\n    srcPath = relPath;\n    // fall through to the dot-handling below.\n  } else if (relPath.length) {\n    /*\n     * it's relative\n     * throw away the existing file, and take the new path instead.\n     */\n    if (!srcPath) { srcPath = []; }\n    srcPath.pop();\n    srcPath = srcPath.concat(relPath);\n    result.search = relative.search;\n    result.query = relative.query;\n  } else if (relative.search != null) {\n    /*\n     * just pull out the search.\n     * like href='?foo'.\n     * Put this after the other two cases because it simplifies the booleans\n     */\n    if (psychotic) {\n      result.host = srcPath.shift();\n      result.hostname = result.host;\n      /*\n       * occationaly the auth can get stuck only in host\n       * this especially happens in cases like\n       * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n       */\n      var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n      if (authInHost) {\n        result.auth = authInHost.shift();\n        result.hostname = authInHost.shift();\n        result.host = result.hostname;\n      }\n    }\n    result.search = relative.search;\n    result.query = relative.query;\n    // to support http.request\n    if (result.pathname !== null || result.search !== null) {\n      result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n    }\n    result.href = result.format();\n    return result;\n  }\n\n  if (!srcPath.length) {\n    /*\n     * no path at all.  easy.\n     * we've already handled the other stuff above.\n     */\n    result.pathname = null;\n    // to support http.request\n    if (result.search) {\n      result.path = '/' + result.search;\n    } else {\n      result.path = null;\n    }\n    result.href = result.format();\n    return result;\n  }\n\n  /*\n   * if a url ENDs in . or .., then it must get a trailing slash.\n   * however, if it ends in anything else non-slashy,\n   * then it must NOT get a trailing slash.\n   */\n  var last = srcPath.slice(-1)[0];\n  var hasTrailingSlash = (result.host || relative.host || srcPath.length > 1) && (last === '.' || last === '..') || last === '';\n\n  /*\n   * strip single dots, resolve double dots to parent dir\n   * if the path tries to go above the root, `up` ends up > 0\n   */\n  var up = 0;\n  for (var i = srcPath.length; i >= 0; i--) {\n    last = srcPath[i];\n    if (last === '.') {\n      srcPath.splice(i, 1);\n    } else if (last === '..') {\n      srcPath.splice(i, 1);\n      up++;\n    } else if (up) {\n      srcPath.splice(i, 1);\n      up--;\n    }\n  }\n\n  // if the path is allowed to go above the root, restore leading ..s\n  if (!mustEndAbs && !removeAllDots) {\n    for (; up--; up) {\n      srcPath.unshift('..');\n    }\n  }\n\n  if (mustEndAbs && srcPath[0] !== '' && (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n    srcPath.unshift('');\n  }\n\n  if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n    srcPath.push('');\n  }\n\n  var isAbsolute = srcPath[0] === '' || (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n  // put the host back\n  if (psychotic) {\n    result.hostname = isAbsolute ? '' : srcPath.length ? srcPath.shift() : '';\n    result.host = result.hostname;\n    /*\n     * occationaly the auth can get stuck only in host\n     * this especially happens in cases like\n     * url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n     */\n    var authInHost = result.host && result.host.indexOf('@') > 0 ? result.host.split('@') : false;\n    if (authInHost) {\n      result.auth = authInHost.shift();\n      result.hostname = authInHost.shift();\n      result.host = result.hostname;\n    }\n  }\n\n  mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n  if (mustEndAbs && !isAbsolute) {\n    srcPath.unshift('');\n  }\n\n  if (srcPath.length > 0) {\n    result.pathname = srcPath.join('/');\n  } else {\n    result.pathname = null;\n    result.path = null;\n  }\n\n  // to support request.http\n  if (result.pathname !== null || result.search !== null) {\n    result.path = (result.pathname ? result.pathname : '') + (result.search ? result.search : '');\n  }\n  result.auth = relative.auth || result.auth;\n  result.slashes = result.slashes || relative.slashes;\n  result.href = result.format();\n  return result;\n};\n\nUrl.prototype.parseHost = function () {\n  var host = this.host;\n  var port = portPattern.exec(host);\n  if (port) {\n    port = port[0];\n    if (port !== ':') {\n      this.port = port.substr(1);\n    }\n    host = host.substr(0, host.length - port.length);\n  }\n  if (host) { this.hostname = host; }\n};\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n","module.exports = function isBuffer(arg) {\n  return arg && typeof arg === 'object'\n    && typeof arg.copy === 'function'\n    && typeof arg.fill === 'function'\n    && typeof arg.readUInt8 === 'function';\n}","// Currently in sync with Node.js lib/internal/util/types.js\n// https://github.com/nodejs/node/commit/112cc7c27551254aa2b17098fb774867f05ed0d9\n\n'use strict';\n\nvar isArgumentsObject = require('is-arguments');\nvar isGeneratorFunction = require('is-generator-function');\nvar whichTypedArray = require('which-typed-array');\nvar isTypedArray = require('is-typed-array');\n\nfunction uncurryThis(f) {\n  return f.call.bind(f);\n}\n\nvar BigIntSupported = typeof BigInt !== 'undefined';\nvar SymbolSupported = typeof Symbol !== 'undefined';\n\nvar ObjectToString = uncurryThis(Object.prototype.toString);\n\nvar numberValue = uncurryThis(Number.prototype.valueOf);\nvar stringValue = uncurryThis(String.prototype.valueOf);\nvar booleanValue = uncurryThis(Boolean.prototype.valueOf);\n\nif (BigIntSupported) {\n  var bigIntValue = uncurryThis(BigInt.prototype.valueOf);\n}\n\nif (SymbolSupported) {\n  var symbolValue = uncurryThis(Symbol.prototype.valueOf);\n}\n\nfunction checkBoxedPrimitive(value, prototypeValueOf) {\n  if (typeof value !== 'object') {\n    return false;\n  }\n  try {\n    prototypeValueOf(value);\n    return true;\n  } catch(e) {\n    return false;\n  }\n}\n\nexports.isArgumentsObject = isArgumentsObject;\nexports.isGeneratorFunction = isGeneratorFunction;\nexports.isTypedArray = isTypedArray;\n\n// Taken from here and modified for better browser support\n// https://github.com/sindresorhus/p-is-promise/blob/cda35a513bda03f977ad5cde3a079d237e82d7ef/index.js\nfunction isPromise(input) {\n\treturn (\n\t\t(\n\t\t\ttypeof Promise !== 'undefined' &&\n\t\t\tinput instanceof Promise\n\t\t) ||\n\t\t(\n\t\t\tinput !== null &&\n\t\t\ttypeof input === 'object' &&\n\t\t\ttypeof input.then === 'function' &&\n\t\t\ttypeof input.catch === 'function'\n\t\t)\n\t);\n}\nexports.isPromise = isPromise;\n\nfunction isArrayBufferView(value) {\n  if (typeof ArrayBuffer !== 'undefined' && ArrayBuffer.isView) {\n    return ArrayBuffer.isView(value);\n  }\n\n  return (\n    isTypedArray(value) ||\n    isDataView(value)\n  );\n}\nexports.isArrayBufferView = isArrayBufferView;\n\n\nfunction isUint8Array(value) {\n  return whichTypedArray(value) === 'Uint8Array';\n}\nexports.isUint8Array = isUint8Array;\n\nfunction isUint8ClampedArray(value) {\n  return whichTypedArray(value) === 'Uint8ClampedArray';\n}\nexports.isUint8ClampedArray = isUint8ClampedArray;\n\nfunction isUint16Array(value) {\n  return whichTypedArray(value) === 'Uint16Array';\n}\nexports.isUint16Array = isUint16Array;\n\nfunction isUint32Array(value) {\n  return whichTypedArray(value) === 'Uint32Array';\n}\nexports.isUint32Array = isUint32Array;\n\nfunction isInt8Array(value) {\n  return whichTypedArray(value) === 'Int8Array';\n}\nexports.isInt8Array = isInt8Array;\n\nfunction isInt16Array(value) {\n  return whichTypedArray(value) === 'Int16Array';\n}\nexports.isInt16Array = isInt16Array;\n\nfunction isInt32Array(value) {\n  return whichTypedArray(value) === 'Int32Array';\n}\nexports.isInt32Array = isInt32Array;\n\nfunction isFloat32Array(value) {\n  return whichTypedArray(value) === 'Float32Array';\n}\nexports.isFloat32Array = isFloat32Array;\n\nfunction isFloat64Array(value) {\n  return whichTypedArray(value) === 'Float64Array';\n}\nexports.isFloat64Array = isFloat64Array;\n\nfunction isBigInt64Array(value) {\n  return whichTypedArray(value) === 'BigInt64Array';\n}\nexports.isBigInt64Array = isBigInt64Array;\n\nfunction isBigUint64Array(value) {\n  return whichTypedArray(value) === 'BigUint64Array';\n}\nexports.isBigUint64Array = isBigUint64Array;\n\nfunction isMapToString(value) {\n  return ObjectToString(value) === '[object Map]';\n}\nisMapToString.working = (\n  typeof Map !== 'undefined' &&\n  isMapToString(new Map())\n);\n\nfunction isMap(value) {\n  if (typeof Map === 'undefined') {\n    return false;\n  }\n\n  return isMapToString.working\n    ? isMapToString(value)\n    : value instanceof Map;\n}\nexports.isMap = isMap;\n\nfunction isSetToString(value) {\n  return ObjectToString(value) === '[object Set]';\n}\nisSetToString.working = (\n  typeof Set !== 'undefined' &&\n  isSetToString(new Set())\n);\nfunction isSet(value) {\n  if (typeof Set === 'undefined') {\n    return false;\n  }\n\n  return isSetToString.working\n    ? isSetToString(value)\n    : value instanceof Set;\n}\nexports.isSet = isSet;\n\nfunction isWeakMapToString(value) {\n  return ObjectToString(value) === '[object WeakMap]';\n}\nisWeakMapToString.working = (\n  typeof WeakMap !== 'undefined' &&\n  isWeakMapToString(new WeakMap())\n);\nfunction isWeakMap(value) {\n  if (typeof WeakMap === 'undefined') {\n    return false;\n  }\n\n  return isWeakMapToString.working\n    ? isWeakMapToString(value)\n    : value instanceof WeakMap;\n}\nexports.isWeakMap = isWeakMap;\n\nfunction isWeakSetToString(value) {\n  return ObjectToString(value) === '[object WeakSet]';\n}\nisWeakSetToString.working = (\n  typeof WeakSet !== 'undefined' &&\n  isWeakSetToString(new WeakSet())\n);\nfunction isWeakSet(value) {\n  return isWeakSetToString(value);\n}\nexports.isWeakSet = isWeakSet;\n\nfunction isArrayBufferToString(value) {\n  return ObjectToString(value) === '[object ArrayBuffer]';\n}\nisArrayBufferToString.working = (\n  typeof ArrayBuffer !== 'undefined' &&\n  isArrayBufferToString(new ArrayBuffer())\n);\nfunction isArrayBuffer(value) {\n  if (typeof ArrayBuffer === 'undefined') {\n    return false;\n  }\n\n  return isArrayBufferToString.working\n    ? isArrayBufferToString(value)\n    : value instanceof ArrayBuffer;\n}\nexports.isArrayBuffer = isArrayBuffer;\n\nfunction isDataViewToString(value) {\n  return ObjectToString(value) === '[object DataView]';\n}\nisDataViewToString.working = (\n  typeof ArrayBuffer !== 'undefined' &&\n  typeof DataView !== 'undefined' &&\n  isDataViewToString(new DataView(new ArrayBuffer(1), 0, 1))\n);\nfunction isDataView(value) {\n  if (typeof DataView === 'undefined') {\n    return false;\n  }\n\n  return isDataViewToString.working\n    ? isDataViewToString(value)\n    : value instanceof DataView;\n}\nexports.isDataView = isDataView;\n\n// Store a copy of SharedArrayBuffer in case it's deleted elsewhere\nvar SharedArrayBufferCopy = typeof SharedArrayBuffer !== 'undefined' ? SharedArrayBuffer : undefined;\nfunction isSharedArrayBufferToString(value) {\n  return ObjectToString(value) === '[object SharedArrayBuffer]';\n}\nfunction isSharedArrayBuffer(value) {\n  if (typeof SharedArrayBufferCopy === 'undefined') {\n    return false;\n  }\n\n  if (typeof isSharedArrayBufferToString.working === 'undefined') {\n    isSharedArrayBufferToString.working = isSharedArrayBufferToString(new SharedArrayBufferCopy());\n  }\n\n  return isSharedArrayBufferToString.working\n    ? isSharedArrayBufferToString(value)\n    : value instanceof SharedArrayBufferCopy;\n}\nexports.isSharedArrayBuffer = isSharedArrayBuffer;\n\nfunction isAsyncFunction(value) {\n  return ObjectToString(value) === '[object AsyncFunction]';\n}\nexports.isAsyncFunction = isAsyncFunction;\n\nfunction isMapIterator(value) {\n  return ObjectToString(value) === '[object Map Iterator]';\n}\nexports.isMapIterator = isMapIterator;\n\nfunction isSetIterator(value) {\n  return ObjectToString(value) === '[object Set Iterator]';\n}\nexports.isSetIterator = isSetIterator;\n\nfunction isGeneratorObject(value) {\n  return ObjectToString(value) === '[object Generator]';\n}\nexports.isGeneratorObject = isGeneratorObject;\n\nfunction isWebAssemblyCompiledModule(value) {\n  return ObjectToString(value) === '[object WebAssembly.Module]';\n}\nexports.isWebAssemblyCompiledModule = isWebAssemblyCompiledModule;\n\nfunction isNumberObject(value) {\n  return checkBoxedPrimitive(value, numberValue);\n}\nexports.isNumberObject = isNumberObject;\n\nfunction isStringObject(value) {\n  return checkBoxedPrimitive(value, stringValue);\n}\nexports.isStringObject = isStringObject;\n\nfunction isBooleanObject(value) {\n  return checkBoxedPrimitive(value, booleanValue);\n}\nexports.isBooleanObject = isBooleanObject;\n\nfunction isBigIntObject(value) {\n  return BigIntSupported && checkBoxedPrimitive(value, bigIntValue);\n}\nexports.isBigIntObject = isBigIntObject;\n\nfunction isSymbolObject(value) {\n  return SymbolSupported && checkBoxedPrimitive(value, symbolValue);\n}\nexports.isSymbolObject = isSymbolObject;\n\nfunction isBoxedPrimitive(value) {\n  return (\n    isNumberObject(value) ||\n    isStringObject(value) ||\n    isBooleanObject(value) ||\n    isBigIntObject(value) ||\n    isSymbolObject(value)\n  );\n}\nexports.isBoxedPrimitive = isBoxedPrimitive;\n\nfunction isAnyArrayBuffer(value) {\n  return typeof Uint8Array !== 'undefined' && (\n    isArrayBuffer(value) ||\n    isSharedArrayBuffer(value)\n  );\n}\nexports.isAnyArrayBuffer = isAnyArrayBuffer;\n\n['isProxy', 'isExternal', 'isModuleNamespaceObject'].forEach(function(method) {\n  Object.defineProperty(exports, method, {\n    enumerable: false,\n    value: function() {\n      throw new Error(method + ' is not supported in userland');\n    }\n  });\n});\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n  function getOwnPropertyDescriptors(obj) {\n    var keys = Object.keys(obj);\n    var descriptors = {};\n    for (var i = 0; i < keys.length; i++) {\n      descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n    }\n    return descriptors;\n  };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n  if (!isString(f)) {\n    var objects = [];\n    for (var i = 0; i < arguments.length; i++) {\n      objects.push(inspect(arguments[i]));\n    }\n    return objects.join(' ');\n  }\n\n  var i = 1;\n  var args = arguments;\n  var len = args.length;\n  var str = String(f).replace(formatRegExp, function(x) {\n    if (x === '%%') return '%';\n    if (i >= len) return x;\n    switch (x) {\n      case '%s': return String(args[i++]);\n      case '%d': return Number(args[i++]);\n      case '%j':\n        try {\n          return JSON.stringify(args[i++]);\n        } catch (_) {\n          return '[Circular]';\n        }\n      default:\n        return x;\n    }\n  });\n  for (var x = args[i]; i < len; x = args[++i]) {\n    if (isNull(x) || !isObject(x)) {\n      str += ' ' + x;\n    } else {\n      str += ' ' + inspect(x);\n    }\n  }\n  return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n  if (typeof process !== 'undefined' && process.noDeprecation === true) {\n    return fn;\n  }\n\n  // Allow for deprecating things in the process of starting up.\n  if (typeof process === 'undefined') {\n    return function() {\n      return exports.deprecate(fn, msg).apply(this, arguments);\n    };\n  }\n\n  var warned = false;\n  function deprecated() {\n    if (!warned) {\n      if (process.throwDeprecation) {\n        throw new Error(msg);\n      } else if (process.traceDeprecation) {\n        console.trace(msg);\n      } else {\n        console.error(msg);\n      }\n      warned = true;\n    }\n    return fn.apply(this, arguments);\n  }\n\n  return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnvRegex = /^$/;\n\nif (process.env.NODE_DEBUG) {\n  var debugEnv = process.env.NODE_DEBUG;\n  debugEnv = debugEnv.replace(/[|\\\\{}()[\\]^$+?.]/g, '\\\\$&')\n    .replace(/\\*/g, '.*')\n    .replace(/,/g, '$|^')\n    .toUpperCase();\n  debugEnvRegex = new RegExp('^' + debugEnv + '$', 'i');\n}\nexports.debuglog = function(set) {\n  set = set.toUpperCase();\n  if (!debugs[set]) {\n    if (debugEnvRegex.test(set)) {\n      var pid = process.pid;\n      debugs[set] = function() {\n        var msg = exports.format.apply(exports, arguments);\n        console.error('%s %d: %s', set, pid, msg);\n      };\n    } else {\n      debugs[set] = function() {};\n    }\n  }\n  return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n  // default options\n  var ctx = {\n    seen: [],\n    stylize: stylizeNoColor\n  };\n  // legacy...\n  if (arguments.length >= 3) ctx.depth = arguments[2];\n  if (arguments.length >= 4) ctx.colors = arguments[3];\n  if (isBoolean(opts)) {\n    // legacy...\n    ctx.showHidden = opts;\n  } else if (opts) {\n    // got an \"options\" object\n    exports._extend(ctx, opts);\n  }\n  // set default options\n  if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n  if (isUndefined(ctx.depth)) ctx.depth = 2;\n  if (isUndefined(ctx.colors)) ctx.colors = false;\n  if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n  if (ctx.colors) ctx.stylize = stylizeWithColor;\n  return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n  'bold' : [1, 22],\n  'italic' : [3, 23],\n  'underline' : [4, 24],\n  'inverse' : [7, 27],\n  'white' : [37, 39],\n  'grey' : [90, 39],\n  'black' : [30, 39],\n  'blue' : [34, 39],\n  'cyan' : [36, 39],\n  'green' : [32, 39],\n  'magenta' : [35, 39],\n  'red' : [31, 39],\n  'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n  'special': 'cyan',\n  'number': 'yellow',\n  'boolean': 'yellow',\n  'undefined': 'grey',\n  'null': 'bold',\n  'string': 'green',\n  'date': 'magenta',\n  // \"name\": intentionally not styling\n  'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n  var style = inspect.styles[styleType];\n\n  if (style) {\n    return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n           '\\u001b[' + inspect.colors[style][1] + 'm';\n  } else {\n    return str;\n  }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n  return str;\n}\n\n\nfunction arrayToHash(array) {\n  var hash = {};\n\n  array.forEach(function(val, idx) {\n    hash[val] = true;\n  });\n\n  return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n  // Provide a hook for user-specified inspect functions.\n  // Check that value is an object with an inspect function on it\n  if (ctx.customInspect &&\n      value &&\n      isFunction(value.inspect) &&\n      // Filter out the util module, it's inspect function is special\n      value.inspect !== exports.inspect &&\n      // Also filter out any prototype objects using the circular check.\n      !(value.constructor && value.constructor.prototype === value)) {\n    var ret = value.inspect(recurseTimes, ctx);\n    if (!isString(ret)) {\n      ret = formatValue(ctx, ret, recurseTimes);\n    }\n    return ret;\n  }\n\n  // Primitive types cannot have properties\n  var primitive = formatPrimitive(ctx, value);\n  if (primitive) {\n    return primitive;\n  }\n\n  // Look up the keys of the object.\n  var keys = Object.keys(value);\n  var visibleKeys = arrayToHash(keys);\n\n  if (ctx.showHidden) {\n    keys = Object.getOwnPropertyNames(value);\n  }\n\n  // IE doesn't make error fields non-enumerable\n  // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n  if (isError(value)\n      && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n    return formatError(value);\n  }\n\n  // Some type of object without properties can be shortcutted.\n  if (keys.length === 0) {\n    if (isFunction(value)) {\n      var name = value.name ? ': ' + value.name : '';\n      return ctx.stylize('[Function' + name + ']', 'special');\n    }\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    }\n    if (isDate(value)) {\n      return ctx.stylize(Date.prototype.toString.call(value), 'date');\n    }\n    if (isError(value)) {\n      return formatError(value);\n    }\n  }\n\n  var base = '', array = false, braces = ['{', '}'];\n\n  // Make Array say that they are Array\n  if (isArray(value)) {\n    array = true;\n    braces = ['[', ']'];\n  }\n\n  // Make functions say that they are functions\n  if (isFunction(value)) {\n    var n = value.name ? ': ' + value.name : '';\n    base = ' [Function' + n + ']';\n  }\n\n  // Make RegExps say that they are RegExps\n  if (isRegExp(value)) {\n    base = ' ' + RegExp.prototype.toString.call(value);\n  }\n\n  // Make dates with properties first say the date\n  if (isDate(value)) {\n    base = ' ' + Date.prototype.toUTCString.call(value);\n  }\n\n  // Make error with message first say the error\n  if (isError(value)) {\n    base = ' ' + formatError(value);\n  }\n\n  if (keys.length === 0 && (!array || value.length == 0)) {\n    return braces[0] + base + braces[1];\n  }\n\n  if (recurseTimes < 0) {\n    if (isRegExp(value)) {\n      return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n    } else {\n      return ctx.stylize('[Object]', 'special');\n    }\n  }\n\n  ctx.seen.push(value);\n\n  var output;\n  if (array) {\n    output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n  } else {\n    output = keys.map(function(key) {\n      return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n    });\n  }\n\n  ctx.seen.pop();\n\n  return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n  if (isUndefined(value))\n    return ctx.stylize('undefined', 'undefined');\n  if (isString(value)) {\n    var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n                                             .replace(/'/g, \"\\\\'\")\n                                             .replace(/\\\\\"/g, '\"') + '\\'';\n    return ctx.stylize(simple, 'string');\n  }\n  if (isNumber(value))\n    return ctx.stylize('' + value, 'number');\n  if (isBoolean(value))\n    return ctx.stylize('' + value, 'boolean');\n  // For some reason typeof null is \"object\", so special case here.\n  if (isNull(value))\n    return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n  return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n  var output = [];\n  for (var i = 0, l = value.length; i < l; ++i) {\n    if (hasOwnProperty(value, String(i))) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          String(i), true));\n    } else {\n      output.push('');\n    }\n  }\n  keys.forEach(function(key) {\n    if (!key.match(/^\\d+$/)) {\n      output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n          key, true));\n    }\n  });\n  return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n  var name, str, desc;\n  desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n  if (desc.get) {\n    if (desc.set) {\n      str = ctx.stylize('[Getter/Setter]', 'special');\n    } else {\n      str = ctx.stylize('[Getter]', 'special');\n    }\n  } else {\n    if (desc.set) {\n      str = ctx.stylize('[Setter]', 'special');\n    }\n  }\n  if (!hasOwnProperty(visibleKeys, key)) {\n    name = '[' + key + ']';\n  }\n  if (!str) {\n    if (ctx.seen.indexOf(desc.value) < 0) {\n      if (isNull(recurseTimes)) {\n        str = formatValue(ctx, desc.value, null);\n      } else {\n        str = formatValue(ctx, desc.value, recurseTimes - 1);\n      }\n      if (str.indexOf('\\n') > -1) {\n        if (array) {\n          str = str.split('\\n').map(function(line) {\n            return '  ' + line;\n          }).join('\\n').slice(2);\n        } else {\n          str = '\\n' + str.split('\\n').map(function(line) {\n            return '   ' + line;\n          }).join('\\n');\n        }\n      }\n    } else {\n      str = ctx.stylize('[Circular]', 'special');\n    }\n  }\n  if (isUndefined(name)) {\n    if (array && key.match(/^\\d+$/)) {\n      return str;\n    }\n    name = JSON.stringify('' + key);\n    if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n      name = name.slice(1, -1);\n      name = ctx.stylize(name, 'name');\n    } else {\n      name = name.replace(/'/g, \"\\\\'\")\n                 .replace(/\\\\\"/g, '\"')\n                 .replace(/(^\"|\"$)/g, \"'\");\n      name = ctx.stylize(name, 'string');\n    }\n  }\n\n  return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n  var numLinesEst = 0;\n  var length = output.reduce(function(prev, cur) {\n    numLinesEst++;\n    if (cur.indexOf('\\n') >= 0) numLinesEst++;\n    return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n  }, 0);\n\n  if (length > 60) {\n    return braces[0] +\n           (base === '' ? '' : base + '\\n ') +\n           ' ' +\n           output.join(',\\n  ') +\n           ' ' +\n           braces[1];\n  }\n\n  return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nexports.types = require('./support/types');\n\nfunction isArray(ar) {\n  return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n  return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n  return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n  return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n  return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n  return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n  return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n  return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n  return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\nexports.types.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n  return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n  return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\nexports.types.isDate = isDate;\n\nfunction isError(e) {\n  return isObject(e) &&\n      (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\nexports.types.isNativeError = isError;\n\nfunction isFunction(arg) {\n  return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n  return arg === null ||\n         typeof arg === 'boolean' ||\n         typeof arg === 'number' ||\n         typeof arg === 'string' ||\n         typeof arg === 'symbol' ||  // ES6 symbol\n         typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n  return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n  return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n              'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n  var d = new Date();\n  var time = [pad(d.getHours()),\n              pad(d.getMinutes()),\n              pad(d.getSeconds())].join(':');\n  return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n  console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n *     prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n  // Don't do anything if add isn't an object\n  if (!add || !isObject(add)) return origin;\n\n  var keys = Object.keys(add);\n  var i = keys.length;\n  while (i--) {\n    origin[keys[i]] = add[keys[i]];\n  }\n  return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n  return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n  if (typeof original !== 'function')\n    throw new TypeError('The \"original\" argument must be of type Function');\n\n  if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n    var fn = original[kCustomPromisifiedSymbol];\n    if (typeof fn !== 'function') {\n      throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n    }\n    Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n      value: fn, enumerable: false, writable: false, configurable: true\n    });\n    return fn;\n  }\n\n  function fn() {\n    var promiseResolve, promiseReject;\n    var promise = new Promise(function (resolve, reject) {\n      promiseResolve = resolve;\n      promiseReject = reject;\n    });\n\n    var args = [];\n    for (var i = 0; i < arguments.length; i++) {\n      args.push(arguments[i]);\n    }\n    args.push(function (err, value) {\n      if (err) {\n        promiseReject(err);\n      } else {\n        promiseResolve(value);\n      }\n    });\n\n    try {\n      original.apply(this, args);\n    } catch (err) {\n      promiseReject(err);\n    }\n\n    return promise;\n  }\n\n  Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n  if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n    value: fn, enumerable: false, writable: false, configurable: true\n  });\n  return Object.defineProperties(\n    fn,\n    getOwnPropertyDescriptors(original)\n  );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n  // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n  // Because `null` is a special error value in callbacks which means \"no error\n  // occurred\", we error-wrap so the callback consumer can distinguish between\n  // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n  if (!reason) {\n    var newReason = new Error('Promise was rejected with a falsy value');\n    newReason.reason = reason;\n    reason = newReason;\n  }\n  return cb(reason);\n}\n\nfunction callbackify(original) {\n  if (typeof original !== 'function') {\n    throw new TypeError('The \"original\" argument must be of type Function');\n  }\n\n  // We DO NOT return the promise as it gives the user a false sense that\n  // the promise is actually somehow related to the callback's execution\n  // and that the callback throwing will reject the promise.\n  function callbackified() {\n    var args = [];\n    for (var i = 0; i < arguments.length; i++) {\n      args.push(arguments[i]);\n    }\n\n    var maybeCb = args.pop();\n    if (typeof maybeCb !== 'function') {\n      throw new TypeError('The last argument must be of type Function');\n    }\n    var self = this;\n    var cb = function() {\n      return maybeCb.apply(self, arguments);\n    };\n    // In true node style we process the callback on `nextTick` with all the\n    // implications (stack, `uncaughtException`, `async_hooks`)\n    original.apply(this, args)\n      .then(function(ret) { process.nextTick(cb.bind(null, null, ret)) },\n            function(rej) { process.nextTick(callbackifyOnRejected.bind(null, rej, cb)) });\n  }\n\n  Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n  Object.defineProperties(callbackified,\n                          getOwnPropertyDescriptors(original));\n  return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nvar forEach = require('for-each');\nvar availableTypedArrays = require('available-typed-arrays');\nvar callBind = require('call-bind');\nvar callBound = require('call-bound');\nvar gOPD = require('gopd');\nvar getProto = require('get-proto');\n\nvar $toString = callBound('Object.prototype.toString');\nvar hasToStringTag = require('has-tostringtag/shams')();\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\nvar typedArrays = availableTypedArrays();\n\nvar $slice = callBound('String.prototype.slice');\n\n/** @type {(array: readonly T[], value: unknown) => number} */\nvar $indexOf = callBound('Array.prototype.indexOf', true) || function indexOf(array, value) {\n\tfor (var i = 0; i < array.length; i += 1) {\n\t\tif (array[i] === value) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn -1;\n};\n\n/** @typedef {import('./types').Getter} Getter */\n/** @type {import('./types').Cache} */\nvar cache = { __proto__: null };\nif (hasToStringTag && gOPD && getProto) {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tif (Symbol.toStringTag in arr && getProto) {\n\t\t\tvar proto = getProto(arr);\n\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\tvar descriptor = gOPD(proto, Symbol.toStringTag);\n\t\t\tif (!descriptor && proto) {\n\t\t\t\tvar superProto = getProto(proto);\n\t\t\t\t// @ts-expect-error TS won't narrow inside a closure\n\t\t\t\tdescriptor = gOPD(superProto, Symbol.toStringTag);\n\t\t\t}\n\t\t\t// @ts-expect-error TODO: fix\n\t\t\tcache['$' + typedArray] = callBind(descriptor.get);\n\t\t}\n\t});\n} else {\n\tforEach(typedArrays, function (typedArray) {\n\t\tvar arr = new g[typedArray]();\n\t\tvar fn = arr.slice || arr.set;\n\t\tif (fn) {\n\t\t\tcache[\n\t\t\t\t/** @type {`$${import('.').TypedArrayName}`} */ ('$' + typedArray)\n\t\t\t] = /** @type {import('./types').BoundSlice | import('./types').BoundSet} */ (\n\t\t\t\t// @ts-expect-error TODO FIXME\n\t\t\t\tcallBind(fn)\n\t\t\t);\n\t\t}\n\t});\n}\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar tryTypedArrays = function tryAllTypedArrays(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */ (cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */\n\t\tfunction (getter, typedArray) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tif ('$' + getter(value) === typedArray) {\n\t\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(typedArray, 1));\n\t\t\t\t\t}\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {(value: object) => false | import('.').TypedArrayName} */\nvar trySlices = function tryAllSlices(value) {\n\t/** @type {ReturnType} */ var found = false;\n\tforEach(\n\t\t/** @type {Record<`\\$${import('.').TypedArrayName}`, Getter>} */(cache),\n\t\t/** @type {(getter: Getter, name: `\\$${import('.').TypedArrayName}`) => void} */ function (getter, name) {\n\t\t\tif (!found) {\n\t\t\t\ttry {\n\t\t\t\t\t// @ts-expect-error a throw is fine here\n\t\t\t\t\tgetter(value);\n\t\t\t\t\tfound = /** @type {import('.').TypedArrayName} */ ($slice(name, 1));\n\t\t\t\t} catch (e) { /**/ }\n\t\t\t}\n\t\t}\n\t);\n\treturn found;\n};\n\n/** @type {import('.')} */\nmodule.exports = function whichTypedArray(value) {\n\tif (!value || typeof value !== 'object') { return false; }\n\tif (!hasToStringTag) {\n\t\t/** @type {string} */\n\t\tvar tag = $slice($toString(value), 8, -1);\n\t\tif ($indexOf(typedArrays, tag) > -1) {\n\t\t\treturn tag;\n\t\t}\n\t\tif (tag !== 'Object') {\n\t\t\treturn false;\n\t\t}\n\t\t// node < 0.6 hits here on real Typed Arrays\n\t\treturn trySlices(value);\n\t}\n\tif (!gOPD) { return null; } // unknown engine\n\treturn tryTypedArrays(value);\n};\n","module.exports = extend\n\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nfunction extend() {\n    var target = {}\n\n    for (var i = 0; i < arguments.length; i++) {\n        var source = arguments[i]\n\n        for (var key in source) {\n            if (hasOwnProperty.call(source, key)) {\n                target[key] = source[key]\n            }\n        }\n    }\n\n    return target\n}\n","'use strict';\n\nvar possibleNames = require('possible-typed-array-names');\n\nvar g = typeof globalThis === 'undefined' ? global : globalThis;\n\n/** @type {import('.')} */\nmodule.exports = function availableTypedArrays() {\n\tvar /** @type {ReturnType} */ out = [];\n\tfor (var i = 0; i < possibleNames.length; i++) {\n\t\tif (typeof g[possibleNames[i]] === 'function') {\n\t\t\t// @ts-expect-error\n\t\t\tout[out.length] = possibleNames[i];\n\t\t}\n\t}\n\treturn out;\n};\n","const inWebWorker = typeof WorkerGlobalScope !== \"undefined\" &&\n    self instanceof WorkerGlobalScope;\nconst root = inWebWorker\n    ? self\n    : typeof window !== \"undefined\"\n        ? window\n        : globalThis;\nexport const fetch = root.fetch.bind(root);\nexport const Headers = root.Headers;\nexport const Request = root.Request;\nexport const Response = root.Response;\n","export default function getIgnoreAttributesFn(ignoreAttributes) {\n    if (typeof ignoreAttributes === 'function') {\n        return ignoreAttributes\n    }\n    if (Array.isArray(ignoreAttributes)) {\n        return (attrName) => {\n            for (const pattern of ignoreAttributes) {\n                if (typeof pattern === 'string' && attrName === pattern) {\n                    return true\n                }\n                if (pattern instanceof RegExp && pattern.test(attrName)) {\n                    return true\n                }\n            }\n        }\n    }\n    return () => false\n}","'use strict';\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nexport const nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*';\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nexport function getAllMatches(string, regex) {\n  const matches = [];\n  let match = regex.exec(string);\n  while (match) {\n    const allmatches = [];\n    allmatches.startIndex = regex.lastIndex - match[0].length;\n    const len = match.length;\n    for (let index = 0; index < len; index++) {\n      allmatches.push(match[index]);\n    }\n    matches.push(allmatches);\n    match = regex.exec(string);\n  }\n  return matches;\n}\n\nexport const isName = function(string) {\n  const match = regexName.exec(string);\n  return !(match === null || typeof match === 'undefined');\n}\n\nexport function isExist(v) {\n  return typeof v !== 'undefined';\n}\n\nexport function isEmptyObject(obj) {\n  return Object.keys(obj).length === 0;\n}\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexport function merge(target, a, arrayMode) {\n  if (a) {\n    const keys = Object.keys(a); // will return an array of own properties\n    const len = keys.length; //don't make it inline\n    for (let i = 0; i < len; i++) {\n      if (arrayMode === 'strict') {\n        target[keys[i]] = [ a[keys[i]] ];\n      } else {\n        target[keys[i]] = a[keys[i]];\n      }\n    }\n  }\n}\n/* exports.merge =function (b,a){\n  return Object.assign(b,a);\n} */\n\nexport function getValue(v) {\n  if (exports.isExist(v)) {\n    return v;\n  } else {\n    return '';\n  }\n}\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};","'use strict';\n\nimport {getAllMatches, isName} from './util.js';\n\nconst defaultOptions = {\n  allowBooleanAttributes: false, //A tag can have attributes without any value\n  unpairedTags: []\n};\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexport function validate(xmlData, options) {\n  options = Object.assign({}, defaultOptions, options);\n\n  //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n  //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n  //xmlData = xmlData.replace(/()/g,\"\");//Remove DOCTYPE\n  const tags = [];\n  let tagFound = false;\n\n  //indicates that the root tag has been closed (aka. depth 0 has been reached)\n  let reachedRoot = false;\n\n  if (xmlData[0] === '\\ufeff') {\n    // check for byte order mark (BOM)\n    xmlData = xmlData.substr(1);\n  }\n  \n  for (let i = 0; i < xmlData.length; i++) {\n\n    if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n      i+=2;\n      i = readPI(xmlData,i);\n      if (i.err) return i;\n    }else if (xmlData[i] === '<') {\n      //starting of tag\n      //read until you reach to '>' avoiding any '>' in attribute value\n      let tagStartPos = i;\n      i++;\n      \n      if (xmlData[i] === '!') {\n        i = readCommentAndCDATA(xmlData, i);\n        continue;\n      } else {\n        let closingTag = false;\n        if (xmlData[i] === '/') {\n          //closing tag\n          closingTag = true;\n          i++;\n        }\n        //read tagname\n        let tagName = '';\n        for (; i < xmlData.length &&\n          xmlData[i] !== '>' &&\n          xmlData[i] !== ' ' &&\n          xmlData[i] !== '\\t' &&\n          xmlData[i] !== '\\n' &&\n          xmlData[i] !== '\\r'; i++\n        ) {\n          tagName += xmlData[i];\n        }\n        tagName = tagName.trim();\n        //console.log(tagName);\n\n        if (tagName[tagName.length - 1] === '/') {\n          //self closing tag without attributes\n          tagName = tagName.substring(0, tagName.length - 1);\n          //continue;\n          i--;\n        }\n        if (!validateTagName(tagName)) {\n          let msg;\n          if (tagName.trim().length === 0) {\n            msg = \"Invalid space after '<'.\";\n          } else {\n            msg = \"Tag '\"+tagName+\"' is an invalid name.\";\n          }\n          return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n        }\n\n        const result = readAttributeStr(xmlData, i);\n        if (result === false) {\n          return getErrorObject('InvalidAttr', \"Attributes for '\"+tagName+\"' have open quote.\", getLineNumberForPosition(xmlData, i));\n        }\n        let attrStr = result.value;\n        i = result.index;\n\n        if (attrStr[attrStr.length - 1] === '/') {\n          //self closing tag\n          const attrStrStart = i - attrStr.length;\n          attrStr = attrStr.substring(0, attrStr.length - 1);\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid === true) {\n            tagFound = true;\n            //continue; //text may presents after self closing tag\n          } else {\n            //the result from the nested function returns the position of the error within the attribute\n            //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n            //this gives us the absolute index in the entire xml, which we can use to find the line at last\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n          }\n        } else if (closingTag) {\n          if (!result.tagClosed) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n          } else if (attrStr.trim().length > 0) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else if (tags.length === 0) {\n            return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' has not been opened.\", getLineNumberForPosition(xmlData, tagStartPos));\n          } else {\n            const otg = tags.pop();\n            if (tagName !== otg.tagName) {\n              let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n              return getErrorObject('InvalidTag',\n                \"Expected closing tag '\"+otg.tagName+\"' (opened in line \"+openPos.line+\", col \"+openPos.col+\") instead of closing tag '\"+tagName+\"'.\",\n                getLineNumberForPosition(xmlData, tagStartPos));\n            }\n\n            //when there are no more tags, we reached the root level.\n            if (tags.length == 0) {\n              reachedRoot = true;\n            }\n          }\n        } else {\n          const isValid = validateAttributeString(attrStr, options);\n          if (isValid !== true) {\n            //the result from the nested function returns the position of the error within the attribute\n            //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n            //this gives us the absolute index in the entire xml, which we can use to find the line at last\n            return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n          }\n\n          //if the root level has been reached before ...\n          if (reachedRoot === true) {\n            return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n          } else if(options.unpairedTags.indexOf(tagName) !== -1){\n            //don't push into stack\n          } else {\n            tags.push({tagName, tagStartPos});\n          }\n          tagFound = true;\n        }\n\n        //skip tag text value\n        //It may include comments and CDATA value\n        for (i++; i < xmlData.length; i++) {\n          if (xmlData[i] === '<') {\n            if (xmlData[i + 1] === '!') {\n              //comment or CADATA\n              i++;\n              i = readCommentAndCDATA(xmlData, i);\n              continue;\n            } else if (xmlData[i+1] === '?') {\n              i = readPI(xmlData, ++i);\n              if (i.err) return i;\n            } else{\n              break;\n            }\n          } else if (xmlData[i] === '&') {\n            const afterAmp = validateAmpersand(xmlData, i);\n            if (afterAmp == -1)\n              return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n            i = afterAmp;\n          }else{\n            if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n              return getErrorObject('InvalidXml', \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n            }\n          }\n        } //end of reading tag text value\n        if (xmlData[i] === '<') {\n          i--;\n        }\n      }\n    } else {\n      if ( isWhiteSpace(xmlData[i])) {\n        continue;\n      }\n      return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n    }\n  }\n\n  if (!tagFound) {\n    return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n  }else if (tags.length == 1) {\n      return getErrorObject('InvalidTag', \"Unclosed tag '\"+tags[0].tagName+\"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n  }else if (tags.length > 0) {\n      return getErrorObject('InvalidXml', \"Invalid '\"+\n          JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '')+\n          \"' found.\", {line: 1, col: 1});\n  }\n\n  return true;\n};\n\nfunction isWhiteSpace(char){\n  return char === ' ' || char === '\\t' || char === '\\n'  || char === '\\r';\n}\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n  const start = i;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] == '?' || xmlData[i] == ' ') {\n      //tagname\n      const tagname = xmlData.substr(start, i - start);\n      if (i > 5 && tagname === 'xml') {\n        return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n      } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n        //check if valid attribut string\n        i++;\n        break;\n      } else {\n        continue;\n      }\n    }\n  }\n  return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n  if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n    //comment\n    for (i += 3; i < xmlData.length; i++) {\n      if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n        i += 2;\n        break;\n      }\n    }\n  } else if (\n    xmlData.length > i + 8 &&\n    xmlData[i + 1] === 'D' &&\n    xmlData[i + 2] === 'O' &&\n    xmlData[i + 3] === 'C' &&\n    xmlData[i + 4] === 'T' &&\n    xmlData[i + 5] === 'Y' &&\n    xmlData[i + 6] === 'P' &&\n    xmlData[i + 7] === 'E'\n  ) {\n    let angleBracketsCount = 1;\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === '<') {\n        angleBracketsCount++;\n      } else if (xmlData[i] === '>') {\n        angleBracketsCount--;\n        if (angleBracketsCount === 0) {\n          break;\n        }\n      }\n    }\n  } else if (\n    xmlData.length > i + 9 &&\n    xmlData[i + 1] === '[' &&\n    xmlData[i + 2] === 'C' &&\n    xmlData[i + 3] === 'D' &&\n    xmlData[i + 4] === 'A' &&\n    xmlData[i + 5] === 'T' &&\n    xmlData[i + 6] === 'A' &&\n    xmlData[i + 7] === '['\n  ) {\n    for (i += 8; i < xmlData.length; i++) {\n      if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n        i += 2;\n        break;\n      }\n    }\n  }\n\n  return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n  let attrStr = '';\n  let startChar = '';\n  let tagClosed = false;\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n      if (startChar === '') {\n        startChar = xmlData[i];\n      } else if (startChar !== xmlData[i]) {\n        //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n      } else {\n        startChar = '';\n      }\n    } else if (xmlData[i] === '>') {\n      if (startChar === '') {\n        tagClosed = true;\n        break;\n      }\n    }\n    attrStr += xmlData[i];\n  }\n  if (startChar !== '') {\n    return false;\n  }\n\n  return {\n    value: attrStr,\n    index: i,\n    tagClosed: tagClosed\n  };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab  cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n  //console.log(\"start:\"+attrStr+\":end\");\n\n  //if(attrStr.trim().length === 0) return true; //empty string\n\n  const matches = getAllMatches(attrStr, validAttrStrRegxp);\n  const attrNames = {};\n\n  for (let i = 0; i < matches.length; i++) {\n    if (matches[i][1].length === 0) {\n      //nospace before attribute name: a=\"sd\"b=\"saf\"\n      return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(matches[i]))\n    } else if (matches[i][3] !== undefined && matches[i][4] === undefined) {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' is without value.\", getPositionFromMatch(matches[i]));\n    } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n      //independent attribute: ab\n      return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(matches[i]));\n    }\n    /* else if(matches[i][6] === undefined){//attribute without value: ab=\n                    return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n                } */\n    const attrName = matches[i][2];\n    if (!validateAttrName(attrName)) {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(matches[i]));\n    }\n    if (!attrNames.hasOwnProperty(attrName)) {\n      //check for duplicate attribute.\n      attrNames[attrName] = 1;\n    } else {\n      return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(matches[i]));\n    }\n  }\n\n  return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n  let re = /\\d/;\n  if (xmlData[i] === 'x') {\n    i++;\n    re = /[\\da-fA-F]/;\n  }\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === ';')\n      return i;\n    if (!xmlData[i].match(re))\n      break;\n  }\n  return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n  // https://www.w3.org/TR/xml/#dt-charref\n  i++;\n  if (xmlData[i] === ';')\n    return -1;\n  if (xmlData[i] === '#') {\n    i++;\n    return validateNumberAmpersand(xmlData, i);\n  }\n  let count = 0;\n  for (; i < xmlData.length; i++, count++) {\n    if (xmlData[i].match(/\\w/) && count < 20)\n      continue;\n    if (xmlData[i] === ';')\n      break;\n    return -1;\n  }\n  return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n  return {\n    err: {\n      code: code,\n      msg: message,\n      line: lineNumber.line || lineNumber,\n      col: lineNumber.col,\n    },\n  };\n}\n\nfunction validateAttrName(attrName) {\n  return isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n  return isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n  const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n  return {\n    line: lines.length,\n\n    // column number is last line's length + 1, because column numbering starts at 1:\n    col: lines[lines.length - 1].length + 1\n  };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n  return match.startIndex + match[1].length;\n}\n","'use strict';\n//parse Empty Node as self closing node\nimport buildFromOrderedJs from './orderedJs2Xml.js';\nimport getIgnoreAttributesFn from \"../ignoreAttributes.js\";\n\nconst defaultOptions = {\n  attributeNamePrefix: '@_',\n  attributesGroupName: false,\n  textNodeName: '#text',\n  ignoreAttributes: true,\n  cdataPropName: false,\n  format: false,\n  indentBy: '  ',\n  suppressEmptyNode: false,\n  suppressUnpairedNode: true,\n  suppressBooleanAttributes: true,\n  tagValueProcessor: function(key, a) {\n    return a;\n  },\n  attributeValueProcessor: function(attrName, a) {\n    return a;\n  },\n  preserveOrder: false,\n  commentPropName: false,\n  unpairedTags: [],\n  entities: [\n    { regex: new RegExp(\"&\", \"g\"), val: \"&\" },//it must be on top\n    { regex: new RegExp(\">\", \"g\"), val: \">\" },\n    { regex: new RegExp(\"<\", \"g\"), val: \"<\" },\n    { regex: new RegExp(\"\\'\", \"g\"), val: \"'\" },\n    { regex: new RegExp(\"\\\"\", \"g\"), val: \""\" }\n  ],\n  processEntities: true,\n  stopNodes: [],\n  // transformTagName: false,\n  // transformAttributeName: false,\n  oneListGroup: false\n};\n\nexport default function Builder(options) {\n  this.options = Object.assign({}, defaultOptions, options);\n  if (this.options.ignoreAttributes === true || this.options.attributesGroupName) {\n    this.isAttribute = function(/*a*/) {\n      return false;\n    };\n  } else {\n    this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes)\n    this.attrPrefixLen = this.options.attributeNamePrefix.length;\n    this.isAttribute = isAttribute;\n  }\n\n  this.processTextOrObjNode = processTextOrObjNode\n\n  if (this.options.format) {\n    this.indentate = indentate;\n    this.tagEndChar = '>\\n';\n    this.newLine = '\\n';\n  } else {\n    this.indentate = function() {\n      return '';\n    };\n    this.tagEndChar = '>';\n    this.newLine = '';\n  }\n}\n\nBuilder.prototype.build = function(jObj) {\n  if(this.options.preserveOrder){\n    return buildFromOrderedJs(jObj, this.options);\n  }else {\n    if(Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1){\n      jObj = {\n        [this.options.arrayNodeName] : jObj\n      }\n    }\n    return this.j2x(jObj, 0, []).val;\n  }\n};\n\nBuilder.prototype.j2x = function(jObj, level, ajPath) {\n  let attrStr = '';\n  let val = '';\n  const jPath = ajPath.join('.')\n  for (let key in jObj) {\n    if(!Object.prototype.hasOwnProperty.call(jObj, key)) continue;\n    if (typeof jObj[key] === 'undefined') {\n      // supress undefined node only if it is not an attribute\n      if (this.isAttribute(key)) {\n        val += '';\n      }\n    } else if (jObj[key] === null) {\n      // null attribute should be ignored by the attribute list, but should not cause the tag closing\n      if (this.isAttribute(key)) {\n        val += '';\n      } else if (key === this.options.cdataPropName) {\n        val += '';\n      } else if (key[0] === '?') {\n        val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n      } else {\n        val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n      }\n      // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n    } else if (jObj[key] instanceof Date) {\n      val += this.buildTextValNode(jObj[key], key, '', level);\n    } else if (typeof jObj[key] !== 'object') {\n      //premitive type\n      const attr = this.isAttribute(key);\n      if (attr && !this.ignoreAttributesFn(attr, jPath)) {\n        attrStr += this.buildAttrPairStr(attr, '' + jObj[key]);\n      } else if (!attr) {\n        //tag value\n        if (key === this.options.textNodeName) {\n          let newval = this.options.tagValueProcessor(key, '' + jObj[key]);\n          val += this.replaceEntitiesValue(newval);\n        } else {\n          val += this.buildTextValNode(jObj[key], key, '', level);\n        }\n      }\n    } else if (Array.isArray(jObj[key])) {\n      //repeated nodes\n      const arrLen = jObj[key].length;\n      let listTagVal = \"\";\n      let listTagAttr = \"\";\n      for (let j = 0; j < arrLen; j++) {\n        const item = jObj[key][j];\n        if (typeof item === 'undefined') {\n          // supress undefined node\n        } else if (item === null) {\n          if(key[0] === \"?\") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n          else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n          // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n        } else if (typeof item === 'object') {\n          if(this.options.oneListGroup){\n            const result = this.j2x(item, level + 1, ajPath.concat(key));\n            listTagVal += result.val;\n            if (this.options.attributesGroupName && item.hasOwnProperty(this.options.attributesGroupName)) {\n              listTagAttr += result.attrStr\n            }\n          }else{\n            listTagVal += this.processTextOrObjNode(item, key, level, ajPath)\n          }\n        } else {\n          if (this.options.oneListGroup) {\n            let textValue = this.options.tagValueProcessor(key, item);\n            textValue = this.replaceEntitiesValue(textValue);\n            listTagVal += textValue;\n          } else {\n            listTagVal += this.buildTextValNode(item, key, '', level);\n          }\n        }\n      }\n      if(this.options.oneListGroup){\n        listTagVal = this.buildObjectNode(listTagVal, key, listTagAttr, level);\n      }\n      val += listTagVal;\n    } else {\n      //nested node\n      if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n        const Ks = Object.keys(jObj[key]);\n        const L = Ks.length;\n        for (let j = 0; j < L; j++) {\n          attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]);\n        }\n      } else {\n        val += this.processTextOrObjNode(jObj[key], key, level, ajPath)\n      }\n    }\n  }\n  return {attrStr: attrStr, val: val};\n};\n\nBuilder.prototype.buildAttrPairStr = function(attrName, val){\n  val = this.options.attributeValueProcessor(attrName, '' + val);\n  val = this.replaceEntitiesValue(val);\n  if (this.options.suppressBooleanAttributes && val === \"true\") {\n    return ' ' + attrName;\n  } else return ' ' + attrName + '=\"' + val + '\"';\n}\n\nfunction processTextOrObjNode (object, key, level, ajPath) {\n  const result = this.j2x(object, level + 1, ajPath.concat(key));\n  if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n    return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n  } else {\n    return this.buildObjectNode(result.val, key, result.attrStr, level);\n  }\n}\n\nBuilder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n  if(val === \"\"){\n    if(key[0] === \"?\") return  this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n    else {\n      return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    }\n  }else{\n\n    let tagEndExp = '' + val + tagEndExp );\n    } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n      return this.indentate(level) + `` + this.newLine;\n    }else {\n      return (\n        this.indentate(level) + '<' + key + attrStr + piClosingChar + this.tagEndChar +\n        val +\n        this.indentate(level) + tagEndExp    );\n    }\n  }\n}\n\nBuilder.prototype.closeTag = function(key){\n  let closeTag = \"\";\n  if(this.options.unpairedTags.indexOf(key) !== -1){ //unpaired\n    if(!this.options.suppressUnpairedNode) closeTag = \"/\"\n  }else if(this.options.suppressEmptyNode){ //empty\n    closeTag = \"/\";\n  }else{\n    closeTag = `>` +  this.newLine;\n  }else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n    return this.indentate(level) + `` +  this.newLine;\n  }else if(key[0] === \"?\") {//PI tag\n    return  this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar; \n  }else{\n    let textValue = this.options.tagValueProcessor(key, val);\n    textValue = this.replaceEntitiesValue(textValue);\n  \n    if( textValue === ''){\n      return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n    }else{\n      return this.indentate(level) + '<' + key + attrStr + '>' +\n         textValue +\n        ' 0 && this.options.processEntities){\n    for (let i=0; i 0) {\n        indentation = EOL;\n    }\n    return arrToStr(jArray, options, \"\", indentation);\n}\n\nfunction arrToStr(arr, options, jPath, indentation) {\n    let xmlStr = \"\";\n    let isPreviousElementTag = false;\n\n    for (let i = 0; i < arr.length; i++) {\n        const tagObj = arr[i];\n        const tagName = propName(tagObj);\n        if(tagName === undefined) continue;\n\n        let newJPath = \"\";\n        if (jPath.length === 0) newJPath = tagName\n        else newJPath = `${jPath}.${tagName}`;\n\n        if (tagName === options.textNodeName) {\n            let tagText = tagObj[tagName];\n            if (!isStopNode(newJPath, options)) {\n                tagText = options.tagValueProcessor(tagName, tagText);\n                tagText = replaceEntitiesValue(tagText, options);\n            }\n            if (isPreviousElementTag) {\n                xmlStr += indentation;\n            }\n            xmlStr += tagText;\n            isPreviousElementTag = false;\n            continue;\n        } else if (tagName === options.cdataPropName) {\n            if (isPreviousElementTag) {\n                xmlStr += indentation;\n            }\n            xmlStr += ``;\n            isPreviousElementTag = false;\n            continue;\n        } else if (tagName === options.commentPropName) {\n            xmlStr += indentation + ``;\n            isPreviousElementTag = true;\n            continue;\n        } else if (tagName[0] === \"?\") {\n            const attStr = attr_to_str(tagObj[\":@\"], options);\n            const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n            let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n            piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\"; //remove extra spacing\n            xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr}?>`;\n            isPreviousElementTag = true;\n            continue;\n        }\n        let newIdentation = indentation;\n        if (newIdentation !== \"\") {\n            newIdentation += options.indentBy;\n        }\n        const attStr = attr_to_str(tagObj[\":@\"], options);\n        const tagStart = indentation + `<${tagName}${attStr}`;\n        const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n        if (options.unpairedTags.indexOf(tagName) !== -1) {\n            if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n            else xmlStr += tagStart + \"/>\";\n        } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n            xmlStr += tagStart + \"/>\";\n        } else if (tagValue && tagValue.endsWith(\">\")) {\n            xmlStr += tagStart + `>${tagValue}${indentation}`;\n        } else {\n            xmlStr += tagStart + \">\";\n            if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"`;\n        }\n        isPreviousElementTag = true;\n    }\n\n    return xmlStr;\n}\n\nfunction propName(obj) {\n    const keys = Object.keys(obj);\n    for (let i = 0; i < keys.length; i++) {\n        const key = keys[i];\n        if(!obj.hasOwnProperty(key)) continue;\n        if (key !== \":@\") return key;\n    }\n}\n\nfunction attr_to_str(attrMap, options) {\n    let attrStr = \"\";\n    if (attrMap && !options.ignoreAttributes) {\n        for (let attr in attrMap) {\n            if(!attrMap.hasOwnProperty(attr)) continue;\n            let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n            attrVal = replaceEntitiesValue(attrVal, options);\n            if (attrVal === true && options.suppressBooleanAttributes) {\n                attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n            } else {\n                attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n            }\n        }\n    }\n    return attrStr;\n}\n\nfunction isStopNode(jPath, options) {\n    jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n    let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n    for (let index in options.stopNodes) {\n        if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n    }\n    return false;\n}\n\nfunction replaceEntitiesValue(textValue, options) {\n    if (textValue && textValue.length > 0 && options.processEntities) {\n        for (let i = 0; i < options.entities.length; i++) {\n            const entity = options.entities[i];\n            textValue = textValue.replace(entity.regex, entity.val);\n        }\n    }\n    return textValue;\n}\n","import { isName } from '../util.js';\n\nexport default class DocTypeReader {\n    constructor(options) {\n        this.suppressValidationErr = !options;\n        this.options = options;\n    }\n\n    readDocType(xmlData, i) {\n\n        const entities = {};\n        if (xmlData[i + 3] === 'O' &&\n            xmlData[i + 4] === 'C' &&\n            xmlData[i + 5] === 'T' &&\n            xmlData[i + 6] === 'Y' &&\n            xmlData[i + 7] === 'P' &&\n            xmlData[i + 8] === 'E') {\n            i = i + 9;\n            let angleBracketsCount = 1;\n            let hasBody = false, comment = false;\n            let exp = \"\";\n            for (; i < xmlData.length; i++) {\n                if (xmlData[i] === '<' && !comment) { //Determine the tag type\n                    if (hasBody && hasSeq(xmlData, \"!ENTITY\", i)) {\n                        i += 7;\n                        let entityName, val;\n                        [entityName, val, i] = this.readEntityExp(xmlData, i + 1, this.suppressValidationErr);\n                        if (val.indexOf(\"&\") === -1) { //Parameter entities are not supported\n                            const escaped = entityName.replace(/[.\\-+*:]/g, '\\\\.');\n                            entities[entityName] = {\n                                regx: RegExp(`&${escaped};`, \"g\"),\n                                val: val\n                            };\n                        }\n                    }\n                    else if (hasBody && hasSeq(xmlData, \"!ELEMENT\", i)) {\n                        i += 8;//Not supported\n                        const { index } = this.readElementExp(xmlData, i + 1);\n                        i = index;\n                    } else if (hasBody && hasSeq(xmlData, \"!ATTLIST\", i)) {\n                        i += 8;//Not supported\n                        // const {index} = this.readAttlistExp(xmlData,i+1);\n                        // i = index;\n                    } else if (hasBody && hasSeq(xmlData, \"!NOTATION\", i)) {\n                        i += 9;//Not supported\n                        const { index } = this.readNotationExp(xmlData, i + 1, this.suppressValidationErr);\n                        i = index;\n                    } else if (hasSeq(xmlData, \"!--\", i)) comment = true;\n                    else throw new Error(`Invalid DOCTYPE`);\n\n                    angleBracketsCount++;\n                    exp = \"\";\n                } else if (xmlData[i] === '>') { //Read tag content\n                    if (comment) {\n                        if (xmlData[i - 1] === \"-\" && xmlData[i - 2] === \"-\") {\n                            comment = false;\n                            angleBracketsCount--;\n                        }\n                    } else {\n                        angleBracketsCount--;\n                    }\n                    if (angleBracketsCount === 0) {\n                        break;\n                    }\n                } else if (xmlData[i] === '[') {\n                    hasBody = true;\n                } else {\n                    exp += xmlData[i];\n                }\n            }\n            if (angleBracketsCount !== 0) {\n                throw new Error(`Unclosed DOCTYPE`);\n            }\n        } else {\n            throw new Error(`Invalid Tag instead of DOCTYPE`);\n        }\n        return { entities, i };\n    }\n    readEntityExp(xmlData, i) {\n        //External entities are not supported\n        //    \n\n        //Parameter entities are not supported\n        //    \n\n        //Internal entities are supported\n        //    \n\n        // Skip leading whitespace after  this.options.maxEntitySize) {\n            throw new Error(\n                `Entity \"${entityName}\" size (${entityValue.length}) exceeds maximum allowed size (${this.options.maxEntitySize})`\n            );\n        }\n\n        i--;\n        return [entityName, entityValue, i];\n    }\n\n    readNotationExp(xmlData, i) {\n        // Skip leading whitespace after \n        // \n        // \n        // \n        // \n\n        // Skip leading whitespace after  {\n    while (index < data.length && /\\s/.test(data[index])) {\n        index++;\n    }\n    return index;\n};\n\n\n\nfunction hasSeq(data, seq, i) {\n    for (let j = 0; j < seq.length; j++) {\n        if (seq[j] !== data[i + j + 1]) return false;\n    }\n    return true;\n}\n\nfunction validateEntityName(name) {\n    if (isName(name))\n        return name;\n    else\n        throw new Error(`Invalid entity name ${name}`);\n}","export const defaultOptions = {\n  preserveOrder: false,\n  attributeNamePrefix: '@_',\n  attributesGroupName: false,\n  textNodeName: '#text',\n  ignoreAttributes: true,\n  removeNSPrefix: false, // remove NS from tag name or attribute name if true\n  allowBooleanAttributes: false, //a tag can have attributes without any value\n  //ignoreRootElement : false,\n  parseTagValue: true,\n  parseAttributeValue: false,\n  trimValues: true, //Trim string values of tag and attributes\n  cdataPropName: false,\n  numberParseOptions: {\n    hex: true,\n    leadingZeros: true,\n    eNotation: true\n  },\n  tagValueProcessor: function (tagName, val) {\n    return val;\n  },\n  attributeValueProcessor: function (attrName, val) {\n    return val;\n  },\n  stopNodes: [], //nested tags will not be parsed even for errors\n  alwaysCreateTextNode: false,\n  isArray: () => false,\n  commentPropName: false,\n  unpairedTags: [],\n  processEntities: true,\n  htmlEntities: false,\n  ignoreDeclaration: false,\n  ignorePiTags: false,\n  transformTagName: false,\n  transformAttributeName: false,\n  updateTag: function (tagName, jPath, attrs) {\n    return tagName\n  },\n  // skipEmptyListItem: false\n  captureMetaData: false,\n};\n\n/**\n * Normalizes processEntities option for backward compatibility\n * @param {boolean|object} value \n * @returns {object} Always returns normalized object\n */\nfunction normalizeProcessEntities(value) {\n  // Boolean backward compatibility\n  if (typeof value === 'boolean') {\n    return {\n      enabled: value, // true or false\n      maxEntitySize: 10000,\n      maxExpansionDepth: 10,\n      maxTotalExpansions: 1000,\n      maxExpandedLength: 100000,\n      allowedTags: null,\n      tagFilter: null\n    };\n  }\n\n  // Object config - merge with defaults\n  if (typeof value === 'object' && value !== null) {\n    return {\n      enabled: value.enabled !== false, // default true if not specified\n      maxEntitySize: value.maxEntitySize ?? 10000,\n      maxExpansionDepth: value.maxExpansionDepth ?? 10,\n      maxTotalExpansions: value.maxTotalExpansions ?? 1000,\n      maxExpandedLength: value.maxExpandedLength ?? 100000,\n      allowedTags: value.allowedTags ?? null,\n      tagFilter: value.tagFilter ?? null\n    };\n  }\n\n  // Default to enabled with limits\n  return normalizeProcessEntities(true);\n}\n\nexport const buildOptions = function (options) {\n  const built = Object.assign({}, defaultOptions, options);\n\n  // Always normalize processEntities for backward compatibility and validation\n  built.processEntities = normalizeProcessEntities(built.processEntities);\n  //console.debug(built.processEntities)\n  return built;\n};","'use strict';\n///@ts-check\n\nimport { getAllMatches, isExist } from '../util.js';\nimport xmlNode from './xmlNode.js';\nimport DocTypeReader from './DocTypeReader.js';\nimport toNumber from \"strnum\";\nimport getIgnoreAttributesFn from \"../ignoreAttributes.js\";\n\n// const regx =\n//   '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n//   .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\nexport default class OrderedObjParser {\n  constructor(options) {\n    this.options = options;\n    this.currentNode = null;\n    this.tagsNodeStack = [];\n    this.docTypeEntities = {};\n    this.lastEntities = {\n      \"apos\": { regex: /&(apos|#39|#x27);/g, val: \"'\" },\n      \"gt\": { regex: /&(gt|#62|#x3E);/g, val: \">\" },\n      \"lt\": { regex: /&(lt|#60|#x3C);/g, val: \"<\" },\n      \"quot\": { regex: /&(quot|#34|#x22);/g, val: \"\\\"\" },\n    };\n    this.ampEntity = { regex: /&(amp|#38|#x26);/g, val: \"&\" };\n    this.htmlEntities = {\n      \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n      // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n      // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n      // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n      // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n      // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n      \"cent\": { regex: /&(cent|#162);/g, val: \"¢\" },\n      \"pound\": { regex: /&(pound|#163);/g, val: \"£\" },\n      \"yen\": { regex: /&(yen|#165);/g, val: \"Â¥\" },\n      \"euro\": { regex: /&(euro|#8364);/g, val: \"€\" },\n      \"copyright\": { regex: /&(copy|#169);/g, val: \"©\" },\n      \"reg\": { regex: /&(reg|#174);/g, val: \"®\" },\n      \"inr\": { regex: /&(inr|#8377);/g, val: \"₹\" },\n      \"num_dec\": { regex: /&#([0-9]{1,7});/g, val: (_, str) => fromCodePoint(str, 10, \"&#\") },\n      \"num_hex\": { regex: /&#x([0-9a-fA-F]{1,6});/g, val: (_, str) => fromCodePoint(str, 16, \"&#x\") },\n    };\n    this.addExternalEntities = addExternalEntities;\n    this.parseXml = parseXml;\n    this.parseTextData = parseTextData;\n    this.resolveNameSpace = resolveNameSpace;\n    this.buildAttributesMap = buildAttributesMap;\n    this.isItStopNode = isItStopNode;\n    this.replaceEntitiesValue = replaceEntitiesValue;\n    this.readStopNodeData = readStopNodeData;\n    this.saveTextToParentTag = saveTextToParentTag;\n    this.addChild = addChild;\n    this.ignoreAttributesFn = getIgnoreAttributesFn(this.options.ignoreAttributes)\n    this.entityExpansionCount = 0;\n    this.currentExpandedLength = 0;\n\n    if (this.options.stopNodes && this.options.stopNodes.length > 0) {\n      this.stopNodesExact = new Set();\n      this.stopNodesWildcard = new Set();\n      for (let i = 0; i < this.options.stopNodes.length; i++) {\n        const stopNodeExp = this.options.stopNodes[i];\n        if (typeof stopNodeExp !== 'string') continue;\n        if (stopNodeExp.startsWith(\"*.\")) {\n          this.stopNodesWildcard.add(stopNodeExp.substring(2));\n        } else {\n          this.stopNodesExact.add(stopNodeExp);\n        }\n      }\n    }\n  }\n\n}\n\nfunction addExternalEntities(externalEntities) {\n  const entKeys = Object.keys(externalEntities);\n  for (let i = 0; i < entKeys.length; i++) {\n    const ent = entKeys[i];\n    const escaped = ent.replace(/[.\\-+*:]/g, '\\\\.');\n    this.lastEntities[ent] = {\n      regex: new RegExp(\"&\" + escaped + \";\", \"g\"),\n      val: externalEntities[ent]\n    }\n  }\n}\n\n/**\n * @param {string} val\n * @param {string} tagName\n * @param {string} jPath\n * @param {boolean} dontTrim\n * @param {boolean} hasAttributes\n * @param {boolean} isLeafNode\n * @param {boolean} escapeEntities\n */\nfunction parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n  if (val !== undefined) {\n    if (this.options.trimValues && !dontTrim) {\n      val = val.trim();\n    }\n    if (val.length > 0) {\n      if (!escapeEntities) val = this.replaceEntitiesValue(val, tagName, jPath);\n\n      const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n      if (newval === null || newval === undefined) {\n        //don't parse\n        return val;\n      } else if (typeof newval !== typeof val || newval !== val) {\n        //overwrite\n        return newval;\n      } else if (this.options.trimValues) {\n        return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n      } else {\n        const trimmedVal = val.trim();\n        if (trimmedVal === val) {\n          return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n        } else {\n          return val;\n        }\n      }\n    }\n  }\n}\n\nfunction resolveNameSpace(tagname) {\n  if (this.options.removeNSPrefix) {\n    const tags = tagname.split(':');\n    const prefix = tagname.charAt(0) === '/' ? '/' : '';\n    if (tags[0] === 'xmlns') {\n      return '';\n    }\n    if (tags.length === 2) {\n      tagname = prefix + tags[1];\n    }\n  }\n  return tagname;\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nfunction buildAttributesMap(attrStr, jPath, tagName) {\n  if (this.options.ignoreAttributes !== true && typeof attrStr === 'string') {\n    // attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n    //attrStr = attrStr || attrStr.trim();\n\n    const matches = getAllMatches(attrStr, attrsRegx);\n    const len = matches.length; //don't make it inline\n    const attrs = {};\n    for (let i = 0; i < len; i++) {\n      const attrName = this.resolveNameSpace(matches[i][1]);\n      if (this.ignoreAttributesFn(attrName, jPath)) {\n        continue\n      }\n      let oldVal = matches[i][4];\n      let aName = this.options.attributeNamePrefix + attrName;\n      if (attrName.length) {\n        if (this.options.transformAttributeName) {\n          aName = this.options.transformAttributeName(aName);\n        }\n        if (aName === \"__proto__\") aName = \"#__proto__\";\n        if (oldVal !== undefined) {\n          if (this.options.trimValues) {\n            oldVal = oldVal.trim();\n          }\n          oldVal = this.replaceEntitiesValue(oldVal, tagName, jPath);\n          const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n          if (newVal === null || newVal === undefined) {\n            //don't parse\n            attrs[aName] = oldVal;\n          } else if (typeof newVal !== typeof oldVal || newVal !== oldVal) {\n            //overwrite\n            attrs[aName] = newVal;\n          } else {\n            //parse\n            attrs[aName] = parseValue(\n              oldVal,\n              this.options.parseAttributeValue,\n              this.options.numberParseOptions\n            );\n          }\n        } else if (this.options.allowBooleanAttributes) {\n          attrs[aName] = true;\n        }\n      }\n    }\n    if (!Object.keys(attrs).length) {\n      return;\n    }\n    if (this.options.attributesGroupName) {\n      const attrCollection = {};\n      attrCollection[this.options.attributesGroupName] = attrs;\n      return attrCollection;\n    }\n    return attrs\n  }\n}\n\nconst parseXml = function (xmlData) {\n  xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\"); //TODO: remove this line\n  const xmlObj = new xmlNode('!xml');\n  let currentNode = xmlObj;\n  let textData = \"\";\n  let jPath = \"\";\n\n  // Reset entity expansion counters for this document\n  this.entityExpansionCount = 0;\n  this.currentExpandedLength = 0;\n\n  const docTypeReader = new DocTypeReader(this.options.processEntities);\n  for (let i = 0; i < xmlData.length; i++) {//for each char in XML data\n    const ch = xmlData[i];\n    if (ch === '<') {\n      // const nextIndex = i+1;\n      // const _2ndChar = xmlData[nextIndex];\n      if (xmlData[i + 1] === '/') {//Closing Tag\n        const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n        let tagName = xmlData.substring(i + 2, closeIndex).trim();\n\n        if (this.options.removeNSPrefix) {\n          const colonIndex = tagName.indexOf(\":\");\n          if (colonIndex !== -1) {\n            tagName = tagName.substr(colonIndex + 1);\n          }\n        }\n\n        if (this.options.transformTagName) {\n          tagName = this.options.transformTagName(tagName);\n        }\n\n        if (currentNode) {\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        }\n\n        //check if last tag of nested tag was unpaired tag\n        const lastTagName = jPath.substring(jPath.lastIndexOf(\".\") + 1);\n        if (tagName && this.options.unpairedTags.indexOf(tagName) !== -1) {\n          throw new Error(`Unpaired tag can not be used as closing tag: `);\n        }\n        let propIndex = 0\n        if (lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1) {\n          propIndex = jPath.lastIndexOf('.', jPath.lastIndexOf('.') - 1)\n          this.tagsNodeStack.pop();\n        } else {\n          propIndex = jPath.lastIndexOf(\".\");\n        }\n        jPath = jPath.substring(0, propIndex);\n\n        currentNode = this.tagsNodeStack.pop();//avoid recursion, set the parent tag scope\n        textData = \"\";\n        i = closeIndex;\n      } else if (xmlData[i + 1] === '?') {\n\n        let tagData = readTagExp(xmlData, i, false, \"?>\");\n        if (!tagData) throw new Error(\"Pi Tag is not closed.\");\n\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n        if ((this.options.ignoreDeclaration && tagData.tagName === \"?xml\") || this.options.ignorePiTags) {\n          //do nothing\n        } else {\n\n          const childNode = new xmlNode(tagData.tagName);\n          childNode.add(this.options.textNodeName, \"\");\n\n          if (tagData.tagName !== tagData.tagExp && tagData.attrExpPresent) {\n            childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n          }\n          this.addChild(currentNode, childNode, jPath, i);\n        }\n\n\n        i = tagData.closeIndex + 1;\n      } else if (xmlData.substr(i + 1, 3) === '!--') {\n        const endIndex = findClosingIndex(xmlData, \"-->\", i + 4, \"Comment is not closed.\")\n        if (this.options.commentPropName) {\n          const comment = xmlData.substring(i + 4, endIndex - 2);\n\n          textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n          currentNode.add(this.options.commentPropName, [{ [this.options.textNodeName]: comment }]);\n        }\n        i = endIndex;\n      } else if (xmlData.substr(i + 1, 2) === '!D') {\n        const result = docTypeReader.readDocType(xmlData, i);\n        this.docTypeEntities = result.entities;\n        i = result.i;\n      } else if (xmlData.substr(i + 1, 2) === '![') {\n        const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n        const tagExp = xmlData.substring(i + 9, closeIndex);\n\n        textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n        let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true, true);\n        if (val == undefined) val = \"\";\n\n        //cdata should be set even if it is 0 length string\n        if (this.options.cdataPropName) {\n          currentNode.add(this.options.cdataPropName, [{ [this.options.textNodeName]: tagExp }]);\n        } else {\n          currentNode.add(this.options.textNodeName, val);\n        }\n\n        i = closeIndex + 2;\n      } else {//Opening tag\n        let result = readTagExp(xmlData, i, this.options.removeNSPrefix);\n        let tagName = result.tagName;\n        const rawTagName = result.rawTagName;\n        let tagExp = result.tagExp;\n        let attrExpPresent = result.attrExpPresent;\n        let closeIndex = result.closeIndex;\n\n        if (this.options.transformTagName) {\n          //console.log(tagExp, tagName)\n          const newTagName = this.options.transformTagName(tagName);\n          if (tagExp === tagName) {\n            tagExp = newTagName\n          }\n          tagName = newTagName;\n        }\n\n        //save text as child node\n        if (currentNode && textData) {\n          if (currentNode.tagname !== '!xml') {\n            //when nested tag is found\n            textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n          }\n        }\n\n        //check if last tag was unpaired tag\n        const lastTag = currentNode;\n        if (lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1) {\n          currentNode = this.tagsNodeStack.pop();\n          jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n        }\n        if (tagName !== xmlObj.tagname) {\n          jPath += jPath ? \".\" + tagName : tagName;\n        }\n        const startIndex = i;\n        if (this.isItStopNode(this.stopNodesExact, this.stopNodesWildcard, jPath, tagName)) {\n          let tagContent = \"\";\n          //self-closing tag\n          if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n            if (tagName[tagName.length - 1] === \"/\") { //remove trailing '/'\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            } else {\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n            i = result.closeIndex;\n          }\n          //unpaired tag\n          else if (this.options.unpairedTags.indexOf(tagName) !== -1) {\n\n            i = result.closeIndex;\n          }\n          //normal tag\n          else {\n            //read until closing tag is found\n            const result = this.readStopNodeData(xmlData, rawTagName, closeIndex + 1);\n            if (!result) throw new Error(`Unexpected end of ${rawTagName}`);\n            i = result.i;\n            tagContent = result.tagContent;\n          }\n\n          const childNode = new xmlNode(tagName);\n\n          if (tagName !== tagExp && attrExpPresent) {\n            childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n          }\n          if (tagContent) {\n            tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n          }\n\n          jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          childNode.add(this.options.textNodeName, tagContent);\n\n          this.addChild(currentNode, childNode, jPath, startIndex);\n        } else {\n          //selfClosing tag\n          if (tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1) {\n            if (tagName[tagName.length - 1] === \"/\") { //remove trailing '/'\n              tagName = tagName.substr(0, tagName.length - 1);\n              jPath = jPath.substr(0, jPath.length - 1);\n              tagExp = tagName;\n            } else {\n              tagExp = tagExp.substr(0, tagExp.length - 1);\n            }\n\n            if (this.options.transformTagName) {\n              const newTagName = this.options.transformTagName(tagName);\n              if (tagExp === tagName) {\n                tagExp = newTagName\n              }\n              tagName = newTagName;\n            }\n\n            const childNode = new xmlNode(tagName);\n            if (tagName !== tagExp && attrExpPresent) {\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n            }\n            this.addChild(currentNode, childNode, jPath, startIndex);\n            jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n          }\n          //opening tag\n          else {\n            const childNode = new xmlNode(tagName);\n            this.tagsNodeStack.push(currentNode);\n\n            if (tagName !== tagExp && attrExpPresent) {\n              childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n            }\n            this.addChild(currentNode, childNode, jPath, startIndex);\n            currentNode = childNode;\n          }\n          textData = \"\";\n          i = closeIndex;\n        }\n      }\n    } else {\n      textData += xmlData[i];\n    }\n  }\n  return xmlObj.child;\n}\n\nfunction addChild(currentNode, childNode, jPath, startIndex) {\n  // unset startIndex if not requested\n  if (!this.options.captureMetaData) startIndex = undefined;\n  const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"])\n  if (result === false) {\n    //do nothing\n  } else if (typeof result === \"string\") {\n    childNode.tagname = result\n    currentNode.addChild(childNode, startIndex);\n  } else {\n    currentNode.addChild(childNode, startIndex);\n  }\n}\n\nconst replaceEntitiesValue = function (val, tagName, jPath) {\n  // Performance optimization: Early return if no entities to replace\n  if (val.indexOf('&') === -1) {\n    return val;\n  }\n\n  const entityConfig = this.options.processEntities;\n\n  if (!entityConfig.enabled) {\n    return val;\n  }\n\n  // Check tag-specific filtering\n  if (entityConfig.allowedTags) {\n    if (!entityConfig.allowedTags.includes(tagName)) {\n      return val; // Skip entity replacement for current tag as not set\n    }\n  }\n\n  if (entityConfig.tagFilter) {\n    if (!entityConfig.tagFilter(tagName, jPath)) {\n      return val; // Skip based on custom filter\n    }\n  }\n\n  // Replace DOCTYPE entities\n  for (let entityName in this.docTypeEntities) {\n    const entity = this.docTypeEntities[entityName];\n    const matches = val.match(entity.regx);\n\n    if (matches) {\n      // Track expansions\n      this.entityExpansionCount += matches.length;\n\n      // Check expansion limit\n      if (entityConfig.maxTotalExpansions &&\n        this.entityExpansionCount > entityConfig.maxTotalExpansions) {\n        throw new Error(\n          `Entity expansion limit exceeded: ${this.entityExpansionCount} > ${entityConfig.maxTotalExpansions}`\n        );\n      }\n\n      // Store length before replacement\n      const lengthBefore = val.length;\n      val = val.replace(entity.regx, entity.val);\n\n      // Check expanded length immediately after replacement\n      if (entityConfig.maxExpandedLength) {\n        this.currentExpandedLength += (val.length - lengthBefore);\n\n        if (this.currentExpandedLength > entityConfig.maxExpandedLength) {\n          throw new Error(\n            `Total expanded content size exceeded: ${this.currentExpandedLength} > ${entityConfig.maxExpandedLength}`\n          );\n        }\n      }\n    }\n  }\n  if (val.indexOf('&') === -1) return val;  // Early exit\n\n  // Replace standard entities\n  for (let entityName in this.lastEntities) {\n    const entity = this.lastEntities[entityName];\n    val = val.replace(entity.regex, entity.val);\n  }\n  if (val.indexOf('&') === -1) return val;  // Early exit\n\n  // Replace HTML entities if enabled\n  if (this.options.htmlEntities) {\n    for (let entityName in this.htmlEntities) {\n      const entity = this.htmlEntities[entityName];\n      val = val.replace(entity.regex, entity.val);\n    }\n  }\n\n  // Replace ampersand entity last\n  val = val.replace(this.ampEntity.regex, this.ampEntity.val);\n\n  return val;\n}\n\n\nfunction saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n  if (textData) { //store previously collected data as textNode\n    if (isLeafNode === undefined) isLeafNode = currentNode.child.length === 0\n\n    textData = this.parseTextData(textData,\n      currentNode.tagname,\n      jPath,\n      false,\n      currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n      isLeafNode);\n\n    if (textData !== undefined && textData !== \"\")\n      currentNode.add(this.options.textNodeName, textData);\n    textData = \"\";\n  }\n  return textData;\n}\n\n//TODO: use jPath to simplify the logic\n/**\n * @param {Set} stopNodesExact\n * @param {Set} stopNodesWildcard\n * @param {string} jPath\n * @param {string} currentTagName\n */\nfunction isItStopNode(stopNodesExact, stopNodesWildcard, jPath, currentTagName) {\n  if (stopNodesWildcard && stopNodesWildcard.has(currentTagName)) return true;\n  if (stopNodesExact && stopNodesExact.has(jPath)) return true;\n  return false;\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-double quotes situation\n * @param {string} xmlData \n * @param {number} i starting index\n * @returns \n */\nfunction tagExpWithClosingIndex(xmlData, i, closingChar = \">\") {\n  let attrBoundary;\n  let tagExp = \"\";\n  for (let index = i; index < xmlData.length; index++) {\n    let ch = xmlData[index];\n    if (attrBoundary) {\n      if (ch === attrBoundary) attrBoundary = \"\";//reset\n    } else if (ch === '\"' || ch === \"'\") {\n      attrBoundary = ch;\n    } else if (ch === closingChar[0]) {\n      if (closingChar[1]) {\n        if (xmlData[index + 1] === closingChar[1]) {\n          return {\n            data: tagExp,\n            index: index\n          }\n        }\n      } else {\n        return {\n          data: tagExp,\n          index: index\n        }\n      }\n    } else if (ch === '\\t') {\n      ch = \" \"\n    }\n    tagExp += ch;\n  }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg) {\n  const closingIndex = xmlData.indexOf(str, i);\n  if (closingIndex === -1) {\n    throw new Error(errMsg)\n  } else {\n    return closingIndex + str.length - 1;\n  }\n}\n\nfunction readTagExp(xmlData, i, removeNSPrefix, closingChar = \">\") {\n  const result = tagExpWithClosingIndex(xmlData, i + 1, closingChar);\n  if (!result) return;\n  let tagExp = result.data;\n  const closeIndex = result.index;\n  const separatorIndex = tagExp.search(/\\s/);\n  let tagName = tagExp;\n  let attrExpPresent = true;\n  if (separatorIndex !== -1) {//separate tag name and attributes expression\n    tagName = tagExp.substring(0, separatorIndex);\n    tagExp = tagExp.substring(separatorIndex + 1).trimStart();\n  }\n\n  const rawTagName = tagName;\n  if (removeNSPrefix) {\n    const colonIndex = tagName.indexOf(\":\");\n    if (colonIndex !== -1) {\n      tagName = tagName.substr(colonIndex + 1);\n      attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n    }\n  }\n\n  return {\n    tagName: tagName,\n    tagExp: tagExp,\n    closeIndex: closeIndex,\n    attrExpPresent: attrExpPresent,\n    rawTagName: rawTagName,\n  }\n}\n/**\n * find paired tag for a stop node\n * @param {string} xmlData \n * @param {string} tagName \n * @param {number} i \n */\nfunction readStopNodeData(xmlData, tagName, i) {\n  const startIndex = i;\n  // Starting at 1 since we already have an open tag\n  let openTagCount = 1;\n\n  for (; i < xmlData.length; i++) {\n    if (xmlData[i] === \"<\") {\n      if (xmlData[i + 1] === \"/\") {//close tag\n        const closeIndex = findClosingIndex(xmlData, \">\", i, `${tagName} is not closed`);\n        let closeTagName = xmlData.substring(i + 2, closeIndex).trim();\n        if (closeTagName === tagName) {\n          openTagCount--;\n          if (openTagCount === 0) {\n            return {\n              tagContent: xmlData.substring(startIndex, i),\n              i: closeIndex\n            }\n          }\n        }\n        i = closeIndex;\n      } else if (xmlData[i + 1] === '?') {\n        const closeIndex = findClosingIndex(xmlData, \"?>\", i + 1, \"StopNode is not closed.\")\n        i = closeIndex;\n      } else if (xmlData.substr(i + 1, 3) === '!--') {\n        const closeIndex = findClosingIndex(xmlData, \"-->\", i + 3, \"StopNode is not closed.\")\n        i = closeIndex;\n      } else if (xmlData.substr(i + 1, 2) === '![') {\n        const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"StopNode is not closed.\") - 2;\n        i = closeIndex;\n      } else {\n        const tagData = readTagExp(xmlData, i, '>')\n\n        if (tagData) {\n          const openTagName = tagData && tagData.tagName;\n          if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length - 1] !== \"/\") {\n            openTagCount++;\n          }\n          i = tagData.closeIndex;\n        }\n      }\n    }\n  }//end for loop\n}\n\nfunction parseValue(val, shouldParse, options) {\n  if (shouldParse && typeof val === 'string') {\n    //console.log(options)\n    const newval = val.trim();\n    if (newval === 'true') return true;\n    else if (newval === 'false') return false;\n    else return toNumber(val, options);\n  } else {\n    if (isExist(val)) {\n      return val;\n    } else {\n      return '';\n    }\n  }\n}\n\nfunction fromCodePoint(str, base, prefix) {\n  const codePoint = Number.parseInt(str, base);\n\n  if (codePoint >= 0 && codePoint <= 0x10FFFF) {\n    return String.fromCodePoint(codePoint);\n  } else {\n    return prefix + str + \";\";\n  }\n}","import { buildOptions} from './OptionsBuilder.js';\nimport OrderedObjParser from './OrderedObjParser.js';\nimport prettify from './node2json.js';\nimport {validate} from \"../validator.js\";\nimport XmlNode from './xmlNode.js';\n\nexport default class XMLParser{\n    \n    constructor(options){\n        this.externalEntities = {};\n        this.options = buildOptions(options);\n        \n    }\n    /**\n     * Parse XML dats to JS object \n     * @param {string|Uint8Array} xmlData \n     * @param {boolean|Object} validationOption \n     */\n    parse(xmlData,validationOption){\n        if(typeof xmlData !== \"string\" && xmlData.toString){\n            xmlData = xmlData.toString();\n        }else if(typeof xmlData !== \"string\"){\n            throw new Error(\"XML data is accepted in String or Bytes[] form.\")\n        }\n        \n        if( validationOption){\n            if(validationOption === true) validationOption = {}; //validate with default options\n            \n            const result = validate(xmlData, validationOption);\n            if (result !== true) {\n              throw Error( `${result.err.msg}:${result.err.line}:${result.err.col}` )\n            }\n          }\n        const orderedObjParser = new OrderedObjParser(this.options);\n        orderedObjParser.addExternalEntities(this.externalEntities);\n        const orderedResult = orderedObjParser.parseXml(xmlData);\n        if(this.options.preserveOrder || orderedResult === undefined) return orderedResult;\n        else return prettify(orderedResult, this.options);\n    }\n\n    /**\n     * Add Entity which is not by default supported by this library\n     * @param {string} key \n     * @param {string} value \n     */\n    addEntity(key, value){\n        if(value.indexOf(\"&\") !== -1){\n            throw new Error(\"Entity value can't have '&'\")\n        }else if(key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1){\n            throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for '
'\")\n        }else if(value === \"&\"){\n            throw new Error(\"An entity with value '&' is not permitted\");\n        }else{\n            this.externalEntities[key] = value;\n        }\n    }\n\n    /**\n     * Returns a Symbol that can be used to access the metadata\n     * property on a node.\n     * \n     * If Symbol is not available in the environment, an ordinary property is used\n     * and the name of the property is here returned.\n     * \n     * The XMLMetaData property is only present when `captureMetaData`\n     * is true in the options.\n     */\n    static getMetaDataSymbol() {\n        return XmlNode.getMetaDataSymbol();\n    }\n}\n","'use strict';\n\nimport XmlNode from './xmlNode.js';\n\nconst METADATA_SYMBOL = XmlNode.getMetaDataSymbol();\n\n/**\n * \n * @param {array} node \n * @param {any} options \n * @returns \n */\nexport default function prettify(node, options){\n  return compress( node, options);\n}\n\n/**\n * \n * @param {array} arr \n * @param {object} options \n * @param {string} jPath \n * @returns object\n */\nfunction compress(arr, options, jPath){\n  let text;\n  const compressedObj = {};\n  for (let i = 0; i < arr.length; i++) {\n    const tagObj = arr[i];\n    const property = propName(tagObj);\n    let newJpath = \"\";\n    if(jPath === undefined) newJpath = property;\n    else newJpath = jPath + \".\" + property;\n\n    if(property === options.textNodeName){\n      if(text === undefined) text = tagObj[property];\n      else text += \"\" + tagObj[property];\n    }else if(property === undefined){\n      continue;\n    }else if(tagObj[property]){\n      \n      let val = compress(tagObj[property], options, newJpath);\n      const isLeaf = isLeafTag(val, options);\n      if (tagObj[METADATA_SYMBOL] !== undefined) {\n        val[METADATA_SYMBOL] = tagObj[METADATA_SYMBOL]; // copy over metadata\n      }\n\n      if(tagObj[\":@\"]){\n        assignAttributes( val, tagObj[\":@\"], newJpath, options);\n      }else if(Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode){\n        val = val[options.textNodeName];\n      }else if(Object.keys(val).length === 0){\n        if(options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n        else val = \"\";\n      }\n\n      if(compressedObj[property] !== undefined && compressedObj.hasOwnProperty(property)) {\n        if(!Array.isArray(compressedObj[property])) {\n            compressedObj[property] = [ compressedObj[property] ];\n        }\n        compressedObj[property].push(val);\n      }else{\n        //TODO: if a node is not an array, then check if it should be an array\n        //also determine if it is a leaf node\n        if (options.isArray(property, newJpath, isLeaf )) {\n          compressedObj[property] = [val];\n        }else{\n          compressedObj[property] = val;\n        }\n      }\n    }\n    \n  }\n  // if(text && text.length > 0) compressedObj[options.textNodeName] = text;\n  if(typeof text === \"string\"){\n    if(text.length > 0) compressedObj[options.textNodeName] = text;\n  }else if(text !== undefined) compressedObj[options.textNodeName] = text;\n  return compressedObj;\n}\n\nfunction propName(obj){\n  const keys = Object.keys(obj);\n  for (let i = 0; i < keys.length; i++) {\n    const key = keys[i];\n    if(key !== \":@\") return key;\n  }\n}\n\nfunction assignAttributes(obj, attrMap, jpath, options){\n  if (attrMap) {\n    const keys = Object.keys(attrMap);\n    const len = keys.length; //don't make it inline\n    for (let i = 0; i < len; i++) {\n      const atrrName = keys[i];\n      if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n        obj[atrrName] = [ attrMap[atrrName] ];\n      } else {\n        obj[atrrName] = attrMap[atrrName];\n      }\n    }\n  }\n}\n\nfunction isLeafTag(obj, options){\n  const { textNodeName } = options;\n  const propCount = Object.keys(obj).length;\n  \n  if (propCount === 0) {\n    return true;\n  }\n\n  if (\n    propCount === 1 &&\n    (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)\n  ) {\n    return true;\n  }\n\n  return false;\n}\n","'use strict';\n\nlet METADATA_SYMBOL;\n\nif (typeof Symbol !== \"function\") {\n  METADATA_SYMBOL = \"@@xmlMetadata\";\n} else {\n  METADATA_SYMBOL = Symbol(\"XML Node Metadata\");\n}\n\nexport default class XmlNode{\n  constructor(tagname) {\n    this.tagname = tagname;\n    this.child = []; //nested tags, text, cdata, comments in order\n    this[\":@\"] = {}; //attributes map\n  }\n  add(key,val){\n    // this.child.push( {name : key, val: val, isCdata: isCdata });\n    if(key === \"__proto__\") key = \"#__proto__\";\n    this.child.push( {[key]: val });\n  }\n  addChild(node, startIndex) {\n    if(node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n    if(node[\":@\"] && Object.keys(node[\":@\"]).length > 0){\n      this.child.push( { [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n    }else{\n      this.child.push( { [node.tagname]: node.child });\n    }\n    // if requested, add the startIndex\n    if (startIndex !== undefined) {\n      // Note: for now we just overwrite the metadata. If we had more complex metadata,\n      // we might need to do an object append here:  metadata = { ...metadata, startIndex }\n      this.child[this.child.length - 1][METADATA_SYMBOL] = { startIndex };\n    }\n  }\n  /** symbol used for metadata */\n  static getMetaDataSymbol() {\n    return METADATA_SYMBOL;\n  }\n}\n","export function sequence(...methods) {\n    if (methods.length === 0) {\n        throw new Error(\"Failed creating sequence: No functions provided\");\n    }\n    return function __executeSequence(...args) {\n        let result = args;\n        const _this = this;\n        while (methods.length > 0) {\n            const method = methods.shift();\n            result = [method.apply(_this, result)];\n        }\n        return result[0];\n    };\n}\n","import { sequence } from \"./functions.js\";\nconst HOT_PATCHER_TYPE = \"@@HOTPATCHER\";\nconst NOOP = () => { };\nfunction createNewItem(method) {\n    return {\n        original: method,\n        methods: [method],\n        final: false\n    };\n}\n/**\n * Hot patching manager class\n */\nexport class HotPatcher {\n    constructor() {\n        this._configuration = {\n            registry: {},\n            getEmptyAction: \"null\"\n        };\n        this.__type__ = HOT_PATCHER_TYPE;\n    }\n    /**\n     * Configuration object reference\n     * @readonly\n     */\n    get configuration() {\n        return this._configuration;\n    }\n    /**\n     * The action to take when a non-set method is requested\n     * Possible values: null/throw\n     */\n    get getEmptyAction() {\n        return this.configuration.getEmptyAction;\n    }\n    set getEmptyAction(newAction) {\n        this.configuration.getEmptyAction = newAction;\n    }\n    /**\n     * Control another hot-patcher instance\n     * Force the remote instance to use patched methods from calling instance\n     * @param target The target instance to control\n     * @param allowTargetOverrides Allow the target to override patched methods on\n     * the controller (default is false)\n     * @returns Returns self\n     * @throws {Error} Throws if the target is invalid\n     */\n    control(target, allowTargetOverrides = false) {\n        if (!target || target.__type__ !== HOT_PATCHER_TYPE) {\n            throw new Error(\"Failed taking control of target HotPatcher instance: Invalid type or object\");\n        }\n        Object.keys(target.configuration.registry).forEach(foreignKey => {\n            if (this.configuration.registry.hasOwnProperty(foreignKey)) {\n                if (allowTargetOverrides) {\n                    this.configuration.registry[foreignKey] = Object.assign({}, target.configuration.registry[foreignKey]);\n                }\n            }\n            else {\n                this.configuration.registry[foreignKey] = Object.assign({}, target.configuration.registry[foreignKey]);\n            }\n        });\n        target._configuration = this.configuration;\n        return this;\n    }\n    /**\n     * Execute a patched method\n     * @param key The method key\n     * @param args Arguments to pass to the method (optional)\n     * @see HotPatcher#get\n     * @returns The output of the called method\n     */\n    execute(key, ...args) {\n        const method = this.get(key) || NOOP;\n        return method(...args);\n    }\n    /**\n     * Get a method for a key\n     * @param key The method key\n     * @returns Returns the requested function or null if the function\n     * does not exist and the host is configured to return null (and not throw)\n     * @throws {Error} Throws if the configuration specifies to throw and the method\n     * does not exist\n     * @throws {Error} Throws if the `getEmptyAction` value is invalid\n     */\n    get(key) {\n        const item = this.configuration.registry[key];\n        if (!item) {\n            switch (this.getEmptyAction) {\n                case \"null\":\n                    return null;\n                case \"throw\":\n                    throw new Error(`Failed handling method request: No method provided for override: ${key}`);\n                default:\n                    throw new Error(`Failed handling request which resulted in an empty method: Invalid empty-action specified: ${this.getEmptyAction}`);\n            }\n        }\n        return sequence(...item.methods);\n    }\n    /**\n     * Check if a method has been patched\n     * @param key The function key\n     * @returns True if already patched\n     */\n    isPatched(key) {\n        return !!this.configuration.registry[key];\n    }\n    /**\n     * Patch a method name\n     * @param key The method key to patch\n     * @param method The function to set\n     * @param opts Patch options\n     * @returns Returns self\n     */\n    patch(key, method, opts = {}) {\n        const { chain = false } = opts;\n        if (this.configuration.registry[key] && this.configuration.registry[key].final) {\n            throw new Error(`Failed patching '${key}': Method marked as being final`);\n        }\n        if (typeof method !== \"function\") {\n            throw new Error(`Failed patching '${key}': Provided method is not a function`);\n        }\n        if (chain) {\n            // Add new method to the chain\n            if (!this.configuration.registry[key]) {\n                // New key, create item\n                this.configuration.registry[key] = createNewItem(method);\n            }\n            else {\n                // Existing, push the method\n                this.configuration.registry[key].methods.push(method);\n            }\n        }\n        else {\n            // Replace the original\n            if (this.isPatched(key)) {\n                const { original } = this.configuration.registry[key];\n                this.configuration.registry[key] = Object.assign(createNewItem(method), {\n                    original\n                });\n            }\n            else {\n                this.configuration.registry[key] = createNewItem(method);\n            }\n        }\n        return this;\n    }\n    /**\n     * Patch a method inline, execute it and return the value\n     * Used for patching contents of functions. This method will not apply a patched\n     * function if it has already been patched, allowing for external overrides to\n     * function. It also means that the function is cached so that it is not\n     * instantiated every time the outer function is invoked.\n     * @param key The function key to use\n     * @param method The function to patch (once, only if not patched)\n     * @param args Arguments to pass to the function\n     * @returns The output of the patched function\n     * @example\n     *  function mySpecialFunction(a, b) {\n     *      return hotPatcher.patchInline(\"func\", (a, b) => {\n     *          return a + b;\n     *      }, a, b);\n     *  }\n     */\n    patchInline(key, method, ...args) {\n        if (!this.isPatched(key)) {\n            this.patch(key, method);\n        }\n        return this.execute(key, ...args);\n    }\n    /**\n     * Patch a method (or methods) in sequential-mode\n     * See `patch()` with the option `chain: true`\n     * @see patch\n     * @param key The key to patch\n     * @param methods The methods to patch\n     * @returns Returns self\n     */\n    plugin(key, ...methods) {\n        methods.forEach(method => {\n            this.patch(key, method, { chain: true });\n        });\n        return this;\n    }\n    /**\n     * Restore a patched method if it has been overridden\n     * @param key The method key\n     * @returns Returns self\n     */\n    restore(key) {\n        if (!this.isPatched(key)) {\n            throw new Error(`Failed restoring method: No method present for key: ${key}`);\n        }\n        else if (typeof this.configuration.registry[key].original !== \"function\") {\n            throw new Error(`Failed restoring method: Original method not found or of invalid type for key: ${key}`);\n        }\n        this.configuration.registry[key].methods = [this.configuration.registry[key].original];\n        return this;\n    }\n    /**\n     * Set a method as being final\n     * This sets a method as having been finally overridden. Attempts at overriding\n     * again will fail with an error.\n     * @param key The key to make final\n     * @returns Returns self\n     */\n    setFinal(key) {\n        if (!this.configuration.registry.hasOwnProperty(key)) {\n            throw new Error(`Failed marking '${key}' as final: No method found for key`);\n        }\n        this.configuration.registry[key].final = true;\n        return this;\n    }\n}\n","export function assertError(err) {\n    if (!isError(err)) {\n        throw new Error(\"Parameter was not an error\");\n    }\n}\nexport function isError(err) {\n    return ((!!err &&\n        typeof err === \"object\" &&\n        objectToString(err) === \"[object Error]\") ||\n        err instanceof Error);\n}\nfunction objectToString(obj) {\n    return Object.prototype.toString.call(obj);\n}\n","const NAME = \"Layerr\";\nlet __name = NAME;\nexport function getGlobalName() {\n    return __name;\n}\nexport function setGlobalName(name = null) {\n    __name = name ?? NAME;\n}\n","import { assertError, isError } from \"./error.js\";\nimport { getGlobalName } from \"./global.js\";\nimport { parseArguments } from \"./tools.js\";\nexport class Layerr extends Error {\n    constructor(errorOptionsOrMessage, messageText) {\n        const args = [...arguments];\n        const { options, shortMessage } = parseArguments(args);\n        let message = shortMessage;\n        if (options.cause) {\n            message = `${message}: ${options.cause.message}`;\n        }\n        super(message);\n        this.message = message;\n        if (options.name && typeof options.name === \"string\") {\n            this.name = options.name;\n        }\n        else {\n            this.name = getGlobalName();\n        }\n        if (options.cause) {\n            Object.defineProperty(this, \"_cause\", { value: options.cause });\n        }\n        Object.defineProperty(this, \"_info\", { value: {} });\n        if (options.info && typeof options.info === \"object\") {\n            Object.assign(this._info, options.info);\n        }\n        if (Error.captureStackTrace) {\n            const ctor = options.constructorOpt || this.constructor;\n            Error.captureStackTrace(this, ctor);\n        }\n    }\n    static cause(err) {\n        assertError(err);\n        if (!err._cause)\n            return null;\n        return isError(err._cause)\n            ? err._cause\n            : null;\n    }\n    static fullStack(err) {\n        assertError(err);\n        const cause = Layerr.cause(err);\n        if (cause) {\n            return `${err.stack}\\ncaused by: ${Layerr.fullStack(cause)}`;\n        }\n        return err.stack ?? \"\";\n    }\n    static info(err) {\n        assertError(err);\n        const output = {};\n        const cause = Layerr.cause(err);\n        if (cause) {\n            Object.assign(output, Layerr.info(cause));\n        }\n        if (err._info) {\n            Object.assign(output, err._info);\n        }\n        return output;\n    }\n    toString() {\n        let output = this.name ||\n            this.constructor.name ||\n            this.constructor.prototype.name;\n        if (this.message) {\n            output = `${output}: ${this.message}`;\n        }\n        return output;\n    }\n}\n","import { isError } from \"./error.js\";\nexport function parseArguments(args) {\n    let options, shortMessage = \"\";\n    if (args.length === 0) {\n        options = {};\n    }\n    else if (isError(args[0])) {\n        options = {\n            cause: args[0],\n        };\n        shortMessage = args.slice(1).join(\" \") || \"\";\n    }\n    else if (args[0] && typeof args[0] === \"object\") {\n        options = Object.assign({}, args[0]);\n        shortMessage = args.slice(1).join(\" \") || \"\";\n    }\n    else if (typeof args[0] === \"string\") {\n        options = {};\n        shortMessage = shortMessage = args.join(\" \") || \"\";\n    }\n    else {\n        throw new Error(\"Invalid arguments passed to Layerr\");\n    }\n    return {\n        options,\n        shortMessage,\n    };\n}\n","const hexRegex = /^[-+]?0x[a-fA-F0-9]+$/;\nconst numRegex = /^([\\-\\+])?(0*)([0-9]*(\\.[0-9]*)?)$/;\n// const octRegex = /^0x[a-z0-9]+/;\n// const binRegex = /0x[a-z0-9]+/;\n\n \nconst consider = {\n    hex :  true,\n    // oct: false,\n    leadingZeros: true,\n    decimalPoint: \"\\.\",\n    eNotation: true,\n    //skipLike: /regex/\n};\n\nexport default function toNumber(str, options = {}){\n    options = Object.assign({}, consider, options );\n    if(!str || typeof str !== \"string\" ) return str;\n    \n    let trimmedStr  = str.trim();\n    \n    if(options.skipLike !== undefined && options.skipLike.test(trimmedStr)) return str;\n    else if(str===\"0\") return 0;\n    else if (options.hex && hexRegex.test(trimmedStr)) {\n        return parse_int(trimmedStr, 16);\n    // }else if (options.oct && octRegex.test(str)) {\n    //     return Number.parseInt(val, 8);\n    }else if (trimmedStr.includes('e') || trimmedStr.includes('E')) { //eNotation\n        return resolveEnotation(str,trimmedStr,options);\n    // }else if (options.parseBin && binRegex.test(str)) {\n    //     return Number.parseInt(val, 2);\n    }else{\n        //separate negative sign, leading zeros, and rest number\n        const match = numRegex.exec(trimmedStr);\n        // +00.123 => [ , '+', '00', '.123', ..\n        if(match){\n            const sign = match[1] || \"\";\n            const leadingZeros = match[2];\n            let numTrimmedByZeros = trimZeros(match[3]); //complete num without leading zeros\n            const decimalAdjacentToLeadingZeros = sign ? // 0., -00., 000.\n                str[leadingZeros.length+1] === \".\" \n                : str[leadingZeros.length] === \".\";\n\n            //trim ending zeros for floating number\n            if(!options.leadingZeros //leading zeros are not allowed\n                && (leadingZeros.length > 1 \n                    || (leadingZeros.length === 1 && !decimalAdjacentToLeadingZeros))){\n                // 00, 00.3, +03.24, 03, 03.24\n                return str;\n            }\n            else{//no leading zeros or leading zeros are allowed\n                const num = Number(trimmedStr);\n                const parsedStr = String(num);\n\n                if( num === 0) return num;\n                if(parsedStr.search(/[eE]/) !== -1){ //given number is long and parsed to eNotation\n                    if(options.eNotation) return num;\n                    else return str;\n                }else if(trimmedStr.indexOf(\".\") !== -1){ //floating number\n                    if(parsedStr === \"0\") return num; //0.0\n                    else if(parsedStr === numTrimmedByZeros) return num; //0.456. 0.79000\n                    else if( parsedStr === `${sign}${numTrimmedByZeros}`) return num;\n                    else return str;\n                }\n                \n                let n = leadingZeros? numTrimmedByZeros : trimmedStr;\n                if(leadingZeros){\n                    // -009 => -9\n                    return (n === parsedStr) || (sign+n === parsedStr) ? num : str\n                }else  {\n                    // +9\n                    return (n === parsedStr) || (n === sign+parsedStr) ? num : str\n                }\n            }\n        }else{ //non-numeric string\n            return str;\n        }\n    }\n}\n\nconst eNotationRegx = /^([-+])?(0*)(\\d*(\\.\\d*)?[eE][-\\+]?\\d+)$/;\nfunction resolveEnotation(str,trimmedStr,options){\n    if(!options.eNotation) return str;\n    const notation = trimmedStr.match(eNotationRegx); \n    if(notation){\n        let sign = notation[1] || \"\";\n        const eChar = notation[3].indexOf(\"e\") === -1 ? \"E\" : \"e\";\n        const leadingZeros = notation[2];\n        const eAdjacentToLeadingZeros = sign ? // 0E.\n            str[leadingZeros.length+1] === eChar \n            : str[leadingZeros.length] === eChar;\n\n        if(leadingZeros.length > 1 && eAdjacentToLeadingZeros) return str;\n        else if(leadingZeros.length === 1 \n            && (notation[3].startsWith(`.${eChar}`) || notation[3][0] === eChar)){\n                return Number(trimmedStr);\n        }else if(options.leadingZeros && !eAdjacentToLeadingZeros){ //accept with leading zeros\n            //remove leading 0s\n            trimmedStr = (notation[1] || \"\") + notation[3];\n            return Number(trimmedStr);\n        }else return str;\n    }else{\n        return str;\n    }\n}\n\n/**\n * \n * @param {string} numStr without leading zeros\n * @returns \n */\nfunction trimZeros(numStr){\n    if(numStr && numStr.indexOf(\".\") !== -1){//float\n        numStr = numStr.replace(/0+$/, \"\"); //remove ending zeros\n        if(numStr === \".\")  numStr = \"0\";\n        else if(numStr[0] === \".\")  numStr = \"0\"+numStr;\n        else if(numStr[numStr.length-1] === \".\")  numStr = numStr.substring(0,numStr.length-1);\n        return numStr;\n    }\n    return numStr;\n}\n\nfunction parse_int(numStr, base){\n    //polyfill\n    if(parseInt) return parseInt(numStr, base);\n    else if(Number.parseInt) return Number.parseInt(numStr, base);\n    else if(window && window.parseInt) return window.parseInt(numStr, base);\n    else throw new Error(\"parseInt, Number.parseInt, window.parseInt are not supported\")\n}","function normalize (strArray) {\n  var resultArray = [];\n  if (strArray.length === 0) { return ''; }\n\n  if (typeof strArray[0] !== 'string') {\n    throw new TypeError('Url must be a string. Received ' + strArray[0]);\n  }\n\n  // If the first part is a plain protocol, we combine it with the next part.\n  if (strArray[0].match(/^[^/:]+:\\/*$/) && strArray.length > 1) {\n    var first = strArray.shift();\n    strArray[0] = first + strArray[0];\n  }\n\n  // There must be two or three slashes in the file protocol, two slashes in anything else.\n  if (strArray[0].match(/^file:\\/\\/\\//)) {\n    strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1:///');\n  } else {\n    strArray[0] = strArray[0].replace(/^([^/:]+):\\/*/, '$1://');\n  }\n\n  for (var i = 0; i < strArray.length; i++) {\n    var component = strArray[i];\n\n    if (typeof component !== 'string') {\n      throw new TypeError('Url must be a string. Received ' + component);\n    }\n\n    if (component === '') { continue; }\n\n    if (i > 0) {\n      // Removing the starting slashes for each component but the first.\n      component = component.replace(/^[\\/]+/, '');\n    }\n    if (i < strArray.length - 1) {\n      // Removing the ending slashes for each component but the last.\n      component = component.replace(/[\\/]+$/, '');\n    } else {\n      // For the last component we will combine multiple slashes to a single one.\n      component = component.replace(/[\\/]+$/, '/');\n    }\n\n    resultArray.push(component);\n\n  }\n\n  var str = resultArray.join('/');\n  // Each input component is now separated by a single slash except the possible first plain protocol part.\n\n  // remove trailing slash before parameters or hash\n  str = str.replace(/\\/(\\?|&|#[^!])/g, '$1');\n\n  // replace ? in parameters with &\n  var parts = str.split('?');\n  str = parts.shift() + (parts.length > 0 ? '?': '') + parts.join('&');\n\n  return str;\n}\n\nexport default function urlJoin() {\n  var input;\n\n  if (typeof arguments[0] === 'object') {\n    input = arguments[0];\n  } else {\n    input = [].slice.call(arguments);\n  }\n\n  return normalize(input);\n}\n","import { toBase64 } from \"../tools/encode.js\";\nexport function generateBasicAuthHeader(username, password) {\n    const encoded = toBase64(`${username}:${password}`);\n    return `Basic ${encoded}`;\n}\n","import md5 from \"md5\";\nimport { ha1Compute } from \"../tools/crypto.js\";\nconst NONCE_CHARS = \"abcdef0123456789\";\nconst NONCE_SIZE = 32;\nexport function createDigestContext(username, password, ha1) {\n    return { username, password, ha1, nc: 0, algorithm: \"md5\", hasDigestAuth: false };\n}\nexport function generateDigestAuthHeader(options, digest) {\n    const url = options.url.replace(\"//\", \"\");\n    const uri = url.indexOf(\"/\") == -1 ? \"/\" : url.slice(url.indexOf(\"/\"));\n    const method = options.method ? options.method.toUpperCase() : \"GET\";\n    const qop = /(^|,)\\s*auth\\s*($|,)/.test(digest.qop) ? \"auth\" : false;\n    const ncString = `00000000${digest.nc}`.slice(-8);\n    const ha1 = ha1Compute(digest.algorithm, digest.username, digest.realm, digest.password, digest.nonce, digest.cnonce, digest.ha1);\n    const ha2 = md5(`${method}:${uri}`);\n    const digestResponse = qop\n        ? md5(`${ha1}:${digest.nonce}:${ncString}:${digest.cnonce}:${qop}:${ha2}`)\n        : md5(`${ha1}:${digest.nonce}:${ha2}`);\n    const authValues = {\n        username: digest.username,\n        realm: digest.realm,\n        nonce: digest.nonce,\n        uri,\n        qop,\n        response: digestResponse,\n        nc: ncString,\n        cnonce: digest.cnonce,\n        algorithm: digest.algorithm,\n        opaque: digest.opaque\n    };\n    const authHeader = [];\n    for (const k in authValues) {\n        if (authValues[k]) {\n            if (k === \"qop\" || k === \"nc\" || k === \"algorithm\") {\n                authHeader.push(`${k}=${authValues[k]}`);\n            }\n            else {\n                authHeader.push(`${k}=\"${authValues[k]}\"`);\n            }\n        }\n    }\n    return `Digest ${authHeader.join(\", \")}`;\n}\nfunction makeNonce() {\n    let uid = \"\";\n    for (let i = 0; i < NONCE_SIZE; ++i) {\n        uid = `${uid}${NONCE_CHARS[Math.floor(Math.random() * NONCE_CHARS.length)]}`;\n    }\n    return uid;\n}\nexport function parseDigestAuth(response, _digest) {\n    const isDigest = responseIndicatesDigestAuth(response);\n    if (!isDigest) {\n        return false;\n    }\n    const re = /([a-z0-9_-]+)=(?:\"([^\"]+)\"|([a-z0-9_-]+))/gi;\n    for (;;) {\n        const authHeader = (response.headers && response.headers.get(\"www-authenticate\")) || \"\";\n        const match = re.exec(authHeader);\n        if (!match) {\n            break;\n        }\n        _digest[match[1]] = match[2] || match[3];\n    }\n    _digest.nc += 1;\n    _digest.cnonce = makeNonce();\n    return true;\n}\nexport function responseIndicatesDigestAuth(response) {\n    const authHeader = (response.headers && response.headers.get(\"www-authenticate\")) || \"\";\n    return authHeader.split(/\\s/)[0].toLowerCase() === \"digest\";\n}\n","import { Layerr } from \"layerr\";\nimport { createDigestContext } from \"./digest.js\";\nimport { generateBasicAuthHeader } from \"./basic.js\";\nimport { generateTokenAuthHeader } from \"./oauth.js\";\nimport { AuthType, ErrorCode } from \"../types.js\";\nexport function setupAuth(context, username, password, oauthToken, ha1) {\n    switch (context.authType) {\n        case AuthType.Auto:\n            if (username && password) {\n                context.headers.Authorization = generateBasicAuthHeader(username, password);\n            }\n            break;\n        case AuthType.Digest:\n            context.digest = createDigestContext(username, password, ha1);\n            break;\n        case AuthType.None:\n            // Do nothing\n            break;\n        case AuthType.Password:\n            context.headers.Authorization = generateBasicAuthHeader(username, password);\n            break;\n        case AuthType.Token:\n            context.headers.Authorization = generateTokenAuthHeader(oauthToken);\n            break;\n        default:\n            throw new Layerr({\n                info: {\n                    code: ErrorCode.InvalidAuthType\n                }\n            }, `Invalid auth type: ${context.authType}`);\n    }\n}\n","export function generateTokenAuthHeader(token) {\n    return `${token.token_type} ${token.access_token}`;\n}\n","const hasArrayBuffer = typeof ArrayBuffer === \"function\";\nconst { toString: objToString } = Object.prototype;\n// Taken from: https://github.com/fengyuanchen/is-array-buffer/blob/master/src/index.js\nexport function isArrayBuffer(value) {\n    return (hasArrayBuffer &&\n        (value instanceof ArrayBuffer || objToString.call(value) === \"[object ArrayBuffer]\"));\n}\n","export function isBuffer(value) {\n    return (value != null &&\n        value.constructor != null &&\n        typeof value.constructor.isBuffer === \"function\" &&\n        value.constructor.isBuffer(value));\n}\n","export function isReactNative() {\n    return typeof TARGET === \"string\" && TARGET === \"react-native\";\n}\nexport function isWeb() {\n    return typeof TARGET === \"string\" && TARGET === \"web\";\n}\n","import { HotPatcher } from \"hot-patcher\";\nlet __patcher = null;\nexport function getPatcher() {\n    if (!__patcher) {\n        __patcher = new HotPatcher();\n    }\n    return __patcher;\n}\n","import { extractURLPath } from \"./tools/url.js\";\nimport { setupAuth } from \"./auth/index.js\";\nimport { copyFile } from \"./operations/copyFile.js\";\nimport { createDirectory } from \"./operations/createDirectory.js\";\nimport { createReadStream, createWriteStream } from \"./operations/createStream.js\";\nimport { customRequest } from \"./operations/customRequest.js\";\nimport { deleteFile } from \"./operations/deleteFile.js\";\nimport { exists } from \"./operations/exists.js\";\nimport { getDirectoryContents } from \"./operations/directoryContents.js\";\nimport { getFileContents, getFileDownloadLink } from \"./operations/getFileContents.js\";\nimport { lock, unlock } from \"./operations/lock.js\";\nimport { getQuota } from \"./operations/getQuota.js\";\nimport { getStat } from \"./operations/stat.js\";\nimport { getSearch } from \"./operations/search.js\";\nimport { moveFile } from \"./operations/moveFile.js\";\nimport { getFileUploadLink, putFileContents } from \"./operations/putFileContents.js\";\nimport { partialUpdateFileContents } from \"./operations/partialUpdateFileContents.js\";\nimport { getDAVCompliance } from \"./operations/getDAVCompliance.js\";\nimport { displaynameTagParser } from \"./tools/dav.js\";\nimport { AuthType } from \"./types.js\";\nconst DEFAULT_CONTACT_HREF = \"https://github.com/perry-mitchell/webdav-client/blob/master/LOCK_CONTACT.md\";\nexport function createClient(remoteURL, options = {}) {\n    const { authType: authTypeRaw = null, remoteBasePath, contactHref = DEFAULT_CONTACT_HREF, ha1, headers = {}, httpAgent, httpsAgent, password, token, username, withCredentials } = options;\n    let authType = authTypeRaw;\n    if (!authType) {\n        authType = username || password ? AuthType.Password : AuthType.None;\n    }\n    const context = {\n        authType,\n        remoteBasePath,\n        contactHref,\n        ha1,\n        headers: Object.assign({}, headers),\n        httpAgent,\n        httpsAgent,\n        password,\n        parsing: {\n            attributeNamePrefix: options.attributeNamePrefix ?? \"@\",\n            attributeParsers: [],\n            tagParsers: [displaynameTagParser]\n        },\n        remotePath: extractURLPath(remoteURL),\n        remoteURL,\n        token,\n        username,\n        withCredentials\n    };\n    setupAuth(context, username, password, token, ha1);\n    return {\n        copyFile: (filename, destination, options) => copyFile(context, filename, destination, options),\n        createDirectory: (path, options) => createDirectory(context, path, options),\n        createReadStream: (filename, options) => createReadStream(context, filename, options),\n        createWriteStream: (filename, options, callback) => createWriteStream(context, filename, options, callback),\n        customRequest: (path, requestOptions) => customRequest(context, path, requestOptions),\n        deleteFile: (filename, options) => deleteFile(context, filename, options),\n        exists: (path, options) => exists(context, path, options),\n        getDirectoryContents: (path, options\n        // @ts-ignore\n        ) => getDirectoryContents(context, path, options),\n        getFileContents: (filename, options) => getFileContents(context, filename, options),\n        getFileDownloadLink: (filename) => getFileDownloadLink(context, filename),\n        getFileUploadLink: (filename) => getFileUploadLink(context, filename),\n        getHeaders: () => Object.assign({}, context.headers),\n        getQuota: (options) => getQuota(context, options),\n        lock: (path, options) => lock(context, path, options),\n        moveFile: (filename, destinationFilename, options) => moveFile(context, filename, destinationFilename, options),\n        putFileContents: (filename, data, options) => putFileContents(context, filename, data, options),\n        partialUpdateFileContents: (filePath, start, end, data, options) => partialUpdateFileContents(context, filePath, start, end, data, options),\n        getDAVCompliance: (path) => getDAVCompliance(context, path),\n        search: (path, options) => getSearch(context, path, options),\n        setHeaders: (headers) => {\n            context.headers = Object.assign({}, headers);\n        },\n        stat: (path, options) => getStat(context, path, options),\n        unlock: (path, token, options) => unlock(context, path, token, options),\n        registerAttributeParser: (parser) => {\n            context.parsing.attributeParsers.push(parser);\n        },\n        registerTagParser: (parser) => {\n            context.parsing.tagParsers.push(parser);\n        }\n    };\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function copyFile(context, filename, destination, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filename)),\n        method: \"COPY\",\n        headers: {\n            Destination: joinURL(context.remoteURL, encodePath(destination)),\n            /**\n             * From RFC4918 section 10.6: If the overwrite header is not included in a COPY or MOVE request,\n             * then the resource MUST treat the request as if it has an overwrite header of value \"T\".\n             *\n             * Meaning the overwrite header is always set to \"T\" EXCEPT the option is explicitly set to false.\n             */\n            Overwrite: options.overwrite === false ? \"F\" : \"T\",\n            /**\n             * From RFC4918 section 9.8.3: A client may submit a Depth header on a COPY on a collection with a value of \"0\"\n             * or \"infinity\". The COPY method on a collection without a Depth header MUST act as if\n             * a Depth header with value \"infinity\" was included.\n             */\n            Depth: options.shallow ? \"0\" : \"infinity\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath, getAllDirectories, normalisePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nimport { getStat } from \"./stat.js\";\nexport async function createDirectory(context, dirPath, options = {}) {\n    if (options.recursive === true)\n        return createDirectoryRecursively(context, dirPath, options);\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, ensureCollectionPath(encodePath(dirPath))),\n        method: \"MKCOL\"\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n/**\n * Ensure the path is a proper \"collection\" path by ensuring it has a trailing \"/\".\n * The proper format of collection according to the specification does contain the trailing slash.\n * http://www.webdav.org/specs/rfc4918.html#rfc.section.5.2\n * @param path Path of the collection\n * @return string Path of the collection with appended trailing \"/\" in case the `path` does not have it.\n */\nfunction ensureCollectionPath(path) {\n    if (!path.endsWith(\"/\")) {\n        return path + \"/\";\n    }\n    return path;\n}\nasync function createDirectoryRecursively(context, dirPath, options = {}) {\n    const paths = getAllDirectories(normalisePath(dirPath));\n    paths.sort((a, b) => {\n        if (a.length > b.length) {\n            return 1;\n        }\n        else if (b.length > a.length) {\n            return -1;\n        }\n        return 0;\n    });\n    let creating = false;\n    for (const testPath of paths) {\n        if (creating) {\n            await createDirectory(context, testPath, {\n                ...options,\n                recursive: false\n            });\n            continue;\n        }\n        try {\n            const testStat = (await getStat(context, testPath));\n            if (testStat.type !== \"directory\") {\n                throw new Error(`Path includes a file: ${dirPath}`);\n            }\n        }\n        catch (err) {\n            const error = err;\n            if (error.status === 404) {\n                creating = true;\n                await createDirectory(context, testPath, {\n                    ...options,\n                    recursive: false\n                });\n            }\n            else {\n                throw err;\n            }\n        }\n    }\n}\n","import Stream from \"stream\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nconst NOOP = () => { };\nexport function createReadStream(context, filePath, options = {}) {\n    const PassThroughStream = Stream.PassThrough;\n    const outStream = new PassThroughStream();\n    getFileStream(context, filePath, options)\n        .then(stream => {\n        stream.pipe(outStream);\n    })\n        .catch(err => {\n        outStream.emit(\"error\", err);\n    });\n    return outStream;\n}\nexport function createWriteStream(context, filePath, options = {}, callback = NOOP) {\n    const PassThroughStream = Stream.PassThrough;\n    const writeStream = new PassThroughStream();\n    const headers = {};\n    if (options.overwrite === false) {\n        headers[\"If-None-Match\"] = \"*\";\n    }\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"PUT\",\n        headers,\n        data: writeStream,\n        maxRedirects: 0\n    }, context, options);\n    request(requestOptions, context)\n        .then(response => handleResponseCode(context, response))\n        .then(response => {\n        // Fire callback asynchronously to avoid errors\n        setTimeout(() => {\n            callback(response);\n        }, 0);\n    })\n        .catch(err => {\n        writeStream.emit(\"error\", err);\n    });\n    return writeStream;\n}\nasync function getFileStream(context, filePath, options = {}) {\n    const headers = {};\n    if (typeof options.range === \"object\" && typeof options.range.start === \"number\") {\n        let rangeHeader = `bytes=${options.range.start}-`;\n        if (typeof options.range.end === \"number\") {\n            rangeHeader = `${rangeHeader}${options.range.end}`;\n        }\n        headers.Range = rangeHeader;\n    }\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"GET\",\n        headers\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    if (headers.Range && response.status !== 206) {\n        const responseError = new Error(`Invalid response code for partial request: ${response.status}`);\n        responseError.status = response.status;\n        throw responseError;\n    }\n    if (options.callback) {\n        setTimeout(() => {\n            options.callback(response);\n        }, 0);\n    }\n    // @ts-ignore\n    return response.body;\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function customRequest(context, remotePath, requestOptions) {\n    if (!requestOptions.url) {\n        requestOptions.url = joinURL(context.remoteURL, encodePath(remotePath));\n    }\n    const finalOptions = prepareRequestOptions(requestOptions, context, {});\n    const response = await request(finalOptions, context);\n    handleResponseCode(context, response);\n    return response;\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function deleteFile(context, filename, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filename)),\n        method: \"DELETE\"\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n","import pathPosix from \"path-posix\";\nimport { joinURL, normaliseHREF } from \"../tools/url.js\";\nimport { encodePath, makePathAbsolute, normalisePath } from \"../tools/path.js\";\nimport { parseXML, prepareFileFromProps } from \"../tools/dav.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode, processGlobFilter, processResponsePayload } from \"../response.js\";\nexport async function getDirectoryContents(context, remotePath, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(remotePath), \"/\"),\n        method: \"PROPFIND\",\n        headers: {\n            Accept: \"text/plain,application/xml\",\n            Depth: options.deep ? \"infinity\" : \"1\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseData = await response.text();\n    if (!responseData) {\n        throw new Error(\"Failed parsing directory contents: Empty response\");\n    }\n    const davResp = await parseXML(responseData, context.parsing);\n    const _remotePath = makePathAbsolute(remotePath);\n    const remoteBasePath = makePathAbsolute(context.remoteBasePath || context.remotePath);\n    let files = getDirectoryFiles(davResp, remoteBasePath, _remotePath, options.details, options.includeSelf);\n    if (options.glob) {\n        files = processGlobFilter(files, options.glob);\n    }\n    return processResponsePayload(response, files, options.details);\n}\nfunction getDirectoryFiles(result, serverremoteBasePath, requestPath, isDetailed = false, includeSelf = false) {\n    const serverBase = pathPosix.join(serverremoteBasePath, \"/\");\n    // Extract the response items (directory contents)\n    const { multistatus: { response: responseItems } } = result;\n    // Map all items to a consistent output structure (results)\n    const nodes = responseItems.map(item => {\n        // HREF is the file path (in full) - The href is already XML entities decoded (e.g. foo&bar is reverted to foo&bar)\n        const href = normaliseHREF(item.href);\n        // Each item should contain a stat object\n        const { propstat: { prop: props } } = item;\n        // Process the true full filename (minus the base server path)\n        const filename = serverBase === \"/\"\n            ? decodeURIComponent(normalisePath(href))\n            : normalisePath(pathPosix.relative(decodeURIComponent(serverBase), decodeURIComponent(href)));\n        return prepareFileFromProps(props, filename, isDetailed);\n    });\n    // If specified, also return the current directory\n    if (includeSelf) {\n        return nodes;\n    }\n    // Else, filter out the item pointing to the current directory (not needed)\n    return nodes.filter(item => item.basename &&\n        (item.type === \"file\" || item.filename !== requestPath.replace(/\\/$/, \"\")));\n}\n","import { getStat } from \"./stat.js\";\nexport async function exists(context, remotePath, options = {}) {\n    try {\n        await getStat(context, remotePath, options);\n        return true;\n    }\n    catch (err) {\n        if (err.status === 404) {\n            return false;\n        }\n        throw err;\n    }\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function getDAVCompliance(context, filePath, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"OPTIONS\"\n    }, context, options);\n    const response = await request(requestOptions, context);\n    try {\n        handleResponseCode(context, response);\n    }\n    catch (err) {\n        const error = err;\n        throw error;\n    }\n    const davHeader = response.headers.get(\"DAV\") ?? \"\";\n    const compliance = davHeader.split(\",\").map(item => item.trim());\n    const server = response.headers.get(\"Server\") ?? \"\";\n    return {\n        compliance,\n        server\n    };\n}\n","import { Layerr } from \"layerr\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { fromBase64 } from \"../tools/encode.js\";\nimport { isReactNative, isWeb } from \"../compat/env.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode, processResponsePayload } from \"../response.js\";\nimport { AuthType, ErrorCode } from \"../types.js\";\nconst TRANSFORM_RETAIN_FORMAT = (v) => v;\nexport async function getFileContents(context, filePath, options = {}) {\n    const { format = \"binary\" } = options;\n    if (format !== \"binary\" && format !== \"text\") {\n        throw new Layerr({\n            info: {\n                code: ErrorCode.InvalidOutputFormat\n            }\n        }, `Invalid output format: ${format}`);\n    }\n    return format === \"text\"\n        ? getFileContentsString(context, filePath, options)\n        : getFileContentsBuffer(context, filePath, options);\n}\nasync function getFileContentsBuffer(context, filePath, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"GET\"\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    let body;\n    if (isWeb() || isReactNative()) {\n        body = await response.arrayBuffer();\n    }\n    else {\n        body = Buffer.from(await response.arrayBuffer());\n    }\n    return processResponsePayload(response, body, options.details);\n}\nasync function getFileContentsString(context, filePath, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"GET\",\n        headers: {\n            Accept: \"text/plain\"\n        },\n        transformResponse: [TRANSFORM_RETAIN_FORMAT]\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const body = await response.text();\n    return processResponsePayload(response, body, options.details);\n}\nexport function getFileDownloadLink(context, filePath) {\n    let url = joinURL(context.remoteURL, encodePath(filePath));\n    const protocol = /^https:/i.test(url) ? \"https\" : \"http\";\n    switch (context.authType) {\n        case AuthType.None:\n            // Do nothing\n            break;\n        case AuthType.Password: {\n            const authPart = context.headers.Authorization.replace(/^Basic /i, \"\").trim();\n            const authContents = fromBase64(authPart);\n            url = url.replace(/^https?:\\/\\//, `${protocol}://${authContents}@`);\n            break;\n        }\n        default:\n            throw new Layerr({\n                info: {\n                    code: ErrorCode.LinkUnsupportedAuthType\n                }\n            }, `Unsupported auth type for file link: ${context.authType}`);\n    }\n    return url;\n}\n","import { prepareRequestOptions, request } from \"../request.js\";\nimport { handleResponseCode, processResponsePayload } from \"../response.js\";\nimport { parseXML } from \"../tools/dav.js\";\nimport { joinURL } from \"../tools/url.js\";\nimport { parseQuota } from \"../tools/quota.js\";\nexport async function getQuota(context, options = {}) {\n    const path = options.path || \"/\";\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, path),\n        method: \"PROPFIND\",\n        headers: {\n            Accept: \"text/plain,application/xml\",\n            Depth: \"0\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseData = await response.text();\n    const result = await parseXML(responseData, context.parsing);\n    const quota = parseQuota(result);\n    return processResponsePayload(response, quota, options.details);\n}\n","import nestedProp from \"nested-property\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { generateLockXML, parseGenericResponse } from \"../tools/xml.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { createErrorFromResponse, handleResponseCode } from \"../response.js\";\nconst DEFAULT_TIMEOUT = \"Infinite, Second-4100000000\";\nexport async function lock(context, path, options = {}) {\n    const { refreshToken, timeout = DEFAULT_TIMEOUT } = options;\n    const headers = {\n        Accept: \"text/plain,application/xml\",\n        Timeout: timeout\n    };\n    if (refreshToken) {\n        headers.If = refreshToken;\n    }\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(path)),\n        method: \"LOCK\",\n        headers,\n        data: generateLockXML(context.contactHref)\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseData = await response.text();\n    const lockPayload = parseGenericResponse(responseData);\n    const token = nestedProp.get(lockPayload, \"prop.lockdiscovery.activelock.locktoken.href\");\n    const serverTimeout = nestedProp.get(lockPayload, \"prop.lockdiscovery.activelock.timeout\");\n    if (!token) {\n        const err = createErrorFromResponse(response, \"No lock token received: \");\n        throw err;\n    }\n    return {\n        token,\n        serverTimeout\n    };\n}\nexport async function unlock(context, path, token, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(path)),\n        method: \"UNLOCK\",\n        headers: {\n            \"Lock-Token\": token\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    if (response.status !== 204 && response.status !== 200) {\n        const err = createErrorFromResponse(response);\n        throw err;\n    }\n}\n","import { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nexport async function moveFile(context, filename, destination, options = {}) {\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filename)),\n        method: \"MOVE\",\n        headers: {\n            Destination: joinURL(context.remoteURL, encodePath(destination)),\n            /**\n             * From RFC4918 section 10.6: If the overwrite header is not included in a COPY or MOVE request,\n             * then the resource MUST treat the request as if it has an overwrite header of value \"T\".\n             *\n             * Meaning the overwrite header is always set to \"T\" EXCEPT the option is explicitly set to false.\n             */\n            Overwrite: options.overwrite === false ? \"F\" : \"T\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n","import { Layerr } from \"layerr\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nimport { getDAVCompliance } from \"./getDAVCompliance.js\";\nimport { ErrorCode } from \"../types.js\";\nexport async function partialUpdateFileContents(context, filePath, start, end, data, options = {}) {\n    const compliance = await getDAVCompliance(context, filePath, options);\n    if (compliance.compliance.includes(\"sabredav-partialupdate\")) {\n        return await partialUpdateFileContentsSabredav(context, filePath, start, end, data, options);\n    }\n    if (compliance.server.includes(\"Apache\") &&\n        compliance.compliance.includes(\"\")) {\n        return await partialUpdateFileContentsApache(context, filePath, start, end, data, options);\n    }\n    throw new Layerr({\n        info: {\n            code: ErrorCode.NotSupported\n        }\n    }, \"Not supported\");\n}\nasync function partialUpdateFileContentsSabredav(context, filePath, start, end, data, options = {}) {\n    if (start > end || start < 0) {\n        // Actually, SabreDAV support negative start value,\n        // Do not support here for compatibility with Apache-style way\n        throw new Layerr({\n            info: {\n                code: ErrorCode.InvalidUpdateRange\n            }\n        }, `Invalid update range ${start} for partial update`);\n    }\n    const headers = {\n        \"Content-Type\": \"application/x-sabredav-partialupdate\",\n        \"Content-Length\": `${end - start + 1}`,\n        \"X-Update-Range\": `bytes=${start}-${end}`\n    };\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"PATCH\",\n        headers,\n        data\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\nasync function partialUpdateFileContentsApache(context, filePath, start, end, data, options = {}) {\n    if (start > end || start < 0) {\n        throw new Layerr({\n            info: {\n                code: ErrorCode.InvalidUpdateRange\n            }\n        }, `Invalid update range ${start} for partial update`);\n    }\n    const headers = {\n        \"Content-Type\": \"application/octet-stream\",\n        \"Content-Length\": `${end - start + 1}`,\n        \"Content-Range\": `bytes ${start}-${end}/*`\n    };\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"PUT\",\n        headers,\n        data\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n}\n","import { Layerr } from \"layerr\";\nimport Stream from \"stream\";\nimport { fromBase64 } from \"../tools/encode.js\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { calculateDataLength } from \"../tools/size.js\";\nimport { isReactNative, isWeb } from \"../compat/env.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode } from \"../response.js\";\nimport { AuthType, ErrorCode } from \"../types.js\";\nexport async function putFileContents(context, filePath, data, options = {}) {\n    const { contentLength = true, overwrite = true } = options;\n    const headers = {\n        \"Content-Type\": \"application/octet-stream\"\n    };\n    if (!isWeb() &&\n        !isReactNative() &&\n        typeof Stream !== \"undefined\" &&\n        typeof Stream?.Readable !== \"undefined\" &&\n        data instanceof Stream.Readable) {\n        // Skip, no content-length\n    }\n    else if (contentLength === false) {\n        // Skip, disabled\n    }\n    else if (typeof contentLength === \"number\") {\n        headers[\"Content-Length\"] = `${contentLength}`;\n    }\n    else {\n        headers[\"Content-Length\"] = `${calculateDataLength(data)}`;\n    }\n    if (!overwrite) {\n        headers[\"If-None-Match\"] = \"*\";\n    }\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filePath)),\n        method: \"PUT\",\n        headers,\n        data\n    }, context, options);\n    const response = await request(requestOptions, context);\n    try {\n        handleResponseCode(context, response);\n    }\n    catch (err) {\n        const error = err;\n        if (error.status === 412 && !overwrite) {\n            return false;\n        }\n        else {\n            throw error;\n        }\n    }\n    return true;\n}\nexport function getFileUploadLink(context, filePath) {\n    let url = `${joinURL(context.remoteURL, encodePath(filePath))}?Content-Type=application/octet-stream`;\n    const protocol = /^https:/i.test(url) ? \"https\" : \"http\";\n    switch (context.authType) {\n        case AuthType.None:\n            // Do nothing\n            break;\n        case AuthType.Password: {\n            const authPart = context.headers.Authorization.replace(/^Basic /i, \"\").trim();\n            const authContents = fromBase64(authPart);\n            url = url.replace(/^https?:\\/\\//, `${protocol}://${authContents}@`);\n            break;\n        }\n        default:\n            throw new Layerr({\n                info: {\n                    code: ErrorCode.LinkUnsupportedAuthType\n                }\n            }, `Unsupported auth type for file link: ${context.authType}`);\n    }\n    return url;\n}\n","import { parseSearch, parseXML } from \"../tools/dav.js\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode, processResponsePayload } from \"../response.js\";\nexport async function getSearch(context, searchArbiter, options = {}) {\n    const { details: isDetailed = false } = options;\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(searchArbiter)),\n        method: \"SEARCH\",\n        headers: {\n            Accept: \"text/plain,application/xml\",\n            // Ensure a Content-Type header is set was this is required by e.g. sabre/dav\n            \"Content-Type\": context.headers[\"Content-Type\"] || \"application/xml; charset=utf-8\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseText = await response.text();\n    const responseData = await parseXML(responseText, context.parsing);\n    const results = parseSearch(responseData, searchArbiter, isDetailed);\n    return processResponsePayload(response, results, isDetailed);\n}\n","import { parseStat, parseXML } from \"../tools/dav.js\";\nimport { joinURL } from \"../tools/url.js\";\nimport { encodePath } from \"../tools/path.js\";\nimport { request, prepareRequestOptions } from \"../request.js\";\nimport { handleResponseCode, processResponsePayload } from \"../response.js\";\nexport async function getStat(context, filename, options = {}) {\n    const { details: isDetailed = false } = options;\n    const requestOptions = prepareRequestOptions({\n        url: joinURL(context.remoteURL, encodePath(filename)),\n        method: \"PROPFIND\",\n        headers: {\n            Accept: \"text/plain,application/xml\",\n            Depth: \"0\"\n        }\n    }, context, options);\n    const response = await request(requestOptions, context);\n    handleResponseCode(context, response);\n    const responseData = await response.text();\n    const result = await parseXML(responseData, context.parsing);\n    const stat = parseStat(result, filename, isDetailed);\n    return processResponsePayload(response, stat, isDetailed);\n}\n","import { Agent as HTTPAgent } from \"http\";\nimport { Agent as HTTPSAgent } from \"https\";\nimport { fetch } from \"@buttercup/fetch\";\nimport { getPatcher } from \"./compat/patcher.js\";\nimport { isReactNative, isWeb } from \"./compat/env.js\";\nimport { generateDigestAuthHeader, parseDigestAuth, responseIndicatesDigestAuth } from \"./auth/digest.js\";\nimport { cloneShallow, merge } from \"./tools/merge.js\";\nimport { mergeHeaders } from \"./tools/headers.js\";\nimport { requestDataToFetchBody } from \"./tools/body.js\";\nimport { AuthType } from \"./types.js\";\nimport { setupAuth } from \"./auth/index.js\";\nfunction getFetchOptions(requestOptions) {\n    let headers = {};\n    // Handle standard options\n    const opts = {\n        method: requestOptions.method\n    };\n    if (requestOptions.headers) {\n        headers = mergeHeaders(headers, requestOptions.headers);\n    }\n    if (typeof requestOptions.data !== \"undefined\") {\n        const [body, newHeaders] = requestDataToFetchBody(requestOptions.data);\n        opts.body = body;\n        headers = mergeHeaders(headers, newHeaders);\n    }\n    if (requestOptions.signal) {\n        opts.signal = requestOptions.signal;\n    }\n    if (requestOptions.withCredentials) {\n        opts.credentials = \"include\";\n    }\n    // Check for node-specific options\n    if (!isWeb() && !isReactNative()) {\n        if (requestOptions.httpAgent || requestOptions.httpsAgent) {\n            opts.agent = (parsedURL) => {\n                if (parsedURL.protocol === \"http:\") {\n                    return requestOptions.httpAgent || new HTTPAgent();\n                }\n                return requestOptions.httpsAgent || new HTTPSAgent();\n            };\n        }\n    }\n    // Attach headers\n    opts.headers = headers;\n    return opts;\n}\nexport function prepareRequestOptions(requestOptions, context, userOptions) {\n    const finalOptions = cloneShallow(requestOptions);\n    finalOptions.headers = mergeHeaders(context.headers, finalOptions.headers || {}, userOptions.headers || {});\n    if (typeof userOptions.data !== \"undefined\") {\n        finalOptions.data = userOptions.data;\n    }\n    if (userOptions.signal) {\n        finalOptions.signal = userOptions.signal;\n    }\n    if (context.httpAgent) {\n        finalOptions.httpAgent = context.httpAgent;\n    }\n    if (context.httpsAgent) {\n        finalOptions.httpsAgent = context.httpsAgent;\n    }\n    if (context.digest) {\n        finalOptions._digest = context.digest;\n    }\n    if (typeof context.withCredentials === \"boolean\") {\n        finalOptions.withCredentials = context.withCredentials;\n    }\n    return finalOptions;\n}\nexport async function request(requestOptions, context) {\n    if (context.authType === AuthType.Auto) {\n        return requestAuto(requestOptions, context);\n    }\n    if (requestOptions._digest) {\n        return requestDigest(requestOptions);\n    }\n    return requestStandard(requestOptions);\n}\nasync function requestAuto(requestOptions, context) {\n    const response = await requestStandard(requestOptions);\n    if (response.ok) {\n        context.authType = AuthType.Password;\n        return response;\n    }\n    if (response.status == 401 && responseIndicatesDigestAuth(response)) {\n        context.authType = AuthType.Digest;\n        setupAuth(context, context.username, context.password, undefined, undefined);\n        requestOptions._digest = context.digest;\n        return requestDigest(requestOptions);\n    }\n    return response;\n}\nasync function requestDigest(requestOptions) {\n    // Remove client's digest authentication object from request options\n    const _digest = requestOptions._digest;\n    delete requestOptions._digest;\n    // If client is already using digest authentication, include the digest authorization header\n    if (_digest.hasDigestAuth) {\n        requestOptions = merge(requestOptions, {\n            headers: {\n                Authorization: generateDigestAuthHeader(requestOptions, _digest)\n            }\n        });\n    }\n    // Perform digest request + check\n    const response = await requestStandard(requestOptions);\n    if (response.status == 401) {\n        _digest.hasDigestAuth = parseDigestAuth(response, _digest);\n        if (_digest.hasDigestAuth) {\n            requestOptions = merge(requestOptions, {\n                headers: {\n                    Authorization: generateDigestAuthHeader(requestOptions, _digest)\n                }\n            });\n            const response2 = await requestStandard(requestOptions);\n            if (response2.status == 401) {\n                _digest.hasDigestAuth = false;\n            }\n            else {\n                _digest.nc++;\n            }\n            return response2;\n        }\n    }\n    else {\n        _digest.nc++;\n    }\n    return response;\n}\nfunction requestStandard(requestOptions) {\n    const patcher = getPatcher();\n    return patcher.patchInline(\"request\", (options) => patcher.patchInline(\"fetch\", fetch, options.url, getFetchOptions(options)), requestOptions);\n}\n","import { minimatch } from \"minimatch\";\nimport { convertResponseHeaders } from \"./tools/headers.js\";\nexport function createErrorFromResponse(response, prefix = \"\") {\n    const err = new Error(`${prefix}Invalid response: ${response.status} ${response.statusText}`);\n    err.status = response.status;\n    err.response = response;\n    return err;\n}\nexport function handleResponseCode(context, response) {\n    const { status } = response;\n    if (status === 401 && context.digest)\n        return response;\n    if (status >= 400) {\n        const err = createErrorFromResponse(response);\n        throw err;\n    }\n    return response;\n}\nexport function processGlobFilter(files, glob) {\n    return files.filter(file => minimatch(file.filename, glob, { matchBase: true }));\n}\n/**\n * Process a response payload (eg. from `customRequest`) and\n *  prepare it for further processing. Exposed for custom\n *  request handling.\n * @param response The response for a request\n * @param data The data returned\n * @param isDetailed Whether or not a detailed result is\n *  requested\n * @returns The response data, or a detailed response object\n *  if required\n */\nexport function processResponsePayload(response, data, isDetailed = false) {\n    return isDetailed\n        ? {\n            data,\n            headers: response.headers ? convertResponseHeaders(response.headers) : {},\n            status: response.status,\n            statusText: response.statusText\n        }\n        : data;\n}\n","import Stream from \"stream\";\nimport { isArrayBuffer } from \"../compat/arrayBuffer.js\";\nimport { isBuffer } from \"../compat/buffer.js\";\nimport { isReactNative, isWeb } from \"../compat/env.js\";\nexport function requestDataToFetchBody(data) {\n    if (!isWeb() && !isReactNative() && data instanceof Stream.Readable) {\n        // @ts-ignore\n        return [data, {}];\n    }\n    if (typeof data === \"string\") {\n        return [data, {}];\n    }\n    else if (isBuffer(data)) {\n        return [data, {}];\n    }\n    else if (isArrayBuffer(data)) {\n        return [data, {}];\n    }\n    else if (data && typeof data === \"object\") {\n        return [\n            JSON.stringify(data),\n            {\n                \"content-type\": \"application/json\"\n            }\n        ];\n    }\n    throw new Error(`Unable to convert request body: Unexpected body type: ${typeof data}`);\n}\n","import md5 from \"md5\";\nexport function ha1Compute(algorithm, user, realm, pass, nonce, cnonce, ha1) {\n    const ha1Hash = ha1 || md5(`${user}:${realm}:${pass}`);\n    if (algorithm && algorithm.toLowerCase() === \"md5-sess\") {\n        return md5(`${ha1Hash}:${nonce}:${cnonce}`);\n    }\n    return ha1Hash;\n}\n","import path from \"path-posix\";\nimport { XMLParser } from \"fast-xml-parser\";\nimport nestedProp from \"nested-property\";\nimport { encodePath, normalisePath } from \"./path.js\";\nvar PropertyType;\n(function (PropertyType) {\n    PropertyType[\"Array\"] = \"array\";\n    PropertyType[\"Object\"] = \"object\";\n    PropertyType[\"Original\"] = \"original\";\n})(PropertyType || (PropertyType = {}));\nfunction getParser({ attributeNamePrefix, attributeParsers, tagParsers }) {\n    return new XMLParser({\n        allowBooleanAttributes: true,\n        attributeNamePrefix,\n        textNodeName: \"text\",\n        ignoreAttributes: false,\n        removeNSPrefix: true,\n        numberParseOptions: {\n            hex: true,\n            leadingZeros: false\n        },\n        attributeValueProcessor(_, attrValue, jPath) {\n            for (const processor of attributeParsers) {\n                try {\n                    const value = processor(jPath, attrValue);\n                    if (value !== attrValue) {\n                        return value;\n                    }\n                }\n                catch (error) {\n                    // skipping this invalid parser\n                }\n            }\n            return attrValue;\n        },\n        tagValueProcessor(tagName, tagValue, jPath) {\n            for (const processor of tagParsers) {\n                try {\n                    const value = processor(jPath, tagValue);\n                    if (value !== tagValue) {\n                        return value;\n                    }\n                }\n                catch (error) {\n                    // skipping this invalid parser\n                }\n            }\n            return tagValue;\n        }\n    });\n}\n/**\n * Tag parser for the displayname prop.\n * Ensure that the displayname is not parsed and always handled as is.\n * @param path The jPath of the tag\n * @param value The text value of the tag\n */\nexport function displaynameTagParser(path, value) {\n    if (path.endsWith(\"propstat.prop.displayname\")) {\n        // Do not parse the displayname, because this causes e.g. '2024.10' to result in number 2024.1\n        return;\n    }\n    return value;\n}\nfunction getPropertyOfType(obj, prop, type = PropertyType.Original) {\n    const val = nestedProp.get(obj, prop);\n    if (type === \"array\" && Array.isArray(val) === false) {\n        return [val];\n    }\n    else if (type === \"object\" && Array.isArray(val)) {\n        return val[0];\n    }\n    return val;\n}\nfunction normaliseResponse(response) {\n    const output = Object.assign({}, response);\n    // Only either status OR propstat is allowed\n    if (output.status) {\n        nestedProp.set(output, \"status\", getPropertyOfType(output, \"status\", PropertyType.Object));\n    }\n    else {\n        nestedProp.set(output, \"propstat\", getPropertyOfType(output, \"propstat\", PropertyType.Object));\n        nestedProp.set(output, \"propstat.prop\", getPropertyOfType(output, \"propstat.prop\", PropertyType.Object));\n    }\n    return output;\n}\nfunction normaliseResult(result) {\n    const { multistatus } = result;\n    if (multistatus === \"\") {\n        return {\n            multistatus: {\n                response: []\n            }\n        };\n    }\n    if (!multistatus) {\n        throw new Error(\"Invalid response: No root multistatus found\");\n    }\n    const output = {\n        multistatus: Array.isArray(multistatus) ? multistatus[0] : multistatus\n    };\n    nestedProp.set(output, \"multistatus.response\", getPropertyOfType(output, \"multistatus.response\", PropertyType.Array));\n    nestedProp.set(output, \"multistatus.response\", nestedProp.get(output, \"multistatus.response\").map(response => normaliseResponse(response)));\n    return output;\n}\n/**\n * Parse an XML response from a WebDAV service,\n *  converting it to an internal DAV result\n * @param xml The raw XML string\n * @param context The current client context\n * @returns A parsed and processed DAV result\n */\nexport function parseXML(xml, context) {\n    // backwards compatibility as this method is exported from the package\n    context = context ?? {\n        attributeNamePrefix: \"@\",\n        attributeParsers: [],\n        tagParsers: [displaynameTagParser]\n    };\n    return new Promise(resolve => {\n        const result = getParser(context).parse(xml);\n        resolve(normaliseResult(result));\n    });\n}\n/**\n * Get a file stat result from given DAV properties\n * @param props DAV properties\n * @param filename The filename for the file stat\n * @param isDetailed Whether or not the raw props of the resource should be returned\n * @returns A file stat result\n */\nexport function prepareFileFromProps(props, filename, isDetailed = false) {\n    // Last modified time, raw size, item type and mime\n    const { getlastmodified: lastMod = null, getcontentlength: rawSize = \"0\", resourcetype: resourceType = null, getcontenttype: mimeType = null, getetag: etag = null } = props;\n    const type = resourceType &&\n        typeof resourceType === \"object\" &&\n        typeof resourceType.collection !== \"undefined\"\n        ? \"directory\"\n        : \"file\";\n    const stat = {\n        filename,\n        basename: path.basename(filename),\n        lastmod: lastMod,\n        size: parseInt(rawSize, 10),\n        type,\n        etag: typeof etag === \"string\" ? etag.replace(/\"/g, \"\") : null\n    };\n    if (type === \"file\") {\n        stat.mime = mimeType && typeof mimeType === \"string\" ? mimeType.split(\";\")[0] : \"\";\n    }\n    if (isDetailed) {\n        // The XML parser tries to interpret values, but the display name is required to be a string\n        if (typeof props.displayname !== \"undefined\") {\n            props.displayname = String(props.displayname);\n        }\n        stat.props = props;\n    }\n    return stat;\n}\n/**\n * Parse a DAV result for file stats\n * @param result The resulting DAV response\n * @param filename The filename that was stat'd\n * @param isDetailed Whether or not the raw props of\n *  the resource should be returned\n * @returns A file stat result\n */\nexport function parseStat(result, filename, isDetailed = false) {\n    let responseItem = null;\n    try {\n        // should be a propstat response, if not the if below will throw an error\n        if (result.multistatus.response[0].propstat) {\n            responseItem = result.multistatus.response[0];\n        }\n    }\n    catch (e) {\n        /* ignore */\n    }\n    if (!responseItem) {\n        throw new Error(\"Failed getting item stat: bad response\");\n    }\n    const { propstat: { prop: props, status: statusLine } } = responseItem;\n    // As defined in https://tools.ietf.org/html/rfc2068#section-6.1\n    const [_, statusCodeStr, statusText] = statusLine.split(\" \", 3);\n    const statusCode = parseInt(statusCodeStr, 10);\n    if (statusCode >= 400) {\n        const err = new Error(`Invalid response: ${statusCode} ${statusText}`);\n        err.status = statusCode;\n        throw err;\n    }\n    const filePath = normalisePath(filename);\n    return prepareFileFromProps(props, filePath, isDetailed);\n}\n/**\n * Parse a DAV result for a search request\n *\n * @param result The resulting DAV response\n * @param searchArbiter The collection path that was searched\n * @param isDetailed Whether or not the raw props of the resource should be returned\n */\nexport function parseSearch(result, searchArbiter, isDetailed) {\n    const response = {\n        truncated: false,\n        results: []\n    };\n    response.truncated = result.multistatus.response.some(v => {\n        return ((v.status || v.propstat?.status).split(\" \", 3)?.[1] === \"507\" &&\n            v.href.replace(/\\/$/, \"\").endsWith(encodePath(searchArbiter).replace(/\\/$/, \"\")));\n    });\n    result.multistatus.response.forEach(result => {\n        if (result.propstat === undefined) {\n            return;\n        }\n        const filename = result.href.split(\"/\").map(decodeURIComponent).join(\"/\");\n        response.results.push(prepareFileFromProps(result.propstat.prop, filename, isDetailed));\n    });\n    return response;\n}\n/**\n * Translate a disk quota indicator to a recognised\n *  value (includes \"unlimited\" and \"unknown\")\n * @param value The quota indicator, eg. \"-3\"\n * @returns The value in bytes, or another indicator\n */\nexport function translateDiskSpace(value) {\n    switch (String(value)) {\n        case \"-3\":\n            return \"unlimited\";\n        case \"-2\":\n        /* falls-through */\n        case \"-1\":\n            // -1 is non-computed\n            return \"unknown\";\n        default:\n            return parseInt(String(value), 10);\n    }\n}\n","import base64 from \"base-64\";\nimport { decodeHTML } from \"entities\";\nimport { isWeb } from \"../compat/env.js\";\nexport function decodeHTMLEntities(text) {\n    if (isWeb()) {\n        const txt = document.createElement(\"textarea\");\n        txt.innerHTML = text;\n        return txt.value;\n    }\n    return decodeHTML(text);\n}\nexport function fromBase64(text) {\n    return base64.decode(text);\n}\nexport function toBase64(text) {\n    return base64.encode(text);\n}\n","export function convertResponseHeaders(headers) {\n    const output = {};\n    for (const key of headers.keys()) {\n        output[key] = headers.get(key);\n    }\n    return output;\n}\nexport function mergeHeaders(...headerPayloads) {\n    if (headerPayloads.length === 0)\n        return {};\n    const headerKeys = {};\n    return headerPayloads.reduce((output, headers) => {\n        Object.keys(headers).forEach(header => {\n            const lowerHeader = header.toLowerCase();\n            if (headerKeys.hasOwnProperty(lowerHeader)) {\n                output[headerKeys[lowerHeader]] = headers[header];\n            }\n            else {\n                headerKeys[lowerHeader] = header;\n                output[header] = headers[header];\n            }\n        });\n        return output;\n    }, {});\n}\n","export function cloneShallow(obj) {\n    return isPlainObject(obj)\n        ? Object.assign({}, obj)\n        : Object.setPrototypeOf(Object.assign({}, obj), Object.getPrototypeOf(obj));\n}\nfunction isPlainObject(obj) {\n    if (typeof obj !== \"object\" ||\n        obj === null ||\n        Object.prototype.toString.call(obj) != \"[object Object]\") {\n        // Not an object\n        return false;\n    }\n    if (Object.getPrototypeOf(obj) === null) {\n        return true;\n    }\n    let proto = obj;\n    // Find the prototype\n    while (Object.getPrototypeOf(proto) !== null) {\n        proto = Object.getPrototypeOf(proto);\n    }\n    return Object.getPrototypeOf(obj) === proto;\n}\nexport function merge(...args) {\n    let output = null, items = [...args];\n    while (items.length > 0) {\n        const nextItem = items.shift();\n        if (!output) {\n            output = cloneShallow(nextItem);\n        }\n        else {\n            output = mergeObjects(output, nextItem);\n        }\n    }\n    return output;\n}\nfunction mergeObjects(obj1, obj2) {\n    const output = cloneShallow(obj1);\n    Object.keys(obj2).forEach(key => {\n        if (!output.hasOwnProperty(key)) {\n            output[key] = obj2[key];\n            return;\n        }\n        if (Array.isArray(obj2[key])) {\n            output[key] = Array.isArray(output[key])\n                ? [...output[key], ...obj2[key]]\n                : [...obj2[key]];\n        }\n        else if (typeof obj2[key] === \"object\" && !!obj2[key]) {\n            output[key] =\n                typeof output[key] === \"object\" && !!output[key]\n                    ? mergeObjects(output[key], obj2[key])\n                    : cloneShallow(obj2[key]);\n        }\n        else {\n            output[key] = obj2[key];\n        }\n    });\n    return output;\n}\n","import { Layerr } from \"layerr\";\nimport path from \"path-posix\";\nconst SEP_PATH_POSIX = \"__PATH_SEPARATOR_POSIX__\";\nconst SEP_PATH_WINDOWS = \"__PATH_SEPARATOR_WINDOWS__\";\nexport function encodePath(filePath) {\n    try {\n        const replaced = filePath.replace(/\\//g, SEP_PATH_POSIX).replace(/\\\\\\\\/g, SEP_PATH_WINDOWS);\n        const formatted = encodeURIComponent(replaced);\n        return formatted.split(SEP_PATH_WINDOWS).join(\"\\\\\\\\\").split(SEP_PATH_POSIX).join(\"/\");\n    }\n    catch (err) {\n        throw new Layerr(err, \"Failed encoding path\");\n    }\n}\nexport function getAllDirectories(directory) {\n    if (!directory || directory === \"/\")\n        return [];\n    let currentPath = directory;\n    const output = [];\n    do {\n        output.push(currentPath);\n        currentPath = path.dirname(currentPath);\n    } while (currentPath && currentPath !== \"/\");\n    return output;\n}\nexport function makePathAbsolute(pathStr) {\n    return pathStr.startsWith(\"/\") ? pathStr : \"/\" + pathStr;\n}\nexport function normalisePath(pathStr) {\n    let normalisedPath = pathStr;\n    if (normalisedPath[0] !== \"/\") {\n        normalisedPath = \"/\" + normalisedPath;\n    }\n    if (/^.+\\/$/.test(normalisedPath)) {\n        normalisedPath = normalisedPath.substr(0, normalisedPath.length - 1);\n    }\n    return normalisedPath;\n}\n","import { translateDiskSpace } from \"./dav.js\";\nexport function parseQuota(result) {\n    try {\n        const [responseItem] = result.multistatus.response;\n        const { propstat: { prop: { \"quota-used-bytes\": quotaUsed, \"quota-available-bytes\": quotaAvail } } } = responseItem;\n        return typeof quotaUsed !== \"undefined\" && typeof quotaAvail !== \"undefined\"\n            ? {\n                // As it could be both a string or a number ensure we are working with a number\n                used: parseInt(String(quotaUsed), 10),\n                available: translateDiskSpace(quotaAvail)\n            }\n            : null;\n    }\n    catch (err) {\n        /* ignore */\n    }\n    return null;\n}\n","import { Layerr } from \"layerr\";\nimport { byteLength } from \"byte-length\";\nimport { isArrayBuffer } from \"../compat/arrayBuffer.js\";\nimport { isBuffer } from \"../compat/buffer.js\";\nimport { ErrorCode } from \"../types.js\";\nexport function calculateDataLength(data) {\n    if (isArrayBuffer(data)) {\n        return data.byteLength;\n    }\n    else if (isBuffer(data)) {\n        return data.length;\n    }\n    else if (typeof data === \"string\") {\n        return byteLength(data);\n    }\n    throw new Layerr({\n        info: {\n            code: ErrorCode.DataTypeNoLength\n        }\n    }, \"Cannot calculate data length: Invalid type\");\n}\n","import URL from \"url-parse\";\nimport { Layerr } from \"layerr\";\nimport _joinURL from \"url-join\";\nimport { normalisePath } from \"./path.js\";\nexport function extractURLPath(fullURL) {\n    const url = new URL(fullURL);\n    let urlPath = url.pathname;\n    if (urlPath.length <= 0) {\n        urlPath = \"/\";\n    }\n    return normalisePath(urlPath);\n}\nexport function joinURL(...parts) {\n    return _joinURL(parts.reduce((output, nextPart, partIndex) => {\n        if (partIndex === 0 ||\n            nextPart !== \"/\" ||\n            (nextPart === \"/\" && output[output.length - 1] !== \"/\")) {\n            output.push(nextPart);\n        }\n        return output;\n    }, []));\n}\nexport function normaliseHREF(href) {\n    try {\n        const normalisedHref = href.replace(/^https?:\\/\\/[^\\/]+/, \"\");\n        return normalisedHref;\n    }\n    catch (err) {\n        throw new Layerr(err, \"Failed normalising HREF\");\n    }\n}\n","import { XMLParser, XMLBuilder } from \"fast-xml-parser\";\nexport function generateLockXML(ownerHREF) {\n    return getBuilder().build(namespace({\n        lockinfo: {\n            \"@_xmlns:d\": \"DAV:\",\n            lockscope: {\n                exclusive: {}\n            },\n            locktype: {\n                write: {}\n            },\n            owner: {\n                href: ownerHREF\n            }\n        }\n    }, \"d\"));\n}\nfunction getBuilder() {\n    return new XMLBuilder({\n        attributeNamePrefix: \"@_\",\n        format: true,\n        ignoreAttributes: false,\n        suppressEmptyNode: true\n    });\n}\nfunction getParser() {\n    return new XMLParser({\n        removeNSPrefix: true,\n        parseAttributeValue: true,\n        parseTagValue: true\n    });\n}\nfunction namespace(obj, ns) {\n    const copy = { ...obj };\n    for (const key in copy) {\n        if (!copy.hasOwnProperty(key)) {\n            continue;\n        }\n        if (copy[key] && typeof copy[key] === \"object\" && key.indexOf(\":\") === -1) {\n            copy[`${ns}:${key}`] = namespace(copy[key], ns);\n            delete copy[key];\n        }\n        else if (/^@_/.test(key) === false) {\n            copy[`${ns}:${key}`] = copy[key];\n            delete copy[key];\n        }\n    }\n    return copy;\n}\nexport function parseGenericResponse(xml) {\n    return getParser().parse(xml);\n}\n","export { Request, Response } from \"@buttercup/fetch\";\nexport var AuthType;\n(function (AuthType) {\n    AuthType[\"Auto\"] = \"auto\";\n    AuthType[\"Digest\"] = \"digest\";\n    AuthType[\"None\"] = \"none\";\n    AuthType[\"Password\"] = \"password\";\n    AuthType[\"Token\"] = \"token\";\n})(AuthType || (AuthType = {}));\nexport var ErrorCode;\n(function (ErrorCode) {\n    ErrorCode[\"DataTypeNoLength\"] = \"data-type-no-length\";\n    ErrorCode[\"InvalidAuthType\"] = \"invalid-auth-type\";\n    ErrorCode[\"InvalidOutputFormat\"] = \"invalid-output-format\";\n    ErrorCode[\"LinkUnsupportedAuthType\"] = \"link-unsupported-auth\";\n    ErrorCode[\"InvalidUpdateRange\"] = \"invalid-update-range\";\n    ErrorCode[\"NotSupported\"] = \"not-supported\";\n})(ErrorCode || (ErrorCode = {}));\n","// Adapted from https://github.com/mathiasbynens/he/blob/36afe179392226cf1b6ccdb16ebbb7a5a844d93a/src/he.js#L106-L134\nvar _a;\nconst decodeMap = new Map([\n    [0, 65533],\n    // C1 Unicode control character reference replacements\n    [128, 8364],\n    [130, 8218],\n    [131, 402],\n    [132, 8222],\n    [133, 8230],\n    [134, 8224],\n    [135, 8225],\n    [136, 710],\n    [137, 8240],\n    [138, 352],\n    [139, 8249],\n    [140, 338],\n    [142, 381],\n    [145, 8216],\n    [146, 8217],\n    [147, 8220],\n    [148, 8221],\n    [149, 8226],\n    [150, 8211],\n    [151, 8212],\n    [152, 732],\n    [153, 8482],\n    [154, 353],\n    [155, 8250],\n    [156, 339],\n    [158, 382],\n    [159, 376],\n]);\n/**\n * Polyfill for `String.fromCodePoint`. It is used to create a string from a Unicode code point.\n */\nexport const fromCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins\n(_a = String.fromCodePoint) !== null && _a !== void 0 ? _a : function (codePoint) {\n    let output = \"\";\n    if (codePoint > 65535) {\n        codePoint -= 65536;\n        output += String.fromCharCode(((codePoint >>> 10) & 1023) | 55296);\n        codePoint = 56320 | (codePoint & 1023);\n    }\n    output += String.fromCharCode(codePoint);\n    return output;\n};\n/**\n * Replace the given code point with a replacement character if it is a\n * surrogate or is outside the valid range. Otherwise return the code\n * point unchanged.\n */\nexport function replaceCodePoint(codePoint) {\n    var _a;\n    if ((codePoint >= 55296 && codePoint <= 57343) ||\n        codePoint > 1114111) {\n        return 65533;\n    }\n    return (_a = decodeMap.get(codePoint)) !== null && _a !== void 0 ? _a : codePoint;\n}\n/**\n * Replace the code point if relevant, then convert it to a string.\n *\n * @deprecated Use `fromCodePoint(replaceCodePoint(codePoint))` instead.\n * @param codePoint The code point to decode.\n * @returns The decoded code point.\n */\nexport function decodeCodePoint(codePoint) {\n    return fromCodePoint(replaceCodePoint(codePoint));\n}\n//# sourceMappingURL=decode-codepoint.js.map","import { htmlDecodeTree } from \"./generated/decode-data-html.js\";\nimport { xmlDecodeTree } from \"./generated/decode-data-xml.js\";\nimport { replaceCodePoint, fromCodePoint } from \"./decode-codepoint.js\";\nvar CharCodes;\n(function (CharCodes) {\n    CharCodes[CharCodes[\"NUM\"] = 35] = \"NUM\";\n    CharCodes[CharCodes[\"SEMI\"] = 59] = \"SEMI\";\n    CharCodes[CharCodes[\"EQUALS\"] = 61] = \"EQUALS\";\n    CharCodes[CharCodes[\"ZERO\"] = 48] = \"ZERO\";\n    CharCodes[CharCodes[\"NINE\"] = 57] = \"NINE\";\n    CharCodes[CharCodes[\"LOWER_A\"] = 97] = \"LOWER_A\";\n    CharCodes[CharCodes[\"LOWER_F\"] = 102] = \"LOWER_F\";\n    CharCodes[CharCodes[\"LOWER_X\"] = 120] = \"LOWER_X\";\n    CharCodes[CharCodes[\"LOWER_Z\"] = 122] = \"LOWER_Z\";\n    CharCodes[CharCodes[\"UPPER_A\"] = 65] = \"UPPER_A\";\n    CharCodes[CharCodes[\"UPPER_F\"] = 70] = \"UPPER_F\";\n    CharCodes[CharCodes[\"UPPER_Z\"] = 90] = \"UPPER_Z\";\n})(CharCodes || (CharCodes = {}));\n/** Bit that needs to be set to convert an upper case ASCII character to lower case */\nconst TO_LOWER_BIT = 32;\nexport var BinTrieFlags;\n(function (BinTrieFlags) {\n    BinTrieFlags[BinTrieFlags[\"VALUE_LENGTH\"] = 49152] = \"VALUE_LENGTH\";\n    BinTrieFlags[BinTrieFlags[\"BRANCH_LENGTH\"] = 16256] = \"BRANCH_LENGTH\";\n    BinTrieFlags[BinTrieFlags[\"JUMP_TABLE\"] = 127] = \"JUMP_TABLE\";\n})(BinTrieFlags || (BinTrieFlags = {}));\nfunction isNumber(code) {\n    return code >= CharCodes.ZERO && code <= CharCodes.NINE;\n}\nfunction isHexadecimalCharacter(code) {\n    return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_F) ||\n        (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_F));\n}\nfunction isAsciiAlphaNumeric(code) {\n    return ((code >= CharCodes.UPPER_A && code <= CharCodes.UPPER_Z) ||\n        (code >= CharCodes.LOWER_A && code <= CharCodes.LOWER_Z) ||\n        isNumber(code));\n}\n/**\n * Checks if the given character is a valid end character for an entity in an attribute.\n *\n * Attribute values that aren't terminated properly aren't parsed, and shouldn't lead to a parser error.\n * See the example in https://html.spec.whatwg.org/multipage/parsing.html#named-character-reference-state\n */\nfunction isEntityInAttributeInvalidEnd(code) {\n    return code === CharCodes.EQUALS || isAsciiAlphaNumeric(code);\n}\nvar EntityDecoderState;\n(function (EntityDecoderState) {\n    EntityDecoderState[EntityDecoderState[\"EntityStart\"] = 0] = \"EntityStart\";\n    EntityDecoderState[EntityDecoderState[\"NumericStart\"] = 1] = \"NumericStart\";\n    EntityDecoderState[EntityDecoderState[\"NumericDecimal\"] = 2] = \"NumericDecimal\";\n    EntityDecoderState[EntityDecoderState[\"NumericHex\"] = 3] = \"NumericHex\";\n    EntityDecoderState[EntityDecoderState[\"NamedEntity\"] = 4] = \"NamedEntity\";\n})(EntityDecoderState || (EntityDecoderState = {}));\nexport var DecodingMode;\n(function (DecodingMode) {\n    /** Entities in text nodes that can end with any character. */\n    DecodingMode[DecodingMode[\"Legacy\"] = 0] = \"Legacy\";\n    /** Only allow entities terminated with a semicolon. */\n    DecodingMode[DecodingMode[\"Strict\"] = 1] = \"Strict\";\n    /** Entities in attributes have limitations on ending characters. */\n    DecodingMode[DecodingMode[\"Attribute\"] = 2] = \"Attribute\";\n})(DecodingMode || (DecodingMode = {}));\n/**\n * Token decoder with support of writing partial entities.\n */\nexport class EntityDecoder {\n    constructor(\n    /** The tree used to decode entities. */\n    decodeTree, \n    /**\n     * The function that is called when a codepoint is decoded.\n     *\n     * For multi-byte named entities, this will be called multiple times,\n     * with the second codepoint, and the same `consumed` value.\n     *\n     * @param codepoint The decoded codepoint.\n     * @param consumed The number of bytes consumed by the decoder.\n     */\n    emitCodePoint, \n    /** An object that is used to produce errors. */\n    errors) {\n        this.decodeTree = decodeTree;\n        this.emitCodePoint = emitCodePoint;\n        this.errors = errors;\n        /** The current state of the decoder. */\n        this.state = EntityDecoderState.EntityStart;\n        /** Characters that were consumed while parsing an entity. */\n        this.consumed = 1;\n        /**\n         * The result of the entity.\n         *\n         * Either the result index of a numeric entity, or the codepoint of a\n         * numeric entity.\n         */\n        this.result = 0;\n        /** The current index in the decode tree. */\n        this.treeIndex = 0;\n        /** The number of characters that were consumed in excess. */\n        this.excess = 1;\n        /** The mode in which the decoder is operating. */\n        this.decodeMode = DecodingMode.Strict;\n    }\n    /** Resets the instance to make it reusable. */\n    startEntity(decodeMode) {\n        this.decodeMode = decodeMode;\n        this.state = EntityDecoderState.EntityStart;\n        this.result = 0;\n        this.treeIndex = 0;\n        this.excess = 1;\n        this.consumed = 1;\n    }\n    /**\n     * Write an entity to the decoder. This can be called multiple times with partial entities.\n     * If the entity is incomplete, the decoder will return -1.\n     *\n     * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the\n     * entity is incomplete, and resume when the next string is written.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    write(input, offset) {\n        switch (this.state) {\n            case EntityDecoderState.EntityStart: {\n                if (input.charCodeAt(offset) === CharCodes.NUM) {\n                    this.state = EntityDecoderState.NumericStart;\n                    this.consumed += 1;\n                    return this.stateNumericStart(input, offset + 1);\n                }\n                this.state = EntityDecoderState.NamedEntity;\n                return this.stateNamedEntity(input, offset);\n            }\n            case EntityDecoderState.NumericStart: {\n                return this.stateNumericStart(input, offset);\n            }\n            case EntityDecoderState.NumericDecimal: {\n                return this.stateNumericDecimal(input, offset);\n            }\n            case EntityDecoderState.NumericHex: {\n                return this.stateNumericHex(input, offset);\n            }\n            case EntityDecoderState.NamedEntity: {\n                return this.stateNamedEntity(input, offset);\n            }\n        }\n    }\n    /**\n     * Switches between the numeric decimal and hexadecimal states.\n     *\n     * Equivalent to the `Numeric character reference state` in the HTML spec.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    stateNumericStart(input, offset) {\n        if (offset >= input.length) {\n            return -1;\n        }\n        if ((input.charCodeAt(offset) | TO_LOWER_BIT) === CharCodes.LOWER_X) {\n            this.state = EntityDecoderState.NumericHex;\n            this.consumed += 1;\n            return this.stateNumericHex(input, offset + 1);\n        }\n        this.state = EntityDecoderState.NumericDecimal;\n        return this.stateNumericDecimal(input, offset);\n    }\n    addToNumericResult(input, start, end, base) {\n        if (start !== end) {\n            const digitCount = end - start;\n            this.result =\n                this.result * Math.pow(base, digitCount) +\n                    Number.parseInt(input.substr(start, digitCount), base);\n            this.consumed += digitCount;\n        }\n    }\n    /**\n     * Parses a hexadecimal numeric entity.\n     *\n     * Equivalent to the `Hexademical character reference state` in the HTML spec.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    stateNumericHex(input, offset) {\n        const startIndex = offset;\n        while (offset < input.length) {\n            const char = input.charCodeAt(offset);\n            if (isNumber(char) || isHexadecimalCharacter(char)) {\n                offset += 1;\n            }\n            else {\n                this.addToNumericResult(input, startIndex, offset, 16);\n                return this.emitNumericEntity(char, 3);\n            }\n        }\n        this.addToNumericResult(input, startIndex, offset, 16);\n        return -1;\n    }\n    /**\n     * Parses a decimal numeric entity.\n     *\n     * Equivalent to the `Decimal character reference state` in the HTML spec.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    stateNumericDecimal(input, offset) {\n        const startIndex = offset;\n        while (offset < input.length) {\n            const char = input.charCodeAt(offset);\n            if (isNumber(char)) {\n                offset += 1;\n            }\n            else {\n                this.addToNumericResult(input, startIndex, offset, 10);\n                return this.emitNumericEntity(char, 2);\n            }\n        }\n        this.addToNumericResult(input, startIndex, offset, 10);\n        return -1;\n    }\n    /**\n     * Validate and emit a numeric entity.\n     *\n     * Implements the logic from the `Hexademical character reference start\n     * state` and `Numeric character reference end state` in the HTML spec.\n     *\n     * @param lastCp The last code point of the entity. Used to see if the\n     *               entity was terminated with a semicolon.\n     * @param expectedLength The minimum number of characters that should be\n     *                       consumed. Used to validate that at least one digit\n     *                       was consumed.\n     * @returns The number of characters that were consumed.\n     */\n    emitNumericEntity(lastCp, expectedLength) {\n        var _a;\n        // Ensure we consumed at least one digit.\n        if (this.consumed <= expectedLength) {\n            (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n            return 0;\n        }\n        // Figure out if this is a legit end of the entity\n        if (lastCp === CharCodes.SEMI) {\n            this.consumed += 1;\n        }\n        else if (this.decodeMode === DecodingMode.Strict) {\n            return 0;\n        }\n        this.emitCodePoint(replaceCodePoint(this.result), this.consumed);\n        if (this.errors) {\n            if (lastCp !== CharCodes.SEMI) {\n                this.errors.missingSemicolonAfterCharacterReference();\n            }\n            this.errors.validateNumericCharacterReference(this.result);\n        }\n        return this.consumed;\n    }\n    /**\n     * Parses a named entity.\n     *\n     * Equivalent to the `Named character reference state` in the HTML spec.\n     *\n     * @param input The string containing the entity (or a continuation of the entity).\n     * @param offset The current offset.\n     * @returns The number of characters that were consumed, or -1 if the entity is incomplete.\n     */\n    stateNamedEntity(input, offset) {\n        const { decodeTree } = this;\n        let current = decodeTree[this.treeIndex];\n        // The mask is the number of bytes of the value, including the current byte.\n        let valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n        for (; offset < input.length; offset++, this.excess++) {\n            const char = input.charCodeAt(offset);\n            this.treeIndex = determineBranch(decodeTree, current, this.treeIndex + Math.max(1, valueLength), char);\n            if (this.treeIndex < 0) {\n                return this.result === 0 ||\n                    // If we are parsing an attribute\n                    (this.decodeMode === DecodingMode.Attribute &&\n                        // We shouldn't have consumed any characters after the entity,\n                        (valueLength === 0 ||\n                            // And there should be no invalid characters.\n                            isEntityInAttributeInvalidEnd(char)))\n                    ? 0\n                    : this.emitNotTerminatedNamedEntity();\n            }\n            current = decodeTree[this.treeIndex];\n            valueLength = (current & BinTrieFlags.VALUE_LENGTH) >> 14;\n            // If the branch is a value, store it and continue\n            if (valueLength !== 0) {\n                // If the entity is terminated by a semicolon, we are done.\n                if (char === CharCodes.SEMI) {\n                    return this.emitNamedEntityData(this.treeIndex, valueLength, this.consumed + this.excess);\n                }\n                // If we encounter a non-terminated (legacy) entity while parsing strictly, then ignore it.\n                if (this.decodeMode !== DecodingMode.Strict) {\n                    this.result = this.treeIndex;\n                    this.consumed += this.excess;\n                    this.excess = 0;\n                }\n            }\n        }\n        return -1;\n    }\n    /**\n     * Emit a named entity that was not terminated with a semicolon.\n     *\n     * @returns The number of characters consumed.\n     */\n    emitNotTerminatedNamedEntity() {\n        var _a;\n        const { result, decodeTree } = this;\n        const valueLength = (decodeTree[result] & BinTrieFlags.VALUE_LENGTH) >> 14;\n        this.emitNamedEntityData(result, valueLength, this.consumed);\n        (_a = this.errors) === null || _a === void 0 ? void 0 : _a.missingSemicolonAfterCharacterReference();\n        return this.consumed;\n    }\n    /**\n     * Emit a named entity.\n     *\n     * @param result The index of the entity in the decode tree.\n     * @param valueLength The number of bytes in the entity.\n     * @param consumed The number of characters consumed.\n     *\n     * @returns The number of characters consumed.\n     */\n    emitNamedEntityData(result, valueLength, consumed) {\n        const { decodeTree } = this;\n        this.emitCodePoint(valueLength === 1\n            ? decodeTree[result] & ~BinTrieFlags.VALUE_LENGTH\n            : decodeTree[result + 1], consumed);\n        if (valueLength === 3) {\n            // For multi-byte values, we need to emit the second byte.\n            this.emitCodePoint(decodeTree[result + 2], consumed);\n        }\n        return consumed;\n    }\n    /**\n     * Signal to the parser that the end of the input was reached.\n     *\n     * Remaining data will be emitted and relevant errors will be produced.\n     *\n     * @returns The number of characters consumed.\n     */\n    end() {\n        var _a;\n        switch (this.state) {\n            case EntityDecoderState.NamedEntity: {\n                // Emit a named entity if we have one.\n                return this.result !== 0 &&\n                    (this.decodeMode !== DecodingMode.Attribute ||\n                        this.result === this.treeIndex)\n                    ? this.emitNotTerminatedNamedEntity()\n                    : 0;\n            }\n            // Otherwise, emit a numeric entity if we have one.\n            case EntityDecoderState.NumericDecimal: {\n                return this.emitNumericEntity(0, 2);\n            }\n            case EntityDecoderState.NumericHex: {\n                return this.emitNumericEntity(0, 3);\n            }\n            case EntityDecoderState.NumericStart: {\n                (_a = this.errors) === null || _a === void 0 ? void 0 : _a.absenceOfDigitsInNumericCharacterReference(this.consumed);\n                return 0;\n            }\n            case EntityDecoderState.EntityStart: {\n                // Return 0 if we have no entity.\n                return 0;\n            }\n        }\n    }\n}\n/**\n * Creates a function that decodes entities in a string.\n *\n * @param decodeTree The decode tree.\n * @returns A function that decodes entities in a string.\n */\nfunction getDecoder(decodeTree) {\n    let returnValue = \"\";\n    const decoder = new EntityDecoder(decodeTree, (data) => (returnValue += fromCodePoint(data)));\n    return function decodeWithTrie(input, decodeMode) {\n        let lastIndex = 0;\n        let offset = 0;\n        while ((offset = input.indexOf(\"&\", offset)) >= 0) {\n            returnValue += input.slice(lastIndex, offset);\n            decoder.startEntity(decodeMode);\n            const length = decoder.write(input, \n            // Skip the \"&\"\n            offset + 1);\n            if (length < 0) {\n                lastIndex = offset + decoder.end();\n                break;\n            }\n            lastIndex = offset + length;\n            // If `length` is 0, skip the current `&` and continue.\n            offset = length === 0 ? lastIndex + 1 : lastIndex;\n        }\n        const result = returnValue + input.slice(lastIndex);\n        // Make sure we don't keep a reference to the final string.\n        returnValue = \"\";\n        return result;\n    };\n}\n/**\n * Determines the branch of the current node that is taken given the current\n * character. This function is used to traverse the trie.\n *\n * @param decodeTree The trie.\n * @param current The current node.\n * @param nodeIdx The index right after the current node and its value.\n * @param char The current character.\n * @returns The index of the next node, or -1 if no branch is taken.\n */\nexport function determineBranch(decodeTree, current, nodeIndex, char) {\n    const branchCount = (current & BinTrieFlags.BRANCH_LENGTH) >> 7;\n    const jumpOffset = current & BinTrieFlags.JUMP_TABLE;\n    // Case 1: Single branch encoded in jump offset\n    if (branchCount === 0) {\n        return jumpOffset !== 0 && char === jumpOffset ? nodeIndex : -1;\n    }\n    // Case 2: Multiple branches encoded in jump table\n    if (jumpOffset) {\n        const value = char - jumpOffset;\n        return value < 0 || value >= branchCount\n            ? -1\n            : decodeTree[nodeIndex + value] - 1;\n    }\n    // Case 3: Multiple branches encoded in dictionary\n    // Binary search for the character.\n    let lo = nodeIndex;\n    let hi = lo + branchCount - 1;\n    while (lo <= hi) {\n        const mid = (lo + hi) >>> 1;\n        const midValue = decodeTree[mid];\n        if (midValue < char) {\n            lo = mid + 1;\n        }\n        else if (midValue > char) {\n            hi = mid - 1;\n        }\n        else {\n            return decodeTree[mid + branchCount];\n        }\n    }\n    return -1;\n}\nconst htmlDecoder = /* #__PURE__ */ getDecoder(htmlDecodeTree);\nconst xmlDecoder = /* #__PURE__ */ getDecoder(xmlDecodeTree);\n/**\n * Decodes an HTML string.\n *\n * @param htmlString The string to decode.\n * @param mode The decoding mode.\n * @returns The decoded string.\n */\nexport function decodeHTML(htmlString, mode = DecodingMode.Legacy) {\n    return htmlDecoder(htmlString, mode);\n}\n/**\n * Decodes an HTML string in an attribute.\n *\n * @param htmlAttribute The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLAttribute(htmlAttribute) {\n    return htmlDecoder(htmlAttribute, DecodingMode.Attribute);\n}\n/**\n * Decodes an HTML string, requiring all entities to be terminated by a semicolon.\n *\n * @param htmlString The string to decode.\n * @returns The decoded string.\n */\nexport function decodeHTMLStrict(htmlString) {\n    return htmlDecoder(htmlString, DecodingMode.Strict);\n}\n/**\n * Decodes an XML string, requiring all entities to be terminated by a semicolon.\n *\n * @param xmlString The string to decode.\n * @returns The decoded string.\n */\nexport function decodeXML(xmlString) {\n    return xmlDecoder(xmlString, DecodingMode.Strict);\n}\n// Re-export for use by eg. htmlparser2\nexport { htmlDecodeTree } from \"./generated/decode-data-html.js\";\nexport { xmlDecodeTree } from \"./generated/decode-data-xml.js\";\nexport { decodeCodePoint, replaceCodePoint, fromCodePoint, } from \"./decode-codepoint.js\";\n//# sourceMappingURL=decode.js.map","export const xmlReplacer = /[\"$&'<>\\u0080-\\uFFFF]/g;\nconst xmlCodeMap = new Map([\n    [34, \""\"],\n    [38, \"&\"],\n    [39, \"'\"],\n    [60, \"<\"],\n    [62, \">\"],\n]);\n// For compatibility with node < 4, we wrap `codePointAt`\nexport const getCodePoint = \n// eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\nString.prototype.codePointAt == null\n    ? (c, index) => (c.charCodeAt(index) & 64512) === 55296\n        ? (c.charCodeAt(index) - 55296) * 1024 +\n            c.charCodeAt(index + 1) -\n            56320 +\n            65536\n        : c.charCodeAt(index)\n    : // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n        (input, index) => input.codePointAt(index);\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using XML entities.\n *\n * If a character has no equivalent entity, a\n * numeric hexadecimal reference (eg. `ü`) will be used.\n */\nexport function encodeXML(input) {\n    let returnValue = \"\";\n    let lastIndex = 0;\n    let match;\n    while ((match = xmlReplacer.exec(input)) !== null) {\n        const { index } = match;\n        const char = input.charCodeAt(index);\n        const next = xmlCodeMap.get(char);\n        if (next === undefined) {\n            returnValue += `${input.substring(lastIndex, index)}&#x${getCodePoint(input, index).toString(16)};`;\n            // Increase by 1 if we have a surrogate pair\n            lastIndex = xmlReplacer.lastIndex += Number((char & 64512) === 55296);\n        }\n        else {\n            returnValue += input.substring(lastIndex, index) + next;\n            lastIndex = index + 1;\n        }\n    }\n    return returnValue + input.substr(lastIndex);\n}\n/**\n * Encodes all non-ASCII characters, as well as characters not valid in XML\n * documents using numeric hexadecimal reference (eg. `ü`).\n *\n * Have a look at `escapeUTF8` if you want a more concise output at the expense\n * of reduced transportability.\n *\n * @param data String to escape.\n */\nexport const escape = encodeXML;\n/**\n * Creates a function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n *\n * @param regex Regular expression to match characters to escape.\n * @param map Map of characters to escape to their entities.\n *\n * @returns Function that escapes all characters matched by the given regular\n * expression using the given map of characters to escape to their entities.\n */\nfunction getEscaper(regex, map) {\n    return function escape(data) {\n        let match;\n        let lastIndex = 0;\n        let result = \"\";\n        while ((match = regex.exec(data))) {\n            if (lastIndex !== match.index) {\n                result += data.substring(lastIndex, match.index);\n            }\n            // We know that this character will be in the map.\n            result += map.get(match[0].charCodeAt(0));\n            // Every match will be of length 1\n            lastIndex = match.index + 1;\n        }\n        return result + data.substring(lastIndex);\n    };\n}\n/**\n * Encodes all characters not valid in XML documents using XML entities.\n *\n * Note that the output will be character-set dependent.\n *\n * @param data String to escape.\n */\nexport const escapeUTF8 = /* #__PURE__ */ getEscaper(/[\"&'<>]/g, xmlCodeMap);\n/**\n * Encodes all characters that have to be escaped in HTML attributes,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeAttribute = \n/* #__PURE__ */ getEscaper(/[\"&\\u00A0]/g, new Map([\n    [34, \""\"],\n    [38, \"&\"],\n    [160, \" \"],\n]));\n/**\n * Encodes all characters that have to be escaped in HTML text,\n * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n *\n * @param data String to escape.\n */\nexport const escapeText = /* #__PURE__ */ getEscaper(/[&<>\\u00A0]/g, new Map([\n    [38, \"&\"],\n    [60, \"<\"],\n    [62, \">\"],\n    [160, \" \"],\n]));\n//# sourceMappingURL=escape.js.map","import { decodeXML, decodeHTML, DecodingMode } from \"./decode.js\";\nimport { encodeHTML, encodeNonAsciiHTML } from \"./encode.js\";\nimport { encodeXML, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\n/** The level of entities to support. */\nexport var EntityLevel;\n(function (EntityLevel) {\n    /** Support only XML entities. */\n    EntityLevel[EntityLevel[\"XML\"] = 0] = \"XML\";\n    /** Support HTML entities, which are a superset of XML entities. */\n    EntityLevel[EntityLevel[\"HTML\"] = 1] = \"HTML\";\n})(EntityLevel || (EntityLevel = {}));\nexport var EncodingMode;\n(function (EncodingMode) {\n    /**\n     * The output is UTF-8 encoded. Only characters that need escaping within\n     * XML will be escaped.\n     */\n    EncodingMode[EncodingMode[\"UTF8\"] = 0] = \"UTF8\";\n    /**\n     * The output consists only of ASCII characters. Characters that need\n     * escaping within HTML, and characters that aren't ASCII characters will\n     * be escaped.\n     */\n    EncodingMode[EncodingMode[\"ASCII\"] = 1] = \"ASCII\";\n    /**\n     * Encode all characters that have an equivalent entity, as well as all\n     * characters that are not ASCII characters.\n     */\n    EncodingMode[EncodingMode[\"Extensive\"] = 2] = \"Extensive\";\n    /**\n     * Encode all characters that have to be escaped in HTML attributes,\n     * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n     */\n    EncodingMode[EncodingMode[\"Attribute\"] = 3] = \"Attribute\";\n    /**\n     * Encode all characters that have to be escaped in HTML text,\n     * following {@link https://html.spec.whatwg.org/multipage/parsing.html#escapingString}.\n     */\n    EncodingMode[EncodingMode[\"Text\"] = 4] = \"Text\";\n})(EncodingMode || (EncodingMode = {}));\n/**\n * Decodes a string with entities.\n *\n * @param input String to decode.\n * @param options Decoding options.\n */\nexport function decode(input, options = EntityLevel.XML) {\n    const level = typeof options === \"number\" ? options : options.level;\n    if (level === EntityLevel.HTML) {\n        const mode = typeof options === \"object\" ? options.mode : undefined;\n        return decodeHTML(input, mode);\n    }\n    return decodeXML(input);\n}\n/**\n * Decodes a string with entities. Does not allow missing trailing semicolons for entities.\n *\n * @param input String to decode.\n * @param options Decoding options.\n * @deprecated Use `decode` with the `mode` set to `Strict`.\n */\nexport function decodeStrict(input, options = EntityLevel.XML) {\n    var _a;\n    const normalizedOptions = typeof options === \"number\" ? { level: options } : options;\n    (_a = normalizedOptions.mode) !== null && _a !== void 0 ? _a : (normalizedOptions.mode = DecodingMode.Strict);\n    return decode(input, normalizedOptions);\n}\n/**\n * Encodes a string with entities.\n *\n * @param input String to encode.\n * @param options Encoding options.\n */\nexport function encode(input, options = EntityLevel.XML) {\n    const { mode = EncodingMode.Extensive, level = EntityLevel.XML } = typeof options === \"number\" ? { level: options } : options;\n    switch (mode) {\n        case EncodingMode.UTF8: {\n            return escapeUTF8(input);\n        }\n        case EncodingMode.Attribute: {\n            return escapeAttribute(input);\n        }\n        case EncodingMode.Text: {\n            return escapeText(input);\n        }\n        case EncodingMode.ASCII: {\n            return level === EntityLevel.HTML\n                ? encodeNonAsciiHTML(input)\n                : encodeXML(input);\n        }\n        // eslint-disable-next-line unicorn/no-useless-switch-case\n        case EncodingMode.Extensive:\n        default: {\n            return level === EntityLevel.HTML\n                ? encodeHTML(input)\n                : encodeXML(input);\n        }\n    }\n}\nexport { encodeXML, escape, escapeUTF8, escapeAttribute, escapeText, } from \"./escape.js\";\nexport { encodeHTML, encodeNonAsciiHTML, \n// Legacy aliases (deprecated)\nencodeHTML as encodeHTML4, encodeHTML as encodeHTML5, } from \"./encode.js\";\nexport { EntityDecoder, DecodingMode, decodeXML, decodeHTML, decodeHTMLStrict, decodeHTMLAttribute, \n// Legacy aliases (deprecated)\ndecodeHTML as decodeHTML4, decodeHTML as decodeHTML5, decodeHTMLStrict as decodeHTML4Strict, decodeHTMLStrict as decodeHTML5Strict, decodeXML as decodeXMLStrict, } from \"./decode.js\";\n//# sourceMappingURL=index.js.map","const MAX_PATTERN_LENGTH = 1024 * 64;\nexport const assertValidPattern = (pattern) => {\n    if (typeof pattern !== 'string') {\n        throw new TypeError('invalid pattern');\n    }\n    if (pattern.length > MAX_PATTERN_LENGTH) {\n        throw new TypeError('pattern is too long');\n    }\n};\n//# sourceMappingURL=assert-valid-pattern.js.map","// parse a single path portion\nimport { parseClass } from './brace-expressions.js';\nimport { unescape } from './unescape.js';\nconst types = new Set(['!', '?', '+', '*', '@']);\nconst isExtglobType = (c) => types.has(c);\n// Patterns that get prepended to bind to the start of either the\n// entire string, or just a single path portion, to prevent dots\n// and/or traversal patterns, when needed.\n// Exts don't need the ^ or / bit, because the root binds that already.\nconst startNoTraversal = '(?!(?:^|/)\\\\.\\\\.?(?:$|/))';\nconst startNoDot = '(?!\\\\.)';\n// characters that indicate a start of pattern needs the \"no dots\" bit,\n// because a dot *might* be matched. ( is not in the list, because in\n// the case of a child extglob, it will handle the prevention itself.\nconst addPatternStart = new Set(['[', '.']);\n// cases where traversal is A-OK, no dot prevention needed\nconst justDots = new Set(['..', '.']);\nconst reSpecials = new Set('().*{}+?[]^$\\\\!');\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// any single thing other than /\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// use + when we need to ensure that *something* matches, because the * is\n// the only thing in the path portion.\nconst starNoEmpty = qmark + '+?';\n// remove the \\ chars that we added if we end up doing a nonmagic compare\n// const deslash = (s: string) => s.replace(/\\\\(.)/g, '$1')\nexport class AST {\n    type;\n    #root;\n    #hasMagic;\n    #uflag = false;\n    #parts = [];\n    #parent;\n    #parentIndex;\n    #negs;\n    #filledNegs = false;\n    #options;\n    #toString;\n    // set to true if it's an extglob with no children\n    // (which really means one child of '')\n    #emptyExt = false;\n    constructor(type, parent, options = {}) {\n        this.type = type;\n        // extglobs are inherently magical\n        if (type)\n            this.#hasMagic = true;\n        this.#parent = parent;\n        this.#root = this.#parent ? this.#parent.#root : this;\n        this.#options = this.#root === this ? options : this.#root.#options;\n        this.#negs = this.#root === this ? [] : this.#root.#negs;\n        if (type === '!' && !this.#root.#filledNegs)\n            this.#negs.push(this);\n        this.#parentIndex = this.#parent ? this.#parent.#parts.length : 0;\n    }\n    get hasMagic() {\n        /* c8 ignore start */\n        if (this.#hasMagic !== undefined)\n            return this.#hasMagic;\n        /* c8 ignore stop */\n        for (const p of this.#parts) {\n            if (typeof p === 'string')\n                continue;\n            if (p.type || p.hasMagic)\n                return (this.#hasMagic = true);\n        }\n        // note: will be undefined until we generate the regexp src and find out\n        return this.#hasMagic;\n    }\n    // reconstructs the pattern\n    toString() {\n        if (this.#toString !== undefined)\n            return this.#toString;\n        if (!this.type) {\n            return (this.#toString = this.#parts.map(p => String(p)).join(''));\n        }\n        else {\n            return (this.#toString =\n                this.type + '(' + this.#parts.map(p => String(p)).join('|') + ')');\n        }\n    }\n    #fillNegs() {\n        /* c8 ignore start */\n        if (this !== this.#root)\n            throw new Error('should only call on root');\n        if (this.#filledNegs)\n            return this;\n        /* c8 ignore stop */\n        // call toString() once to fill this out\n        this.toString();\n        this.#filledNegs = true;\n        let n;\n        while ((n = this.#negs.pop())) {\n            if (n.type !== '!')\n                continue;\n            // walk up the tree, appending everthing that comes AFTER parentIndex\n            let p = n;\n            let pp = p.#parent;\n            while (pp) {\n                for (let i = p.#parentIndex + 1; !pp.type && i < pp.#parts.length; i++) {\n                    for (const part of n.#parts) {\n                        /* c8 ignore start */\n                        if (typeof part === 'string') {\n                            throw new Error('string part in extglob AST??');\n                        }\n                        /* c8 ignore stop */\n                        part.copyIn(pp.#parts[i]);\n                    }\n                }\n                p = pp;\n                pp = p.#parent;\n            }\n        }\n        return this;\n    }\n    push(...parts) {\n        for (const p of parts) {\n            if (p === '')\n                continue;\n            /* c8 ignore start */\n            if (typeof p !== 'string' && !(p instanceof AST && p.#parent === this)) {\n                throw new Error('invalid part: ' + p);\n            }\n            /* c8 ignore stop */\n            this.#parts.push(p);\n        }\n    }\n    toJSON() {\n        const ret = this.type === null\n            ? this.#parts.slice().map(p => (typeof p === 'string' ? p : p.toJSON()))\n            : [this.type, ...this.#parts.map(p => p.toJSON())];\n        if (this.isStart() && !this.type)\n            ret.unshift([]);\n        if (this.isEnd() &&\n            (this === this.#root ||\n                (this.#root.#filledNegs && this.#parent?.type === '!'))) {\n            ret.push({});\n        }\n        return ret;\n    }\n    isStart() {\n        if (this.#root === this)\n            return true;\n        // if (this.type) return !!this.#parent?.isStart()\n        if (!this.#parent?.isStart())\n            return false;\n        if (this.#parentIndex === 0)\n            return true;\n        // if everything AHEAD of this is a negation, then it's still the \"start\"\n        const p = this.#parent;\n        for (let i = 0; i < this.#parentIndex; i++) {\n            const pp = p.#parts[i];\n            if (!(pp instanceof AST && pp.type === '!')) {\n                return false;\n            }\n        }\n        return true;\n    }\n    isEnd() {\n        if (this.#root === this)\n            return true;\n        if (this.#parent?.type === '!')\n            return true;\n        if (!this.#parent?.isEnd())\n            return false;\n        if (!this.type)\n            return this.#parent?.isEnd();\n        // if not root, it'll always have a parent\n        /* c8 ignore start */\n        const pl = this.#parent ? this.#parent.#parts.length : 0;\n        /* c8 ignore stop */\n        return this.#parentIndex === pl - 1;\n    }\n    copyIn(part) {\n        if (typeof part === 'string')\n            this.push(part);\n        else\n            this.push(part.clone(this));\n    }\n    clone(parent) {\n        const c = new AST(this.type, parent);\n        for (const p of this.#parts) {\n            c.copyIn(p);\n        }\n        return c;\n    }\n    static #parseAST(str, ast, pos, opt) {\n        let escaping = false;\n        let inBrace = false;\n        let braceStart = -1;\n        let braceNeg = false;\n        if (ast.type === null) {\n            // outside of a extglob, append until we find a start\n            let i = pos;\n            let acc = '';\n            while (i < str.length) {\n                const c = str.charAt(i++);\n                // still accumulate escapes at this point, but we do ignore\n                // starts that are escaped\n                if (escaping || c === '\\\\') {\n                    escaping = !escaping;\n                    acc += c;\n                    continue;\n                }\n                if (inBrace) {\n                    if (i === braceStart + 1) {\n                        if (c === '^' || c === '!') {\n                            braceNeg = true;\n                        }\n                    }\n                    else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n                        inBrace = false;\n                    }\n                    acc += c;\n                    continue;\n                }\n                else if (c === '[') {\n                    inBrace = true;\n                    braceStart = i;\n                    braceNeg = false;\n                    acc += c;\n                    continue;\n                }\n                if (!opt.noext && isExtglobType(c) && str.charAt(i) === '(') {\n                    ast.push(acc);\n                    acc = '';\n                    const ext = new AST(c, ast);\n                    i = AST.#parseAST(str, ext, i, opt);\n                    ast.push(ext);\n                    continue;\n                }\n                acc += c;\n            }\n            ast.push(acc);\n            return i;\n        }\n        // some kind of extglob, pos is at the (\n        // find the next | or )\n        let i = pos + 1;\n        let part = new AST(null, ast);\n        const parts = [];\n        let acc = '';\n        while (i < str.length) {\n            const c = str.charAt(i++);\n            // still accumulate escapes at this point, but we do ignore\n            // starts that are escaped\n            if (escaping || c === '\\\\') {\n                escaping = !escaping;\n                acc += c;\n                continue;\n            }\n            if (inBrace) {\n                if (i === braceStart + 1) {\n                    if (c === '^' || c === '!') {\n                        braceNeg = true;\n                    }\n                }\n                else if (c === ']' && !(i === braceStart + 2 && braceNeg)) {\n                    inBrace = false;\n                }\n                acc += c;\n                continue;\n            }\n            else if (c === '[') {\n                inBrace = true;\n                braceStart = i;\n                braceNeg = false;\n                acc += c;\n                continue;\n            }\n            if (isExtglobType(c) && str.charAt(i) === '(') {\n                part.push(acc);\n                acc = '';\n                const ext = new AST(c, part);\n                part.push(ext);\n                i = AST.#parseAST(str, ext, i, opt);\n                continue;\n            }\n            if (c === '|') {\n                part.push(acc);\n                acc = '';\n                parts.push(part);\n                part = new AST(null, ast);\n                continue;\n            }\n            if (c === ')') {\n                if (acc === '' && ast.#parts.length === 0) {\n                    ast.#emptyExt = true;\n                }\n                part.push(acc);\n                acc = '';\n                ast.push(...parts, part);\n                return i;\n            }\n            acc += c;\n        }\n        // unfinished extglob\n        // if we got here, it was a malformed extglob! not an extglob, but\n        // maybe something else in there.\n        ast.type = null;\n        ast.#hasMagic = undefined;\n        ast.#parts = [str.substring(pos - 1)];\n        return i;\n    }\n    static fromGlob(pattern, options = {}) {\n        const ast = new AST(null, undefined, options);\n        AST.#parseAST(pattern, ast, 0, options);\n        return ast;\n    }\n    // returns the regular expression if there's magic, or the unescaped\n    // string if not.\n    toMMPattern() {\n        // should only be called on root\n        /* c8 ignore start */\n        if (this !== this.#root)\n            return this.#root.toMMPattern();\n        /* c8 ignore stop */\n        const glob = this.toString();\n        const [re, body, hasMagic, uflag] = this.toRegExpSource();\n        // if we're in nocase mode, and not nocaseMagicOnly, then we do\n        // still need a regular expression if we have to case-insensitively\n        // match capital/lowercase characters.\n        const anyMagic = hasMagic ||\n            this.#hasMagic ||\n            (this.#options.nocase &&\n                !this.#options.nocaseMagicOnly &&\n                glob.toUpperCase() !== glob.toLowerCase());\n        if (!anyMagic) {\n            return body;\n        }\n        const flags = (this.#options.nocase ? 'i' : '') + (uflag ? 'u' : '');\n        return Object.assign(new RegExp(`^${re}$`, flags), {\n            _src: re,\n            _glob: glob,\n        });\n    }\n    get options() {\n        return this.#options;\n    }\n    // returns the string match, the regexp source, whether there's magic\n    // in the regexp (so a regular expression is required) and whether or\n    // not the uflag is needed for the regular expression (for posix classes)\n    // TODO: instead of injecting the start/end at this point, just return\n    // the BODY of the regexp, along with the start/end portions suitable\n    // for binding the start/end in either a joined full-path makeRe context\n    // (where we bind to (^|/), or a standalone matchPart context (where\n    // we bind to ^, and not /).  Otherwise slashes get duped!\n    //\n    // In part-matching mode, the start is:\n    // - if not isStart: nothing\n    // - if traversal possible, but not allowed: ^(?!\\.\\.?$)\n    // - if dots allowed or not possible: ^\n    // - if dots possible and not allowed: ^(?!\\.)\n    // end is:\n    // - if not isEnd(): nothing\n    // - else: $\n    //\n    // In full-path matching mode, we put the slash at the START of the\n    // pattern, so start is:\n    // - if first pattern: same as part-matching mode\n    // - if not isStart(): nothing\n    // - if traversal possible, but not allowed: /(?!\\.\\.?(?:$|/))\n    // - if dots allowed or not possible: /\n    // - if dots possible and not allowed: /(?!\\.)\n    // end is:\n    // - if last pattern, same as part-matching mode\n    // - else nothing\n    //\n    // Always put the (?:$|/) on negated tails, though, because that has to be\n    // there to bind the end of the negated pattern portion, and it's easier to\n    // just stick it in now rather than try to inject it later in the middle of\n    // the pattern.\n    //\n    // We can just always return the same end, and leave it up to the caller\n    // to know whether it's going to be used joined or in parts.\n    // And, if the start is adjusted slightly, can do the same there:\n    // - if not isStart: nothing\n    // - if traversal possible, but not allowed: (?:/|^)(?!\\.\\.?$)\n    // - if dots allowed or not possible: (?:/|^)\n    // - if dots possible and not allowed: (?:/|^)(?!\\.)\n    //\n    // But it's better to have a simpler binding without a conditional, for\n    // performance, so probably better to return both start options.\n    //\n    // Then the caller just ignores the end if it's not the first pattern,\n    // and the start always gets applied.\n    //\n    // But that's always going to be $ if it's the ending pattern, or nothing,\n    // so the caller can just attach $ at the end of the pattern when building.\n    //\n    // So the todo is:\n    // - better detect what kind of start is needed\n    // - return both flavors of starting pattern\n    // - attach $ at the end of the pattern when creating the actual RegExp\n    //\n    // Ah, but wait, no, that all only applies to the root when the first pattern\n    // is not an extglob. If the first pattern IS an extglob, then we need all\n    // that dot prevention biz to live in the extglob portions, because eg\n    // +(*|.x*) can match .xy but not .yx.\n    //\n    // So, return the two flavors if it's #root and the first child is not an\n    // AST, otherwise leave it to the child AST to handle it, and there,\n    // use the (?:^|/) style of start binding.\n    //\n    // Even simplified further:\n    // - Since the start for a join is eg /(?!\\.) and the start for a part\n    // is ^(?!\\.), we can just prepend (?!\\.) to the pattern (either root\n    // or start or whatever) and prepend ^ or / at the Regexp construction.\n    toRegExpSource(allowDot) {\n        const dot = allowDot ?? !!this.#options.dot;\n        if (this.#root === this)\n            this.#fillNegs();\n        if (!this.type) {\n            const noEmpty = this.isStart() && this.isEnd();\n            const src = this.#parts\n                .map(p => {\n                const [re, _, hasMagic, uflag] = typeof p === 'string'\n                    ? AST.#parseGlob(p, this.#hasMagic, noEmpty)\n                    : p.toRegExpSource(allowDot);\n                this.#hasMagic = this.#hasMagic || hasMagic;\n                this.#uflag = this.#uflag || uflag;\n                return re;\n            })\n                .join('');\n            let start = '';\n            if (this.isStart()) {\n                if (typeof this.#parts[0] === 'string') {\n                    // this is the string that will match the start of the pattern,\n                    // so we need to protect against dots and such.\n                    // '.' and '..' cannot match unless the pattern is that exactly,\n                    // even if it starts with . or dot:true is set.\n                    const dotTravAllowed = this.#parts.length === 1 && justDots.has(this.#parts[0]);\n                    if (!dotTravAllowed) {\n                        const aps = addPatternStart;\n                        // check if we have a possibility of matching . or ..,\n                        // and prevent that.\n                        const needNoTrav = \n                        // dots are allowed, and the pattern starts with [ or .\n                        (dot && aps.has(src.charAt(0))) ||\n                            // the pattern starts with \\., and then [ or .\n                            (src.startsWith('\\\\.') && aps.has(src.charAt(2))) ||\n                            // the pattern starts with \\.\\., and then [ or .\n                            (src.startsWith('\\\\.\\\\.') && aps.has(src.charAt(4)));\n                        // no need to prevent dots if it can't match a dot, or if a\n                        // sub-pattern will be preventing it anyway.\n                        const needNoDot = !dot && !allowDot && aps.has(src.charAt(0));\n                        start = needNoTrav ? startNoTraversal : needNoDot ? startNoDot : '';\n                    }\n                }\n            }\n            // append the \"end of path portion\" pattern to negation tails\n            let end = '';\n            if (this.isEnd() &&\n                this.#root.#filledNegs &&\n                this.#parent?.type === '!') {\n                end = '(?:$|\\\\/)';\n            }\n            const final = start + src + end;\n            return [\n                final,\n                unescape(src),\n                (this.#hasMagic = !!this.#hasMagic),\n                this.#uflag,\n            ];\n        }\n        // We need to calculate the body *twice* if it's a repeat pattern\n        // at the start, once in nodot mode, then again in dot mode, so a\n        // pattern like *(?) can match 'x.y'\n        const repeated = this.type === '*' || this.type === '+';\n        // some kind of extglob\n        const start = this.type === '!' ? '(?:(?!(?:' : '(?:';\n        let body = this.#partsToRegExp(dot);\n        if (this.isStart() && this.isEnd() && !body && this.type !== '!') {\n            // invalid extglob, has to at least be *something* present, if it's\n            // the entire path portion.\n            const s = this.toString();\n            this.#parts = [s];\n            this.type = null;\n            this.#hasMagic = undefined;\n            return [s, unescape(this.toString()), false, false];\n        }\n        // XXX abstract out this map method\n        let bodyDotAllowed = !repeated || allowDot || dot || !startNoDot\n            ? ''\n            : this.#partsToRegExp(true);\n        if (bodyDotAllowed === body) {\n            bodyDotAllowed = '';\n        }\n        if (bodyDotAllowed) {\n            body = `(?:${body})(?:${bodyDotAllowed})*?`;\n        }\n        // an empty !() is exactly equivalent to a starNoEmpty\n        let final = '';\n        if (this.type === '!' && this.#emptyExt) {\n            final = (this.isStart() && !dot ? startNoDot : '') + starNoEmpty;\n        }\n        else {\n            const close = this.type === '!'\n                ? // !() must match something,but !(x) can match ''\n                    '))' +\n                        (this.isStart() && !dot && !allowDot ? startNoDot : '') +\n                        star +\n                        ')'\n                : this.type === '@'\n                    ? ')'\n                    : this.type === '?'\n                        ? ')?'\n                        : this.type === '+' && bodyDotAllowed\n                            ? ')'\n                            : this.type === '*' && bodyDotAllowed\n                                ? `)?`\n                                : `)${this.type}`;\n            final = start + body + close;\n        }\n        return [\n            final,\n            unescape(body),\n            (this.#hasMagic = !!this.#hasMagic),\n            this.#uflag,\n        ];\n    }\n    #partsToRegExp(dot) {\n        return this.#parts\n            .map(p => {\n            // extglob ASTs should only contain parent ASTs\n            /* c8 ignore start */\n            if (typeof p === 'string') {\n                throw new Error('string type in extglob ast??');\n            }\n            /* c8 ignore stop */\n            // can ignore hasMagic, because extglobs are already always magic\n            const [re, _, _hasMagic, uflag] = p.toRegExpSource(dot);\n            this.#uflag = this.#uflag || uflag;\n            return re;\n        })\n            .filter(p => !(this.isStart() && this.isEnd()) || !!p)\n            .join('|');\n    }\n    static #parseGlob(glob, hasMagic, noEmpty = false) {\n        let escaping = false;\n        let re = '';\n        let uflag = false;\n        for (let i = 0; i < glob.length; i++) {\n            const c = glob.charAt(i);\n            if (escaping) {\n                escaping = false;\n                re += (reSpecials.has(c) ? '\\\\' : '') + c;\n                continue;\n            }\n            if (c === '\\\\') {\n                if (i === glob.length - 1) {\n                    re += '\\\\\\\\';\n                }\n                else {\n                    escaping = true;\n                }\n                continue;\n            }\n            if (c === '[') {\n                const [src, needUflag, consumed, magic] = parseClass(glob, i);\n                if (consumed) {\n                    re += src;\n                    uflag = uflag || needUflag;\n                    i += consumed - 1;\n                    hasMagic = hasMagic || magic;\n                    continue;\n                }\n            }\n            if (c === '*') {\n                if (noEmpty && glob === '*')\n                    re += starNoEmpty;\n                else\n                    re += star;\n                hasMagic = true;\n                continue;\n            }\n            if (c === '?') {\n                re += qmark;\n                hasMagic = true;\n                continue;\n            }\n            re += regExpEscape(c);\n        }\n        return [re, unescape(glob), !!hasMagic, uflag];\n    }\n}\n//# sourceMappingURL=ast.js.map","// translate the various posix character classes into unicode properties\n// this works across all unicode locales\n// { : [, /u flag required, negated]\nconst posixClasses = {\n    '[:alnum:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}', true],\n    '[:alpha:]': ['\\\\p{L}\\\\p{Nl}', true],\n    '[:ascii:]': ['\\\\x' + '00-\\\\x' + '7f', false],\n    '[:blank:]': ['\\\\p{Zs}\\\\t', true],\n    '[:cntrl:]': ['\\\\p{Cc}', true],\n    '[:digit:]': ['\\\\p{Nd}', true],\n    '[:graph:]': ['\\\\p{Z}\\\\p{C}', true, true],\n    '[:lower:]': ['\\\\p{Ll}', true],\n    '[:print:]': ['\\\\p{C}', true],\n    '[:punct:]': ['\\\\p{P}', true],\n    '[:space:]': ['\\\\p{Z}\\\\t\\\\r\\\\n\\\\v\\\\f', true],\n    '[:upper:]': ['\\\\p{Lu}', true],\n    '[:word:]': ['\\\\p{L}\\\\p{Nl}\\\\p{Nd}\\\\p{Pc}', true],\n    '[:xdigit:]': ['A-Fa-f0-9', false],\n};\n// only need to escape a few things inside of brace expressions\n// escapes: [ \\ ] -\nconst braceEscape = (s) => s.replace(/[[\\]\\\\-]/g, '\\\\$&');\n// escape all regexp magic characters\nconst regexpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\n// everything has already been escaped, we just have to join\nconst rangesToString = (ranges) => ranges.join('');\n// takes a glob string at a posix brace expression, and returns\n// an equivalent regular expression source, and boolean indicating\n// whether the /u flag needs to be applied, and the number of chars\n// consumed to parse the character class.\n// This also removes out of order ranges, and returns ($.) if the\n// entire class just no good.\nexport const parseClass = (glob, position) => {\n    const pos = position;\n    /* c8 ignore start */\n    if (glob.charAt(pos) !== '[') {\n        throw new Error('not in a brace expression');\n    }\n    /* c8 ignore stop */\n    const ranges = [];\n    const negs = [];\n    let i = pos + 1;\n    let sawStart = false;\n    let uflag = false;\n    let escaping = false;\n    let negate = false;\n    let endPos = pos;\n    let rangeStart = '';\n    WHILE: while (i < glob.length) {\n        const c = glob.charAt(i);\n        if ((c === '!' || c === '^') && i === pos + 1) {\n            negate = true;\n            i++;\n            continue;\n        }\n        if (c === ']' && sawStart && !escaping) {\n            endPos = i + 1;\n            break;\n        }\n        sawStart = true;\n        if (c === '\\\\') {\n            if (!escaping) {\n                escaping = true;\n                i++;\n                continue;\n            }\n            // escaped \\ char, fall through and treat like normal char\n        }\n        if (c === '[' && !escaping) {\n            // either a posix class, a collation equivalent, or just a [\n            for (const [cls, [unip, u, neg]] of Object.entries(posixClasses)) {\n                if (glob.startsWith(cls, i)) {\n                    // invalid, [a-[] is fine, but not [a-[:alpha]]\n                    if (rangeStart) {\n                        return ['$.', false, glob.length - pos, true];\n                    }\n                    i += cls.length;\n                    if (neg)\n                        negs.push(unip);\n                    else\n                        ranges.push(unip);\n                    uflag = uflag || u;\n                    continue WHILE;\n                }\n            }\n        }\n        // now it's just a normal character, effectively\n        escaping = false;\n        if (rangeStart) {\n            // throw this range away if it's not valid, but others\n            // can still match.\n            if (c > rangeStart) {\n                ranges.push(braceEscape(rangeStart) + '-' + braceEscape(c));\n            }\n            else if (c === rangeStart) {\n                ranges.push(braceEscape(c));\n            }\n            rangeStart = '';\n            i++;\n            continue;\n        }\n        // now might be the start of a range.\n        // can be either c-d or c-] or c] or c] at this point\n        if (glob.startsWith('-]', i + 1)) {\n            ranges.push(braceEscape(c + '-'));\n            i += 2;\n            continue;\n        }\n        if (glob.startsWith('-', i + 1)) {\n            rangeStart = c;\n            i += 2;\n            continue;\n        }\n        // not the start of a range, just a single character\n        ranges.push(braceEscape(c));\n        i++;\n    }\n    if (endPos < i) {\n        // didn't see the end of the class, not a valid class,\n        // but might still be valid as a literal match.\n        return ['', false, 0, false];\n    }\n    // if we got no ranges and no negates, then we have a range that\n    // cannot possibly match anything, and that poisons the whole glob\n    if (!ranges.length && !negs.length) {\n        return ['$.', false, glob.length - pos, true];\n    }\n    // if we got one positive range, and it's a single character, then that's\n    // not actually a magic pattern, it's just that one literal character.\n    // we should not treat that as \"magic\", we should just return the literal\n    // character. [_] is a perfectly valid way to escape glob magic chars.\n    if (negs.length === 0 &&\n        ranges.length === 1 &&\n        /^\\\\?.$/.test(ranges[0]) &&\n        !negate) {\n        const r = ranges[0].length === 2 ? ranges[0].slice(-1) : ranges[0];\n        return [regexpEscape(r), false, endPos - pos, false];\n    }\n    const sranges = '[' + (negate ? '^' : '') + rangesToString(ranges) + ']';\n    const snegs = '[' + (negate ? '' : '^') + rangesToString(negs) + ']';\n    const comb = ranges.length && negs.length\n        ? '(' + sranges + '|' + snegs + ')'\n        : ranges.length\n            ? sranges\n            : snegs;\n    return [comb, uflag, endPos - pos, true];\n};\n//# sourceMappingURL=brace-expressions.js.map","/**\n * Escape all magic characters in a glob pattern.\n *\n * If the {@link windowsPathsNoEscape | GlobOptions.windowsPathsNoEscape}\n * option is used, then characters are escaped by wrapping in `[]`, because\n * a magic character wrapped in a character class can only be satisfied by\n * that exact character.  In this mode, `\\` is _not_ escaped, because it is\n * not interpreted as a magic character, but instead as a path separator.\n */\nexport const escape = (s, { windowsPathsNoEscape = false, } = {}) => {\n    // don't need to escape +@! because we escape the parens\n    // that make those magic, and escaping ! as [!] isn't valid,\n    // because [!]] is a valid glob class meaning not ']'.\n    return windowsPathsNoEscape\n        ? s.replace(/[?*()[\\]]/g, '[$&]')\n        : s.replace(/[?*()[\\]\\\\]/g, '\\\\$&');\n};\n//# sourceMappingURL=escape.js.map","import expand from 'brace-expansion';\nimport { assertValidPattern } from './assert-valid-pattern.js';\nimport { AST } from './ast.js';\nimport { escape } from './escape.js';\nimport { unescape } from './unescape.js';\nexport const minimatch = (p, pattern, options = {}) => {\n    assertValidPattern(pattern);\n    // shortcut: comments match nothing.\n    if (!options.nocomment && pattern.charAt(0) === '#') {\n        return false;\n    }\n    return new Minimatch(pattern, options).match(p);\n};\n// Optimized checking for the most common glob patterns.\nconst starDotExtRE = /^\\*+([^+@!?\\*\\[\\(]*)$/;\nconst starDotExtTest = (ext) => (f) => !f.startsWith('.') && f.endsWith(ext);\nconst starDotExtTestDot = (ext) => (f) => f.endsWith(ext);\nconst starDotExtTestNocase = (ext) => {\n    ext = ext.toLowerCase();\n    return (f) => !f.startsWith('.') && f.toLowerCase().endsWith(ext);\n};\nconst starDotExtTestNocaseDot = (ext) => {\n    ext = ext.toLowerCase();\n    return (f) => f.toLowerCase().endsWith(ext);\n};\nconst starDotStarRE = /^\\*+\\.\\*+$/;\nconst starDotStarTest = (f) => !f.startsWith('.') && f.includes('.');\nconst starDotStarTestDot = (f) => f !== '.' && f !== '..' && f.includes('.');\nconst dotStarRE = /^\\.\\*+$/;\nconst dotStarTest = (f) => f !== '.' && f !== '..' && f.startsWith('.');\nconst starRE = /^\\*+$/;\nconst starTest = (f) => f.length !== 0 && !f.startsWith('.');\nconst starTestDot = (f) => f.length !== 0 && f !== '.' && f !== '..';\nconst qmarksRE = /^\\?+([^+@!?\\*\\[\\(]*)?$/;\nconst qmarksTestNocase = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExt([$0]);\n    if (!ext)\n        return noext;\n    ext = ext.toLowerCase();\n    return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestNocaseDot = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExtDot([$0]);\n    if (!ext)\n        return noext;\n    ext = ext.toLowerCase();\n    return (f) => noext(f) && f.toLowerCase().endsWith(ext);\n};\nconst qmarksTestDot = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExtDot([$0]);\n    return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTest = ([$0, ext = '']) => {\n    const noext = qmarksTestNoExt([$0]);\n    return !ext ? noext : (f) => noext(f) && f.endsWith(ext);\n};\nconst qmarksTestNoExt = ([$0]) => {\n    const len = $0.length;\n    return (f) => f.length === len && !f.startsWith('.');\n};\nconst qmarksTestNoExtDot = ([$0]) => {\n    const len = $0.length;\n    return (f) => f.length === len && f !== '.' && f !== '..';\n};\n/* c8 ignore start */\nconst defaultPlatform = (typeof process === 'object' && process\n    ? (typeof process.env === 'object' &&\n        process.env &&\n        process.env.__MINIMATCH_TESTING_PLATFORM__) ||\n        process.platform\n    : 'posix');\nconst path = {\n    win32: { sep: '\\\\' },\n    posix: { sep: '/' },\n};\n/* c8 ignore stop */\nexport const sep = defaultPlatform === 'win32' ? path.win32.sep : path.posix.sep;\nminimatch.sep = sep;\nexport const GLOBSTAR = Symbol('globstar **');\nminimatch.GLOBSTAR = GLOBSTAR;\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nconst qmark = '[^/]';\n// * => any number of characters\nconst star = qmark + '*?';\n// ** when dots are allowed.  Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nconst twoStarDot = '(?:(?!(?:\\\\/|^)(?:\\\\.{1,2})($|\\\\/)).)*?';\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nconst twoStarNoDot = '(?:(?!(?:\\\\/|^)\\\\.).)*?';\nexport const filter = (pattern, options = {}) => (p) => minimatch(p, pattern, options);\nminimatch.filter = filter;\nconst ext = (a, b = {}) => Object.assign({}, a, b);\nexport const defaults = (def) => {\n    if (!def || typeof def !== 'object' || !Object.keys(def).length) {\n        return minimatch;\n    }\n    const orig = minimatch;\n    const m = (p, pattern, options = {}) => orig(p, pattern, ext(def, options));\n    return Object.assign(m, {\n        Minimatch: class Minimatch extends orig.Minimatch {\n            constructor(pattern, options = {}) {\n                super(pattern, ext(def, options));\n            }\n            static defaults(options) {\n                return orig.defaults(ext(def, options)).Minimatch;\n            }\n        },\n        AST: class AST extends orig.AST {\n            /* c8 ignore start */\n            constructor(type, parent, options = {}) {\n                super(type, parent, ext(def, options));\n            }\n            /* c8 ignore stop */\n            static fromGlob(pattern, options = {}) {\n                return orig.AST.fromGlob(pattern, ext(def, options));\n            }\n        },\n        unescape: (s, options = {}) => orig.unescape(s, ext(def, options)),\n        escape: (s, options = {}) => orig.escape(s, ext(def, options)),\n        filter: (pattern, options = {}) => orig.filter(pattern, ext(def, options)),\n        defaults: (options) => orig.defaults(ext(def, options)),\n        makeRe: (pattern, options = {}) => orig.makeRe(pattern, ext(def, options)),\n        braceExpand: (pattern, options = {}) => orig.braceExpand(pattern, ext(def, options)),\n        match: (list, pattern, options = {}) => orig.match(list, pattern, ext(def, options)),\n        sep: orig.sep,\n        GLOBSTAR: GLOBSTAR,\n    });\n};\nminimatch.defaults = defaults;\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nexport const braceExpand = (pattern, options = {}) => {\n    assertValidPattern(pattern);\n    // Thanks to Yeting Li  for\n    // improving this regexp to avoid a ReDOS vulnerability.\n    if (options.nobrace || !/\\{(?:(?!\\{).)*\\}/.test(pattern)) {\n        // shortcut. no need to expand.\n        return [pattern];\n    }\n    return expand(pattern);\n};\nminimatch.braceExpand = braceExpand;\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion.  Otherwise, any series\n// of * is equivalent to a single *.  Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nexport const makeRe = (pattern, options = {}) => new Minimatch(pattern, options).makeRe();\nminimatch.makeRe = makeRe;\nexport const match = (list, pattern, options = {}) => {\n    const mm = new Minimatch(pattern, options);\n    list = list.filter(f => mm.match(f));\n    if (mm.options.nonull && !list.length) {\n        list.push(pattern);\n    }\n    return list;\n};\nminimatch.match = match;\n// replace stuff like \\* with *\nconst globMagic = /[?*]|[+@!]\\(.*?\\)|\\[|\\]/;\nconst regExpEscape = (s) => s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&');\nexport class Minimatch {\n    options;\n    set;\n    pattern;\n    windowsPathsNoEscape;\n    nonegate;\n    negate;\n    comment;\n    empty;\n    preserveMultipleSlashes;\n    partial;\n    globSet;\n    globParts;\n    nocase;\n    isWindows;\n    platform;\n    windowsNoMagicRoot;\n    regexp;\n    constructor(pattern, options = {}) {\n        assertValidPattern(pattern);\n        options = options || {};\n        this.options = options;\n        this.pattern = pattern;\n        this.platform = options.platform || defaultPlatform;\n        this.isWindows = this.platform === 'win32';\n        this.windowsPathsNoEscape =\n            !!options.windowsPathsNoEscape || options.allowWindowsEscape === false;\n        if (this.windowsPathsNoEscape) {\n            this.pattern = this.pattern.replace(/\\\\/g, '/');\n        }\n        this.preserveMultipleSlashes = !!options.preserveMultipleSlashes;\n        this.regexp = null;\n        this.negate = false;\n        this.nonegate = !!options.nonegate;\n        this.comment = false;\n        this.empty = false;\n        this.partial = !!options.partial;\n        this.nocase = !!this.options.nocase;\n        this.windowsNoMagicRoot =\n            options.windowsNoMagicRoot !== undefined\n                ? options.windowsNoMagicRoot\n                : !!(this.isWindows && this.nocase);\n        this.globSet = [];\n        this.globParts = [];\n        this.set = [];\n        // make the set of regexps etc.\n        this.make();\n    }\n    hasMagic() {\n        if (this.options.magicalBraces && this.set.length > 1) {\n            return true;\n        }\n        for (const pattern of this.set) {\n            for (const part of pattern) {\n                if (typeof part !== 'string')\n                    return true;\n            }\n        }\n        return false;\n    }\n    debug(..._) { }\n    make() {\n        const pattern = this.pattern;\n        const options = this.options;\n        // empty patterns and comments match nothing.\n        if (!options.nocomment && pattern.charAt(0) === '#') {\n            this.comment = true;\n            return;\n        }\n        if (!pattern) {\n            this.empty = true;\n            return;\n        }\n        // step 1: figure out negation, etc.\n        this.parseNegate();\n        // step 2: expand braces\n        this.globSet = [...new Set(this.braceExpand())];\n        if (options.debug) {\n            this.debug = (...args) => console.error(...args);\n        }\n        this.debug(this.pattern, this.globSet);\n        // step 3: now we have a set, so turn each one into a series of\n        // path-portion matching patterns.\n        // These will be regexps, except in the case of \"**\", which is\n        // set to the GLOBSTAR object for globstar behavior,\n        // and will not contain any / characters\n        //\n        // First, we preprocess to make the glob pattern sets a bit simpler\n        // and deduped.  There are some perf-killing patterns that can cause\n        // problems with a glob walk, but we can simplify them down a bit.\n        const rawGlobParts = this.globSet.map(s => this.slashSplit(s));\n        this.globParts = this.preprocess(rawGlobParts);\n        this.debug(this.pattern, this.globParts);\n        // glob --> regexps\n        let set = this.globParts.map((s, _, __) => {\n            if (this.isWindows && this.windowsNoMagicRoot) {\n                // check if it's a drive or unc path.\n                const isUNC = s[0] === '' &&\n                    s[1] === '' &&\n                    (s[2] === '?' || !globMagic.test(s[2])) &&\n                    !globMagic.test(s[3]);\n                const isDrive = /^[a-z]:/i.test(s[0]);\n                if (isUNC) {\n                    return [...s.slice(0, 4), ...s.slice(4).map(ss => this.parse(ss))];\n                }\n                else if (isDrive) {\n                    return [s[0], ...s.slice(1).map(ss => this.parse(ss))];\n                }\n            }\n            return s.map(ss => this.parse(ss));\n        });\n        this.debug(this.pattern, set);\n        // filter out everything that didn't compile properly.\n        this.set = set.filter(s => s.indexOf(false) === -1);\n        // do not treat the ? in UNC paths as magic\n        if (this.isWindows) {\n            for (let i = 0; i < this.set.length; i++) {\n                const p = this.set[i];\n                if (p[0] === '' &&\n                    p[1] === '' &&\n                    this.globParts[i][2] === '?' &&\n                    typeof p[3] === 'string' &&\n                    /^[a-z]:$/i.test(p[3])) {\n                    p[2] = '?';\n                }\n            }\n        }\n        this.debug(this.pattern, this.set);\n    }\n    // various transforms to equivalent pattern sets that are\n    // faster to process in a filesystem walk.  The goal is to\n    // eliminate what we can, and push all ** patterns as far\n    // to the right as possible, even if it increases the number\n    // of patterns that we have to process.\n    preprocess(globParts) {\n        // if we're not in globstar mode, then turn all ** into *\n        if (this.options.noglobstar) {\n            for (let i = 0; i < globParts.length; i++) {\n                for (let j = 0; j < globParts[i].length; j++) {\n                    if (globParts[i][j] === '**') {\n                        globParts[i][j] = '*';\n                    }\n                }\n            }\n        }\n        const { optimizationLevel = 1 } = this.options;\n        if (optimizationLevel >= 2) {\n            // aggressive optimization for the purpose of fs walking\n            globParts = this.firstPhasePreProcess(globParts);\n            globParts = this.secondPhasePreProcess(globParts);\n        }\n        else if (optimizationLevel >= 1) {\n            // just basic optimizations to remove some .. parts\n            globParts = this.levelOneOptimize(globParts);\n        }\n        else {\n            // just collapse multiple ** portions into one\n            globParts = this.adjascentGlobstarOptimize(globParts);\n        }\n        return globParts;\n    }\n    // just get rid of adjascent ** portions\n    adjascentGlobstarOptimize(globParts) {\n        return globParts.map(parts => {\n            let gs = -1;\n            while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n                let i = gs;\n                while (parts[i + 1] === '**') {\n                    i++;\n                }\n                if (i !== gs) {\n                    parts.splice(gs, i - gs);\n                }\n            }\n            return parts;\n        });\n    }\n    // get rid of adjascent ** and resolve .. portions\n    levelOneOptimize(globParts) {\n        return globParts.map(parts => {\n            parts = parts.reduce((set, part) => {\n                const prev = set[set.length - 1];\n                if (part === '**' && prev === '**') {\n                    return set;\n                }\n                if (part === '..') {\n                    if (prev && prev !== '..' && prev !== '.' && prev !== '**') {\n                        set.pop();\n                        return set;\n                    }\n                }\n                set.push(part);\n                return set;\n            }, []);\n            return parts.length === 0 ? [''] : parts;\n        });\n    }\n    levelTwoFileOptimize(parts) {\n        if (!Array.isArray(parts)) {\n            parts = this.slashSplit(parts);\n        }\n        let didSomething = false;\n        do {\n            didSomething = false;\n            // 
// -> 
/\n            if (!this.preserveMultipleSlashes) {\n                for (let i = 1; i < parts.length - 1; i++) {\n                    const p = parts[i];\n                    // don't squeeze out UNC patterns\n                    if (i === 1 && p === '' && parts[0] === '')\n                        continue;\n                    if (p === '.' || p === '') {\n                        didSomething = true;\n                        parts.splice(i, 1);\n                        i--;\n                    }\n                }\n                if (parts[0] === '.' &&\n                    parts.length === 2 &&\n                    (parts[1] === '.' || parts[1] === '')) {\n                    didSomething = true;\n                    parts.pop();\n                }\n            }\n            // 
/

/../ ->

/\n            let dd = 0;\n            while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                const p = parts[dd - 1];\n                if (p && p !== '.' && p !== '..' && p !== '**') {\n                    didSomething = true;\n                    parts.splice(dd - 1, 2);\n                    dd -= 2;\n                }\n            }\n        } while (didSomething);\n        return parts.length === 0 ? [''] : parts;\n    }\n    // First phase: single-pattern processing\n    // 
 is 1 or more portions\n    //  is 1 or more portions\n    // 

is any portion other than ., .., '', or **\n // is . or ''\n //\n // **/.. is *brutal* for filesystem walking performance, because\n // it effectively resets the recursive walk each time it occurs,\n // and ** cannot be reduced out by a .. pattern part like a regexp\n // or most strings (other than .., ., and '') can be.\n //\n //

/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n //

// -> 
/\n    // 
/

/../ ->

/\n    // **/**/ -> **/\n    //\n    // **/*/ -> */**/ <== not valid because ** doesn't follow\n    // this WOULD be allowed if ** did follow symlinks, or * didn't\n    firstPhasePreProcess(globParts) {\n        let didSomething = false;\n        do {\n            didSomething = false;\n            // 
/**/../

/

/ -> {

/../

/

/,

/**/

/

/}\n for (let parts of globParts) {\n let gs = -1;\n while (-1 !== (gs = parts.indexOf('**', gs + 1))) {\n let gss = gs;\n while (parts[gss + 1] === '**') {\n //

/**/**/ -> 
/**/\n                        gss++;\n                    }\n                    // eg, if gs is 2 and gss is 4, that means we have 3 **\n                    // parts, and can remove 2 of them.\n                    if (gss > gs) {\n                        parts.splice(gs + 1, gss - gs);\n                    }\n                    let next = parts[gs + 1];\n                    const p = parts[gs + 2];\n                    const p2 = parts[gs + 3];\n                    if (next !== '..')\n                        continue;\n                    if (!p ||\n                        p === '.' ||\n                        p === '..' ||\n                        !p2 ||\n                        p2 === '.' ||\n                        p2 === '..') {\n                        continue;\n                    }\n                    didSomething = true;\n                    // edit parts in place, and push the new one\n                    parts.splice(gs, 1);\n                    const other = parts.slice(0);\n                    other[gs] = '**';\n                    globParts.push(other);\n                    gs--;\n                }\n                // 
// -> 
/\n                if (!this.preserveMultipleSlashes) {\n                    for (let i = 1; i < parts.length - 1; i++) {\n                        const p = parts[i];\n                        // don't squeeze out UNC patterns\n                        if (i === 1 && p === '' && parts[0] === '')\n                            continue;\n                        if (p === '.' || p === '') {\n                            didSomething = true;\n                            parts.splice(i, 1);\n                            i--;\n                        }\n                    }\n                    if (parts[0] === '.' &&\n                        parts.length === 2 &&\n                        (parts[1] === '.' || parts[1] === '')) {\n                        didSomething = true;\n                        parts.pop();\n                    }\n                }\n                // 
/

/../ ->

/\n                let dd = 0;\n                while (-1 !== (dd = parts.indexOf('..', dd + 1))) {\n                    const p = parts[dd - 1];\n                    if (p && p !== '.' && p !== '..' && p !== '**') {\n                        didSomething = true;\n                        const needDot = dd === 1 && parts[dd + 1] === '**';\n                        const splin = needDot ? ['.'] : [];\n                        parts.splice(dd - 1, 2, ...splin);\n                        if (parts.length === 0)\n                            parts.push('');\n                        dd -= 2;\n                    }\n                }\n            }\n        } while (didSomething);\n        return globParts;\n    }\n    // second phase: multi-pattern dedupes\n    // {
/*/,
/

/} ->

/*/\n    // {
/,
/} -> 
/\n    // {
/**/,
/} -> 
/**/\n    //\n    // {
/**/,
/**/

/} ->

/**/\n    // ^-- not valid because ** doens't follow symlinks\n    secondPhasePreProcess(globParts) {\n        for (let i = 0; i < globParts.length - 1; i++) {\n            for (let j = i + 1; j < globParts.length; j++) {\n                const matched = this.partsMatch(globParts[i], globParts[j], !this.preserveMultipleSlashes);\n                if (matched) {\n                    globParts[i] = [];\n                    globParts[j] = matched;\n                    break;\n                }\n            }\n        }\n        return globParts.filter(gs => gs.length);\n    }\n    partsMatch(a, b, emptyGSMatch = false) {\n        let ai = 0;\n        let bi = 0;\n        let result = [];\n        let which = '';\n        while (ai < a.length && bi < b.length) {\n            if (a[ai] === b[bi]) {\n                result.push(which === 'b' ? b[bi] : a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (emptyGSMatch && a[ai] === '**' && b[bi] === a[ai + 1]) {\n                result.push(a[ai]);\n                ai++;\n            }\n            else if (emptyGSMatch && b[bi] === '**' && a[ai] === b[bi + 1]) {\n                result.push(b[bi]);\n                bi++;\n            }\n            else if (a[ai] === '*' &&\n                b[bi] &&\n                (this.options.dot || !b[bi].startsWith('.')) &&\n                b[bi] !== '**') {\n                if (which === 'b')\n                    return false;\n                which = 'a';\n                result.push(a[ai]);\n                ai++;\n                bi++;\n            }\n            else if (b[bi] === '*' &&\n                a[ai] &&\n                (this.options.dot || !a[ai].startsWith('.')) &&\n                a[ai] !== '**') {\n                if (which === 'a')\n                    return false;\n                which = 'b';\n                result.push(b[bi]);\n                ai++;\n                bi++;\n            }\n            else {\n                return false;\n            }\n        }\n        // if we fall out of the loop, it means they two are identical\n        // as long as their lengths match\n        return a.length === b.length && result;\n    }\n    parseNegate() {\n        if (this.nonegate)\n            return;\n        const pattern = this.pattern;\n        let negate = false;\n        let negateOffset = 0;\n        for (let i = 0; i < pattern.length && pattern.charAt(i) === '!'; i++) {\n            negate = !negate;\n            negateOffset++;\n        }\n        if (negateOffset)\n            this.pattern = pattern.slice(negateOffset);\n        this.negate = negate;\n    }\n    // set partial to true to test if, for example,\n    // \"/a/b\" matches the start of \"/*/b/*/d\"\n    // Partial means, if you run out of file before you run\n    // out of pattern, then that's fine, as long as all\n    // the parts match.\n    matchOne(file, pattern, partial = false) {\n        const options = this.options;\n        // UNC paths like //?/X:/... can match X:/... and vice versa\n        // Drive letters in absolute drive or unc paths are always compared\n        // case-insensitively.\n        if (this.isWindows) {\n            const fileDrive = typeof file[0] === 'string' && /^[a-z]:$/i.test(file[0]);\n            const fileUNC = !fileDrive &&\n                file[0] === '' &&\n                file[1] === '' &&\n                file[2] === '?' &&\n                /^[a-z]:$/i.test(file[3]);\n            const patternDrive = typeof pattern[0] === 'string' && /^[a-z]:$/i.test(pattern[0]);\n            const patternUNC = !patternDrive &&\n                pattern[0] === '' &&\n                pattern[1] === '' &&\n                pattern[2] === '?' &&\n                typeof pattern[3] === 'string' &&\n                /^[a-z]:$/i.test(pattern[3]);\n            const fdi = fileUNC ? 3 : fileDrive ? 0 : undefined;\n            const pdi = patternUNC ? 3 : patternDrive ? 0 : undefined;\n            if (typeof fdi === 'number' && typeof pdi === 'number') {\n                const [fd, pd] = [file[fdi], pattern[pdi]];\n                if (fd.toLowerCase() === pd.toLowerCase()) {\n                    pattern[pdi] = fd;\n                    if (pdi > fdi) {\n                        pattern = pattern.slice(pdi);\n                    }\n                    else if (fdi > pdi) {\n                        file = file.slice(fdi);\n                    }\n                }\n            }\n        }\n        // resolve and reduce . and .. portions in the file as well.\n        // dont' need to do the second phase, because it's only one string[]\n        const { optimizationLevel = 1 } = this.options;\n        if (optimizationLevel >= 2) {\n            file = this.levelTwoFileOptimize(file);\n        }\n        this.debug('matchOne', this, { file, pattern });\n        this.debug('matchOne', file.length, pattern.length);\n        for (var fi = 0, pi = 0, fl = file.length, pl = pattern.length; fi < fl && pi < pl; fi++, pi++) {\n            this.debug('matchOne loop');\n            var p = pattern[pi];\n            var f = file[fi];\n            this.debug(pattern, p, f);\n            // should be impossible.\n            // some invalid regexp stuff in the set.\n            /* c8 ignore start */\n            if (p === false) {\n                return false;\n            }\n            /* c8 ignore stop */\n            if (p === GLOBSTAR) {\n                this.debug('GLOBSTAR', [pattern, p, f]);\n                // \"**\"\n                // a/**/b/**/c would match the following:\n                // a/b/x/y/z/c\n                // a/x/y/z/b/c\n                // a/b/x/b/x/c\n                // a/b/c\n                // To do this, take the rest of the pattern after\n                // the **, and see if it would match the file remainder.\n                // If so, return success.\n                // If not, the ** \"swallows\" a segment, and try again.\n                // This is recursively awful.\n                //\n                // a/**/b/**/c matching a/b/x/y/z/c\n                // - a matches a\n                // - doublestar\n                //   - matchOne(b/x/y/z/c, b/**/c)\n                //     - b matches b\n                //     - doublestar\n                //       - matchOne(x/y/z/c, c) -> no\n                //       - matchOne(y/z/c, c) -> no\n                //       - matchOne(z/c, c) -> no\n                //       - matchOne(c, c) yes, hit\n                var fr = fi;\n                var pr = pi + 1;\n                if (pr === pl) {\n                    this.debug('** at the end');\n                    // a ** at the end will just swallow the rest.\n                    // We have found a match.\n                    // however, it will not swallow /.x, unless\n                    // options.dot is set.\n                    // . and .. are *never* matched by **, for explosively\n                    // exponential reasons.\n                    for (; fi < fl; fi++) {\n                        if (file[fi] === '.' ||\n                            file[fi] === '..' ||\n                            (!options.dot && file[fi].charAt(0) === '.'))\n                            return false;\n                    }\n                    return true;\n                }\n                // ok, let's see if we can swallow whatever we can.\n                while (fr < fl) {\n                    var swallowee = file[fr];\n                    this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee);\n                    // XXX remove this slice.  Just pass the start index.\n                    if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n                        this.debug('globstar found match!', fr, fl, swallowee);\n                        // found a match.\n                        return true;\n                    }\n                    else {\n                        // can't swallow \".\" or \"..\" ever.\n                        // can only swallow \".foo\" when explicitly asked.\n                        if (swallowee === '.' ||\n                            swallowee === '..' ||\n                            (!options.dot && swallowee.charAt(0) === '.')) {\n                            this.debug('dot detected!', file, fr, pattern, pr);\n                            break;\n                        }\n                        // ** swallows a segment, and continue.\n                        this.debug('globstar swallow a segment, and continue');\n                        fr++;\n                    }\n                }\n                // no match was found.\n                // However, in partial mode, we can't say this is necessarily over.\n                /* c8 ignore start */\n                if (partial) {\n                    // ran out of file\n                    this.debug('\\n>>> no match, partial?', file, fr, pattern, pr);\n                    if (fr === fl) {\n                        return true;\n                    }\n                }\n                /* c8 ignore stop */\n                return false;\n            }\n            // something other than **\n            // non-magic patterns just have to match exactly\n            // patterns with magic have been turned into regexps.\n            let hit;\n            if (typeof p === 'string') {\n                hit = f === p;\n                this.debug('string match', p, f, hit);\n            }\n            else {\n                hit = p.test(f);\n                this.debug('pattern match', p, f, hit);\n            }\n            if (!hit)\n                return false;\n        }\n        // Note: ending in / means that we'll get a final \"\"\n        // at the end of the pattern.  This can only match a\n        // corresponding \"\" at the end of the file.\n        // If the file ends in /, then it can only match a\n        // a pattern that ends in /, unless the pattern just\n        // doesn't have any more for it. But, a/b/ should *not*\n        // match \"a/b/*\", even though \"\" matches against the\n        // [^/]*? pattern, except in partial mode, where it might\n        // simply not be reached yet.\n        // However, a/b/ should still satisfy a/*\n        // now either we fell off the end of the pattern, or we're done.\n        if (fi === fl && pi === pl) {\n            // ran out of pattern and filename at the same time.\n            // an exact hit!\n            return true;\n        }\n        else if (fi === fl) {\n            // ran out of file, but still had pattern left.\n            // this is ok if we're doing the match as part of\n            // a glob fs traversal.\n            return partial;\n        }\n        else if (pi === pl) {\n            // ran out of pattern, still have file left.\n            // this is only acceptable if we're on the very last\n            // empty segment of a file with a trailing slash.\n            // a/* should match a/b/\n            return fi === fl - 1 && file[fi] === '';\n            /* c8 ignore start */\n        }\n        else {\n            // should be unreachable.\n            throw new Error('wtf?');\n        }\n        /* c8 ignore stop */\n    }\n    braceExpand() {\n        return braceExpand(this.pattern, this.options);\n    }\n    parse(pattern) {\n        assertValidPattern(pattern);\n        const options = this.options;\n        // shortcuts\n        if (pattern === '**')\n            return GLOBSTAR;\n        if (pattern === '')\n            return '';\n        // far and away, the most common glob pattern parts are\n        // *, *.*, and *.  Add a fast check method for those.\n        let m;\n        let fastTest = null;\n        if ((m = pattern.match(starRE))) {\n            fastTest = options.dot ? starTestDot : starTest;\n        }\n        else if ((m = pattern.match(starDotExtRE))) {\n            fastTest = (options.nocase\n                ? options.dot\n                    ? starDotExtTestNocaseDot\n                    : starDotExtTestNocase\n                : options.dot\n                    ? starDotExtTestDot\n                    : starDotExtTest)(m[1]);\n        }\n        else if ((m = pattern.match(qmarksRE))) {\n            fastTest = (options.nocase\n                ? options.dot\n                    ? qmarksTestNocaseDot\n                    : qmarksTestNocase\n                : options.dot\n                    ? qmarksTestDot\n                    : qmarksTest)(m);\n        }\n        else if ((m = pattern.match(starDotStarRE))) {\n            fastTest = options.dot ? starDotStarTestDot : starDotStarTest;\n        }\n        else if ((m = pattern.match(dotStarRE))) {\n            fastTest = dotStarTest;\n        }\n        const re = AST.fromGlob(pattern, this.options).toMMPattern();\n        if (fastTest && typeof re === 'object') {\n            // Avoids overriding in frozen environments\n            Reflect.defineProperty(re, 'test', { value: fastTest });\n        }\n        return re;\n    }\n    makeRe() {\n        if (this.regexp || this.regexp === false)\n            return this.regexp;\n        // at this point, this.set is a 2d array of partial\n        // pattern strings, or \"**\".\n        //\n        // It's better to use .match().  This function shouldn't\n        // be used, really, but it's pretty convenient sometimes,\n        // when you just want to work with a regex.\n        const set = this.set;\n        if (!set.length) {\n            this.regexp = false;\n            return this.regexp;\n        }\n        const options = this.options;\n        const twoStar = options.noglobstar\n            ? star\n            : options.dot\n                ? twoStarDot\n                : twoStarNoDot;\n        const flags = new Set(options.nocase ? ['i'] : []);\n        // regexpify non-globstar patterns\n        // if ** is only item, then we just do one twoStar\n        // if ** is first, and there are more, prepend (\\/|twoStar\\/)? to next\n        // if ** is last, append (\\/twoStar|) to previous\n        // if ** is in the middle, append (\\/|\\/twoStar\\/) to previous\n        // then filter out GLOBSTAR symbols\n        let re = set\n            .map(pattern => {\n            const pp = pattern.map(p => {\n                if (p instanceof RegExp) {\n                    for (const f of p.flags.split(''))\n                        flags.add(f);\n                }\n                return typeof p === 'string'\n                    ? regExpEscape(p)\n                    : p === GLOBSTAR\n                        ? GLOBSTAR\n                        : p._src;\n            });\n            pp.forEach((p, i) => {\n                const next = pp[i + 1];\n                const prev = pp[i - 1];\n                if (p !== GLOBSTAR || prev === GLOBSTAR) {\n                    return;\n                }\n                if (prev === undefined) {\n                    if (next !== undefined && next !== GLOBSTAR) {\n                        pp[i + 1] = '(?:\\\\/|' + twoStar + '\\\\/)?' + next;\n                    }\n                    else {\n                        pp[i] = twoStar;\n                    }\n                }\n                else if (next === undefined) {\n                    pp[i - 1] = prev + '(?:\\\\/|' + twoStar + ')?';\n                }\n                else if (next !== GLOBSTAR) {\n                    pp[i - 1] = prev + '(?:\\\\/|\\\\/' + twoStar + '\\\\/)' + next;\n                    pp[i + 1] = GLOBSTAR;\n                }\n            });\n            return pp.filter(p => p !== GLOBSTAR).join('/');\n        })\n            .join('|');\n        // need to wrap in parens if we had more than one thing with |,\n        // otherwise only the first will be anchored to ^ and the last to $\n        const [open, close] = set.length > 1 ? ['(?:', ')'] : ['', ''];\n        // must match entire pattern\n        // ending in a * or ** will make it less strict.\n        re = '^' + open + re + close + '$';\n        // can match anything, as long as it's not this.\n        if (this.negate)\n            re = '^(?!' + re + ').+$';\n        try {\n            this.regexp = new RegExp(re, [...flags].join(''));\n            /* c8 ignore start */\n        }\n        catch (ex) {\n            // should be impossible\n            this.regexp = false;\n        }\n        /* c8 ignore stop */\n        return this.regexp;\n    }\n    slashSplit(p) {\n        // if p starts with // on windows, we preserve that\n        // so that UNC paths aren't broken.  Otherwise, any number of\n        // / characters are coalesced into one, unless\n        // preserveMultipleSlashes is set to true.\n        if (this.preserveMultipleSlashes) {\n            return p.split('/');\n        }\n        else if (this.isWindows && /^\\/\\/[^\\/]+/.test(p)) {\n            // add an extra '' for the one we lose\n            return ['', ...p.split(/\\/+/)];\n        }\n        else {\n            return p.split(/\\/+/);\n        }\n    }\n    match(f, partial = this.partial) {\n        this.debug('match', f, this.pattern);\n        // short-circuit in the case of busted things.\n        // comments, etc.\n        if (this.comment) {\n            return false;\n        }\n        if (this.empty) {\n            return f === '';\n        }\n        if (f === '/' && partial) {\n            return true;\n        }\n        const options = this.options;\n        // windows: need to use /, not \\\n        if (this.isWindows) {\n            f = f.split('\\\\').join('/');\n        }\n        // treat the test path as a set of pathparts.\n        const ff = this.slashSplit(f);\n        this.debug(this.pattern, 'split', ff);\n        // just ONE of the pattern sets in this.set needs to match\n        // in order for it to be valid.  If negating, then just one\n        // match means that we have failed.\n        // Either way, return on the first hit.\n        const set = this.set;\n        this.debug(this.pattern, 'set', set);\n        // Find the basename of the path by looking for the last non-empty segment\n        let filename = ff[ff.length - 1];\n        if (!filename) {\n            for (let i = ff.length - 2; !filename && i >= 0; i--) {\n                filename = ff[i];\n            }\n        }\n        for (let i = 0; i < set.length; i++) {\n            const pattern = set[i];\n            let file = ff;\n            if (options.matchBase && pattern.length === 1) {\n                file = [filename];\n            }\n            const hit = this.matchOne(file, pattern, partial);\n            if (hit) {\n                if (options.flipNegate) {\n                    return true;\n                }\n                return !this.negate;\n            }\n        }\n        // didn't get any hits.  this is success if it's a negative\n        // pattern, failure otherwise.\n        if (options.flipNegate) {\n            return false;\n        }\n        return this.negate;\n    }\n    static defaults(def) {\n        return minimatch.defaults(def).Minimatch;\n    }\n}\n/* c8 ignore start */\nexport { AST } from './ast.js';\nexport { escape } from './escape.js';\nexport { unescape } from './unescape.js';\n/* c8 ignore stop */\nminimatch.AST = AST;\nminimatch.Minimatch = Minimatch;\nminimatch.escape = escape;\nminimatch.unescape = unescape;\n//# sourceMappingURL=index.js.map","/**\n * Un-escape a string that has been escaped with {@link escape}.\n *\n * If the {@link windowsPathsNoEscape} option is used, then square-brace\n * escapes are removed, but not backslash escapes.  For example, it will turn\n * the string `'[*]'` into `*`, but it will not turn `'\\\\*'` into `'*'`,\n * becuase `\\` is a path separator in `windowsPathsNoEscape` mode.\n *\n * When `windowsPathsNoEscape` is not set, then both brace escapes and\n * backslash escapes are removed.\n *\n * Slashes (and backslashes in `windowsPathsNoEscape` mode) cannot be escaped\n * or unescaped.\n */\nexport const unescape = (s, { windowsPathsNoEscape = false, } = {}) => {\n    return windowsPathsNoEscape\n        ? s.replace(/\\[([^\\/\\\\])\\]/g, '$1')\n        : s.replace(/((?!\\\\).|^)\\[([^\\/\\\\])\\]/g, '$1$2').replace(/\\\\([^\\/])/g, '$1');\n};\n//# sourceMappingURL=unescape.js.map","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"1140\":\"490e17ed9c8948d5a9e8\",\"2221\":\"428c2ff62c4b8b3c97fc\",\"3556\":\"57d00a12b4953e229068\",\"4508\":\"04b1afd183e5ecdd9cae\",\"4906\":\"75718b28aced26adc4af\",\"5448\":\"71cfe268d6f1213c4735\",\"5528\":\"1445efe9cbaf4e4cbcb8\",\"5862\":\"580b9c2e231a9169a12f\",\"6015\":\"ebcb6885c1fc8c461988\",\"7039\":\"be7eefcb933f99fc5b1f\",\"7859\":\"740587c0c8c350dad157\",\"7910\":\"de857920f8beb5205bbc\",\"8124\":\"75a422293ae2add34a10\",\"8815\":\"9a5c507c75429c9c04e4\"}[chunkId] + \"\";\n};","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 2122;","var scriptUrl;\nif (globalThis.importScripts) scriptUrl = globalThis.location + \"\";\nvar document = globalThis.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/^blob:/, \"\").replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__webpack_require__.b = (typeof document !== 'undefined' && document.baseURI) || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t2122: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = globalThis[\"webpackChunknextcloud_ui_legacy\"] = globalThis[\"webpackChunknextcloud_ui_legacy\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [4208], () => (__webpack_require__(80609)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","getLoggerBuilder","setApp","detectUser","build","client","createClient","getRootPath","setHeaders","token","requesttoken","onRequestTokenUpdate","getRequestToken","generateRemoteUrl","ActivityTabPluginView","ActivityTabPluginInstance","Vue","use","PiniaVuePlugin","__webpack_nonce__","getCSPNonce","tagName","loadState","undefined","window","OCA","Activity","registerSidebarAction","addEventListener","mount","async","el","node","reload","pinia","createPinia","default","ActivityCommentAction","extend","propsData","reloadCallback","resourceId","fileid","logger","info","unmount","$destroy","registerSidebarEntries","limit","offset","data","comments","getComments","resourceType","debug","CommentView","CommentsViewObject","map","comment","_CommentsViewInstance","timestamp","moment","props","creationDateTime","toDate","getTime","element","this","registerSidebarFilter","activity","type","registerSidebarTab","id","displayName","t","iconSvgInline","order","onInit","FilesSidebarTab","mixin","webComponent","wrap","Object","defineProperty","prototype","value","get","customElements","define","DEFAULT_LIMIT","options","resourcePath","join","datetime","toISOString","response","customRequest","method","responseData","text","stat","result","isDetailed","multistatus","responseItems","item","propstat","prop","prepareFileFromProps","toString","getDirectoryFiles","parseXML","processResponsePayload","balanced","a","b","str","RegExp","maybeMatch","r","range","start","end","pre","slice","body","length","post","reg","m","match","begs","beg","left","right","ai","indexOf","bi","i","push","pop","module","exports","freeGlobal","global","InvalidCharacterError","message","Error","name","error","TABLE","REGEX_SPACE_CHARACTERS","base64","input","String","test","c","buffer","padding","output","position","charCodeAt","charAt","replace","bitStorage","bitCounter","fromCharCode","substr","expand","split","escSlash","escOpen","escClose","escComma","escPeriod","escapeBraces","unescapeBraces","Math","random","numeric","parseInt","parseCommaParts","parts","p","postParts","shift","apply","embrace","isPadded","lte","y","gte","isTop","expansions","k","expansion","n","N","isNumericSequence","isAlphaSequence","isSequence","isOptions","x","width","max","incr","abs","pad","some","need","z","Array","j","len","code","bind","$apply","$call","$reflectApply","call","actualApply","arguments","Function","$TypeError","$actualApply","args","Reflect","setFunctionLength","$defineProperty","callBindBasic","applyBind","originalFunction","func","adjustedLength","GetIntrinsic","$indexOf","allowMissing","intrinsic","$SyntaxError","gopd","obj","property","nonEnumerable","nonWritable","nonConfigurable","loose","desc","configurable","enumerable","writable","hasProtoAccessor","callBind","gOPD","__proto__","e","$Object","$getPrototypeOf","getPrototypeOf","EvalError","RangeError","ReferenceError","SyntaxError","TypeError","URIError","isCallable","toStr","hasOwnProperty","list","iterator","thisArg","receiver","array","forEachArray","string","forEachString","object","forEachObject","concatty","arr","that","target","bound","arrLike","slicy","boundLength","boundArgs","joiny","Empty","implementation","cached","$Error","$EvalError","$RangeError","$ReferenceError","$URIError","floor","min","pow","round","sign","$Function","getEvalledConstructor","expressionSyntax","$gOPD","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","getProto","$ObjectGPO","$ReflectGPO","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","ArrayBuffer","Symbol","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","Date","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","Float16Array","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","JSON","Map","Number","parseFloat","Promise","Proxy","Set","SharedArrayBuffer","Uint8ClampedArray","Uint16Array","Uint32Array","WeakMap","WeakRef","WeakSet","errorProto","doEval","fn","gen","LEGACY_ALIASES","hasOwn","$concat","concat","$spliceApply","splice","$replace","$strSlice","$exec","exec","rePropName","reEscapeChar","getBaseIntrinsic","alias","intrinsicName","first","last","number","quote","subString","stringToPath","intrinsicBaseName","intrinsicRealName","skipFurtherCaching","isOwn","part","reflectGetProto","originalGetProto","getDunderProto","O","getOwnPropertyDescriptor","hasPropertyDescriptors","hasArrayLengthDefineBug","origSymbol","hasSymbolSham","getOwnPropertySymbols","sym","symObj","_","keys","getOwnPropertyNames","syms","propertyIsEnumerable","descriptor","toStringTag","$hasOwn","http","url","https","key","validateParams","params","parse","protocol","request","cb","hasToStringTag","$toString","callBound","isStandardArguments","isLegacyArguments","callee","supportsStandardArguments","badArrayLike","isCallableMarker","fnToStr","reflectApply","constructorRegex","isES6ClassFn","fnStr","tryFunctionObject","isIE68","isDDA","document","all","strClass","isFnRegex","safeRegexTest","getGeneratorFunction","GeneratorFunction","isRegexMarker","throwRegexMarker","badStringifier","valueOf","toPrimitive","whichTypedArray","$isNaN","_typeof","constructor","_wrapNativeSuper","Class","_cache","has","set","Wrapper","_construct","_getPrototypeOf","create","_setPrototypeOf","Parent","construct","sham","_isNativeReflectConstruct","instance","o","setPrototypeOf","ObjectPrototypeMutationError","_Error","_this","Constructor","_classCallCheck","self","_assertThisInitialized","_possibleConstructorReturn","subClass","superClass","_inherits","traverse","path","callback","segments","_loop","idx","currentSegment","v","isArray","index","remainingSegments","pathToHere","_ret","isLastSegment","currentObject","currentProperty","nextPropIsNumber","isInteger","nextPropIsArrayWildcard","err","own","isIn","objectInPath","pathExists","validPath","hasMap","mapSizeDescriptor","mapSize","mapForEach","forEach","hasSet","setSizeDescriptor","setSize","setForEach","weakMapHas","weakSetHas","weakRefDeref","deref","booleanValueOf","objectToString","functionToString","$match","$slice","$toUpperCase","toUpperCase","$toLowerCase","toLowerCase","$test","$join","$arrSlice","$floor","bigIntValueOf","gOPS","symToString","hasShammedSymbols","isEnumerable","gPO","addNumericSeparator","num","Infinity","sepRegex","int","intStr","dec","utilInspect","inspectCustom","custom","inspectSymbol","isSymbol","quotes","single","quoteREs","wrapQuotes","s","defaultStyle","opts","style","quoteStyle","quoteChar","canTrustToString","isRegExp","inspect_","depth","seen","maxStringLength","customInspect","indent","numericSeparator","inspectString","bigIntStr","maxDepth","baseIndent","base","prev","getIndent","inspect","from","noIndent","newOpts","f","nameOf","arrObjKeys","symString","markBoxed","HTMLElement","nodeName","getAttribute","attrs","attributes","childNodes","xs","singleLineValues","indentedJoin","isError","cause","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","isBigInt","isBoolean","isString","globalThis","isDate","ys","isPlainObject","protoTag","stringTag","tag","l","remaining","trailer","quoteRE","lastIndex","lowbyte","size","entries","lineJoiner","isArr","symMap","util","normalizeArray","allowAboveRoot","res","splitPathRe","posix","posixSplitPath","filename","resolve","resolvedPath","resolvedAbsolute","process","cwd","normalize","isAbsolute","trailingSlash","segment","relative","to","trim","fromParts","toParts","samePartsLength","outputParts","_makeLong","dirname","root","dir","basename","ext","extname","format","pathObject","isObject","sep","pathString","allParts","delimiter","nodeType","punycode","maxInt","regexPunycode","regexNonASCII","regexSeparators","errors","stringFromCharCode","mapDomain","ucs2decode","extra","counter","ucs2encode","basicToDigit","codePoint","digitToBasic","digit","flag","adapt","delta","numPoints","firstTime","baseMinusTMin","decode","out","basic","oldi","w","baseMinusT","inputLength","bias","lastIndexOf","encode","handledCPCount","basicLength","q","currentValue","handledCPCountPlusOne","qMinusT","percentTwenties","Format","formatters","RFC1738","RFC3986","stringify","formats","utils","defaults","allowDots","allowEmptyArrays","allowPrototypes","allowSparse","arrayLimit","charset","charsetSentinel","comma","decodeDotInKeys","decoder","duplicates","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","plainObjects","strictDepth","strictNullHandling","throwOnLimitExceeded","$0","numberStr","parseArrayValue","val","currentArrayLength","parseKeys","givenKey","valuesParsed","child","parent","segmentContent","splitKeyIntoSegments","chain","parentKey","leaf","isOverflow","combine","cleanRoot","decodedRoot","isValidArrayIndex","markOverflow","parseObject","normalizeParseOptions","tempObj","cleanStr","skipIndex","bracketEqualsPos","pos","maybeMap","encodedVal","existing","parseValues","newObj","merge","compact","getSideChannel","arrayPrefixGenerators","brackets","prefix","indices","repeat","pushToArray","valueOrArray","toISO","defaultFormat","addQueryPrefix","arrayFormat","commaRoundTrip","encodeDotInKeys","encoder","encodeValuesOnly","filter","formatter","serializeDate","date","skipNulls","sentinel","generateArrayPrefix","sort","sideChannel","tmpSc","step","findFlag","isBuffer","objKeys","values","encodedPrefix","adjustedPrefix","encodedKey","keyPrefix","valueSideChannel","normalizeStringifyOptions","joined","overflowChannel","maxIndex","getMaxIndex","setMaxIndex","hexTable","arrayToObject","source","assign","reduce","acc","newIndex","queue","refs","compacted","compactQueue","defaultDecoder","strWithoutPlus","unescape","defaultEncoder","kind","escape","mapped","nextIndex","sourceKeys","combined","mergeTarget","targetItem","keyNum","pairs","query","parser","port","isRegex","regex","hasDescriptors","functionLengthIsConfigurable","functionLengthIsWritable","listGetNode","isDelete","curr","next","$o","channel","assert","deletedNode","objects","listDelete","listGet","listHas","listSet","$Map","$mapGet","$mapSet","$mapHas","$mapDelete","$mapSize","$m","getSideChannelMap","$WeakMap","$weakMapGet","$weakMapSet","$weakMapHas","$weakMapDelete","$wm","getSideChannelList","makeChannel","$channelData","ClientRequest","statusCodes","defaultProtocol","location","search","host","hostname","headers","req","on","IncomingMessage","Agent","defaultMaxSockets","globalAgent","STATUS_CODES","METHODS","xhr","getXHR","XMLHttpRequest","open","XDomainRequest","checkTypeSupport","responseType","isFunction","fetch","ReadableStream","writableStream","WritableStream","abortController","AbortController","arraybuffer","msstream","mozchunkedarraybuffer","overrideMimeType","capability","inherits","stream","rStates","readyStates","preferBinary","Writable","_opts","_body","_headers","auth","setHeader","Buffer","useFetch","mode","_mode","decideMode","_fetchTimer","_socketTimeout","_socketTimer","_onFinish","lowerName","unsafeHeaders","getHeader","header","removeHeader","_destroyed","timeout","setTimeout","headersObj","Blob","headersList","keyName","signal","controller","_fetchAbortController","requestTimeout","emit","abort","credentials","withCredentials","then","_fetchResponse","_resetTimers","_connect","reason","_xhr","nextTick","ontimeout","setRequestHeader","_response","onreadystatechange","readyState","LOADING","DONE","_onXHRProgress","onprogress","onerror","send","status","statusValid","_write","chunk","encoding","done","clearTimeout","destroy","once","flushHeaders","setNoDelay","setSocketKeepAlive","UNSENT","OPENED","HEADERS_RECEIVED","resetTimers","Readable","rawHeaders","trailers","rawTrailers","statusCode","statusMessage","statusText","write","reject","_resumeFetch","close","pipeTo","catch","reader","getReader","read","_pos","responseURL","getAllResponseHeaders","matches","_charset","mimeType","charsetMatch","_read","responseText","newData","alloc","MSStreamReader","byteLength","onload","readAsArrayBuffer","codes","createErrorType","Base","NodeError","_Base","arg1","arg2","arg3","getMessage","oneOf","expected","thing","actual","determiner","msg","this_len","substring","endsWith","arg","objectKeys","Duplex","allowHalfOpen","readable","onend","_writableState","ended","onEndNT","highWaterMark","getBuffer","_readableState","destroyed","PassThrough","Transform","_transform","ReadableState","EElistenerCount","emitter","listeners","Stream","OurUint8Array","debugUtil","debuglog","StringDecoder","createReadableStreamAsyncIterator","BufferList","destroyImpl","getHighWaterMark","_require$codes","ERR_INVALID_ARG_TYPE","ERR_STREAM_PUSH_AFTER_EOF","ERR_METHOD_NOT_IMPLEMENTED","ERR_STREAM_UNSHIFT_AFTER_END_EVENT","errorOrDestroy","kProxyEvents","isDuplex","objectMode","readableObjectMode","pipes","pipesCount","flowing","endEmitted","reading","sync","needReadable","emittedReadable","readableListening","resumeScheduled","paused","emitClose","autoDestroy","defaultEncoding","awaitDrain","readingMore","_destroy","readableAddChunk","addToFront","skipChunkCheck","er","state","emitReadable","emitReadable_","onEofChunk","chunkInvalid","_uint8ArrayToBuffer","addChunk","maybeReadMore","unshift","_undestroy","undestroy","isPaused","setEncoding","enc","head","content","clear","MAX_HWM","howMuchToRead","computeNewHighWaterMark","flow","maybeReadMore_","updateReadableListening","listenerCount","resume","nReadingNextTick","resume_","fromList","ret","consume","endReadable","endReadableNT","wState","finished","nOrig","doRead","pipe","dest","pipeOpts","src","endFn","stdout","stderr","unpipe","onunpipe","unpipeInfo","hasUnpiped","removeListener","onclose","onfinish","ondrain","ondata","cleanedUp","needDrain","pipeOnDrain","pause","event","prependListener","_events","dests","ev","addListener","removeAllListeners","asyncIterator","_fromList","iterable","ERR_MULTIPLE_CALLBACK","ERR_TRANSFORM_ALREADY_TRANSFORMING","ERR_TRANSFORM_WITH_LENGTH_0","afterTransform","ts","_transformState","transforming","writecb","writechunk","rs","needTransform","writeencoding","transform","flush","_flush","prefinish","err2","CorkedRequest","entry","finish","corkReq","pendingcb","onCorkedFinish","corkedRequestsFree","WritableState","realHasInstance","internalUtil","deprecate","ERR_STREAM_CANNOT_PIPE","ERR_STREAM_DESTROYED","ERR_STREAM_NULL_VALUES","ERR_STREAM_WRITE_AFTER_END","ERR_UNKNOWN_ENCODING","nop","writableObjectMode","finalCalled","ending","noDecode","decodeStrings","writing","corked","bufferProcessing","onwrite","writelen","onwriteStateUpdate","finishMaybe","errorEmitted","onwriteError","needFinish","bufferedRequest","clearBuffer","afterWrite","lastBufferedRequest","prefinished","bufferedRequestCount","writev","_writev","final","_final","doWrite","onwriteDrain","holder","count","allBuffers","isBuf","callFinal","rState","current","hasInstance","writeAfterEnd","validChunk","newChunk","decodeChunk","writeOrBuffer","cork","uncork","setDefaultEncoding","endWritable","_Object$setPrototypeO","_defineProperty","prim","hint","_toPrimitive","_toPropertyKey","kLastResolve","kLastReject","kError","kEnded","kLastPromise","kHandlePromise","kStream","createIterResult","readAndResolve","iter","onReadable","AsyncIteratorPrototype","ReadableStreamAsyncIteratorPrototype","promise","lastPromise","wrapForNext","_this2","_Object$create","ownKeys","enumerableOnly","symbols","_objectSpread","getOwnPropertyDescriptors","defineProperties","_defineProperties","copyBuffer","copy","tail","protoProps","allocUnsafe","hasStrings","_getString","_getBuffer","nb","buf","emitErrorAndCloseNT","emitErrorNT","emitCloseNT","readableDestroyed","writableDestroyed","ERR_STREAM_PREMATURE_CLOSE","noop","eos","called","_len","_key","onlegacyfinish","writableEnded","readableEnded","onrequest","isRequest","ERR_MISSING_ARGS","streams","popCallback","destroys","closed","destroyer","ERR_INVALID_OPT_VALUE","duplexKey","hwm","highWaterMarkFrom","pipeline","required","qs","controlOrWhitespace","CRHTLF","slashes","protocolre","windowsDriveLetter","trimLeft","rules","address","isSpecial","NaN","ignore","hash","lolcation","loc","finaldestination","Url","pathname","href","scheme","extractProtocol","rest","forwardSlashes","otherSlashes","slashesCount","extracted","instruction","instructions","up","username","password","origin","char","ins","protocolPattern","portPattern","simplePathPattern","unwise","autoEscape","nonHostChars","hostEndingChars","hostnamePartPattern","hostnamePartStart","unsafeProtocol","javascript","hostlessProtocol","slashedProtocol","ftp","gopher","file","querystring","urlParse","parseQueryString","slashesDenoteHost","u","queryIndex","splitter","uSplit","simplePath","proto","lowerProto","atSign","hostEnd","hec","parseHost","ipv6Hostname","hostparts","newpart","validParts","notHost","bit","toASCII","h","ae","esc","qm","resolveObject","rel","tkeys","tk","tkey","rkeys","rk","rkey","relPath","isSourceAbs","isRelAbs","mustEndAbs","removeAllDots","srcPath","psychotic","authInHost","hasTrailingSlash","fill","readUInt8","isArgumentsObject","isGeneratorFunction","isTypedArray","uncurryThis","BigIntSupported","SymbolSupported","ObjectToString","numberValue","stringValue","booleanValue","bigIntValue","symbolValue","checkBoxedPrimitive","prototypeValueOf","isMapToString","isSetToString","isWeakMapToString","isWeakSetToString","isArrayBufferToString","isArrayBuffer","working","isDataViewToString","isDataView","isPromise","isArrayBufferView","isView","isUint8Array","isUint8ClampedArray","isUint16Array","isUint32Array","isInt8Array","isInt16Array","isInt32Array","isFloat32Array","isFloat64Array","isBigInt64Array","isBigUint64Array","SharedArrayBufferCopy","isSharedArrayBufferToString","isSharedArrayBuffer","isNumberObject","isStringObject","isBooleanObject","isBigIntObject","isSymbolObject","isAsyncFunction","isMapIterator","isSetIterator","isGeneratorObject","isWebAssemblyCompiledModule","isBoxedPrimitive","isAnyArrayBuffer","descriptors","formatRegExp","isNull","noDeprecation","warned","throwDeprecation","traceDeprecation","console","trace","debugs","debugEnvRegex","env","NODE_DEBUG","debugEnv","ctx","stylize","stylizeNoColor","colors","showHidden","_extend","isUndefined","stylizeWithColor","formatValue","styleType","styles","recurseTimes","primitive","simple","formatPrimitive","visibleKeys","arrayToHash","formatError","braces","toUTCString","formatProperty","formatArray","cur","reduceToSingleString","line","ar","re","d","pid","types","isNullOrUndefined","isNativeError","isPrimitive","months","log","time","getHours","getMinutes","getSeconds","getDate","getMonth","add","kCustomPromisifiedSymbol","callbackifyOnRejected","newReason","promisify","original","promiseResolve","promiseReject","callbackify","callbackified","maybeCb","rej","availableTypedArrays","g","typedArrays","cache","typedArray","superProto","found","getter","trySlices","tryTypedArrays","possibleNames","WorkerGlobalScope","Headers","Request","Response","getIgnoreAttributesFn","ignoreAttributes","attrName","pattern","nameStartChar","regexName","getAllMatches","allmatches","startIndex","isName","isExist","defaultOptions","allowBooleanAttributes","unpairedTags","validate","xmlData","tags","tagFound","reachedRoot","readPI","isWhiteSpace","getErrorObject","getLineNumberForPosition","tagStartPos","readCommentAndCDATA","closingTag","validateTagName","readAttributeStr","attrStr","attrStrStart","isValid","validateAttributeString","tagClosed","otg","openPos","col","afterAmp","validateAmpersand","tagname","angleBracketsCount","startChar","validAttrStrRegxp","attrNames","getPositionFromMatch","validateAttrName","validateNumberAmpersand","lineNumber","lines","attributeNamePrefix","attributesGroupName","textNodeName","cdataPropName","indentBy","suppressEmptyNode","suppressUnpairedNode","suppressBooleanAttributes","tagValueProcessor","attributeValueProcessor","preserveOrder","commentPropName","entities","processEntities","stopNodes","oneListGroup","Builder","isAttribute","ignoreAttributesFn","attrPrefixLen","processTextOrObjNode","indentate","tagEndChar","newLine","level","ajPath","j2x","buildTextValNode","buildObjectNode","startsWith","jObj","arrayNodeName","jPath","attr","buildAttrPairStr","newval","replaceEntitiesValue","arrLen","listTagVal","listTagAttr","textValue","Ks","L","closeTag","tagEndExp","piClosingChar","entity","toXml","jArray","indentation","arrToStr","xmlStr","isPreviousElementTag","tagObj","propName","newJPath","tagText","isStopNode","attStr","attr_to_str","tempInd","piTextNodeName","newIdentation","tagStart","tagValue","includes","attrMap","attrVal","DocTypeReader","suppressValidationErr","readDocType","hasBody","exp","hasSeq","entityName","readEntityExp","escaped","regx","readElementExp","readNotationExp","skipWhitespace","validateEntityName","entityValue","readIdentifierVal","enabled","maxEntitySize","notationName","identifierType","publicIdentifier","systemIdentifier","identifierVal","elementName","contentModel","readAttlistExp","attributeName","attributeType","allowedNotations","notation","validTypes","defaultValue","seq","removeNSPrefix","parseTagValue","parseAttributeValue","trimValues","numberParseOptions","hex","leadingZeros","eNotation","alwaysCreateTextNode","htmlEntities","ignoreDeclaration","ignorePiTags","transformTagName","transformAttributeName","updateTag","captureMetaData","normalizeProcessEntities","maxExpansionDepth","maxTotalExpansions","maxExpandedLength","allowedTags","tagFilter","buildOptions","built","OrderedObjParser","currentNode","tagsNodeStack","docTypeEntities","lastEntities","ampEntity","fromCodePoint","addExternalEntities","parseXml","parseTextData","resolveNameSpace","buildAttributesMap","isItStopNode","readStopNodeData","saveTextToParentTag","addChild","entityExpansionCount","currentExpandedLength","stopNodesExact","stopNodesWildcard","stopNodeExp","externalEntities","entKeys","ent","dontTrim","hasAttributes","isLeafNode","escapeEntities","parseValue","attrsRegx","oldVal","aName","newVal","attrCollection","xmlObj","textData","docTypeReader","closeIndex","findClosingIndex","colonIndex","lastTagName","propIndex","tagData","readTagExp","childNode","tagExp","attrExpPresent","endIndex","rawTagName","newTagName","lastTag","tagContent","entityConfig","lengthBefore","currentTagName","errMsg","closingIndex","closingChar","attrBoundary","ch","tagExpWithClosingIndex","separatorIndex","trimStart","openTagCount","shouldParse","XMLParser","validationOption","orderedObjParser","orderedResult","addEntity","getMetaDataSymbol","METADATA_SYMBOL","prettify","compress","compressedObj","newJpath","isLeaf","isLeafTag","assignAttributes","jpath","atrrName","propCount","XmlNode","sequence","methods","HOT_PATCHER_TYPE","NOOP","createNewItem","HotPatcher","_configuration","registry","getEmptyAction","__type__","configuration","newAction","control","allowTargetOverrides","foreignKey","execute","isPatched","patch","patchInline","plugin","restore","setFinal","assertError","getGlobalName","Layerr","errorOptionsOrMessage","messageText","shortMessage","super","_info","captureStackTrace","ctor","constructorOpt","_cause","fullStack","stack","parseArguments","hexRegex","numRegex","consider","decimalPoint","toNumber","trimmedStr","skipLike","numStr","parse_int","eNotationRegx","eChar","eAdjacentToLeadingZeros","resolveEnotation","numTrimmedByZeros","decimalAdjacentToLeadingZeros","parsedStr","urlJoin","strArray","resultArray","component","generateBasicAuthHeader","createDigestContext","ha1","nc","algorithm","hasDigestAuth","generateDigestAuthHeader","digest","uri","qop","ncString","realm","nonce","cnonce","ha2","digestResponse","authValues","opaque","authHeader","parseDigestAuth","_digest","responseIndicatesDigestAuth","uid","NONCE_CHARS","makeNonce","setupAuth","context","oauthToken","authType","Auto","Authorization","Digest","None","Password","Token","InvalidAuthType","generateTokenAuthHeader","token_type","access_token","hasArrayBuffer","objToString","isReactNative","TARGET","isWeb","__patcher","getPatcher","DEFAULT_CONTACT_HREF","remoteURL","authTypeRaw","remoteBasePath","contactHref","httpAgent","httpsAgent","parsing","attributeParsers","tagParsers","remotePath","copyFile","destination","createDirectory","createReadStream","createWriteStream","requestOptions","deleteFile","exists","getDirectoryContents","getFileContents","getFileDownloadLink","getFileUploadLink","getHeaders","getQuota","lock","moveFile","destinationFilename","putFileContents","partialUpdateFileContents","filePath","getDAVCompliance","unlock","registerAttributeParser","registerTagParser","Destination","Overwrite","overwrite","Depth","shallow","dirPath","recursive","paths","creating","testPath","createDirectoryRecursively","outStream","PassThroughStream","rangeHeader","Range","responseError","getFileStream","writeStream","maxRedirects","finalOptions","Accept","deep","davResp","_remotePath","files","serverremoteBasePath","requestPath","includeSelf","serverBase","nodes","details","glob","compliance","server","TRANSFORM_RETAIN_FORMAT","InvalidOutputFormat","transformResponse","getFileContentsString","arrayBuffer","getFileContentsBuffer","authPart","authContents","LinkUnsupportedAuthType","quota","DEFAULT_TIMEOUT","refreshToken","Timeout","If","lockPayload","serverTimeout","InvalidUpdateRange","partialUpdateFileContentsSabredav","partialUpdateFileContentsApache","NotSupported","contentLength","getSearch","searchArbiter","results","getStat","prepareRequestOptions","userOptions","requestStandard","ok","requestDigest","requestAuto","response2","patcher","newHeaders","agent","parsedURL","getFetchOptions","createErrorFromResponse","handleResponseCode","processGlobFilter","matchBase","requestDataToFetchBody","ha1Compute","user","pass","ha1Hash","PropertyType","displaynameTagParser","getPropertyOfType","Original","xml","normaliseResponse","normaliseResult","attrValue","processor","getParser","getlastmodified","lastMod","getcontentlength","rawSize","resourcetype","getcontenttype","getetag","etag","collection","lastmod","mime","displayname","parseStat","responseItem","statusLine","statusCodeStr","parseSearch","truncated","translateDiskSpace","fromBase64","toBase64","convertResponseHeaders","mergeHeaders","headerPayloads","headerKeys","lowerHeader","cloneShallow","items","nextItem","mergeObjects","obj1","obj2","SEP_PATH_POSIX","SEP_PATH_WINDOWS","encodePath","replaced","getAllDirectories","directory","currentPath","makePathAbsolute","pathStr","normalisePath","normalisedPath","parseQuota","quotaUsed","quotaAvail","used","available","calculateDataLength","DataTypeNoLength","extractURLPath","fullURL","urlPath","joinURL","nextPart","partIndex","normaliseHREF","generateLockXML","ownerHREF","namespace","lockinfo","lockscope","exclusive","locktype","owner","ns","parseGenericResponse","AuthType","ErrorCode","CharCodes","BinTrieFlags","EntityDecoderState","DecodingMode","codePointAt","EntityLevel","EncodingMode","assertValidPattern","isExtglobType","startNoDot","addPatternStart","justDots","reSpecials","regExpEscape","qmark","star","starNoEmpty","AST","hasMagic","pp","copyIn","toJSON","isStart","isEnd","pl","clone","ast","opt","escaping","inBrace","braceStart","braceNeg","noext","fromGlob","toMMPattern","uflag","toRegExpSource","nocase","nocaseMagicOnly","flags","_src","_glob","allowDot","dot","noEmpty","aps","needNoTrav","needNoDot","repeated","bodyDotAllowed","_hasMagic","needUflag","consumed","magic","posixClasses","braceEscape","rangesToString","ranges","parseClass","negs","sawStart","negate","endPos","rangeStart","WHILE","cls","unip","neg","sranges","snegs","windowsPathsNoEscape","minimatch","nocomment","Minimatch","starDotExtRE","starDotExtTest","starDotExtTestDot","starDotExtTestNocase","starDotExtTestNocaseDot","starDotStarRE","starDotStarTest","starDotStarTestDot","dotStarRE","dotStarTest","starRE","starTest","starTestDot","qmarksRE","qmarksTestNocase","qmarksTestNoExt","qmarksTestNocaseDot","qmarksTestNoExtDot","qmarksTestDot","qmarksTest","defaultPlatform","__MINIMATCH_TESTING_PLATFORM__","platform","GLOBSTAR","def","orig","makeRe","braceExpand","nobrace","mm","nonull","globMagic","nonegate","empty","preserveMultipleSlashes","partial","globSet","globParts","isWindows","windowsNoMagicRoot","regexp","allowWindowsEscape","make","magicalBraces","parseNegate","rawGlobParts","slashSplit","preprocess","__","isUNC","isDrive","ss","noglobstar","optimizationLevel","firstPhasePreProcess","secondPhasePreProcess","levelOneOptimize","adjascentGlobstarOptimize","gs","levelTwoFileOptimize","didSomething","dd","gss","p2","other","splin","matched","partsMatch","emptyGSMatch","which","negateOffset","matchOne","fileDrive","fileUNC","patternDrive","fdi","pdi","fd","pd","fi","pi","fl","fr","pr","swallowee","hit","fastTest","twoStar","ex","ff","flipNegate","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","__webpack_modules__","chunkIds","priority","notFulfilled","fulfilled","every","__esModule","definition","chunkId","promises","script","needAttach","scripts","getElementsByTagName","createElement","setAttribute","onScriptComplete","doneFns","parentNode","removeChild","appendChild","nmd","children","scriptUrl","importScripts","currentScript","baseURI","installedChunks","installedChunkData","errorType","realSrc","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}
\ No newline at end of file