From 1d5e868baad9b737774489be5c91d96ab5daa109 Mon Sep 17 00:00:00 2001 From: TuanTwendee Date: Tue, 30 Sep 2025 16:22:02 +0700 Subject: [PATCH 1/6] Add revenue moneyfi --- .pnp.cjs | 12016 +++++++++++++++++++++++++++++++++++++++ .pnp.loader.mjs | 2126 +++++++ .yarn/install-state.gz | Bin 0 -> 285357 bytes fees/moneyfi/index.ts | 61 + 4 files changed, 14203 insertions(+) create mode 100755 .pnp.cjs create mode 100644 .pnp.loader.mjs create mode 100644 .yarn/install-state.gz create mode 100644 fees/moneyfi/index.ts diff --git a/.pnp.cjs b/.pnp.cjs new file mode 100755 index 0000000000..b010f7413d --- /dev/null +++ b/.pnp.cjs @@ -0,0 +1,12016 @@ +#!/usr/bin/env node +/* eslint-disable */ +// @ts-nocheck +"use strict"; + +const RAW_RUNTIME_STATE = +'{\ + "__info": [\ + "This file is automatically generated. Do not touch it, or risk",\ + "your modifications being lost."\ + ],\ + "dependencyTreeRoots": [\ + {\ + "name": "adapters",\ + "reference": "workspace:."\ + }\ + ],\ + "enableTopLevelFallback": true,\ + "ignorePatternData": "(^(?:\\\\.yarn\\\\/sdks(?:\\\\/(?!\\\\.{1,2}(?:\\\\/|$))(?:(?:(?!(?:^|\\\\/)\\\\.{1,2}(?:\\\\/|$)).)*?)|$))$)",\ + "pnpZipBackend": "libzip",\ + "fallbackExclusionList": [\ + ["adapters", ["workspace:."]]\ + ],\ + "fallbackPool": [\ + ],\ + "packageRegistryData": [\ + [null, [\ + [null, {\ + "packageLocation": "./",\ + "packageDependencies": [\ + ["@defillama/sdk", "npm:5.0.172"],\ + ["@supercharge/promise-pool", "npm:3.2.0"],\ + ["@types/async-retry", "npm:1.4.9"],\ + ["@types/node", "npm:18.19.128"],\ + ["adapters", "workspace:."],\ + ["async-retry", "npm:1.3.3"],\ + ["axios", "npm:1.12.2"],\ + ["bignumber.js", "npm:9.3.1"],\ + ["dotenv", "npm:16.6.1"],\ + ["ethers", "npm:6.15.0"],\ + ["glob", "npm:10.4.5"],\ + ["graphql", "npm:16.11.0"],\ + ["graphql-request", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:5.1.0"],\ + ["inquirer", "npm:8.2.7"],\ + ["inquirer-fuzzy-path", "npm:2.3.0"],\ + ["lz4-napi", "npm:2.9.0"],\ + ["p-limit", "npm:3.1.0"],\ + ["pg", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:8.16.3"],\ + ["sequelize", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:6.37.7"],\ + ["tron-format-address", "npm:0.1.12"],\ + ["ts-node", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:10.9.2"],\ + ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"]\ + ],\ + "linkType": "SOFT"\ + }]\ + ]],\ + ["@adraffy/ens-normalize", [\ + ["npm:1.10.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@adraffy-ens-normalize-npm-1.10.1-e60d7ca58d-10c0.zip/node_modules/@adraffy/ens-normalize/",\ + "packageDependencies": [\ + ["@adraffy/ens-normalize", "npm:1.10.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@antoniomuso/lz4-napi-android-arm-eabi", [\ + ["npm:2.9.0", {\ + "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-android-arm-eabi-npm-2.9.0-4068940b91/node_modules/@antoniomuso/lz4-napi-android-arm-eabi/",\ + "packageDependencies": [\ + ["@antoniomuso/lz4-napi-android-arm-eabi", "npm:2.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@antoniomuso/lz4-napi-android-arm64", [\ + ["npm:2.9.0", {\ + "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-android-arm64-npm-2.9.0-87861c5016/node_modules/@antoniomuso/lz4-napi-android-arm64/",\ + "packageDependencies": [\ + ["@antoniomuso/lz4-napi-android-arm64", "npm:2.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@antoniomuso/lz4-napi-darwin-arm64", [\ + ["npm:2.9.0", {\ + "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-darwin-arm64-npm-2.9.0-2988045915/node_modules/@antoniomuso/lz4-napi-darwin-arm64/",\ + "packageDependencies": [\ + ["@antoniomuso/lz4-napi-darwin-arm64", "npm:2.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@antoniomuso/lz4-napi-darwin-x64", [\ + ["npm:2.9.0", {\ + "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-darwin-x64-npm-2.9.0-223d186dbf/node_modules/@antoniomuso/lz4-napi-darwin-x64/",\ + "packageDependencies": [\ + ["@antoniomuso/lz4-napi-darwin-x64", "npm:2.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@antoniomuso/lz4-napi-freebsd-x64", [\ + ["npm:2.9.0", {\ + "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-freebsd-x64-npm-2.9.0-afc248ec88/node_modules/@antoniomuso/lz4-napi-freebsd-x64/",\ + "packageDependencies": [\ + ["@antoniomuso/lz4-napi-freebsd-x64", "npm:2.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@antoniomuso/lz4-napi-linux-arm-gnueabihf", [\ + ["npm:2.9.0", {\ + "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-linux-arm-gnueabihf-npm-2.9.0-0f112026b4/node_modules/@antoniomuso/lz4-napi-linux-arm-gnueabihf/",\ + "packageDependencies": [\ + ["@antoniomuso/lz4-napi-linux-arm-gnueabihf", "npm:2.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@antoniomuso/lz4-napi-linux-arm64-gnu", [\ + ["npm:2.9.0", {\ + "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-linux-arm64-gnu-npm-2.9.0-93f949713a/node_modules/@antoniomuso/lz4-napi-linux-arm64-gnu/",\ + "packageDependencies": [\ + ["@antoniomuso/lz4-napi-linux-arm64-gnu", "npm:2.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@antoniomuso/lz4-napi-linux-arm64-musl", [\ + ["npm:2.9.0", {\ + "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-linux-arm64-musl-npm-2.9.0-98ba3a6694/node_modules/@antoniomuso/lz4-napi-linux-arm64-musl/",\ + "packageDependencies": [\ + ["@antoniomuso/lz4-napi-linux-arm64-musl", "npm:2.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@antoniomuso/lz4-napi-linux-x64-gnu", [\ + ["npm:2.9.0", {\ + "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-linux-x64-gnu-npm-2.9.0-a095c97eca/node_modules/@antoniomuso/lz4-napi-linux-x64-gnu/",\ + "packageDependencies": [\ + ["@antoniomuso/lz4-napi-linux-x64-gnu", "npm:2.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@antoniomuso/lz4-napi-linux-x64-musl", [\ + ["npm:2.9.0", {\ + "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-linux-x64-musl-npm-2.9.0-64da47618b/node_modules/@antoniomuso/lz4-napi-linux-x64-musl/",\ + "packageDependencies": [\ + ["@antoniomuso/lz4-napi-linux-x64-musl", "npm:2.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@antoniomuso/lz4-napi-win32-arm64-msvc", [\ + ["npm:2.9.0", {\ + "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-win32-arm64-msvc-npm-2.9.0-ed874f74fd/node_modules/@antoniomuso/lz4-napi-win32-arm64-msvc/",\ + "packageDependencies": [\ + ["@antoniomuso/lz4-napi-win32-arm64-msvc", "npm:2.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@antoniomuso/lz4-napi-win32-ia32-msvc", [\ + ["npm:2.9.0", {\ + "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-win32-ia32-msvc-npm-2.9.0-d491916985/node_modules/@antoniomuso/lz4-napi-win32-ia32-msvc/",\ + "packageDependencies": [\ + ["@antoniomuso/lz4-napi-win32-ia32-msvc", "npm:2.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@antoniomuso/lz4-napi-win32-x64-msvc", [\ + ["npm:2.9.0", {\ + "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-win32-x64-msvc-npm-2.9.0-0d1a3e7664/node_modules/@antoniomuso/lz4-napi-win32-x64-msvc/",\ + "packageDependencies": [\ + ["@antoniomuso/lz4-napi-win32-x64-msvc", "npm:2.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-crypto/crc32", [\ + ["npm:5.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-crypto-crc32-npm-5.2.0-a834040f6d-10c0.zip/node_modules/@aws-crypto/crc32/",\ + "packageDependencies": [\ + ["@aws-crypto/crc32", "npm:5.2.0"],\ + ["@aws-crypto/util", "npm:5.2.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-crypto/crc32c", [\ + ["npm:5.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-crypto-crc32c-npm-5.2.0-e4a77c7012-10c0.zip/node_modules/@aws-crypto/crc32c/",\ + "packageDependencies": [\ + ["@aws-crypto/crc32c", "npm:5.2.0"],\ + ["@aws-crypto/util", "npm:5.2.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-crypto/sha1-browser", [\ + ["npm:5.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-crypto-sha1-browser-npm-5.2.0-1973da1a70-10c0.zip/node_modules/@aws-crypto/sha1-browser/",\ + "packageDependencies": [\ + ["@aws-crypto/sha1-browser", "npm:5.2.0"],\ + ["@aws-crypto/supports-web-crypto", "npm:5.2.0"],\ + ["@aws-crypto/util", "npm:5.2.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@aws-sdk/util-locate-window", "npm:3.893.0"],\ + ["@smithy/util-utf8", "npm:2.3.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-crypto/sha256-browser", [\ + ["npm:5.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-crypto-sha256-browser-npm-5.2.0-5e8b02b82a-10c0.zip/node_modules/@aws-crypto/sha256-browser/",\ + "packageDependencies": [\ + ["@aws-crypto/sha256-browser", "npm:5.2.0"],\ + ["@aws-crypto/sha256-js", "npm:5.2.0"],\ + ["@aws-crypto/supports-web-crypto", "npm:5.2.0"],\ + ["@aws-crypto/util", "npm:5.2.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@aws-sdk/util-locate-window", "npm:3.893.0"],\ + ["@smithy/util-utf8", "npm:2.3.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-crypto/sha256-js", [\ + ["npm:5.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-crypto-sha256-js-npm-5.2.0-fbe0f9fbf6-10c0.zip/node_modules/@aws-crypto/sha256-js/",\ + "packageDependencies": [\ + ["@aws-crypto/sha256-js", "npm:5.2.0"],\ + ["@aws-crypto/util", "npm:5.2.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-crypto/supports-web-crypto", [\ + ["npm:5.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-crypto-supports-web-crypto-npm-5.2.0-37acf6e569-10c0.zip/node_modules/@aws-crypto/supports-web-crypto/",\ + "packageDependencies": [\ + ["@aws-crypto/supports-web-crypto", "npm:5.2.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-crypto/util", [\ + ["npm:5.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-crypto-util-npm-5.2.0-67e90fb04c-10c0.zip/node_modules/@aws-crypto/util/",\ + "packageDependencies": [\ + ["@aws-crypto/util", "npm:5.2.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/util-utf8", "npm:2.3.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/client-s3", [\ + ["npm:3.899.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-client-s3-npm-3.899.0-e0086f62b6-10c0.zip/node_modules/@aws-sdk/client-s3/",\ + "packageDependencies": [\ + ["@aws-crypto/sha1-browser", "npm:5.2.0"],\ + ["@aws-crypto/sha256-browser", "npm:5.2.0"],\ + ["@aws-crypto/sha256-js", "npm:5.2.0"],\ + ["@aws-sdk/client-s3", "npm:3.899.0"],\ + ["@aws-sdk/core", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-node", "npm:3.899.0"],\ + ["@aws-sdk/middleware-bucket-endpoint", "npm:3.893.0"],\ + ["@aws-sdk/middleware-expect-continue", "npm:3.893.0"],\ + ["@aws-sdk/middleware-flexible-checksums", "npm:3.899.0"],\ + ["@aws-sdk/middleware-host-header", "npm:3.893.0"],\ + ["@aws-sdk/middleware-location-constraint", "npm:3.893.0"],\ + ["@aws-sdk/middleware-logger", "npm:3.893.0"],\ + ["@aws-sdk/middleware-recursion-detection", "npm:3.893.0"],\ + ["@aws-sdk/middleware-sdk-s3", "npm:3.899.0"],\ + ["@aws-sdk/middleware-ssec", "npm:3.893.0"],\ + ["@aws-sdk/middleware-user-agent", "npm:3.899.0"],\ + ["@aws-sdk/region-config-resolver", "npm:3.893.0"],\ + ["@aws-sdk/signature-v4-multi-region", "npm:3.899.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@aws-sdk/util-endpoints", "npm:3.895.0"],\ + ["@aws-sdk/util-user-agent-browser", "npm:3.893.0"],\ + ["@aws-sdk/util-user-agent-node", "virtual:3dee239b7c9c99fb25083bbe33ec9ed27ed15e135da82518105af51ae429efda4b868db2407d5db388c4eb76e6d86f5ed1add372a69dd591005d5162b731e5ff#npm:3.899.0"],\ + ["@aws-sdk/xml-builder", "npm:3.894.0"],\ + ["@smithy/config-resolver", "npm:4.2.2"],\ + ["@smithy/core", "npm:3.13.0"],\ + ["@smithy/eventstream-serde-browser", "npm:4.1.1"],\ + ["@smithy/eventstream-serde-config-resolver", "npm:4.2.1"],\ + ["@smithy/eventstream-serde-node", "npm:4.1.1"],\ + ["@smithy/fetch-http-handler", "npm:5.2.1"],\ + ["@smithy/hash-blob-browser", "npm:4.1.1"],\ + ["@smithy/hash-node", "npm:4.1.1"],\ + ["@smithy/hash-stream-node", "npm:4.1.1"],\ + ["@smithy/invalid-dependency", "npm:4.1.1"],\ + ["@smithy/md5-js", "npm:4.1.1"],\ + ["@smithy/middleware-content-length", "npm:4.1.1"],\ + ["@smithy/middleware-endpoint", "npm:4.2.5"],\ + ["@smithy/middleware-retry", "npm:4.3.1"],\ + ["@smithy/middleware-serde", "npm:4.1.1"],\ + ["@smithy/middleware-stack", "npm:4.1.1"],\ + ["@smithy/node-config-provider", "npm:4.2.2"],\ + ["@smithy/node-http-handler", "npm:4.2.1"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/smithy-client", "npm:4.6.5"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/url-parser", "npm:4.1.1"],\ + ["@smithy/util-base64", "npm:4.1.0"],\ + ["@smithy/util-body-length-browser", "npm:4.1.0"],\ + ["@smithy/util-body-length-node", "npm:4.1.0"],\ + ["@smithy/util-defaults-mode-browser", "npm:4.1.5"],\ + ["@smithy/util-defaults-mode-node", "npm:4.1.5"],\ + ["@smithy/util-endpoints", "npm:3.1.2"],\ + ["@smithy/util-middleware", "npm:4.1.1"],\ + ["@smithy/util-retry", "npm:4.1.2"],\ + ["@smithy/util-stream", "npm:4.3.2"],\ + ["@smithy/util-utf8", "npm:4.1.0"],\ + ["@smithy/util-waiter", "npm:4.1.1"],\ + ["@smithy/uuid", "npm:1.0.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/client-sso", [\ + ["npm:3.899.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-client-sso-npm-3.899.0-3dee239b7c-10c0.zip/node_modules/@aws-sdk/client-sso/",\ + "packageDependencies": [\ + ["@aws-crypto/sha256-browser", "npm:5.2.0"],\ + ["@aws-crypto/sha256-js", "npm:5.2.0"],\ + ["@aws-sdk/client-sso", "npm:3.899.0"],\ + ["@aws-sdk/core", "npm:3.899.0"],\ + ["@aws-sdk/middleware-host-header", "npm:3.893.0"],\ + ["@aws-sdk/middleware-logger", "npm:3.893.0"],\ + ["@aws-sdk/middleware-recursion-detection", "npm:3.893.0"],\ + ["@aws-sdk/middleware-user-agent", "npm:3.899.0"],\ + ["@aws-sdk/region-config-resolver", "npm:3.893.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@aws-sdk/util-endpoints", "npm:3.895.0"],\ + ["@aws-sdk/util-user-agent-browser", "npm:3.893.0"],\ + ["@aws-sdk/util-user-agent-node", "virtual:3dee239b7c9c99fb25083bbe33ec9ed27ed15e135da82518105af51ae429efda4b868db2407d5db388c4eb76e6d86f5ed1add372a69dd591005d5162b731e5ff#npm:3.899.0"],\ + ["@smithy/config-resolver", "npm:4.2.2"],\ + ["@smithy/core", "npm:3.13.0"],\ + ["@smithy/fetch-http-handler", "npm:5.2.1"],\ + ["@smithy/hash-node", "npm:4.1.1"],\ + ["@smithy/invalid-dependency", "npm:4.1.1"],\ + ["@smithy/middleware-content-length", "npm:4.1.1"],\ + ["@smithy/middleware-endpoint", "npm:4.2.5"],\ + ["@smithy/middleware-retry", "npm:4.3.1"],\ + ["@smithy/middleware-serde", "npm:4.1.1"],\ + ["@smithy/middleware-stack", "npm:4.1.1"],\ + ["@smithy/node-config-provider", "npm:4.2.2"],\ + ["@smithy/node-http-handler", "npm:4.2.1"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/smithy-client", "npm:4.6.5"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/url-parser", "npm:4.1.1"],\ + ["@smithy/util-base64", "npm:4.1.0"],\ + ["@smithy/util-body-length-browser", "npm:4.1.0"],\ + ["@smithy/util-body-length-node", "npm:4.1.0"],\ + ["@smithy/util-defaults-mode-browser", "npm:4.1.5"],\ + ["@smithy/util-defaults-mode-node", "npm:4.1.5"],\ + ["@smithy/util-endpoints", "npm:3.1.2"],\ + ["@smithy/util-middleware", "npm:4.1.1"],\ + ["@smithy/util-retry", "npm:4.1.2"],\ + ["@smithy/util-utf8", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/core", [\ + ["npm:3.899.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-core-npm-3.899.0-2373482a98-10c0.zip/node_modules/@aws-sdk/core/",\ + "packageDependencies": [\ + ["@aws-sdk/core", "npm:3.899.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@aws-sdk/xml-builder", "npm:3.894.0"],\ + ["@smithy/core", "npm:3.13.0"],\ + ["@smithy/node-config-provider", "npm:4.2.2"],\ + ["@smithy/property-provider", "npm:4.1.1"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/signature-v4", "npm:5.2.1"],\ + ["@smithy/smithy-client", "npm:4.6.5"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-base64", "npm:4.1.0"],\ + ["@smithy/util-middleware", "npm:4.1.1"],\ + ["@smithy/util-utf8", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/credential-provider-env", [\ + ["npm:3.899.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-credential-provider-env-npm-3.899.0-08d76a2149-10c0.zip/node_modules/@aws-sdk/credential-provider-env/",\ + "packageDependencies": [\ + ["@aws-sdk/core", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-env", "npm:3.899.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/property-provider", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/credential-provider-http", [\ + ["npm:3.899.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-credential-provider-http-npm-3.899.0-a39e5ceb09-10c0.zip/node_modules/@aws-sdk/credential-provider-http/",\ + "packageDependencies": [\ + ["@aws-sdk/core", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-http", "npm:3.899.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/fetch-http-handler", "npm:5.2.1"],\ + ["@smithy/node-http-handler", "npm:4.2.1"],\ + ["@smithy/property-provider", "npm:4.1.1"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/smithy-client", "npm:4.6.5"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-stream", "npm:4.3.2"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/credential-provider-ini", [\ + ["npm:3.899.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-credential-provider-ini-npm-3.899.0-abf24f14b9-10c0.zip/node_modules/@aws-sdk/credential-provider-ini/",\ + "packageDependencies": [\ + ["@aws-sdk/core", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-env", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-http", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-ini", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-process", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-sso", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-web-identity", "npm:3.899.0"],\ + ["@aws-sdk/nested-clients", "npm:3.899.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/credential-provider-imds", "npm:4.1.2"],\ + ["@smithy/property-provider", "npm:4.1.1"],\ + ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/credential-provider-node", [\ + ["npm:3.899.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-credential-provider-node-npm-3.899.0-718c515aec-10c0.zip/node_modules/@aws-sdk/credential-provider-node/",\ + "packageDependencies": [\ + ["@aws-sdk/credential-provider-env", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-http", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-ini", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-node", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-process", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-sso", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-web-identity", "npm:3.899.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/credential-provider-imds", "npm:4.1.2"],\ + ["@smithy/property-provider", "npm:4.1.1"],\ + ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/credential-provider-process", [\ + ["npm:3.899.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-credential-provider-process-npm-3.899.0-a8e631721d-10c0.zip/node_modules/@aws-sdk/credential-provider-process/",\ + "packageDependencies": [\ + ["@aws-sdk/core", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-process", "npm:3.899.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/property-provider", "npm:4.1.1"],\ + ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/credential-provider-sso", [\ + ["npm:3.899.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-credential-provider-sso-npm-3.899.0-6d13427b7b-10c0.zip/node_modules/@aws-sdk/credential-provider-sso/",\ + "packageDependencies": [\ + ["@aws-sdk/client-sso", "npm:3.899.0"],\ + ["@aws-sdk/core", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-sso", "npm:3.899.0"],\ + ["@aws-sdk/token-providers", "npm:3.899.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/property-provider", "npm:4.1.1"],\ + ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/credential-provider-web-identity", [\ + ["npm:3.899.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-credential-provider-web-identity-npm-3.899.0-09d36281a7-10c0.zip/node_modules/@aws-sdk/credential-provider-web-identity/",\ + "packageDependencies": [\ + ["@aws-sdk/core", "npm:3.899.0"],\ + ["@aws-sdk/credential-provider-web-identity", "npm:3.899.0"],\ + ["@aws-sdk/nested-clients", "npm:3.899.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/property-provider", "npm:4.1.1"],\ + ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/middleware-bucket-endpoint", [\ + ["npm:3.893.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-bucket-endpoint-npm-3.893.0-daf1531b21-10c0.zip/node_modules/@aws-sdk/middleware-bucket-endpoint/",\ + "packageDependencies": [\ + ["@aws-sdk/middleware-bucket-endpoint", "npm:3.893.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@aws-sdk/util-arn-parser", "npm:3.893.0"],\ + ["@smithy/node-config-provider", "npm:4.2.2"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-config-provider", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/middleware-expect-continue", [\ + ["npm:3.893.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-expect-continue-npm-3.893.0-966a29e442-10c0.zip/node_modules/@aws-sdk/middleware-expect-continue/",\ + "packageDependencies": [\ + ["@aws-sdk/middleware-expect-continue", "npm:3.893.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/middleware-flexible-checksums", [\ + ["npm:3.899.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-flexible-checksums-npm-3.899.0-b7da974d74-10c0.zip/node_modules/@aws-sdk/middleware-flexible-checksums/",\ + "packageDependencies": [\ + ["@aws-crypto/crc32", "npm:5.2.0"],\ + ["@aws-crypto/crc32c", "npm:5.2.0"],\ + ["@aws-crypto/util", "npm:5.2.0"],\ + ["@aws-sdk/core", "npm:3.899.0"],\ + ["@aws-sdk/middleware-flexible-checksums", "npm:3.899.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/is-array-buffer", "npm:4.1.0"],\ + ["@smithy/node-config-provider", "npm:4.2.2"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-middleware", "npm:4.1.1"],\ + ["@smithy/util-stream", "npm:4.3.2"],\ + ["@smithy/util-utf8", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/middleware-host-header", [\ + ["npm:3.893.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-host-header-npm-3.893.0-623621d91d-10c0.zip/node_modules/@aws-sdk/middleware-host-header/",\ + "packageDependencies": [\ + ["@aws-sdk/middleware-host-header", "npm:3.893.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/middleware-location-constraint", [\ + ["npm:3.893.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-location-constraint-npm-3.893.0-5bf68e8147-10c0.zip/node_modules/@aws-sdk/middleware-location-constraint/",\ + "packageDependencies": [\ + ["@aws-sdk/middleware-location-constraint", "npm:3.893.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/middleware-logger", [\ + ["npm:3.893.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-logger-npm-3.893.0-1e37871d30-10c0.zip/node_modules/@aws-sdk/middleware-logger/",\ + "packageDependencies": [\ + ["@aws-sdk/middleware-logger", "npm:3.893.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/middleware-recursion-detection", [\ + ["npm:3.893.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-recursion-detection-npm-3.893.0-5c9849ba9c-10c0.zip/node_modules/@aws-sdk/middleware-recursion-detection/",\ + "packageDependencies": [\ + ["@aws-sdk/middleware-recursion-detection", "npm:3.893.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@aws/lambda-invoke-store", "npm:0.0.1"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/middleware-sdk-s3", [\ + ["npm:3.899.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-sdk-s3-npm-3.899.0-d7e4e4b997-10c0.zip/node_modules/@aws-sdk/middleware-sdk-s3/",\ + "packageDependencies": [\ + ["@aws-sdk/core", "npm:3.899.0"],\ + ["@aws-sdk/middleware-sdk-s3", "npm:3.899.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@aws-sdk/util-arn-parser", "npm:3.893.0"],\ + ["@smithy/core", "npm:3.13.0"],\ + ["@smithy/node-config-provider", "npm:4.2.2"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/signature-v4", "npm:5.2.1"],\ + ["@smithy/smithy-client", "npm:4.6.5"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-config-provider", "npm:4.1.0"],\ + ["@smithy/util-middleware", "npm:4.1.1"],\ + ["@smithy/util-stream", "npm:4.3.2"],\ + ["@smithy/util-utf8", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/middleware-ssec", [\ + ["npm:3.893.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-ssec-npm-3.893.0-5108ed4753-10c0.zip/node_modules/@aws-sdk/middleware-ssec/",\ + "packageDependencies": [\ + ["@aws-sdk/middleware-ssec", "npm:3.893.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/middleware-user-agent", [\ + ["npm:3.899.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-user-agent-npm-3.899.0-86f6859a15-10c0.zip/node_modules/@aws-sdk/middleware-user-agent/",\ + "packageDependencies": [\ + ["@aws-sdk/core", "npm:3.899.0"],\ + ["@aws-sdk/middleware-user-agent", "npm:3.899.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@aws-sdk/util-endpoints", "npm:3.895.0"],\ + ["@smithy/core", "npm:3.13.0"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/nested-clients", [\ + ["npm:3.899.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-nested-clients-npm-3.899.0-dc82c7303f-10c0.zip/node_modules/@aws-sdk/nested-clients/",\ + "packageDependencies": [\ + ["@aws-crypto/sha256-browser", "npm:5.2.0"],\ + ["@aws-crypto/sha256-js", "npm:5.2.0"],\ + ["@aws-sdk/core", "npm:3.899.0"],\ + ["@aws-sdk/middleware-host-header", "npm:3.893.0"],\ + ["@aws-sdk/middleware-logger", "npm:3.893.0"],\ + ["@aws-sdk/middleware-recursion-detection", "npm:3.893.0"],\ + ["@aws-sdk/middleware-user-agent", "npm:3.899.0"],\ + ["@aws-sdk/nested-clients", "npm:3.899.0"],\ + ["@aws-sdk/region-config-resolver", "npm:3.893.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@aws-sdk/util-endpoints", "npm:3.895.0"],\ + ["@aws-sdk/util-user-agent-browser", "npm:3.893.0"],\ + ["@aws-sdk/util-user-agent-node", "virtual:3dee239b7c9c99fb25083bbe33ec9ed27ed15e135da82518105af51ae429efda4b868db2407d5db388c4eb76e6d86f5ed1add372a69dd591005d5162b731e5ff#npm:3.899.0"],\ + ["@smithy/config-resolver", "npm:4.2.2"],\ + ["@smithy/core", "npm:3.13.0"],\ + ["@smithy/fetch-http-handler", "npm:5.2.1"],\ + ["@smithy/hash-node", "npm:4.1.1"],\ + ["@smithy/invalid-dependency", "npm:4.1.1"],\ + ["@smithy/middleware-content-length", "npm:4.1.1"],\ + ["@smithy/middleware-endpoint", "npm:4.2.5"],\ + ["@smithy/middleware-retry", "npm:4.3.1"],\ + ["@smithy/middleware-serde", "npm:4.1.1"],\ + ["@smithy/middleware-stack", "npm:4.1.1"],\ + ["@smithy/node-config-provider", "npm:4.2.2"],\ + ["@smithy/node-http-handler", "npm:4.2.1"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/smithy-client", "npm:4.6.5"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/url-parser", "npm:4.1.1"],\ + ["@smithy/util-base64", "npm:4.1.0"],\ + ["@smithy/util-body-length-browser", "npm:4.1.0"],\ + ["@smithy/util-body-length-node", "npm:4.1.0"],\ + ["@smithy/util-defaults-mode-browser", "npm:4.1.5"],\ + ["@smithy/util-defaults-mode-node", "npm:4.1.5"],\ + ["@smithy/util-endpoints", "npm:3.1.2"],\ + ["@smithy/util-middleware", "npm:4.1.1"],\ + ["@smithy/util-retry", "npm:4.1.2"],\ + ["@smithy/util-utf8", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/region-config-resolver", [\ + ["npm:3.893.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-region-config-resolver-npm-3.893.0-1c4d02c9d8-10c0.zip/node_modules/@aws-sdk/region-config-resolver/",\ + "packageDependencies": [\ + ["@aws-sdk/region-config-resolver", "npm:3.893.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/node-config-provider", "npm:4.2.2"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-config-provider", "npm:4.1.0"],\ + ["@smithy/util-middleware", "npm:4.1.1"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/signature-v4-multi-region", [\ + ["npm:3.899.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-signature-v4-multi-region-npm-3.899.0-acb2a404ee-10c0.zip/node_modules/@aws-sdk/signature-v4-multi-region/",\ + "packageDependencies": [\ + ["@aws-sdk/middleware-sdk-s3", "npm:3.899.0"],\ + ["@aws-sdk/signature-v4-multi-region", "npm:3.899.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/signature-v4", "npm:5.2.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/token-providers", [\ + ["npm:3.899.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-token-providers-npm-3.899.0-7db15ddb57-10c0.zip/node_modules/@aws-sdk/token-providers/",\ + "packageDependencies": [\ + ["@aws-sdk/core", "npm:3.899.0"],\ + ["@aws-sdk/nested-clients", "npm:3.899.0"],\ + ["@aws-sdk/token-providers", "npm:3.899.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/property-provider", "npm:4.1.1"],\ + ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/types", [\ + ["npm:3.893.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-types-npm-3.893.0-e4c26d67a6-10c0.zip/node_modules/@aws-sdk/types/",\ + "packageDependencies": [\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/util-arn-parser", [\ + ["npm:3.893.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-util-arn-parser-npm-3.893.0-57cc541b46-10c0.zip/node_modules/@aws-sdk/util-arn-parser/",\ + "packageDependencies": [\ + ["@aws-sdk/util-arn-parser", "npm:3.893.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/util-endpoints", [\ + ["npm:3.895.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-util-endpoints-npm-3.895.0-7ffd157e89-10c0.zip/node_modules/@aws-sdk/util-endpoints/",\ + "packageDependencies": [\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@aws-sdk/util-endpoints", "npm:3.895.0"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/url-parser", "npm:4.1.1"],\ + ["@smithy/util-endpoints", "npm:3.1.2"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/util-locate-window", [\ + ["npm:3.893.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-util-locate-window-npm-3.893.0-15b9c66e92-10c0.zip/node_modules/@aws-sdk/util-locate-window/",\ + "packageDependencies": [\ + ["@aws-sdk/util-locate-window", "npm:3.893.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/util-user-agent-browser", [\ + ["npm:3.893.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-util-user-agent-browser-npm-3.893.0-551bc934ee-10c0.zip/node_modules/@aws-sdk/util-user-agent-browser/",\ + "packageDependencies": [\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@aws-sdk/util-user-agent-browser", "npm:3.893.0"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["bowser", "npm:2.12.1"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/util-user-agent-node", [\ + ["npm:3.899.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-util-user-agent-node-npm-3.899.0-81d1f33482-10c0.zip/node_modules/@aws-sdk/util-user-agent-node/",\ + "packageDependencies": [\ + ["@aws-sdk/util-user-agent-node", "npm:3.899.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:3dee239b7c9c99fb25083bbe33ec9ed27ed15e135da82518105af51ae429efda4b868db2407d5db388c4eb76e6d86f5ed1add372a69dd591005d5162b731e5ff#npm:3.899.0", {\ + "packageLocation": "./.yarn/__virtual__/@aws-sdk-util-user-agent-node-virtual-bb57dce703/5/.yarn/berry/cache/@aws-sdk-util-user-agent-node-npm-3.899.0-81d1f33482-10c0.zip/node_modules/@aws-sdk/util-user-agent-node/",\ + "packageDependencies": [\ + ["@aws-sdk/middleware-user-agent", "npm:3.899.0"],\ + ["@aws-sdk/types", "npm:3.893.0"],\ + ["@aws-sdk/util-user-agent-node", "virtual:3dee239b7c9c99fb25083bbe33ec9ed27ed15e135da82518105af51ae429efda4b868db2407d5db388c4eb76e6d86f5ed1add372a69dd591005d5162b731e5ff#npm:3.899.0"],\ + ["@smithy/node-config-provider", "npm:4.2.2"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@types/aws-crt", null],\ + ["aws-crt", null],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "packagePeers": [\ + "@types/aws-crt",\ + "aws-crt"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws-sdk/xml-builder", [\ + ["npm:3.894.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-xml-builder-npm-3.894.0-512f83fdf6-10c0.zip/node_modules/@aws-sdk/xml-builder/",\ + "packageDependencies": [\ + ["@aws-sdk/xml-builder", "npm:3.894.0"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["fast-xml-parser", "npm:5.2.5"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@aws/lambda-invoke-store", [\ + ["npm:0.0.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@aws-lambda-invoke-store-npm-0.0.1-254551ad3d-10c0.zip/node_modules/@aws/lambda-invoke-store/",\ + "packageDependencies": [\ + ["@aws/lambda-invoke-store", "npm:0.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@cspotcode/source-map-support", [\ + ["npm:0.8.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@cspotcode-source-map-support-npm-0.8.1-964f2de99d-10c0.zip/node_modules/@cspotcode/source-map-support/",\ + "packageDependencies": [\ + ["@cspotcode/source-map-support", "npm:0.8.1"],\ + ["@jridgewell/trace-mapping", "npm:0.3.9"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@defillama/sdk", [\ + ["npm:5.0.172", {\ + "packageLocation": "../../../../.yarn/berry/cache/@defillama-sdk-npm-5.0.172-9594ace194-10c0.zip/node_modules/@defillama/sdk/",\ + "packageDependencies": [\ + ["@aws-sdk/client-s3", "npm:3.899.0"],\ + ["@defillama/sdk", "npm:5.0.172"],\ + ["@elastic/elasticsearch", "npm:8.19.1"],\ + ["@supercharge/promise-pool", "npm:2.4.0"],\ + ["axios", "npm:1.12.2"],\ + ["ethers", "npm:6.15.0"],\ + ["p-limit", "npm:3.1.0"],\ + ["tron-format-address", "npm:0.1.12"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@elastic/elasticsearch", [\ + ["npm:8.19.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@elastic-elasticsearch-npm-8.19.1-92fce440a0-10c0.zip/node_modules/@elastic/elasticsearch/",\ + "packageDependencies": [\ + ["@elastic/elasticsearch", "npm:8.19.1"],\ + ["@elastic/transport", "npm:8.10.0"],\ + ["apache-arrow", "npm:21.0.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@elastic/transport", [\ + ["npm:8.10.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@elastic-transport-npm-8.10.0-1dc2ec07cf-10c0.zip/node_modules/@elastic/transport/",\ + "packageDependencies": [\ + ["@elastic/transport", "npm:8.10.0"],\ + ["@opentelemetry/api", "npm:1.9.0"],\ + ["@opentelemetry/core", "virtual:1dc2ec07cf749fac799da3bc4db26ab447def9bb7cf78ad3c7d3d028f3ba1ba6fdf9435781e1ed98b0b34b039887bca2b196a1d316d371cbdc6b6ab9a8c078c5#npm:2.1.0"],\ + ["debug", "virtual:1dc2ec07cf749fac799da3bc4db26ab447def9bb7cf78ad3c7d3d028f3ba1ba6fdf9435781e1ed98b0b34b039887bca2b196a1d316d371cbdc6b6ab9a8c078c5#npm:4.4.3"],\ + ["hpagent", "npm:1.2.0"],\ + ["ms", "npm:2.1.3"],\ + ["secure-json-parse", "npm:3.0.2"],\ + ["tslib", "npm:2.8.1"],\ + ["undici", "npm:6.21.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@graphql-typed-document-node/core", [\ + ["npm:3.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@graphql-typed-document-node-core-npm-3.2.0-505adb1e90-10c0.zip/node_modules/@graphql-typed-document-node/core/",\ + "packageDependencies": [\ + ["@graphql-typed-document-node/core", "npm:3.2.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:b77d6076cf3b5d91398d1f55303ad98dcb5f31a96f2654571413ed616a832b49722c74dcb94a45478c0c06b9fadfe64390d18d9d5c0cf7a1f7a2825bbe5f0b49#npm:3.2.0", {\ + "packageLocation": "./.yarn/__virtual__/@graphql-typed-document-node-core-virtual-8d6aae5285/5/.yarn/berry/cache/@graphql-typed-document-node-core-npm-3.2.0-505adb1e90-10c0.zip/node_modules/@graphql-typed-document-node/core/",\ + "packageDependencies": [\ + ["@graphql-typed-document-node/core", "virtual:b77d6076cf3b5d91398d1f55303ad98dcb5f31a96f2654571413ed616a832b49722c74dcb94a45478c0c06b9fadfe64390d18d9d5c0cf7a1f7a2825bbe5f0b49#npm:3.2.0"],\ + ["@types/graphql", null],\ + ["graphql", "npm:16.11.0"]\ + ],\ + "packagePeers": [\ + "@types/graphql",\ + "graphql"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@inquirer/external-editor", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/@inquirer-external-editor-npm-1.0.2-389c6568ea-10c0.zip/node_modules/@inquirer/external-editor/",\ + "packageDependencies": [\ + ["@inquirer/external-editor", "npm:1.0.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:89da895fc6c52cfbcaef8b581147d59a7db8b26b92aadd12fb1c6a8a42e4cfcc64fb8c80af7aaf4eaa0ff1e32bd41186d2ccbe98638a604583506802c2ed1384#npm:1.0.2", {\ + "packageLocation": "./.yarn/__virtual__/@inquirer-external-editor-virtual-b48d3fd3f5/5/.yarn/berry/cache/@inquirer-external-editor-npm-1.0.2-389c6568ea-10c0.zip/node_modules/@inquirer/external-editor/",\ + "packageDependencies": [\ + ["@inquirer/external-editor", "virtual:89da895fc6c52cfbcaef8b581147d59a7db8b26b92aadd12fb1c6a8a42e4cfcc64fb8c80af7aaf4eaa0ff1e32bd41186d2ccbe98638a604583506802c2ed1384#npm:1.0.2"],\ + ["@types/node", null],\ + ["chardet", "npm:2.1.0"],\ + ["iconv-lite", "npm:0.7.0"]\ + ],\ + "packagePeers": [\ + "@types/node"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@isaacs/cliui", [\ + ["npm:8.0.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/@isaacs-cliui-npm-8.0.2-f4364666d5-10c0.zip/node_modules/@isaacs/cliui/",\ + "packageDependencies": [\ + ["@isaacs/cliui", "npm:8.0.2"],\ + ["string-width", "npm:5.1.2"],\ + ["string-width-cjs", [\ + "string-width",\ + "npm:4.2.3"\ + ]],\ + ["strip-ansi", "npm:7.1.2"],\ + ["strip-ansi-cjs", [\ + "strip-ansi",\ + "npm:6.0.1"\ + ]],\ + ["wrap-ansi", "npm:8.1.0"],\ + ["wrap-ansi-cjs", [\ + "wrap-ansi",\ + "npm:7.0.0"\ + ]]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jridgewell/resolve-uri", [\ + ["npm:3.1.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-10c0.zip/node_modules/@jridgewell/resolve-uri/",\ + "packageDependencies": [\ + ["@jridgewell/resolve-uri", "npm:3.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jridgewell/sourcemap-codec", [\ + ["npm:1.5.5", {\ + "packageLocation": "../../../../.yarn/berry/cache/@jridgewell-sourcemap-codec-npm-1.5.5-5189d9fc79-10c0.zip/node_modules/@jridgewell/sourcemap-codec/",\ + "packageDependencies": [\ + ["@jridgewell/sourcemap-codec", "npm:1.5.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@jridgewell/trace-mapping", [\ + ["npm:0.3.9", {\ + "packageLocation": "../../../../.yarn/berry/cache/@jridgewell-trace-mapping-npm-0.3.9-91625cd7fb-10c0.zip/node_modules/@jridgewell/trace-mapping/",\ + "packageDependencies": [\ + ["@jridgewell/resolve-uri", "npm:3.1.2"],\ + ["@jridgewell/sourcemap-codec", "npm:1.5.5"],\ + ["@jridgewell/trace-mapping", "npm:0.3.9"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@napi-rs/triples", [\ + ["npm:1.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@napi-rs-triples-npm-1.2.0-2903f4117c-10c0.zip/node_modules/@napi-rs/triples/",\ + "packageDependencies": [\ + ["@napi-rs/triples", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@noble/curves", [\ + ["npm:1.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@noble-curves-npm-1.2.0-9b40ee1239-10c0.zip/node_modules/@noble/curves/",\ + "packageDependencies": [\ + ["@noble/curves", "npm:1.2.0"],\ + ["@noble/hashes", "npm:1.3.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@noble/hashes", [\ + ["npm:1.3.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/@noble-hashes-npm-1.3.2-1e619f9da0-10c0.zip/node_modules/@noble/hashes/",\ + "packageDependencies": [\ + ["@noble/hashes", "npm:1.3.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@node-rs/helper", [\ + ["npm:1.6.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@node-rs-helper-npm-1.6.0-82df6019e7-10c0.zip/node_modules/@node-rs/helper/",\ + "packageDependencies": [\ + ["@napi-rs/triples", "npm:1.2.0"],\ + ["@node-rs/helper", "npm:1.6.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@opentelemetry/api", [\ + ["npm:1.9.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@opentelemetry-api-npm-1.9.0-7d0560d0dd-10c0.zip/node_modules/@opentelemetry/api/",\ + "packageDependencies": [\ + ["@opentelemetry/api", "npm:1.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@opentelemetry/core", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@opentelemetry-core-npm-2.1.0-ea8b80bf70-10c0.zip/node_modules/@opentelemetry/core/",\ + "packageDependencies": [\ + ["@opentelemetry/core", "npm:2.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:1dc2ec07cf749fac799da3bc4db26ab447def9bb7cf78ad3c7d3d028f3ba1ba6fdf9435781e1ed98b0b34b039887bca2b196a1d316d371cbdc6b6ab9a8c078c5#npm:2.1.0", {\ + "packageLocation": "./.yarn/__virtual__/@opentelemetry-core-virtual-d883fd1575/5/.yarn/berry/cache/@opentelemetry-core-npm-2.1.0-ea8b80bf70-10c0.zip/node_modules/@opentelemetry/core/",\ + "packageDependencies": [\ + ["@opentelemetry/api", "npm:1.9.0"],\ + ["@opentelemetry/core", "virtual:1dc2ec07cf749fac799da3bc4db26ab447def9bb7cf78ad3c7d3d028f3ba1ba6fdf9435781e1ed98b0b34b039887bca2b196a1d316d371cbdc6b6ab9a8c078c5#npm:2.1.0"],\ + ["@opentelemetry/semantic-conventions", "npm:1.37.0"],\ + ["@types/opentelemetry__api", null]\ + ],\ + "packagePeers": [\ + "@opentelemetry/api",\ + "@types/opentelemetry__api"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@opentelemetry/semantic-conventions", [\ + ["npm:1.37.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@opentelemetry-semantic-conventions-npm-1.37.0-6c34392e86-10c0.zip/node_modules/@opentelemetry/semantic-conventions/",\ + "packageDependencies": [\ + ["@opentelemetry/semantic-conventions", "npm:1.37.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@pkgjs/parseargs", [\ + ["npm:0.11.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@pkgjs-parseargs-npm-0.11.0-cd2a3fe948-10c0.zip/node_modules/@pkgjs/parseargs/",\ + "packageDependencies": [\ + ["@pkgjs/parseargs", "npm:0.11.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/abort-controller", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-abort-controller-npm-4.1.1-5a395c6c7a-10c0.zip/node_modules/@smithy/abort-controller/",\ + "packageDependencies": [\ + ["@smithy/abort-controller", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/chunked-blob-reader", [\ + ["npm:5.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-chunked-blob-reader-npm-5.1.0-651b52ca86-10c0.zip/node_modules/@smithy/chunked-blob-reader/",\ + "packageDependencies": [\ + ["@smithy/chunked-blob-reader", "npm:5.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/chunked-blob-reader-native", [\ + ["npm:4.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-chunked-blob-reader-native-npm-4.1.0-337b787178-10c0.zip/node_modules/@smithy/chunked-blob-reader-native/",\ + "packageDependencies": [\ + ["@smithy/chunked-blob-reader-native", "npm:4.1.0"],\ + ["@smithy/util-base64", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/config-resolver", [\ + ["npm:4.2.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-config-resolver-npm-4.2.2-2b7b324244-10c0.zip/node_modules/@smithy/config-resolver/",\ + "packageDependencies": [\ + ["@smithy/config-resolver", "npm:4.2.2"],\ + ["@smithy/node-config-provider", "npm:4.2.2"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-config-provider", "npm:4.1.0"],\ + ["@smithy/util-middleware", "npm:4.1.1"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/core", [\ + ["npm:3.13.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-core-npm-3.13.0-641dcdade5-10c0.zip/node_modules/@smithy/core/",\ + "packageDependencies": [\ + ["@smithy/core", "npm:3.13.0"],\ + ["@smithy/middleware-serde", "npm:4.1.1"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-base64", "npm:4.1.0"],\ + ["@smithy/util-body-length-browser", "npm:4.1.0"],\ + ["@smithy/util-middleware", "npm:4.1.1"],\ + ["@smithy/util-stream", "npm:4.3.2"],\ + ["@smithy/util-utf8", "npm:4.1.0"],\ + ["@smithy/uuid", "npm:1.0.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/credential-provider-imds", [\ + ["npm:4.1.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-credential-provider-imds-npm-4.1.2-e1ba262591-10c0.zip/node_modules/@smithy/credential-provider-imds/",\ + "packageDependencies": [\ + ["@smithy/credential-provider-imds", "npm:4.1.2"],\ + ["@smithy/node-config-provider", "npm:4.2.2"],\ + ["@smithy/property-provider", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/url-parser", "npm:4.1.1"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/eventstream-codec", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-eventstream-codec-npm-4.1.1-76890a6d1e-10c0.zip/node_modules/@smithy/eventstream-codec/",\ + "packageDependencies": [\ + ["@aws-crypto/crc32", "npm:5.2.0"],\ + ["@smithy/eventstream-codec", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-hex-encoding", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/eventstream-serde-browser", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-eventstream-serde-browser-npm-4.1.1-fef8282a9b-10c0.zip/node_modules/@smithy/eventstream-serde-browser/",\ + "packageDependencies": [\ + ["@smithy/eventstream-serde-browser", "npm:4.1.1"],\ + ["@smithy/eventstream-serde-universal", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/eventstream-serde-config-resolver", [\ + ["npm:4.2.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-eventstream-serde-config-resolver-npm-4.2.1-a35e29175c-10c0.zip/node_modules/@smithy/eventstream-serde-config-resolver/",\ + "packageDependencies": [\ + ["@smithy/eventstream-serde-config-resolver", "npm:4.2.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/eventstream-serde-node", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-eventstream-serde-node-npm-4.1.1-357be57e10-10c0.zip/node_modules/@smithy/eventstream-serde-node/",\ + "packageDependencies": [\ + ["@smithy/eventstream-serde-node", "npm:4.1.1"],\ + ["@smithy/eventstream-serde-universal", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/eventstream-serde-universal", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-eventstream-serde-universal-npm-4.1.1-2446849acd-10c0.zip/node_modules/@smithy/eventstream-serde-universal/",\ + "packageDependencies": [\ + ["@smithy/eventstream-codec", "npm:4.1.1"],\ + ["@smithy/eventstream-serde-universal", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/fetch-http-handler", [\ + ["npm:5.2.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-fetch-http-handler-npm-5.2.1-b45fae3d92-10c0.zip/node_modules/@smithy/fetch-http-handler/",\ + "packageDependencies": [\ + ["@smithy/fetch-http-handler", "npm:5.2.1"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/querystring-builder", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-base64", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/hash-blob-browser", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-hash-blob-browser-npm-4.1.1-e6badda960-10c0.zip/node_modules/@smithy/hash-blob-browser/",\ + "packageDependencies": [\ + ["@smithy/chunked-blob-reader", "npm:5.1.0"],\ + ["@smithy/chunked-blob-reader-native", "npm:4.1.0"],\ + ["@smithy/hash-blob-browser", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/hash-node", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-hash-node-npm-4.1.1-4fc94684ee-10c0.zip/node_modules/@smithy/hash-node/",\ + "packageDependencies": [\ + ["@smithy/hash-node", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-buffer-from", "npm:4.1.0"],\ + ["@smithy/util-utf8", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/hash-stream-node", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-hash-stream-node-npm-4.1.1-151e6d1541-10c0.zip/node_modules/@smithy/hash-stream-node/",\ + "packageDependencies": [\ + ["@smithy/hash-stream-node", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-utf8", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/invalid-dependency", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-invalid-dependency-npm-4.1.1-14596bb0dc-10c0.zip/node_modules/@smithy/invalid-dependency/",\ + "packageDependencies": [\ + ["@smithy/invalid-dependency", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/is-array-buffer", [\ + ["npm:2.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-is-array-buffer-npm-2.2.0-108320772d-10c0.zip/node_modules/@smithy/is-array-buffer/",\ + "packageDependencies": [\ + ["@smithy/is-array-buffer", "npm:2.2.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-is-array-buffer-npm-4.1.0-361232228a-10c0.zip/node_modules/@smithy/is-array-buffer/",\ + "packageDependencies": [\ + ["@smithy/is-array-buffer", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/md5-js", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-md5-js-npm-4.1.1-2d0fa2604c-10c0.zip/node_modules/@smithy/md5-js/",\ + "packageDependencies": [\ + ["@smithy/md5-js", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-utf8", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/middleware-content-length", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-middleware-content-length-npm-4.1.1-80c823e981-10c0.zip/node_modules/@smithy/middleware-content-length/",\ + "packageDependencies": [\ + ["@smithy/middleware-content-length", "npm:4.1.1"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/middleware-endpoint", [\ + ["npm:4.2.5", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-middleware-endpoint-npm-4.2.5-4adb06af5d-10c0.zip/node_modules/@smithy/middleware-endpoint/",\ + "packageDependencies": [\ + ["@smithy/core", "npm:3.13.0"],\ + ["@smithy/middleware-endpoint", "npm:4.2.5"],\ + ["@smithy/middleware-serde", "npm:4.1.1"],\ + ["@smithy/node-config-provider", "npm:4.2.2"],\ + ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/url-parser", "npm:4.1.1"],\ + ["@smithy/util-middleware", "npm:4.1.1"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/middleware-retry", [\ + ["npm:4.3.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-middleware-retry-npm-4.3.1-0b7c145af5-10c0.zip/node_modules/@smithy/middleware-retry/",\ + "packageDependencies": [\ + ["@smithy/middleware-retry", "npm:4.3.1"],\ + ["@smithy/node-config-provider", "npm:4.2.2"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/service-error-classification", "npm:4.1.2"],\ + ["@smithy/smithy-client", "npm:4.6.5"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-middleware", "npm:4.1.1"],\ + ["@smithy/util-retry", "npm:4.1.2"],\ + ["@smithy/uuid", "npm:1.0.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/middleware-serde", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-middleware-serde-npm-4.1.1-f880505b80-10c0.zip/node_modules/@smithy/middleware-serde/",\ + "packageDependencies": [\ + ["@smithy/middleware-serde", "npm:4.1.1"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/middleware-stack", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-middleware-stack-npm-4.1.1-ed69cf2808-10c0.zip/node_modules/@smithy/middleware-stack/",\ + "packageDependencies": [\ + ["@smithy/middleware-stack", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/node-config-provider", [\ + ["npm:4.2.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-node-config-provider-npm-4.2.2-2855bf24af-10c0.zip/node_modules/@smithy/node-config-provider/",\ + "packageDependencies": [\ + ["@smithy/node-config-provider", "npm:4.2.2"],\ + ["@smithy/property-provider", "npm:4.1.1"],\ + ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/node-http-handler", [\ + ["npm:4.2.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-node-http-handler-npm-4.2.1-c56a572e50-10c0.zip/node_modules/@smithy/node-http-handler/",\ + "packageDependencies": [\ + ["@smithy/abort-controller", "npm:4.1.1"],\ + ["@smithy/node-http-handler", "npm:4.2.1"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/querystring-builder", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/property-provider", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-property-provider-npm-4.1.1-0589c13110-10c0.zip/node_modules/@smithy/property-provider/",\ + "packageDependencies": [\ + ["@smithy/property-provider", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/protocol-http", [\ + ["npm:5.2.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-protocol-http-npm-5.2.1-cd31763256-10c0.zip/node_modules/@smithy/protocol-http/",\ + "packageDependencies": [\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/querystring-builder", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-querystring-builder-npm-4.1.1-a5da9cffc9-10c0.zip/node_modules/@smithy/querystring-builder/",\ + "packageDependencies": [\ + ["@smithy/querystring-builder", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-uri-escape", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/querystring-parser", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-querystring-parser-npm-4.1.1-9b75c97dc8-10c0.zip/node_modules/@smithy/querystring-parser/",\ + "packageDependencies": [\ + ["@smithy/querystring-parser", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/service-error-classification", [\ + ["npm:4.1.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-service-error-classification-npm-4.1.2-632bffeeed-10c0.zip/node_modules/@smithy/service-error-classification/",\ + "packageDependencies": [\ + ["@smithy/service-error-classification", "npm:4.1.2"],\ + ["@smithy/types", "npm:4.5.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/shared-ini-file-loader", [\ + ["npm:4.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-shared-ini-file-loader-npm-4.2.0-72b23b9aff-10c0.zip/node_modules/@smithy/shared-ini-file-loader/",\ + "packageDependencies": [\ + ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/signature-v4", [\ + ["npm:5.2.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-signature-v4-npm-5.2.1-b853c707d8-10c0.zip/node_modules/@smithy/signature-v4/",\ + "packageDependencies": [\ + ["@smithy/is-array-buffer", "npm:4.1.0"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/signature-v4", "npm:5.2.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-hex-encoding", "npm:4.1.0"],\ + ["@smithy/util-middleware", "npm:4.1.1"],\ + ["@smithy/util-uri-escape", "npm:4.1.0"],\ + ["@smithy/util-utf8", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/smithy-client", [\ + ["npm:4.6.5", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-smithy-client-npm-4.6.5-b62b0c4084-10c0.zip/node_modules/@smithy/smithy-client/",\ + "packageDependencies": [\ + ["@smithy/core", "npm:3.13.0"],\ + ["@smithy/middleware-endpoint", "npm:4.2.5"],\ + ["@smithy/middleware-stack", "npm:4.1.1"],\ + ["@smithy/protocol-http", "npm:5.2.1"],\ + ["@smithy/smithy-client", "npm:4.6.5"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-stream", "npm:4.3.2"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/types", [\ + ["npm:4.5.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-types-npm-4.5.0-072a6c2ac5-10c0.zip/node_modules/@smithy/types/",\ + "packageDependencies": [\ + ["@smithy/types", "npm:4.5.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/url-parser", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-url-parser-npm-4.1.1-2c984c88e6-10c0.zip/node_modules/@smithy/url-parser/",\ + "packageDependencies": [\ + ["@smithy/querystring-parser", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/url-parser", "npm:4.1.1"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/util-base64", [\ + ["npm:4.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-base64-npm-4.1.0-890eed0149-10c0.zip/node_modules/@smithy/util-base64/",\ + "packageDependencies": [\ + ["@smithy/util-base64", "npm:4.1.0"],\ + ["@smithy/util-buffer-from", "npm:4.1.0"],\ + ["@smithy/util-utf8", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/util-body-length-browser", [\ + ["npm:4.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-body-length-browser-npm-4.1.0-b0b26ee1f0-10c0.zip/node_modules/@smithy/util-body-length-browser/",\ + "packageDependencies": [\ + ["@smithy/util-body-length-browser", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/util-body-length-node", [\ + ["npm:4.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-body-length-node-npm-4.1.0-7ed848dd52-10c0.zip/node_modules/@smithy/util-body-length-node/",\ + "packageDependencies": [\ + ["@smithy/util-body-length-node", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/util-buffer-from", [\ + ["npm:2.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-buffer-from-npm-2.2.0-0ef5989125-10c0.zip/node_modules/@smithy/util-buffer-from/",\ + "packageDependencies": [\ + ["@smithy/is-array-buffer", "npm:2.2.0"],\ + ["@smithy/util-buffer-from", "npm:2.2.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-buffer-from-npm-4.1.0-e6d3d42213-10c0.zip/node_modules/@smithy/util-buffer-from/",\ + "packageDependencies": [\ + ["@smithy/is-array-buffer", "npm:4.1.0"],\ + ["@smithy/util-buffer-from", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/util-config-provider", [\ + ["npm:4.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-config-provider-npm-4.1.0-8b2ae28e9b-10c0.zip/node_modules/@smithy/util-config-provider/",\ + "packageDependencies": [\ + ["@smithy/util-config-provider", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/util-defaults-mode-browser", [\ + ["npm:4.1.5", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-defaults-mode-browser-npm-4.1.5-aacc904e63-10c0.zip/node_modules/@smithy/util-defaults-mode-browser/",\ + "packageDependencies": [\ + ["@smithy/property-provider", "npm:4.1.1"],\ + ["@smithy/smithy-client", "npm:4.6.5"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-defaults-mode-browser", "npm:4.1.5"],\ + ["bowser", "npm:2.12.1"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/util-defaults-mode-node", [\ + ["npm:4.1.5", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-defaults-mode-node-npm-4.1.5-6ef12752cd-10c0.zip/node_modules/@smithy/util-defaults-mode-node/",\ + "packageDependencies": [\ + ["@smithy/config-resolver", "npm:4.2.2"],\ + ["@smithy/credential-provider-imds", "npm:4.1.2"],\ + ["@smithy/node-config-provider", "npm:4.2.2"],\ + ["@smithy/property-provider", "npm:4.1.1"],\ + ["@smithy/smithy-client", "npm:4.6.5"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-defaults-mode-node", "npm:4.1.5"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/util-endpoints", [\ + ["npm:3.1.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-endpoints-npm-3.1.2-ba4dc0443a-10c0.zip/node_modules/@smithy/util-endpoints/",\ + "packageDependencies": [\ + ["@smithy/node-config-provider", "npm:4.2.2"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-endpoints", "npm:3.1.2"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/util-hex-encoding", [\ + ["npm:4.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-hex-encoding-npm-4.1.0-afc2edbbb1-10c0.zip/node_modules/@smithy/util-hex-encoding/",\ + "packageDependencies": [\ + ["@smithy/util-hex-encoding", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/util-middleware", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-middleware-npm-4.1.1-e2b6fbb125-10c0.zip/node_modules/@smithy/util-middleware/",\ + "packageDependencies": [\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-middleware", "npm:4.1.1"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/util-retry", [\ + ["npm:4.1.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-retry-npm-4.1.2-a080615178-10c0.zip/node_modules/@smithy/util-retry/",\ + "packageDependencies": [\ + ["@smithy/service-error-classification", "npm:4.1.2"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-retry", "npm:4.1.2"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/util-stream", [\ + ["npm:4.3.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-stream-npm-4.3.2-43a6da1066-10c0.zip/node_modules/@smithy/util-stream/",\ + "packageDependencies": [\ + ["@smithy/fetch-http-handler", "npm:5.2.1"],\ + ["@smithy/node-http-handler", "npm:4.2.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-base64", "npm:4.1.0"],\ + ["@smithy/util-buffer-from", "npm:4.1.0"],\ + ["@smithy/util-hex-encoding", "npm:4.1.0"],\ + ["@smithy/util-stream", "npm:4.3.2"],\ + ["@smithy/util-utf8", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/util-uri-escape", [\ + ["npm:4.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-uri-escape-npm-4.1.0-d557250b4c-10c0.zip/node_modules/@smithy/util-uri-escape/",\ + "packageDependencies": [\ + ["@smithy/util-uri-escape", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/util-utf8", [\ + ["npm:2.3.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-utf8-npm-2.3.0-9dcba0d35f-10c0.zip/node_modules/@smithy/util-utf8/",\ + "packageDependencies": [\ + ["@smithy/util-buffer-from", "npm:2.2.0"],\ + ["@smithy/util-utf8", "npm:2.3.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-utf8-npm-4.1.0-7fda3e57de-10c0.zip/node_modules/@smithy/util-utf8/",\ + "packageDependencies": [\ + ["@smithy/util-buffer-from", "npm:4.1.0"],\ + ["@smithy/util-utf8", "npm:4.1.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/util-waiter", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-waiter-npm-4.1.1-8aae0b4d34-10c0.zip/node_modules/@smithy/util-waiter/",\ + "packageDependencies": [\ + ["@smithy/abort-controller", "npm:4.1.1"],\ + ["@smithy/types", "npm:4.5.0"],\ + ["@smithy/util-waiter", "npm:4.1.1"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@smithy/uuid", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@smithy-uuid-npm-1.0.0-a08f20cf97-10c0.zip/node_modules/@smithy/uuid/",\ + "packageDependencies": [\ + ["@smithy/uuid", "npm:1.0.0"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@supercharge/promise-pool", [\ + ["npm:2.4.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@supercharge-promise-pool-npm-2.4.0-cb9749bb15-10c0.zip/node_modules/@supercharge/promise-pool/",\ + "packageDependencies": [\ + ["@supercharge/promise-pool", "npm:2.4.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@supercharge-promise-pool-npm-3.2.0-a8707efc66-10c0.zip/node_modules/@supercharge/promise-pool/",\ + "packageDependencies": [\ + ["@supercharge/promise-pool", "npm:3.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@swc/helpers", [\ + ["npm:0.5.17", {\ + "packageLocation": "../../../../.yarn/berry/cache/@swc-helpers-npm-0.5.17-53974f71e8-10c0.zip/node_modules/@swc/helpers/",\ + "packageDependencies": [\ + ["@swc/helpers", "npm:0.5.17"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@tsconfig/node10", [\ + ["npm:1.0.11", {\ + "packageLocation": "../../../../.yarn/berry/cache/@tsconfig-node10-npm-1.0.11-ab23db00e2-10c0.zip/node_modules/@tsconfig/node10/",\ + "packageDependencies": [\ + ["@tsconfig/node10", "npm:1.0.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@tsconfig/node12", [\ + ["npm:1.0.11", {\ + "packageLocation": "../../../../.yarn/berry/cache/@tsconfig-node12-npm-1.0.11-9710d1c61b-10c0.zip/node_modules/@tsconfig/node12/",\ + "packageDependencies": [\ + ["@tsconfig/node12", "npm:1.0.11"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@tsconfig/node14", [\ + ["npm:1.0.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/@tsconfig-node14-npm-1.0.3-15321421d2-10c0.zip/node_modules/@tsconfig/node14/",\ + "packageDependencies": [\ + ["@tsconfig/node14", "npm:1.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@tsconfig/node16", [\ + ["npm:1.0.4", {\ + "packageLocation": "../../../../.yarn/berry/cache/@tsconfig-node16-npm-1.0.4-b7cb87d859-10c0.zip/node_modules/@tsconfig/node16/",\ + "packageDependencies": [\ + ["@tsconfig/node16", "npm:1.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/async-retry", [\ + ["npm:1.4.9", {\ + "packageLocation": "../../../../.yarn/berry/cache/@types-async-retry-npm-1.4.9-0d12d53d91-10c0.zip/node_modules/@types/async-retry/",\ + "packageDependencies": [\ + ["@types/async-retry", "npm:1.4.9"],\ + ["@types/retry", "npm:0.12.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/command-line-args", [\ + ["npm:5.2.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/@types-command-line-args-npm-5.2.3-7cfcff5040-10c0.zip/node_modules/@types/command-line-args/",\ + "packageDependencies": [\ + ["@types/command-line-args", "npm:5.2.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/command-line-usage", [\ + ["npm:5.0.4", {\ + "packageLocation": "../../../../.yarn/berry/cache/@types-command-line-usage-npm-5.0.4-a0c17413f5-10c0.zip/node_modules/@types/command-line-usage/",\ + "packageDependencies": [\ + ["@types/command-line-usage", "npm:5.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/debug", [\ + ["npm:4.1.12", {\ + "packageLocation": "../../../../.yarn/berry/cache/@types-debug-npm-4.1.12-82a3fc4905-10c0.zip/node_modules/@types/debug/",\ + "packageDependencies": [\ + ["@types/debug", "npm:4.1.12"],\ + ["@types/ms", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/ms", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@types-ms-npm-2.1.0-529ef799cc-10c0.zip/node_modules/@types/ms/",\ + "packageDependencies": [\ + ["@types/ms", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/node", [\ + ["npm:18.19.128", {\ + "packageLocation": "../../../../.yarn/berry/cache/@types-node-npm-18.19.128-ac4f8bdf1a-10c0.zip/node_modules/@types/node/",\ + "packageDependencies": [\ + ["@types/node", "npm:18.19.128"],\ + ["undici-types", "npm:5.26.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:22.7.5", {\ + "packageLocation": "../../../../.yarn/berry/cache/@types-node-npm-22.7.5-0428b60a8c-10c0.zip/node_modules/@types/node/",\ + "packageDependencies": [\ + ["@types/node", "npm:22.7.5"],\ + ["undici-types", "npm:6.19.8"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:24.6.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/@types-node-npm-24.6.0-8053228cd5-10c0.zip/node_modules/@types/node/",\ + "packageDependencies": [\ + ["@types/node", "npm:24.6.0"],\ + ["undici-types", "npm:7.13.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/retry", [\ + ["npm:0.12.5", {\ + "packageLocation": "../../../../.yarn/berry/cache/@types-retry-npm-0.12.5-f1986a76a6-10c0.zip/node_modules/@types/retry/",\ + "packageDependencies": [\ + ["@types/retry", "npm:0.12.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["@types/validator", [\ + ["npm:13.15.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/@types-validator-npm-13.15.3-245f3deb5a-10c0.zip/node_modules/@types/validator/",\ + "packageDependencies": [\ + ["@types/validator", "npm:13.15.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["acorn", [\ + ["npm:8.15.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/acorn-npm-8.15.0-0764cf600e-10c0.zip/node_modules/acorn/",\ + "packageDependencies": [\ + ["acorn", "npm:8.15.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["acorn-walk", [\ + ["npm:8.3.4", {\ + "packageLocation": "../../../../.yarn/berry/cache/acorn-walk-npm-8.3.4-a75fa85ead-10c0.zip/node_modules/acorn-walk/",\ + "packageDependencies": [\ + ["acorn", "npm:8.15.0"],\ + ["acorn-walk", "npm:8.3.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["adapters", [\ + ["workspace:.", {\ + "packageLocation": "./",\ + "packageDependencies": [\ + ["@defillama/sdk", "npm:5.0.172"],\ + ["@supercharge/promise-pool", "npm:3.2.0"],\ + ["@types/async-retry", "npm:1.4.9"],\ + ["@types/node", "npm:18.19.128"],\ + ["adapters", "workspace:."],\ + ["async-retry", "npm:1.3.3"],\ + ["axios", "npm:1.12.2"],\ + ["bignumber.js", "npm:9.3.1"],\ + ["dotenv", "npm:16.6.1"],\ + ["ethers", "npm:6.15.0"],\ + ["glob", "npm:10.4.5"],\ + ["graphql", "npm:16.11.0"],\ + ["graphql-request", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:5.1.0"],\ + ["inquirer", "npm:8.2.7"],\ + ["inquirer-fuzzy-path", "npm:2.3.0"],\ + ["lz4-napi", "npm:2.9.0"],\ + ["p-limit", "npm:3.1.0"],\ + ["pg", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:8.16.3"],\ + ["sequelize", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:6.37.7"],\ + ["tron-format-address", "npm:0.1.12"],\ + ["ts-node", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:10.9.2"],\ + ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"]\ + ],\ + "linkType": "SOFT"\ + }]\ + ]],\ + ["aes-js", [\ + ["npm:4.0.0-beta.5", {\ + "packageLocation": "../../../../.yarn/berry/cache/aes-js-npm-4.0.0-beta.5-c70da65547-10c0.zip/node_modules/aes-js/",\ + "packageDependencies": [\ + ["aes-js", "npm:4.0.0-beta.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ansi-escapes", [\ + ["npm:3.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/ansi-escapes-npm-3.2.0-a9d573100e-10c0.zip/node_modules/ansi-escapes/",\ + "packageDependencies": [\ + ["ansi-escapes", "npm:3.2.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.3.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/ansi-escapes-npm-4.3.2-3ad173702f-10c0.zip/node_modules/ansi-escapes/",\ + "packageDependencies": [\ + ["ansi-escapes", "npm:4.3.2"],\ + ["type-fest", "npm:0.21.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ansi-regex", [\ + ["npm:3.0.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/ansi-regex-npm-3.0.1-01f44078a3-10c0.zip/node_modules/ansi-regex/",\ + "packageDependencies": [\ + ["ansi-regex", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/ansi-regex-npm-4.1.1-af0a582bb9-10c0.zip/node_modules/ansi-regex/",\ + "packageDependencies": [\ + ["ansi-regex", "npm:4.1.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.0.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/ansi-regex-npm-5.0.1-c963a48615-10c0.zip/node_modules/ansi-regex/",\ + "packageDependencies": [\ + ["ansi-regex", "npm:5.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:6.2.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/ansi-regex-npm-6.2.2-f2d6691eb1-10c0.zip/node_modules/ansi-regex/",\ + "packageDependencies": [\ + ["ansi-regex", "npm:6.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ansi-styles", [\ + ["npm:3.2.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/ansi-styles-npm-3.2.1-8cb8107983-10c0.zip/node_modules/ansi-styles/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:3.2.1"],\ + ["color-convert", "npm:1.9.3"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.3.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/ansi-styles-npm-4.3.0-245c7d42c7-10c0.zip/node_modules/ansi-styles/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:4.3.0"],\ + ["color-convert", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:6.2.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/ansi-styles-npm-6.2.3-6fc7ca2bf5-10c0.zip/node_modules/ansi-styles/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:6.2.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["apache-arrow", [\ + ["npm:21.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/apache-arrow-npm-21.0.0-04b54009bf-10c0.zip/node_modules/apache-arrow/",\ + "packageDependencies": [\ + ["@swc/helpers", "npm:0.5.17"],\ + ["@types/command-line-args", "npm:5.2.3"],\ + ["@types/command-line-usage", "npm:5.0.4"],\ + ["@types/node", "npm:24.6.0"],\ + ["apache-arrow", "npm:21.0.0"],\ + ["command-line-args", "virtual:04b54009bfe0e650dec673c3f1d5a21dc796ad27381e77f5a83286bf7fc56c643c9a914bb137c2b9d7d231098572d90de259785893c5b6a55c4a51fa53633474#npm:6.0.1"],\ + ["command-line-usage", "npm:7.0.3"],\ + ["flatbuffers", "npm:25.9.23"],\ + ["json-bignum", "npm:0.0.3"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["arg", [\ + ["npm:4.1.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/arg-npm-4.1.3-1748b966a8-10c0.zip/node_modules/arg/",\ + "packageDependencies": [\ + ["arg", "npm:4.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["array-back", [\ + ["npm:6.2.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/array-back-npm-6.2.2-81634c71f1-10c0.zip/node_modules/array-back/",\ + "packageDependencies": [\ + ["array-back", "npm:6.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["async-function", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/async-function-npm-1.0.0-a81667ebcd-10c0.zip/node_modules/async-function/",\ + "packageDependencies": [\ + ["async-function", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["async-generator-function", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/async-generator-function-npm-1.0.0-14cf981d13-10c0.zip/node_modules/async-generator-function/",\ + "packageDependencies": [\ + ["async-generator-function", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["async-retry", [\ + ["npm:1.3.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/async-retry-npm-1.3.3-bc90c5cee0-10c0.zip/node_modules/async-retry/",\ + "packageDependencies": [\ + ["async-retry", "npm:1.3.3"],\ + ["retry", "npm:0.13.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["asynckit", [\ + ["npm:0.4.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/asynckit-npm-0.4.0-c718858525-10c0.zip/node_modules/asynckit/",\ + "packageDependencies": [\ + ["asynckit", "npm:0.4.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["axios", [\ + ["npm:1.12.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/axios-npm-1.12.2-cdb8ea6c90-10c0.zip/node_modules/axios/",\ + "packageDependencies": [\ + ["axios", "npm:1.12.2"],\ + ["follow-redirects", "virtual:cdb8ea6c90bba762bf2366a1a88869c55a09bf9d9076ce8fcccf1e27011bd6d92acc154b2b250d8981e0c9daf722c96602b003df3b346cc7d59ad22f6b68080f#npm:1.15.11"],\ + ["form-data", "npm:4.0.4"],\ + ["proxy-from-env", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["balanced-match", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/balanced-match-npm-1.0.2-a53c126459-10c0.zip/node_modules/balanced-match/",\ + "packageDependencies": [\ + ["balanced-match", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["base64-js", [\ + ["npm:1.5.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/base64-js-npm-1.5.1-b2f7275641-10c0.zip/node_modules/base64-js/",\ + "packageDependencies": [\ + ["base64-js", "npm:1.5.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["bignumber.js", [\ + ["npm:9.3.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/bignumber.js-npm-9.3.1-d784181dd0-10c0.zip/node_modules/bignumber.js/",\ + "packageDependencies": [\ + ["bignumber.js", "npm:9.3.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["bl", [\ + ["npm:4.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/bl-npm-4.1.0-7f94cdcf3f-10c0.zip/node_modules/bl/",\ + "packageDependencies": [\ + ["bl", "npm:4.1.0"],\ + ["buffer", "npm:5.7.1"],\ + ["inherits", "npm:2.0.4"],\ + ["readable-stream", "npm:3.6.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["bowser", [\ + ["npm:2.12.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/bowser-npm-2.12.1-1aad5935b0-10c0.zip/node_modules/bowser/",\ + "packageDependencies": [\ + ["bowser", "npm:2.12.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["brace-expansion", [\ + ["npm:2.0.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/brace-expansion-npm-2.0.2-bc7f134bbc-10c0.zip/node_modules/brace-expansion/",\ + "packageDependencies": [\ + ["balanced-match", "npm:1.0.2"],\ + ["brace-expansion", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["buffer", [\ + ["npm:5.7.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/buffer-npm-5.7.1-513ef8259e-10c0.zip/node_modules/buffer/",\ + "packageDependencies": [\ + ["base64-js", "npm:1.5.1"],\ + ["buffer", "npm:5.7.1"],\ + ["ieee754", "npm:1.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["call-bind-apply-helpers", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/call-bind-apply-helpers-npm-1.0.2-3eedbea3bb-10c0.zip/node_modules/call-bind-apply-helpers/",\ + "packageDependencies": [\ + ["call-bind-apply-helpers", "npm:1.0.2"],\ + ["es-errors", "npm:1.3.0"],\ + ["function-bind", "npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["chalk", [\ + ["npm:2.4.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/chalk-npm-2.4.2-3ea16dd91e-10c0.zip/node_modules/chalk/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:3.2.1"],\ + ["chalk", "npm:2.4.2"],\ + ["escape-string-regexp", "npm:1.0.5"],\ + ["supports-color", "npm:5.5.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.1.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/chalk-npm-4.1.2-ba8b67ab80-10c0.zip/node_modules/chalk/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:4.3.0"],\ + ["chalk", "npm:4.1.2"],\ + ["supports-color", "npm:7.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["chalk-template", [\ + ["npm:0.4.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/chalk-template-npm-0.4.0-d7a0499c36-10c0.zip/node_modules/chalk-template/",\ + "packageDependencies": [\ + ["chalk", "npm:4.1.2"],\ + ["chalk-template", "npm:0.4.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["chardet", [\ + ["npm:0.7.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/chardet-npm-0.7.0-27933dd6c7-10c0.zip/node_modules/chardet/",\ + "packageDependencies": [\ + ["chardet", "npm:0.7.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/chardet-npm-2.1.0-d7766f0f06-10c0.zip/node_modules/chardet/",\ + "packageDependencies": [\ + ["chardet", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cli-cursor", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/cli-cursor-npm-2.1.0-3920629c9c-10c0.zip/node_modules/cli-cursor/",\ + "packageDependencies": [\ + ["cli-cursor", "npm:2.1.0"],\ + ["restore-cursor", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/cli-cursor-npm-3.1.0-fee1e46b5e-10c0.zip/node_modules/cli-cursor/",\ + "packageDependencies": [\ + ["cli-cursor", "npm:3.1.0"],\ + ["restore-cursor", "npm:3.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cli-spinners", [\ + ["npm:2.9.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/cli-spinners-npm-2.9.2-be9c08efee-10c0.zip/node_modules/cli-spinners/",\ + "packageDependencies": [\ + ["cli-spinners", "npm:2.9.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cli-width", [\ + ["npm:2.2.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/cli-width-npm-2.2.1-4bdb77393c-10c0.zip/node_modules/cli-width/",\ + "packageDependencies": [\ + ["cli-width", "npm:2.2.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/cli-width-npm-3.0.0-387b3f68f9-10c0.zip/node_modules/cli-width/",\ + "packageDependencies": [\ + ["cli-width", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["clone", [\ + ["npm:1.0.4", {\ + "packageLocation": "../../../../.yarn/berry/cache/clone-npm-1.0.4-a610fcbcf9-10c0.zip/node_modules/clone/",\ + "packageDependencies": [\ + ["clone", "npm:1.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["color-convert", [\ + ["npm:1.9.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/color-convert-npm-1.9.3-1fe690075e-10c0.zip/node_modules/color-convert/",\ + "packageDependencies": [\ + ["color-convert", "npm:1.9.3"],\ + ["color-name", "npm:1.1.3"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.0.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/color-convert-npm-2.0.1-79730e935b-10c0.zip/node_modules/color-convert/",\ + "packageDependencies": [\ + ["color-convert", "npm:2.0.1"],\ + ["color-name", "npm:1.1.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["color-name", [\ + ["npm:1.1.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/color-name-npm-1.1.3-728b7b5d39-10c0.zip/node_modules/color-name/",\ + "packageDependencies": [\ + ["color-name", "npm:1.1.3"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:1.1.4", {\ + "packageLocation": "../../../../.yarn/berry/cache/color-name-npm-1.1.4-025792b0ea-10c0.zip/node_modules/color-name/",\ + "packageDependencies": [\ + ["color-name", "npm:1.1.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["combined-stream", [\ + ["npm:1.0.8", {\ + "packageLocation": "../../../../.yarn/berry/cache/combined-stream-npm-1.0.8-dc14d4a63a-10c0.zip/node_modules/combined-stream/",\ + "packageDependencies": [\ + ["combined-stream", "npm:1.0.8"],\ + ["delayed-stream", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["command-line-args", [\ + ["npm:6.0.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/command-line-args-npm-6.0.1-a52b79bf99-10c0.zip/node_modules/command-line-args/",\ + "packageDependencies": [\ + ["command-line-args", "npm:6.0.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:04b54009bfe0e650dec673c3f1d5a21dc796ad27381e77f5a83286bf7fc56c643c9a914bb137c2b9d7d231098572d90de259785893c5b6a55c4a51fa53633474#npm:6.0.1", {\ + "packageLocation": "./.yarn/__virtual__/command-line-args-virtual-86c82d6be5/5/.yarn/berry/cache/command-line-args-npm-6.0.1-a52b79bf99-10c0.zip/node_modules/command-line-args/",\ + "packageDependencies": [\ + ["@75lb/nature", null],\ + ["@types/75lb__nature", null],\ + ["array-back", "npm:6.2.2"],\ + ["command-line-args", "virtual:04b54009bfe0e650dec673c3f1d5a21dc796ad27381e77f5a83286bf7fc56c643c9a914bb137c2b9d7d231098572d90de259785893c5b6a55c4a51fa53633474#npm:6.0.1"],\ + ["find-replace", "virtual:86c82d6be5e347719329c17b97b08e4d567beb32d8e53e386b76d84eb7c23adb46a52d676d865248dbfdd01b4be9bea33d5ef3a2d7c7829ecb983d74144ff4a7#npm:5.0.2"],\ + ["lodash.camelcase", "npm:4.3.0"],\ + ["typical", "npm:7.3.0"]\ + ],\ + "packagePeers": [\ + "@75lb/nature",\ + "@types/75lb__nature"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["command-line-usage", [\ + ["npm:7.0.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/command-line-usage-npm-7.0.3-fc171ce420-10c0.zip/node_modules/command-line-usage/",\ + "packageDependencies": [\ + ["array-back", "npm:6.2.2"],\ + ["chalk-template", "npm:0.4.0"],\ + ["command-line-usage", "npm:7.0.3"],\ + ["table-layout", "npm:4.1.1"],\ + ["typical", "npm:7.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["create-require", [\ + ["npm:1.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/create-require-npm-1.1.1-839884ca2e-10c0.zip/node_modules/create-require/",\ + "packageDependencies": [\ + ["create-require", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cross-fetch", [\ + ["npm:3.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/cross-fetch-npm-3.2.0-267029ff2f-10c0.zip/node_modules/cross-fetch/",\ + "packageDependencies": [\ + ["cross-fetch", "npm:3.2.0"],\ + ["node-fetch", "virtual:267029ff2f85c65479d29496cc50976fb522ed8beda97f97e23b49194e83bd9867cfd15af96b05ad656edae653eb3a95a72ba015ac1556bfdf9591902b5e5ecc#npm:2.7.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["cross-spawn", [\ + ["npm:7.0.6", {\ + "packageLocation": "../../../../.yarn/berry/cache/cross-spawn-npm-7.0.6-264bddf921-10c0.zip/node_modules/cross-spawn/",\ + "packageDependencies": [\ + ["cross-spawn", "npm:7.0.6"],\ + ["path-key", "npm:3.1.1"],\ + ["shebang-command", "npm:2.0.0"],\ + ["which", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["debug", [\ + ["npm:4.4.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/debug-npm-4.4.3-0105c6123a-10c0.zip/node_modules/debug/",\ + "packageDependencies": [\ + ["debug", "npm:4.4.3"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:1dc2ec07cf749fac799da3bc4db26ab447def9bb7cf78ad3c7d3d028f3ba1ba6fdf9435781e1ed98b0b34b039887bca2b196a1d316d371cbdc6b6ab9a8c078c5#npm:4.4.3", {\ + "packageLocation": "./.yarn/__virtual__/debug-virtual-6b8d41ee0b/5/.yarn/berry/cache/debug-npm-4.4.3-0105c6123a-10c0.zip/node_modules/debug/",\ + "packageDependencies": [\ + ["@types/supports-color", null],\ + ["debug", "virtual:1dc2ec07cf749fac799da3bc4db26ab447def9bb7cf78ad3c7d3d028f3ba1ba6fdf9435781e1ed98b0b34b039887bca2b196a1d316d371cbdc6b6ab9a8c078c5#npm:4.4.3"],\ + ["ms", "npm:2.1.3"],\ + ["supports-color", null]\ + ],\ + "packagePeers": [\ + "@types/supports-color",\ + "supports-color"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["defaults", [\ + ["npm:1.0.4", {\ + "packageLocation": "../../../../.yarn/berry/cache/defaults-npm-1.0.4-f3fbaf2528-10c0.zip/node_modules/defaults/",\ + "packageDependencies": [\ + ["clone", "npm:1.0.4"],\ + ["defaults", "npm:1.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["delayed-stream", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/delayed-stream-npm-1.0.0-c5a4c4cc02-10c0.zip/node_modules/delayed-stream/",\ + "packageDependencies": [\ + ["delayed-stream", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["diff", [\ + ["npm:4.0.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/diff-npm-4.0.2-73133c7102-10c0.zip/node_modules/diff/",\ + "packageDependencies": [\ + ["diff", "npm:4.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["dotenv", [\ + ["npm:16.6.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/dotenv-npm-16.6.1-01334288ea-10c0.zip/node_modules/dotenv/",\ + "packageDependencies": [\ + ["dotenv", "npm:16.6.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["dottie", [\ + ["npm:2.0.6", {\ + "packageLocation": "../../../../.yarn/berry/cache/dottie-npm-2.0.6-0b47a47557-10c0.zip/node_modules/dottie/",\ + "packageDependencies": [\ + ["dottie", "npm:2.0.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["dunder-proto", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/dunder-proto-npm-1.0.1-90eb6829db-10c0.zip/node_modules/dunder-proto/",\ + "packageDependencies": [\ + ["call-bind-apply-helpers", "npm:1.0.2"],\ + ["dunder-proto", "npm:1.0.1"],\ + ["es-errors", "npm:1.3.0"],\ + ["gopd", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["eastasianwidth", [\ + ["npm:0.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/eastasianwidth-npm-0.2.0-c37eb16bd1-10c0.zip/node_modules/eastasianwidth/",\ + "packageDependencies": [\ + ["eastasianwidth", "npm:0.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["emoji-regex", [\ + ["npm:8.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/emoji-regex-npm-8.0.0-213764015c-10c0.zip/node_modules/emoji-regex/",\ + "packageDependencies": [\ + ["emoji-regex", "npm:8.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:9.2.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/emoji-regex-npm-9.2.2-e6fac8d058-10c0.zip/node_modules/emoji-regex/",\ + "packageDependencies": [\ + ["emoji-regex", "npm:9.2.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["es-define-property", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/es-define-property-npm-1.0.1-3fc6324f1c-10c0.zip/node_modules/es-define-property/",\ + "packageDependencies": [\ + ["es-define-property", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["es-errors", [\ + ["npm:1.3.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/es-errors-npm-1.3.0-fda0c9b8a8-10c0.zip/node_modules/es-errors/",\ + "packageDependencies": [\ + ["es-errors", "npm:1.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["es-object-atoms", [\ + ["npm:1.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/es-object-atoms-npm-1.1.1-362d8043c2-10c0.zip/node_modules/es-object-atoms/",\ + "packageDependencies": [\ + ["es-errors", "npm:1.3.0"],\ + ["es-object-atoms", "npm:1.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["es-set-tostringtag", [\ + ["npm:2.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/es-set-tostringtag-npm-2.1.0-4e55705d3f-10c0.zip/node_modules/es-set-tostringtag/",\ + "packageDependencies": [\ + ["es-errors", "npm:1.3.0"],\ + ["es-set-tostringtag", "npm:2.1.0"],\ + ["get-intrinsic", "npm:1.3.1"],\ + ["has-tostringtag", "npm:1.0.2"],\ + ["hasown", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["escape-string-regexp", [\ + ["npm:1.0.5", {\ + "packageLocation": "../../../../.yarn/berry/cache/escape-string-regexp-npm-1.0.5-3284de402f-10c0.zip/node_modules/escape-string-regexp/",\ + "packageDependencies": [\ + ["escape-string-regexp", "npm:1.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ethers", [\ + ["npm:6.15.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/ethers-npm-6.15.0-f266964bbf-10c0.zip/node_modules/ethers/",\ + "packageDependencies": [\ + ["@adraffy/ens-normalize", "npm:1.10.1"],\ + ["@noble/curves", "npm:1.2.0"],\ + ["@noble/hashes", "npm:1.3.2"],\ + ["@types/node", "npm:22.7.5"],\ + ["aes-js", "npm:4.0.0-beta.5"],\ + ["ethers", "npm:6.15.0"],\ + ["tslib", "npm:2.7.0"],\ + ["ws", "virtual:f266964bbf0a973b765b066fe1b1828807981016fc49075d7d14462508ec0b4c518650d9ae747c8b805b7e3e20b5b050695db51ba47ef5e8e240f1bec894a15f#npm:8.17.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["external-editor", [\ + ["npm:3.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/external-editor-npm-3.1.0-878e7807af-10c0.zip/node_modules/external-editor/",\ + "packageDependencies": [\ + ["chardet", "npm:0.7.0"],\ + ["external-editor", "npm:3.1.0"],\ + ["iconv-lite", "npm:0.4.24"],\ + ["tmp", "npm:0.0.33"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["extract-files", [\ + ["npm:9.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/extract-files-npm-9.0.0-6ee13e6aab-10c0.zip/node_modules/extract-files/",\ + "packageDependencies": [\ + ["extract-files", "npm:9.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fast-xml-parser", [\ + ["npm:5.2.5", {\ + "packageLocation": "../../../../.yarn/berry/cache/fast-xml-parser-npm-5.2.5-4fd49da1b5-10c0.zip/node_modules/fast-xml-parser/",\ + "packageDependencies": [\ + ["fast-xml-parser", "npm:5.2.5"],\ + ["strnum", "npm:2.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["figures", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/figures-npm-2.0.0-f2db814eec-10c0.zip/node_modules/figures/",\ + "packageDependencies": [\ + ["escape-string-regexp", "npm:1.0.5"],\ + ["figures", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/figures-npm-3.2.0-85d357e955-10c0.zip/node_modules/figures/",\ + "packageDependencies": [\ + ["escape-string-regexp", "npm:1.0.5"],\ + ["figures", "npm:3.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["find-replace", [\ + ["npm:5.0.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/find-replace-npm-5.0.2-cd92368618-10c0.zip/node_modules/find-replace/",\ + "packageDependencies": [\ + ["find-replace", "npm:5.0.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:86c82d6be5e347719329c17b97b08e4d567beb32d8e53e386b76d84eb7c23adb46a52d676d865248dbfdd01b4be9bea33d5ef3a2d7c7829ecb983d74144ff4a7#npm:5.0.2", {\ + "packageLocation": "./.yarn/__virtual__/find-replace-virtual-8b376dc171/5/.yarn/berry/cache/find-replace-npm-5.0.2-cd92368618-10c0.zip/node_modules/find-replace/",\ + "packageDependencies": [\ + ["@75lb/nature", null],\ + ["@types/75lb__nature", null],\ + ["find-replace", "virtual:86c82d6be5e347719329c17b97b08e4d567beb32d8e53e386b76d84eb7c23adb46a52d676d865248dbfdd01b4be9bea33d5ef3a2d7c7829ecb983d74144ff4a7#npm:5.0.2"]\ + ],\ + "packagePeers": [\ + "@75lb/nature",\ + "@types/75lb__nature"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["flatbuffers", [\ + ["npm:25.9.23", {\ + "packageLocation": "../../../../.yarn/berry/cache/flatbuffers-npm-25.9.23-f6f2bdfca5-10c0.zip/node_modules/flatbuffers/",\ + "packageDependencies": [\ + ["flatbuffers", "npm:25.9.23"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["follow-redirects", [\ + ["npm:1.15.11", {\ + "packageLocation": "../../../../.yarn/berry/cache/follow-redirects-npm-1.15.11-ae7b2db266-10c0.zip/node_modules/follow-redirects/",\ + "packageDependencies": [\ + ["follow-redirects", "npm:1.15.11"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:cdb8ea6c90bba762bf2366a1a88869c55a09bf9d9076ce8fcccf1e27011bd6d92acc154b2b250d8981e0c9daf722c96602b003df3b346cc7d59ad22f6b68080f#npm:1.15.11", {\ + "packageLocation": "./.yarn/__virtual__/follow-redirects-virtual-1c36f0670e/5/.yarn/berry/cache/follow-redirects-npm-1.15.11-ae7b2db266-10c0.zip/node_modules/follow-redirects/",\ + "packageDependencies": [\ + ["@types/debug", null],\ + ["debug", null],\ + ["follow-redirects", "virtual:cdb8ea6c90bba762bf2366a1a88869c55a09bf9d9076ce8fcccf1e27011bd6d92acc154b2b250d8981e0c9daf722c96602b003df3b346cc7d59ad22f6b68080f#npm:1.15.11"]\ + ],\ + "packagePeers": [\ + "@types/debug",\ + "debug"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["foreground-child", [\ + ["npm:3.3.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/foreground-child-npm-3.3.1-b7775fda04-10c0.zip/node_modules/foreground-child/",\ + "packageDependencies": [\ + ["cross-spawn", "npm:7.0.6"],\ + ["foreground-child", "npm:3.3.1"],\ + ["signal-exit", "npm:4.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["form-data", [\ + ["npm:3.0.4", {\ + "packageLocation": "../../../../.yarn/berry/cache/form-data-npm-3.0.4-2a63eafd8b-10c0.zip/node_modules/form-data/",\ + "packageDependencies": [\ + ["asynckit", "npm:0.4.0"],\ + ["combined-stream", "npm:1.0.8"],\ + ["es-set-tostringtag", "npm:2.1.0"],\ + ["form-data", "npm:3.0.4"],\ + ["hasown", "npm:2.0.2"],\ + ["mime-types", "npm:2.1.35"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.0.4", {\ + "packageLocation": "../../../../.yarn/berry/cache/form-data-npm-4.0.4-10eb4ef9c3-10c0.zip/node_modules/form-data/",\ + "packageDependencies": [\ + ["asynckit", "npm:0.4.0"],\ + ["combined-stream", "npm:1.0.8"],\ + ["es-set-tostringtag", "npm:2.1.0"],\ + ["form-data", "npm:4.0.4"],\ + ["hasown", "npm:2.0.2"],\ + ["mime-types", "npm:2.1.35"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["function-bind", [\ + ["npm:1.1.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/function-bind-npm-1.1.2-7a55be9b03-10c0.zip/node_modules/function-bind/",\ + "packageDependencies": [\ + ["function-bind", "npm:1.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["fuzzy", [\ + ["npm:0.1.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/fuzzy-npm-0.1.3-a0dfe08bd0-10c0.zip/node_modules/fuzzy/",\ + "packageDependencies": [\ + ["fuzzy", "npm:0.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["generator-function", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/generator-function-npm-2.0.0-64d0208246-10c0.zip/node_modules/generator-function/",\ + "packageDependencies": [\ + ["generator-function", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["get-intrinsic", [\ + ["npm:1.3.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/get-intrinsic-npm-1.3.1-2f734f40ec-10c0.zip/node_modules/get-intrinsic/",\ + "packageDependencies": [\ + ["async-function", "npm:1.0.0"],\ + ["async-generator-function", "npm:1.0.0"],\ + ["call-bind-apply-helpers", "npm:1.0.2"],\ + ["es-define-property", "npm:1.0.1"],\ + ["es-errors", "npm:1.3.0"],\ + ["es-object-atoms", "npm:1.1.1"],\ + ["function-bind", "npm:1.1.2"],\ + ["generator-function", "npm:2.0.0"],\ + ["get-intrinsic", "npm:1.3.1"],\ + ["get-proto", "npm:1.0.1"],\ + ["gopd", "npm:1.2.0"],\ + ["has-symbols", "npm:1.1.0"],\ + ["hasown", "npm:2.0.2"],\ + ["math-intrinsics", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["get-proto", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/get-proto-npm-1.0.1-4d30bac614-10c0.zip/node_modules/get-proto/",\ + "packageDependencies": [\ + ["dunder-proto", "npm:1.0.1"],\ + ["es-object-atoms", "npm:1.1.1"],\ + ["get-proto", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["glob", [\ + ["npm:10.4.5", {\ + "packageLocation": "../../../../.yarn/berry/cache/glob-npm-10.4.5-8c63175f05-10c0.zip/node_modules/glob/",\ + "packageDependencies": [\ + ["foreground-child", "npm:3.3.1"],\ + ["glob", "npm:10.4.5"],\ + ["jackspeak", "npm:3.4.3"],\ + ["minimatch", "npm:9.0.5"],\ + ["minipass", "npm:7.1.2"],\ + ["package-json-from-dist", "npm:1.0.1"],\ + ["path-scurry", "npm:1.11.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["gopd", [\ + ["npm:1.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/gopd-npm-1.2.0-df89ffa78e-10c0.zip/node_modules/gopd/",\ + "packageDependencies": [\ + ["gopd", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["graphql", [\ + ["npm:16.11.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/graphql-npm-16.11.0-836e6ade28-10c0.zip/node_modules/graphql/",\ + "packageDependencies": [\ + ["graphql", "npm:16.11.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["graphql-request", [\ + ["npm:5.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/graphql-request-npm-5.1.0-170803d963-10c0.zip/node_modules/graphql-request/",\ + "packageDependencies": [\ + ["graphql-request", "npm:5.1.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:5.1.0", {\ + "packageLocation": "./.yarn/__virtual__/graphql-request-virtual-b77d6076cf/5/.yarn/berry/cache/graphql-request-npm-5.1.0-170803d963-10c0.zip/node_modules/graphql-request/",\ + "packageDependencies": [\ + ["@graphql-typed-document-node/core", "virtual:b77d6076cf3b5d91398d1f55303ad98dcb5f31a96f2654571413ed616a832b49722c74dcb94a45478c0c06b9fadfe64390d18d9d5c0cf7a1f7a2825bbe5f0b49#npm:3.2.0"],\ + ["@types/graphql", null],\ + ["cross-fetch", "npm:3.2.0"],\ + ["extract-files", "npm:9.0.0"],\ + ["form-data", "npm:3.0.4"],\ + ["graphql", "npm:16.11.0"],\ + ["graphql-request", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:5.1.0"]\ + ],\ + "packagePeers": [\ + "@types/graphql",\ + "graphql"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["has-flag", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/has-flag-npm-3.0.0-16ac11fe05-10c0.zip/node_modules/has-flag/",\ + "packageDependencies": [\ + ["has-flag", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/has-flag-npm-4.0.0-32af9f0536-10c0.zip/node_modules/has-flag/",\ + "packageDependencies": [\ + ["has-flag", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["has-symbols", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/has-symbols-npm-1.1.0-9aa7dc2ac1-10c0.zip/node_modules/has-symbols/",\ + "packageDependencies": [\ + ["has-symbols", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["has-tostringtag", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/has-tostringtag-npm-1.0.2-74a4800369-10c0.zip/node_modules/has-tostringtag/",\ + "packageDependencies": [\ + ["has-symbols", "npm:1.1.0"],\ + ["has-tostringtag", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["hasown", [\ + ["npm:2.0.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/hasown-npm-2.0.2-80fe6c9901-10c0.zip/node_modules/hasown/",\ + "packageDependencies": [\ + ["function-bind", "npm:1.1.2"],\ + ["hasown", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["hpagent", [\ + ["npm:1.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/hpagent-npm-1.2.0-0f725aa4fe-10c0.zip/node_modules/hpagent/",\ + "packageDependencies": [\ + ["hpagent", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["iconv-lite", [\ + ["npm:0.4.24", {\ + "packageLocation": "../../../../.yarn/berry/cache/iconv-lite-npm-0.4.24-c5c4ac6695-10c0.zip/node_modules/iconv-lite/",\ + "packageDependencies": [\ + ["iconv-lite", "npm:0.4.24"],\ + ["safer-buffer", "npm:2.1.2"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.7.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/iconv-lite-npm-0.7.0-89105876e3-10c0.zip/node_modules/iconv-lite/",\ + "packageDependencies": [\ + ["iconv-lite", "npm:0.7.0"],\ + ["safer-buffer", "npm:2.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ieee754", [\ + ["npm:1.2.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/ieee754-npm-1.2.1-fb63b3caeb-10c0.zip/node_modules/ieee754/",\ + "packageDependencies": [\ + ["ieee754", "npm:1.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["inflection", [\ + ["npm:1.13.4", {\ + "packageLocation": "../../../../.yarn/berry/cache/inflection-npm-1.13.4-102169ecb5-10c0.zip/node_modules/inflection/",\ + "packageDependencies": [\ + ["inflection", "npm:1.13.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["inherits", [\ + ["npm:2.0.4", {\ + "packageLocation": "../../../../.yarn/berry/cache/inherits-npm-2.0.4-c66b3957a0-10c0.zip/node_modules/inherits/",\ + "packageDependencies": [\ + ["inherits", "npm:2.0.4"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["inquirer", [\ + ["npm:6.5.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/inquirer-npm-6.5.2-4f6408c247-10c0.zip/node_modules/inquirer/",\ + "packageDependencies": [\ + ["ansi-escapes", "npm:3.2.0"],\ + ["chalk", "npm:2.4.2"],\ + ["cli-cursor", "npm:2.1.0"],\ + ["cli-width", "npm:2.2.1"],\ + ["external-editor", "npm:3.1.0"],\ + ["figures", "npm:2.0.0"],\ + ["inquirer", "npm:6.5.2"],\ + ["lodash", "npm:4.17.21"],\ + ["mute-stream", "npm:0.0.7"],\ + ["run-async", "npm:2.4.1"],\ + ["rxjs", "npm:6.6.7"],\ + ["string-width", "npm:2.1.1"],\ + ["strip-ansi", "npm:5.2.0"],\ + ["through", "npm:2.3.8"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:8.2.7", {\ + "packageLocation": "../../../../.yarn/berry/cache/inquirer-npm-8.2.7-89da895fc6-10c0.zip/node_modules/inquirer/",\ + "packageDependencies": [\ + ["@inquirer/external-editor", "virtual:89da895fc6c52cfbcaef8b581147d59a7db8b26b92aadd12fb1c6a8a42e4cfcc64fb8c80af7aaf4eaa0ff1e32bd41186d2ccbe98638a604583506802c2ed1384#npm:1.0.2"],\ + ["ansi-escapes", "npm:4.3.2"],\ + ["chalk", "npm:4.1.2"],\ + ["cli-cursor", "npm:3.1.0"],\ + ["cli-width", "npm:3.0.0"],\ + ["figures", "npm:3.2.0"],\ + ["inquirer", "npm:8.2.7"],\ + ["lodash", "npm:4.17.21"],\ + ["mute-stream", "npm:0.0.8"],\ + ["ora", "npm:5.4.1"],\ + ["run-async", "npm:2.4.1"],\ + ["rxjs", "npm:7.8.2"],\ + ["string-width", "npm:4.2.3"],\ + ["strip-ansi", "npm:6.0.1"],\ + ["through", "npm:2.3.8"],\ + ["wrap-ansi", "npm:6.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["inquirer-autocomplete-prompt", [\ + ["npm:1.4.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/inquirer-autocomplete-prompt-npm-1.4.0-25e0001216-10c0.zip/node_modules/inquirer-autocomplete-prompt/",\ + "packageDependencies": [\ + ["inquirer-autocomplete-prompt", "npm:1.4.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:7bd39220f6d021aa943382cff403175e8dfec5ebeb6501eb3fa6d0839c81a4d87b8bfbd519297b6fc91bfcf5ca4a8ddcefd79c14822f3900410f003c49968680#npm:1.4.0", {\ + "packageLocation": "./.yarn/__virtual__/inquirer-autocomplete-prompt-virtual-8764b92212/5/.yarn/berry/cache/inquirer-autocomplete-prompt-npm-1.4.0-25e0001216-10c0.zip/node_modules/inquirer-autocomplete-prompt/",\ + "packageDependencies": [\ + ["@types/inquirer", null],\ + ["ansi-escapes", "npm:4.3.2"],\ + ["chalk", "npm:4.1.2"],\ + ["figures", "npm:3.2.0"],\ + ["inquirer", "npm:6.5.2"],\ + ["inquirer-autocomplete-prompt", "virtual:7bd39220f6d021aa943382cff403175e8dfec5ebeb6501eb3fa6d0839c81a4d87b8bfbd519297b6fc91bfcf5ca4a8ddcefd79c14822f3900410f003c49968680#npm:1.4.0"],\ + ["run-async", "npm:2.4.1"],\ + ["rxjs", "npm:6.6.7"]\ + ],\ + "packagePeers": [\ + "@types/inquirer",\ + "inquirer"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["inquirer-fuzzy-path", [\ + ["npm:2.3.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/inquirer-fuzzy-path-npm-2.3.0-7bd39220f6-10c0.zip/node_modules/inquirer-fuzzy-path/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:3.2.1"],\ + ["fuzzy", "npm:0.1.3"],\ + ["inquirer", "npm:6.5.2"],\ + ["inquirer-autocomplete-prompt", "virtual:7bd39220f6d021aa943382cff403175e8dfec5ebeb6501eb3fa6d0839c81a4d87b8bfbd519297b6fc91bfcf5ca4a8ddcefd79c14822f3900410f003c49968680#npm:1.4.0"],\ + ["inquirer-fuzzy-path", "npm:2.3.0"],\ + ["strip-ansi", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-fullwidth-code-point", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/is-fullwidth-code-point-npm-2.0.0-507f56ec71-10c0.zip/node_modules/is-fullwidth-code-point/",\ + "packageDependencies": [\ + ["is-fullwidth-code-point", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-10c0.zip/node_modules/is-fullwidth-code-point/",\ + "packageDependencies": [\ + ["is-fullwidth-code-point", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-interactive", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/is-interactive-npm-1.0.0-7ff7c6e04a-10c0.zip/node_modules/is-interactive/",\ + "packageDependencies": [\ + ["is-interactive", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["is-unicode-supported", [\ + ["npm:0.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/is-unicode-supported-npm-0.1.0-0833e1bbfb-10c0.zip/node_modules/is-unicode-supported/",\ + "packageDependencies": [\ + ["is-unicode-supported", "npm:0.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["isexe", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/isexe-npm-2.0.0-b58870bd2e-10c0.zip/node_modules/isexe/",\ + "packageDependencies": [\ + ["isexe", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["jackspeak", [\ + ["npm:3.4.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/jackspeak-npm-3.4.3-546bfad080-10c0.zip/node_modules/jackspeak/",\ + "packageDependencies": [\ + ["@isaacs/cliui", "npm:8.0.2"],\ + ["@pkgjs/parseargs", "npm:0.11.0"],\ + ["jackspeak", "npm:3.4.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["json-bignum", [\ + ["npm:0.0.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/json-bignum-npm-0.0.3-2b08f05834-10c0.zip/node_modules/json-bignum/",\ + "packageDependencies": [\ + ["json-bignum", "npm:0.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["lodash", [\ + ["npm:4.17.21", {\ + "packageLocation": "../../../../.yarn/berry/cache/lodash-npm-4.17.21-6382451519-10c0.zip/node_modules/lodash/",\ + "packageDependencies": [\ + ["lodash", "npm:4.17.21"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["lodash.camelcase", [\ + ["npm:4.3.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/lodash.camelcase-npm-4.3.0-bf268e3bf0-10c0.zip/node_modules/lodash.camelcase/",\ + "packageDependencies": [\ + ["lodash.camelcase", "npm:4.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["log-symbols", [\ + ["npm:4.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/log-symbols-npm-4.1.0-0a13492d8b-10c0.zip/node_modules/log-symbols/",\ + "packageDependencies": [\ + ["chalk", "npm:4.1.2"],\ + ["is-unicode-supported", "npm:0.1.0"],\ + ["log-symbols", "npm:4.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["lru-cache", [\ + ["npm:10.4.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/lru-cache-npm-10.4.3-30c10b861a-10c0.zip/node_modules/lru-cache/",\ + "packageDependencies": [\ + ["lru-cache", "npm:10.4.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["lz4-napi", [\ + ["npm:2.9.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/lz4-napi-npm-2.9.0-cc6d3ac5a2-10c0.zip/node_modules/lz4-napi/",\ + "packageDependencies": [\ + ["@antoniomuso/lz4-napi-android-arm-eabi", "npm:2.9.0"],\ + ["@antoniomuso/lz4-napi-android-arm64", "npm:2.9.0"],\ + ["@antoniomuso/lz4-napi-darwin-arm64", "npm:2.9.0"],\ + ["@antoniomuso/lz4-napi-darwin-x64", "npm:2.9.0"],\ + ["@antoniomuso/lz4-napi-freebsd-x64", "npm:2.9.0"],\ + ["@antoniomuso/lz4-napi-linux-arm-gnueabihf", "npm:2.9.0"],\ + ["@antoniomuso/lz4-napi-linux-arm64-gnu", "npm:2.9.0"],\ + ["@antoniomuso/lz4-napi-linux-arm64-musl", "npm:2.9.0"],\ + ["@antoniomuso/lz4-napi-linux-x64-gnu", "npm:2.9.0"],\ + ["@antoniomuso/lz4-napi-linux-x64-musl", "npm:2.9.0"],\ + ["@antoniomuso/lz4-napi-win32-arm64-msvc", "npm:2.9.0"],\ + ["@antoniomuso/lz4-napi-win32-ia32-msvc", "npm:2.9.0"],\ + ["@antoniomuso/lz4-napi-win32-x64-msvc", "npm:2.9.0"],\ + ["@node-rs/helper", "npm:1.6.0"],\ + ["lz4-napi", "npm:2.9.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["make-error", [\ + ["npm:1.3.6", {\ + "packageLocation": "../../../../.yarn/berry/cache/make-error-npm-1.3.6-ccb85d9458-10c0.zip/node_modules/make-error/",\ + "packageDependencies": [\ + ["make-error", "npm:1.3.6"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["math-intrinsics", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/math-intrinsics-npm-1.1.0-9204d80e7d-10c0.zip/node_modules/math-intrinsics/",\ + "packageDependencies": [\ + ["math-intrinsics", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["mime-db", [\ + ["npm:1.52.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/mime-db-npm-1.52.0-b5371d6fd2-10c0.zip/node_modules/mime-db/",\ + "packageDependencies": [\ + ["mime-db", "npm:1.52.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["mime-types", [\ + ["npm:2.1.35", {\ + "packageLocation": "../../../../.yarn/berry/cache/mime-types-npm-2.1.35-dd9ea9f3e2-10c0.zip/node_modules/mime-types/",\ + "packageDependencies": [\ + ["mime-db", "npm:1.52.0"],\ + ["mime-types", "npm:2.1.35"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["mimic-fn", [\ + ["npm:1.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/mimic-fn-npm-1.2.0-960bf15ab7-10c0.zip/node_modules/mimic-fn/",\ + "packageDependencies": [\ + ["mimic-fn", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/mimic-fn-npm-2.1.0-4fbeb3abb4-10c0.zip/node_modules/mimic-fn/",\ + "packageDependencies": [\ + ["mimic-fn", "npm:2.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minimatch", [\ + ["npm:9.0.5", {\ + "packageLocation": "../../../../.yarn/berry/cache/minimatch-npm-9.0.5-9aa93d97fa-10c0.zip/node_modules/minimatch/",\ + "packageDependencies": [\ + ["brace-expansion", "npm:2.0.2"],\ + ["minimatch", "npm:9.0.5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["minipass", [\ + ["npm:7.1.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/minipass-npm-7.1.2-3a5327d36d-10c0.zip/node_modules/minipass/",\ + "packageDependencies": [\ + ["minipass", "npm:7.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["moment", [\ + ["npm:2.30.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/moment-npm-2.30.1-1c51a5c631-10c0.zip/node_modules/moment/",\ + "packageDependencies": [\ + ["moment", "npm:2.30.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["moment-timezone", [\ + ["npm:0.5.48", {\ + "packageLocation": "../../../../.yarn/berry/cache/moment-timezone-npm-0.5.48-3b583954df-10c0.zip/node_modules/moment-timezone/",\ + "packageDependencies": [\ + ["moment", "npm:2.30.1"],\ + ["moment-timezone", "npm:0.5.48"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ms", [\ + ["npm:2.1.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/ms-npm-2.1.3-81ff3cfac1-10c0.zip/node_modules/ms/",\ + "packageDependencies": [\ + ["ms", "npm:2.1.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["mute-stream", [\ + ["npm:0.0.7", {\ + "packageLocation": "../../../../.yarn/berry/cache/mute-stream-npm-0.0.7-22b59a65dd-10c0.zip/node_modules/mute-stream/",\ + "packageDependencies": [\ + ["mute-stream", "npm:0.0.7"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:0.0.8", {\ + "packageLocation": "../../../../.yarn/berry/cache/mute-stream-npm-0.0.8-489a7d6c2b-10c0.zip/node_modules/mute-stream/",\ + "packageDependencies": [\ + ["mute-stream", "npm:0.0.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["node-fetch", [\ + ["npm:2.7.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/node-fetch-npm-2.7.0-587d57004e-10c0.zip/node_modules/node-fetch/",\ + "packageDependencies": [\ + ["node-fetch", "npm:2.7.0"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:267029ff2f85c65479d29496cc50976fb522ed8beda97f97e23b49194e83bd9867cfd15af96b05ad656edae653eb3a95a72ba015ac1556bfdf9591902b5e5ecc#npm:2.7.0", {\ + "packageLocation": "./.yarn/__virtual__/node-fetch-virtual-14fbf57bea/5/.yarn/berry/cache/node-fetch-npm-2.7.0-587d57004e-10c0.zip/node_modules/node-fetch/",\ + "packageDependencies": [\ + ["@types/encoding", null],\ + ["encoding", null],\ + ["node-fetch", "virtual:267029ff2f85c65479d29496cc50976fb522ed8beda97f97e23b49194e83bd9867cfd15af96b05ad656edae653eb3a95a72ba015ac1556bfdf9591902b5e5ecc#npm:2.7.0"],\ + ["whatwg-url", "npm:5.0.0"]\ + ],\ + "packagePeers": [\ + "@types/encoding",\ + "encoding"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["onetime", [\ + ["npm:2.0.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/onetime-npm-2.0.1-6c39ecc911-10c0.zip/node_modules/onetime/",\ + "packageDependencies": [\ + ["mimic-fn", "npm:1.2.0"],\ + ["onetime", "npm:2.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.1.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/onetime-npm-5.1.2-3ed148fa42-10c0.zip/node_modules/onetime/",\ + "packageDependencies": [\ + ["mimic-fn", "npm:2.1.0"],\ + ["onetime", "npm:5.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ora", [\ + ["npm:5.4.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/ora-npm-5.4.1-4f0343adb7-10c0.zip/node_modules/ora/",\ + "packageDependencies": [\ + ["bl", "npm:4.1.0"],\ + ["chalk", "npm:4.1.2"],\ + ["cli-cursor", "npm:3.1.0"],\ + ["cli-spinners", "npm:2.9.2"],\ + ["is-interactive", "npm:1.0.0"],\ + ["is-unicode-supported", "npm:0.1.0"],\ + ["log-symbols", "npm:4.1.0"],\ + ["ora", "npm:5.4.1"],\ + ["strip-ansi", "npm:6.0.1"],\ + ["wcwidth", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["os-tmpdir", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/os-tmpdir-npm-1.0.2-e305b0689b-10c0.zip/node_modules/os-tmpdir/",\ + "packageDependencies": [\ + ["os-tmpdir", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["p-limit", [\ + ["npm:3.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/p-limit-npm-3.1.0-05d2ede37f-10c0.zip/node_modules/p-limit/",\ + "packageDependencies": [\ + ["p-limit", "npm:3.1.0"],\ + ["yocto-queue", "npm:0.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["package-json-from-dist", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/package-json-from-dist-npm-1.0.1-4631a88465-10c0.zip/node_modules/package-json-from-dist/",\ + "packageDependencies": [\ + ["package-json-from-dist", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["path-key", [\ + ["npm:3.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/path-key-npm-3.1.1-0e66ea8321-10c0.zip/node_modules/path-key/",\ + "packageDependencies": [\ + ["path-key", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["path-scurry", [\ + ["npm:1.11.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/path-scurry-npm-1.11.1-aaf8c339af-10c0.zip/node_modules/path-scurry/",\ + "packageDependencies": [\ + ["lru-cache", "npm:10.4.3"],\ + ["minipass", "npm:7.1.2"],\ + ["path-scurry", "npm:1.11.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pg", [\ + ["npm:8.16.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/pg-npm-8.16.3-b98e6b613b-10c0.zip/node_modules/pg/",\ + "packageDependencies": [\ + ["pg", "npm:8.16.3"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:8.16.3", {\ + "packageLocation": "./.yarn/__virtual__/pg-virtual-0a3cfd415e/5/.yarn/berry/cache/pg-npm-8.16.3-b98e6b613b-10c0.zip/node_modules/pg/",\ + "packageDependencies": [\ + ["@types/pg-native", null],\ + ["pg", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:8.16.3"],\ + ["pg-cloudflare", "npm:1.2.7"],\ + ["pg-connection-string", "npm:2.9.1"],\ + ["pg-native", null],\ + ["pg-pool", "virtual:0a3cfd415edebaeebb5600fce6e0e5f9095c63aec6239ad2f36feabbd5e63cd71017eb880545773b1a4c3e85cdf96891d3beef4402b670e0488c72f7e88d1544#npm:3.10.1"],\ + ["pg-protocol", "npm:1.10.3"],\ + ["pg-types", "npm:2.2.0"],\ + ["pgpass", "npm:1.0.5"]\ + ],\ + "packagePeers": [\ + "@types/pg-native",\ + "pg-native"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pg-cloudflare", [\ + ["npm:1.2.7", {\ + "packageLocation": "../../../../.yarn/berry/cache/pg-cloudflare-npm-1.2.7-d440af1270-10c0.zip/node_modules/pg-cloudflare/",\ + "packageDependencies": [\ + ["pg-cloudflare", "npm:1.2.7"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pg-connection-string", [\ + ["npm:2.9.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/pg-connection-string-npm-2.9.1-f24224b1ff-10c0.zip/node_modules/pg-connection-string/",\ + "packageDependencies": [\ + ["pg-connection-string", "npm:2.9.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pg-int8", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/pg-int8-npm-1.0.1-5cd67f3e22-10c0.zip/node_modules/pg-int8/",\ + "packageDependencies": [\ + ["pg-int8", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pg-pool", [\ + ["npm:3.10.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/pg-pool-npm-3.10.1-708b6eab98-10c0.zip/node_modules/pg-pool/",\ + "packageDependencies": [\ + ["pg-pool", "npm:3.10.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:0a3cfd415edebaeebb5600fce6e0e5f9095c63aec6239ad2f36feabbd5e63cd71017eb880545773b1a4c3e85cdf96891d3beef4402b670e0488c72f7e88d1544#npm:3.10.1", {\ + "packageLocation": "./.yarn/__virtual__/pg-pool-virtual-f7dd7b4494/5/.yarn/berry/cache/pg-pool-npm-3.10.1-708b6eab98-10c0.zip/node_modules/pg-pool/",\ + "packageDependencies": [\ + ["@types/pg", null],\ + ["pg", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:8.16.3"],\ + ["pg-pool", "virtual:0a3cfd415edebaeebb5600fce6e0e5f9095c63aec6239ad2f36feabbd5e63cd71017eb880545773b1a4c3e85cdf96891d3beef4402b670e0488c72f7e88d1544#npm:3.10.1"]\ + ],\ + "packagePeers": [\ + "@types/pg",\ + "pg"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pg-protocol", [\ + ["npm:1.10.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/pg-protocol-npm-1.10.3-f64bdf6543-10c0.zip/node_modules/pg-protocol/",\ + "packageDependencies": [\ + ["pg-protocol", "npm:1.10.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pg-types", [\ + ["npm:2.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/pg-types-npm-2.2.0-a3360226c4-10c0.zip/node_modules/pg-types/",\ + "packageDependencies": [\ + ["pg-int8", "npm:1.0.1"],\ + ["pg-types", "npm:2.2.0"],\ + ["postgres-array", "npm:2.0.0"],\ + ["postgres-bytea", "npm:1.0.0"],\ + ["postgres-date", "npm:1.0.7"],\ + ["postgres-interval", "npm:1.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["pgpass", [\ + ["npm:1.0.5", {\ + "packageLocation": "../../../../.yarn/berry/cache/pgpass-npm-1.0.5-653e71ddd8-10c0.zip/node_modules/pgpass/",\ + "packageDependencies": [\ + ["pgpass", "npm:1.0.5"],\ + ["split2", "npm:4.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postgres-array", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/postgres-array-npm-2.0.0-4f49dc1389-10c0.zip/node_modules/postgres-array/",\ + "packageDependencies": [\ + ["postgres-array", "npm:2.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postgres-bytea", [\ + ["npm:1.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/postgres-bytea-npm-1.0.0-8c2b81fa73-10c0.zip/node_modules/postgres-bytea/",\ + "packageDependencies": [\ + ["postgres-bytea", "npm:1.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postgres-date", [\ + ["npm:1.0.7", {\ + "packageLocation": "../../../../.yarn/berry/cache/postgres-date-npm-1.0.7-aadfe5531e-10c0.zip/node_modules/postgres-date/",\ + "packageDependencies": [\ + ["postgres-date", "npm:1.0.7"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["postgres-interval", [\ + ["npm:1.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/postgres-interval-npm-1.2.0-ca6414744d-10c0.zip/node_modules/postgres-interval/",\ + "packageDependencies": [\ + ["postgres-interval", "npm:1.2.0"],\ + ["xtend", "npm:4.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["proxy-from-env", [\ + ["npm:1.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/proxy-from-env-npm-1.1.0-c13d07f26b-10c0.zip/node_modules/proxy-from-env/",\ + "packageDependencies": [\ + ["proxy-from-env", "npm:1.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["readable-stream", [\ + ["npm:3.6.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/readable-stream-npm-3.6.2-d2a6069158-10c0.zip/node_modules/readable-stream/",\ + "packageDependencies": [\ + ["inherits", "npm:2.0.4"],\ + ["readable-stream", "npm:3.6.2"],\ + ["string_decoder", "npm:1.3.0"],\ + ["util-deprecate", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["restore-cursor", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/restore-cursor-npm-2.0.0-80278eb6b7-10c0.zip/node_modules/restore-cursor/",\ + "packageDependencies": [\ + ["onetime", "npm:2.0.1"],\ + ["restore-cursor", "npm:2.0.0"],\ + ["signal-exit", "npm:3.0.7"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:3.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/restore-cursor-npm-3.1.0-52c5a4c98f-10c0.zip/node_modules/restore-cursor/",\ + "packageDependencies": [\ + ["onetime", "npm:5.1.2"],\ + ["restore-cursor", "npm:3.1.0"],\ + ["signal-exit", "npm:3.0.7"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["retry", [\ + ["npm:0.13.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/retry-npm-0.13.1-89eb100ab6-10c0.zip/node_modules/retry/",\ + "packageDependencies": [\ + ["retry", "npm:0.13.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["retry-as-promised", [\ + ["npm:7.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/retry-as-promised-npm-7.1.1-c32ec4d7d9-10c0.zip/node_modules/retry-as-promised/",\ + "packageDependencies": [\ + ["retry-as-promised", "npm:7.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["run-async", [\ + ["npm:2.4.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/run-async-npm-2.4.1-a94bb90861-10c0.zip/node_modules/run-async/",\ + "packageDependencies": [\ + ["run-async", "npm:2.4.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["rxjs", [\ + ["npm:6.6.7", {\ + "packageLocation": "../../../../.yarn/berry/cache/rxjs-npm-6.6.7-055046ea3c-10c0.zip/node_modules/rxjs/",\ + "packageDependencies": [\ + ["rxjs", "npm:6.6.7"],\ + ["tslib", "npm:1.14.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.8.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/rxjs-npm-7.8.2-80ecda9013-10c0.zip/node_modules/rxjs/",\ + "packageDependencies": [\ + ["rxjs", "npm:7.8.2"],\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["safe-buffer", [\ + ["npm:5.2.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/safe-buffer-npm-5.2.1-3481c8aa9b-10c0.zip/node_modules/safe-buffer/",\ + "packageDependencies": [\ + ["safe-buffer", "npm:5.2.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["safer-buffer", [\ + ["npm:2.1.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/safer-buffer-npm-2.1.2-8d5c0b705e-10c0.zip/node_modules/safer-buffer/",\ + "packageDependencies": [\ + ["safer-buffer", "npm:2.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["secure-json-parse", [\ + ["npm:3.0.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/secure-json-parse-npm-3.0.2-57c3bac78a-10c0.zip/node_modules/secure-json-parse/",\ + "packageDependencies": [\ + ["secure-json-parse", "npm:3.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["semver", [\ + ["npm:7.7.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/semver-npm-7.7.2-dfc3bc5ec9-10c0.zip/node_modules/semver/",\ + "packageDependencies": [\ + ["semver", "npm:7.7.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["sequelize", [\ + ["npm:6.37.7", {\ + "packageLocation": "../../../../.yarn/berry/cache/sequelize-npm-6.37.7-1b092a23bb-10c0.zip/node_modules/sequelize/",\ + "packageDependencies": [\ + ["sequelize", "npm:6.37.7"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:6.37.7", {\ + "packageLocation": "./.yarn/__virtual__/sequelize-virtual-3fcf29a043/5/.yarn/berry/cache/sequelize-npm-6.37.7-1b092a23bb-10c0.zip/node_modules/sequelize/",\ + "packageDependencies": [\ + ["@types/debug", "npm:4.1.12"],\ + ["@types/ibm_db", null],\ + ["@types/mariadb", null],\ + ["@types/mysql2", null],\ + ["@types/oracledb", null],\ + ["@types/pg", null],\ + ["@types/pg-hstore", null],\ + ["@types/snowflake-sdk", null],\ + ["@types/sqlite3", null],\ + ["@types/tedious", null],\ + ["@types/validator", "npm:13.15.3"],\ + ["debug", "virtual:1dc2ec07cf749fac799da3bc4db26ab447def9bb7cf78ad3c7d3d028f3ba1ba6fdf9435781e1ed98b0b34b039887bca2b196a1d316d371cbdc6b6ab9a8c078c5#npm:4.4.3"],\ + ["dottie", "npm:2.0.6"],\ + ["ibm_db", null],\ + ["inflection", "npm:1.13.4"],\ + ["lodash", "npm:4.17.21"],\ + ["mariadb", null],\ + ["moment", "npm:2.30.1"],\ + ["moment-timezone", "npm:0.5.48"],\ + ["mysql2", null],\ + ["oracledb", null],\ + ["pg", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:8.16.3"],\ + ["pg-connection-string", "npm:2.9.1"],\ + ["pg-hstore", null],\ + ["retry-as-promised", "npm:7.1.1"],\ + ["semver", "npm:7.7.2"],\ + ["sequelize", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:6.37.7"],\ + ["sequelize-pool", "npm:7.1.0"],\ + ["snowflake-sdk", null],\ + ["sqlite3", null],\ + ["tedious", null],\ + ["toposort-class", "npm:1.0.1"],\ + ["uuid", "npm:8.3.2"],\ + ["validator", "npm:13.15.15"],\ + ["wkx", "npm:0.5.0"]\ + ],\ + "packagePeers": [\ + "@types/ibm_db",\ + "@types/mariadb",\ + "@types/mysql2",\ + "@types/oracledb",\ + "@types/pg-hstore",\ + "@types/pg",\ + "@types/snowflake-sdk",\ + "@types/sqlite3",\ + "@types/tedious",\ + "ibm_db",\ + "mariadb",\ + "mysql2",\ + "oracledb",\ + "pg-hstore",\ + "pg",\ + "snowflake-sdk",\ + "sqlite3",\ + "tedious"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["sequelize-pool", [\ + ["npm:7.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/sequelize-pool-npm-7.1.0-670df81ecb-10c0.zip/node_modules/sequelize-pool/",\ + "packageDependencies": [\ + ["sequelize-pool", "npm:7.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["shebang-command", [\ + ["npm:2.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/shebang-command-npm-2.0.0-eb2b01921d-10c0.zip/node_modules/shebang-command/",\ + "packageDependencies": [\ + ["shebang-command", "npm:2.0.0"],\ + ["shebang-regex", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["shebang-regex", [\ + ["npm:3.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/shebang-regex-npm-3.0.0-899a0cd65e-10c0.zip/node_modules/shebang-regex/",\ + "packageDependencies": [\ + ["shebang-regex", "npm:3.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["signal-exit", [\ + ["npm:3.0.7", {\ + "packageLocation": "../../../../.yarn/berry/cache/signal-exit-npm-3.0.7-bd270458a3-10c0.zip/node_modules/signal-exit/",\ + "packageDependencies": [\ + ["signal-exit", "npm:3.0.7"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/signal-exit-npm-4.1.0-61fb957687-10c0.zip/node_modules/signal-exit/",\ + "packageDependencies": [\ + ["signal-exit", "npm:4.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["split2", [\ + ["npm:4.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/split2-npm-4.2.0-16aa3883ba-10c0.zip/node_modules/split2/",\ + "packageDependencies": [\ + ["split2", "npm:4.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["string-width", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/string-width-npm-2.1.1-0c2c6ae53f-10c0.zip/node_modules/string-width/",\ + "packageDependencies": [\ + ["is-fullwidth-code-point", "npm:2.0.0"],\ + ["string-width", "npm:2.1.1"],\ + ["strip-ansi", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:4.2.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/string-width-npm-4.2.3-2c27177bae-10c0.zip/node_modules/string-width/",\ + "packageDependencies": [\ + ["emoji-regex", "npm:8.0.0"],\ + ["is-fullwidth-code-point", "npm:3.0.0"],\ + ["string-width", "npm:4.2.3"],\ + ["strip-ansi", "npm:6.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.1.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/string-width-npm-5.1.2-bf60531341-10c0.zip/node_modules/string-width/",\ + "packageDependencies": [\ + ["eastasianwidth", "npm:0.2.0"],\ + ["emoji-regex", "npm:9.2.2"],\ + ["string-width", "npm:5.1.2"],\ + ["strip-ansi", "npm:7.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["string_decoder", [\ + ["npm:1.3.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/string_decoder-npm-1.3.0-2422117fd0-10c0.zip/node_modules/string_decoder/",\ + "packageDependencies": [\ + ["safe-buffer", "npm:5.2.1"],\ + ["string_decoder", "npm:1.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["strip-ansi", [\ + ["npm:4.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/strip-ansi-npm-4.0.0-d4de985014-10c0.zip/node_modules/strip-ansi/",\ + "packageDependencies": [\ + ["ansi-regex", "npm:3.0.1"],\ + ["strip-ansi", "npm:4.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:5.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/strip-ansi-npm-5.2.0-275214c316-10c0.zip/node_modules/strip-ansi/",\ + "packageDependencies": [\ + ["ansi-regex", "npm:4.1.1"],\ + ["strip-ansi", "npm:5.2.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:6.0.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/strip-ansi-npm-6.0.1-caddc7cb40-10c0.zip/node_modules/strip-ansi/",\ + "packageDependencies": [\ + ["ansi-regex", "npm:5.0.1"],\ + ["strip-ansi", "npm:6.0.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.1.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/strip-ansi-npm-7.1.2-aa4fadccd9-10c0.zip/node_modules/strip-ansi/",\ + "packageDependencies": [\ + ["ansi-regex", "npm:6.2.2"],\ + ["strip-ansi", "npm:7.1.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["strnum", [\ + ["npm:2.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/strnum-npm-2.1.1-2f45f2aae3-10c0.zip/node_modules/strnum/",\ + "packageDependencies": [\ + ["strnum", "npm:2.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["supports-color", [\ + ["npm:5.5.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/supports-color-npm-5.5.0-183ac537bc-10c0.zip/node_modules/supports-color/",\ + "packageDependencies": [\ + ["has-flag", "npm:3.0.0"],\ + ["supports-color", "npm:5.5.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/supports-color-npm-7.2.0-606bfcf7da-10c0.zip/node_modules/supports-color/",\ + "packageDependencies": [\ + ["has-flag", "npm:4.0.0"],\ + ["supports-color", "npm:7.2.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["table-layout", [\ + ["npm:4.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/table-layout-npm-4.1.1-d5039a9074-10c0.zip/node_modules/table-layout/",\ + "packageDependencies": [\ + ["array-back", "npm:6.2.2"],\ + ["table-layout", "npm:4.1.1"],\ + ["wordwrapjs", "npm:5.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["through", [\ + ["npm:2.3.8", {\ + "packageLocation": "../../../../.yarn/berry/cache/through-npm-2.3.8-df5f72a16e-10c0.zip/node_modules/through/",\ + "packageDependencies": [\ + ["through", "npm:2.3.8"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tmp", [\ + ["npm:0.0.33", {\ + "packageLocation": "../../../../.yarn/berry/cache/tmp-npm-0.0.33-bcbf65df2a-10c0.zip/node_modules/tmp/",\ + "packageDependencies": [\ + ["os-tmpdir", "npm:1.0.2"],\ + ["tmp", "npm:0.0.33"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["toposort-class", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/toposort-class-npm-1.0.1-aefabde69e-10c0.zip/node_modules/toposort-class/",\ + "packageDependencies": [\ + ["toposort-class", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tr46", [\ + ["npm:0.0.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/tr46-npm-0.0.3-de53018915-10c0.zip/node_modules/tr46/",\ + "packageDependencies": [\ + ["tr46", "npm:0.0.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tron-format-address", [\ + ["npm:0.1.12", {\ + "packageLocation": "../../../../.yarn/berry/cache/tron-format-address-npm-0.1.12-fc1f3ce1a8-10c0.zip/node_modules/tron-format-address/",\ + "packageDependencies": [\ + ["tron-format-address", "npm:0.1.12"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ts-node", [\ + ["npm:10.9.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/ts-node-npm-10.9.2-3f3890b9ac-10c0.zip/node_modules/ts-node/",\ + "packageDependencies": [\ + ["ts-node", "npm:10.9.2"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:10.9.2", {\ + "packageLocation": "./.yarn/__virtual__/ts-node-virtual-d9214475e7/5/.yarn/berry/cache/ts-node-npm-10.9.2-3f3890b9ac-10c0.zip/node_modules/ts-node/",\ + "packageDependencies": [\ + ["@cspotcode/source-map-support", "npm:0.8.1"],\ + ["@swc/core", null],\ + ["@swc/wasm", null],\ + ["@tsconfig/node10", "npm:1.0.11"],\ + ["@tsconfig/node12", "npm:1.0.11"],\ + ["@tsconfig/node14", "npm:1.0.3"],\ + ["@tsconfig/node16", "npm:1.0.4"],\ + ["@types/node", "npm:18.19.128"],\ + ["@types/swc__core", null],\ + ["@types/swc__wasm", null],\ + ["@types/typescript", null],\ + ["acorn", "npm:8.15.0"],\ + ["acorn-walk", "npm:8.3.4"],\ + ["arg", "npm:4.1.3"],\ + ["create-require", "npm:1.1.1"],\ + ["diff", "npm:4.0.2"],\ + ["make-error", "npm:1.3.6"],\ + ["ts-node", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:10.9.2"],\ + ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ + ["v8-compile-cache-lib", "npm:3.0.1"],\ + ["yn", "npm:3.1.1"]\ + ],\ + "packagePeers": [\ + "@swc/core",\ + "@swc/wasm",\ + "@types/node",\ + "@types/swc__core",\ + "@types/swc__wasm",\ + "@types/typescript",\ + "typescript"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["tslib", [\ + ["npm:1.14.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/tslib-npm-1.14.1-102499115e-10c0.zip/node_modules/tslib/",\ + "packageDependencies": [\ + ["tslib", "npm:1.14.1"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.7.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/tslib-npm-2.7.0-21668f5c21-10c0.zip/node_modules/tslib/",\ + "packageDependencies": [\ + ["tslib", "npm:2.7.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:2.8.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/tslib-npm-2.8.1-66590b21b8-10c0.zip/node_modules/tslib/",\ + "packageDependencies": [\ + ["tslib", "npm:2.8.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["type-fest", [\ + ["npm:0.21.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/type-fest-npm-0.21.3-5ff2a9c6fd-10c0.zip/node_modules/type-fest/",\ + "packageDependencies": [\ + ["type-fest", "npm:0.21.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["typescript", [\ + ["patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5", {\ + "packageLocation": "../../../../.yarn/berry/cache/typescript-patch-bcfe2ebaf8-10c0.zip/node_modules/typescript/",\ + "packageDependencies": [\ + ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["typical", [\ + ["npm:7.3.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/typical-npm-7.3.0-2a831dec52-10c0.zip/node_modules/typical/",\ + "packageDependencies": [\ + ["typical", "npm:7.3.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["undici", [\ + ["npm:6.21.3", {\ + "packageLocation": "../../../../.yarn/berry/cache/undici-npm-6.21.3-28d9334837-10c0.zip/node_modules/undici/",\ + "packageDependencies": [\ + ["undici", "npm:6.21.3"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["undici-types", [\ + ["npm:5.26.5", {\ + "packageLocation": "../../../../.yarn/berry/cache/undici-types-npm-5.26.5-de4f7c7bb9-10c0.zip/node_modules/undici-types/",\ + "packageDependencies": [\ + ["undici-types", "npm:5.26.5"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:6.19.8", {\ + "packageLocation": "../../../../.yarn/berry/cache/undici-types-npm-6.19.8-9f12285b7a-10c0.zip/node_modules/undici-types/",\ + "packageDependencies": [\ + ["undici-types", "npm:6.19.8"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.13.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/undici-types-npm-7.13.0-df78d4ea2d-10c0.zip/node_modules/undici-types/",\ + "packageDependencies": [\ + ["undici-types", "npm:7.13.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["util-deprecate", [\ + ["npm:1.0.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/util-deprecate-npm-1.0.2-e3fe1a219c-10c0.zip/node_modules/util-deprecate/",\ + "packageDependencies": [\ + ["util-deprecate", "npm:1.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["uuid", [\ + ["npm:8.3.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/uuid-npm-8.3.2-eca0baba53-10c0.zip/node_modules/uuid/",\ + "packageDependencies": [\ + ["uuid", "npm:8.3.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["v8-compile-cache-lib", [\ + ["npm:3.0.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/v8-compile-cache-lib-npm-3.0.1-4886071ece-10c0.zip/node_modules/v8-compile-cache-lib/",\ + "packageDependencies": [\ + ["v8-compile-cache-lib", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["validator", [\ + ["npm:13.15.15", {\ + "packageLocation": "../../../../.yarn/berry/cache/validator-npm-13.15.15-143146ad19-10c0.zip/node_modules/validator/",\ + "packageDependencies": [\ + ["validator", "npm:13.15.15"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["wcwidth", [\ + ["npm:1.0.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/wcwidth-npm-1.0.1-05fa596453-10c0.zip/node_modules/wcwidth/",\ + "packageDependencies": [\ + ["defaults", "npm:1.0.4"],\ + ["wcwidth", "npm:1.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["webidl-conversions", [\ + ["npm:3.0.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/webidl-conversions-npm-3.0.1-60310f6a2b-10c0.zip/node_modules/webidl-conversions/",\ + "packageDependencies": [\ + ["webidl-conversions", "npm:3.0.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["whatwg-url", [\ + ["npm:5.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/whatwg-url-npm-5.0.0-374fb45e60-10c0.zip/node_modules/whatwg-url/",\ + "packageDependencies": [\ + ["tr46", "npm:0.0.3"],\ + ["webidl-conversions", "npm:3.0.1"],\ + ["whatwg-url", "npm:5.0.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["which", [\ + ["npm:2.0.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/which-npm-2.0.2-320ddf72f7-10c0.zip/node_modules/which/",\ + "packageDependencies": [\ + ["isexe", "npm:2.0.0"],\ + ["which", "npm:2.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["wkx", [\ + ["npm:0.5.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/wkx-npm-0.5.0-fca5152cd8-10c0.zip/node_modules/wkx/",\ + "packageDependencies": [\ + ["@types/node", "npm:24.6.0"],\ + ["wkx", "npm:0.5.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["wordwrapjs", [\ + ["npm:5.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/wordwrapjs-npm-5.1.0-41e18fb6d0-10c0.zip/node_modules/wordwrapjs/",\ + "packageDependencies": [\ + ["wordwrapjs", "npm:5.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["wrap-ansi", [\ + ["npm:6.2.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/wrap-ansi-npm-6.2.0-439a7246d8-10c0.zip/node_modules/wrap-ansi/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:4.3.0"],\ + ["string-width", "npm:4.2.3"],\ + ["strip-ansi", "npm:6.0.1"],\ + ["wrap-ansi", "npm:6.2.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:7.0.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-10c0.zip/node_modules/wrap-ansi/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:4.3.0"],\ + ["string-width", "npm:4.2.3"],\ + ["strip-ansi", "npm:6.0.1"],\ + ["wrap-ansi", "npm:7.0.0"]\ + ],\ + "linkType": "HARD"\ + }],\ + ["npm:8.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/wrap-ansi-npm-8.1.0-26a4e6ae28-10c0.zip/node_modules/wrap-ansi/",\ + "packageDependencies": [\ + ["ansi-styles", "npm:6.2.3"],\ + ["string-width", "npm:5.1.2"],\ + ["strip-ansi", "npm:7.1.2"],\ + ["wrap-ansi", "npm:8.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["ws", [\ + ["npm:8.17.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/ws-npm-8.17.1-f57fb24a2c-10c0.zip/node_modules/ws/",\ + "packageDependencies": [\ + ["ws", "npm:8.17.1"]\ + ],\ + "linkType": "SOFT"\ + }],\ + ["virtual:f266964bbf0a973b765b066fe1b1828807981016fc49075d7d14462508ec0b4c518650d9ae747c8b805b7e3e20b5b050695db51ba47ef5e8e240f1bec894a15f#npm:8.17.1", {\ + "packageLocation": "./.yarn/__virtual__/ws-virtual-d0741043a0/5/.yarn/berry/cache/ws-npm-8.17.1-f57fb24a2c-10c0.zip/node_modules/ws/",\ + "packageDependencies": [\ + ["@types/bufferutil", null],\ + ["@types/utf-8-validate", null],\ + ["bufferutil", null],\ + ["utf-8-validate", null],\ + ["ws", "virtual:f266964bbf0a973b765b066fe1b1828807981016fc49075d7d14462508ec0b4c518650d9ae747c8b805b7e3e20b5b050695db51ba47ef5e8e240f1bec894a15f#npm:8.17.1"]\ + ],\ + "packagePeers": [\ + "@types/bufferutil",\ + "@types/utf-8-validate",\ + "bufferutil",\ + "utf-8-validate"\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["xtend", [\ + ["npm:4.0.2", {\ + "packageLocation": "../../../../.yarn/berry/cache/xtend-npm-4.0.2-7f2375736e-10c0.zip/node_modules/xtend/",\ + "packageDependencies": [\ + ["xtend", "npm:4.0.2"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["yn", [\ + ["npm:3.1.1", {\ + "packageLocation": "../../../../.yarn/berry/cache/yn-npm-3.1.1-8ad4259784-10c0.zip/node_modules/yn/",\ + "packageDependencies": [\ + ["yn", "npm:3.1.1"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]],\ + ["yocto-queue", [\ + ["npm:0.1.0", {\ + "packageLocation": "../../../../.yarn/berry/cache/yocto-queue-npm-0.1.0-c6c9a7db29-10c0.zip/node_modules/yocto-queue/",\ + "packageDependencies": [\ + ["yocto-queue", "npm:0.1.0"]\ + ],\ + "linkType": "HARD"\ + }]\ + ]]\ + ]\ +}'; + +function $$SETUP_STATE(hydrateRuntimeState, basePath) { + return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname}); +} + +const fs = require('fs'); +const path = require('path'); +const crypto = require('crypto'); +const os = require('os'); +const events = require('events'); +const nodeUtils = require('util'); +const stream = require('stream'); +const zlib = require('zlib'); +const require$$0 = require('module'); +const StringDecoder = require('string_decoder'); +const url = require('url'); +const buffer = require('buffer'); +const readline = require('readline'); +const assert = require('assert'); + +const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e }; + +function _interopNamespace(e) { + if (e && e.__esModule) return e; + const n = Object.create(null); + if (e) { + for (const k in e) { + if (k !== 'default') { + const d = Object.getOwnPropertyDescriptor(e, k); + Object.defineProperty(n, k, d.get ? d : { + enumerable: true, + get: () => e[k] + }); + } + } + } + n.default = e; + return Object.freeze(n); +} + +const fs__default = /*#__PURE__*/_interopDefaultLegacy(fs); +const path__default = /*#__PURE__*/_interopDefaultLegacy(path); +const nodeUtils__namespace = /*#__PURE__*/_interopNamespace(nodeUtils); +const zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib); +const require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0); +const StringDecoder__default = /*#__PURE__*/_interopDefaultLegacy(StringDecoder); +const buffer__default = /*#__PURE__*/_interopDefaultLegacy(buffer); +const assert__default = /*#__PURE__*/_interopDefaultLegacy(assert); + +const S_IFMT = 61440; +const S_IFDIR = 16384; +const S_IFREG = 32768; +const S_IFLNK = 40960; +const SAFE_TIME = 456789e3; + +function makeError$1(code, message) { + return Object.assign(new Error(`${code}: ${message}`), { code }); +} +function EBUSY(message) { + return makeError$1(`EBUSY`, message); +} +function ENOSYS(message, reason) { + return makeError$1(`ENOSYS`, `${message}, ${reason}`); +} +function EINVAL(reason) { + return makeError$1(`EINVAL`, `invalid argument, ${reason}`); +} +function EBADF(reason) { + return makeError$1(`EBADF`, `bad file descriptor, ${reason}`); +} +function ENOENT(reason) { + return makeError$1(`ENOENT`, `no such file or directory, ${reason}`); +} +function ENOTDIR(reason) { + return makeError$1(`ENOTDIR`, `not a directory, ${reason}`); +} +function EISDIR(reason) { + return makeError$1(`EISDIR`, `illegal operation on a directory, ${reason}`); +} +function EEXIST(reason) { + return makeError$1(`EEXIST`, `file already exists, ${reason}`); +} +function EROFS(reason) { + return makeError$1(`EROFS`, `read-only filesystem, ${reason}`); +} +function ENOTEMPTY(reason) { + return makeError$1(`ENOTEMPTY`, `directory not empty, ${reason}`); +} +function EOPNOTSUPP(reason) { + return makeError$1(`EOPNOTSUPP`, `operation not supported, ${reason}`); +} +function ERR_DIR_CLOSED() { + return makeError$1(`ERR_DIR_CLOSED`, `Directory handle was closed`); +} + +const DEFAULT_MODE = S_IFREG | 420; +class StatEntry { + uid = 0; + gid = 0; + size = 0; + blksize = 0; + atimeMs = 0; + mtimeMs = 0; + ctimeMs = 0; + birthtimeMs = 0; + atime = /* @__PURE__ */ new Date(0); + mtime = /* @__PURE__ */ new Date(0); + ctime = /* @__PURE__ */ new Date(0); + birthtime = /* @__PURE__ */ new Date(0); + dev = 0; + ino = 0; + mode = DEFAULT_MODE; + nlink = 1; + rdev = 0; + blocks = 1; + isBlockDevice() { + return false; + } + isCharacterDevice() { + return false; + } + isDirectory() { + return (this.mode & S_IFMT) === S_IFDIR; + } + isFIFO() { + return false; + } + isFile() { + return (this.mode & S_IFMT) === S_IFREG; + } + isSocket() { + return false; + } + isSymbolicLink() { + return (this.mode & S_IFMT) === S_IFLNK; + } +} +class BigIntStatsEntry { + uid = BigInt(0); + gid = BigInt(0); + size = BigInt(0); + blksize = BigInt(0); + atimeMs = BigInt(0); + mtimeMs = BigInt(0); + ctimeMs = BigInt(0); + birthtimeMs = BigInt(0); + atimeNs = BigInt(0); + mtimeNs = BigInt(0); + ctimeNs = BigInt(0); + birthtimeNs = BigInt(0); + atime = /* @__PURE__ */ new Date(0); + mtime = /* @__PURE__ */ new Date(0); + ctime = /* @__PURE__ */ new Date(0); + birthtime = /* @__PURE__ */ new Date(0); + dev = BigInt(0); + ino = BigInt(0); + mode = BigInt(DEFAULT_MODE); + nlink = BigInt(1); + rdev = BigInt(0); + blocks = BigInt(1); + isBlockDevice() { + return false; + } + isCharacterDevice() { + return false; + } + isDirectory() { + return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFDIR); + } + isFIFO() { + return false; + } + isFile() { + return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFREG); + } + isSocket() { + return false; + } + isSymbolicLink() { + return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFLNK); + } +} +function makeDefaultStats() { + return new StatEntry(); +} +function clearStats(stats) { + for (const key in stats) { + if (Object.hasOwn(stats, key)) { + const element = stats[key]; + if (typeof element === `number`) { + stats[key] = 0; + } else if (typeof element === `bigint`) { + stats[key] = BigInt(0); + } else if (nodeUtils__namespace.types.isDate(element)) { + stats[key] = /* @__PURE__ */ new Date(0); + } + } + } + return stats; +} +function convertToBigIntStats(stats) { + const bigintStats = new BigIntStatsEntry(); + for (const key in stats) { + if (Object.hasOwn(stats, key)) { + const element = stats[key]; + if (typeof element === `number`) { + bigintStats[key] = BigInt(element); + } else if (nodeUtils__namespace.types.isDate(element)) { + bigintStats[key] = new Date(element); + } + } + } + bigintStats.atimeNs = bigintStats.atimeMs * BigInt(1e6); + bigintStats.mtimeNs = bigintStats.mtimeMs * BigInt(1e6); + bigintStats.ctimeNs = bigintStats.ctimeMs * BigInt(1e6); + bigintStats.birthtimeNs = bigintStats.birthtimeMs * BigInt(1e6); + return bigintStats; +} +function areStatsEqual(a, b) { + if (a.atimeMs !== b.atimeMs) + return false; + if (a.birthtimeMs !== b.birthtimeMs) + return false; + if (a.blksize !== b.blksize) + return false; + if (a.blocks !== b.blocks) + return false; + if (a.ctimeMs !== b.ctimeMs) + return false; + if (a.dev !== b.dev) + return false; + if (a.gid !== b.gid) + return false; + if (a.ino !== b.ino) + return false; + if (a.isBlockDevice() !== b.isBlockDevice()) + return false; + if (a.isCharacterDevice() !== b.isCharacterDevice()) + return false; + if (a.isDirectory() !== b.isDirectory()) + return false; + if (a.isFIFO() !== b.isFIFO()) + return false; + if (a.isFile() !== b.isFile()) + return false; + if (a.isSocket() !== b.isSocket()) + return false; + if (a.isSymbolicLink() !== b.isSymbolicLink()) + return false; + if (a.mode !== b.mode) + return false; + if (a.mtimeMs !== b.mtimeMs) + return false; + if (a.nlink !== b.nlink) + return false; + if (a.rdev !== b.rdev) + return false; + if (a.size !== b.size) + return false; + if (a.uid !== b.uid) + return false; + const aN = a; + const bN = b; + if (aN.atimeNs !== bN.atimeNs) + return false; + if (aN.mtimeNs !== bN.mtimeNs) + return false; + if (aN.ctimeNs !== bN.ctimeNs) + return false; + if (aN.birthtimeNs !== bN.birthtimeNs) + return false; + return true; +} + +const PortablePath = { + root: `/`, + dot: `.`, + parent: `..` +}; +const Filename = { + home: `~`, + nodeModules: `node_modules`, + manifest: `package.json`, + lockfile: `yarn.lock`, + virtual: `__virtual__`, + /** + * @deprecated + */ + pnpJs: `.pnp.js`, + pnpCjs: `.pnp.cjs`, + pnpData: `.pnp.data.json`, + pnpEsmLoader: `.pnp.loader.mjs`, + rc: `.yarnrc.yml`, + env: `.env` +}; +const npath = Object.create(path__default.default); +const ppath = Object.create(path__default.default.posix); +npath.cwd = () => process.cwd(); +ppath.cwd = process.platform === `win32` ? () => toPortablePath(process.cwd()) : process.cwd; +if (process.platform === `win32`) { + ppath.resolve = (...segments) => { + if (segments.length > 0 && ppath.isAbsolute(segments[0])) { + return path__default.default.posix.resolve(...segments); + } else { + return path__default.default.posix.resolve(ppath.cwd(), ...segments); + } + }; +} +const contains = function(pathUtils, from, to) { + from = pathUtils.normalize(from); + to = pathUtils.normalize(to); + if (from === to) + return `.`; + if (!from.endsWith(pathUtils.sep)) + from = from + pathUtils.sep; + if (to.startsWith(from)) { + return to.slice(from.length); + } else { + return null; + } +}; +npath.contains = (from, to) => contains(npath, from, to); +ppath.contains = (from, to) => contains(ppath, from, to); +const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/; +const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/; +const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/; +const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/; +function fromPortablePathWin32(p) { + let portablePathMatch, uncPortablePathMatch; + if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP)) + p = portablePathMatch[1]; + else if (uncPortablePathMatch = p.match(UNC_PORTABLE_PATH_REGEXP)) + p = `\\\\${uncPortablePathMatch[1] ? `.\\` : ``}${uncPortablePathMatch[2]}`; + else + return p; + return p.replace(/\//g, `\\`); +} +function toPortablePathWin32(p) { + p = p.replace(/\\/g, `/`); + let windowsPathMatch, uncWindowsPathMatch; + if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP)) + p = `/${windowsPathMatch[1]}`; + else if (uncWindowsPathMatch = p.match(UNC_WINDOWS_PATH_REGEXP)) + p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`; + return p; +} +const toPortablePath = process.platform === `win32` ? toPortablePathWin32 : (p) => p; +const fromPortablePath = process.platform === `win32` ? fromPortablePathWin32 : (p) => p; +npath.fromPortablePath = fromPortablePath; +npath.toPortablePath = toPortablePath; +function convertPath(targetPathUtils, sourcePath) { + return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath); +} + +const defaultTime = new Date(SAFE_TIME * 1e3); +const defaultTimeMs = defaultTime.getTime(); +async function copyPromise(destinationFs, destination, sourceFs, source, opts) { + const normalizedDestination = destinationFs.pathUtils.normalize(destination); + const normalizedSource = sourceFs.pathUtils.normalize(source); + const prelayout = []; + const postlayout = []; + const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : await sourceFs.lstatPromise(normalizedSource); + await destinationFs.mkdirpPromise(destinationFs.pathUtils.dirname(destination), { utimes: [atime, mtime] }); + await copyImpl(prelayout, postlayout, destinationFs, normalizedDestination, sourceFs, normalizedSource, { ...opts, didParentExist: true }); + for (const operation of prelayout) + await operation(); + await Promise.all(postlayout.map((operation) => { + return operation(); + })); +} +async function copyImpl(prelayout, postlayout, destinationFs, destination, sourceFs, source, opts) { + const destinationStat = opts.didParentExist ? await maybeLStat(destinationFs, destination) : null; + const sourceStat = await sourceFs.lstatPromise(source); + const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : sourceStat; + let updated; + switch (true) { + case sourceStat.isDirectory(): + { + updated = await copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + case sourceStat.isFile(): + { + updated = await copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + case sourceStat.isSymbolicLink(): + { + updated = await copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + default: { + throw new Error(`Unsupported file type (${sourceStat.mode})`); + } + } + if (opts.linkStrategy?.type !== `HardlinkFromIndex` || !sourceStat.isFile()) { + if (updated || destinationStat?.mtime?.getTime() !== mtime.getTime() || destinationStat?.atime?.getTime() !== atime.getTime()) { + postlayout.push(() => destinationFs.lutimesPromise(destination, atime, mtime)); + updated = true; + } + if (destinationStat === null || (destinationStat.mode & 511) !== (sourceStat.mode & 511)) { + postlayout.push(() => destinationFs.chmodPromise(destination, sourceStat.mode & 511)); + updated = true; + } + } + return updated; +} +async function maybeLStat(baseFs, p) { + try { + return await baseFs.lstatPromise(p); + } catch { + return null; + } +} +async function copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null && !destinationStat.isDirectory()) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + let updated = false; + if (destinationStat === null) { + prelayout.push(async () => { + try { + await destinationFs.mkdirPromise(destination, { mode: sourceStat.mode }); + } catch (err) { + if (err.code !== `EEXIST`) { + throw err; + } + } + }); + updated = true; + } + const entries = await sourceFs.readdirPromise(source); + const nextOpts = opts.didParentExist && !destinationStat ? { ...opts, didParentExist: false } : opts; + if (opts.stableSort) { + for (const entry of entries.sort()) { + if (await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts)) { + updated = true; + } + } + } else { + const entriesUpdateStatus = await Promise.all(entries.map(async (entry) => { + await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts); + })); + if (entriesUpdateStatus.some((status) => status)) { + updated = true; + } + } + return updated; +} +async function copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, linkStrategy) { + const sourceHash = await sourceFs.checksumFilePromise(source, { algorithm: `sha1` }); + const defaultMode = 420; + const sourceMode = sourceStat.mode & 511; + const indexFileName = `${sourceHash}${sourceMode !== defaultMode ? sourceMode.toString(8) : ``}`; + const indexPath = destinationFs.pathUtils.join(linkStrategy.indexPath, sourceHash.slice(0, 2), `${indexFileName}.dat`); + let AtomicBehavior; + ((AtomicBehavior2) => { + AtomicBehavior2[AtomicBehavior2["Lock"] = 0] = "Lock"; + AtomicBehavior2[AtomicBehavior2["Rename"] = 1] = "Rename"; + })(AtomicBehavior || (AtomicBehavior = {})); + let atomicBehavior = 1 /* Rename */; + let indexStat = await maybeLStat(destinationFs, indexPath); + if (destinationStat) { + const isDestinationHardlinkedFromIndex = indexStat && destinationStat.dev === indexStat.dev && destinationStat.ino === indexStat.ino; + const isIndexModified = indexStat?.mtimeMs !== defaultTimeMs; + if (isDestinationHardlinkedFromIndex) { + if (isIndexModified && linkStrategy.autoRepair) { + atomicBehavior = 0 /* Lock */; + indexStat = null; + } + } + if (!isDestinationHardlinkedFromIndex) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + } + const tempPath = !indexStat && atomicBehavior === 1 /* Rename */ ? `${indexPath}.${Math.floor(Math.random() * 4294967296).toString(16).padStart(8, `0`)}` : null; + let tempPathCleaned = false; + prelayout.push(async () => { + if (!indexStat) { + if (atomicBehavior === 0 /* Lock */) { + await destinationFs.lockPromise(indexPath, async () => { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(indexPath, content); + }); + } + if (atomicBehavior === 1 /* Rename */ && tempPath) { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(tempPath, content); + try { + await destinationFs.linkPromise(tempPath, indexPath); + } catch (err) { + if (err.code === `EEXIST`) { + tempPathCleaned = true; + await destinationFs.unlinkPromise(tempPath); + } else { + throw err; + } + } + } + } + if (!destinationStat) { + await destinationFs.linkPromise(indexPath, destination); + } + }); + postlayout.push(async () => { + if (!indexStat) { + await destinationFs.lutimesPromise(indexPath, defaultTime, defaultTime); + if (sourceMode !== defaultMode) { + await destinationFs.chmodPromise(indexPath, sourceMode); + } + } + if (tempPath && !tempPathCleaned) { + await destinationFs.unlinkPromise(tempPath); + } + }); + return false; +} +async function copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + prelayout.push(async () => { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(destination, content); + }); + return true; +} +async function copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (opts.linkStrategy?.type === `HardlinkFromIndex`) { + return copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, opts.linkStrategy); + } else { + return copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } +} +async function copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + prelayout.push(async () => { + await destinationFs.symlinkPromise(convertPath(destinationFs.pathUtils, await sourceFs.readlinkPromise(source)), destination); + }); + return true; +} + +class CustomDir { + constructor(path, nextDirent, opts = {}) { + this.path = path; + this.nextDirent = nextDirent; + this.opts = opts; + } + closed = false; + throwIfClosed() { + if (this.closed) { + throw ERR_DIR_CLOSED(); + } + } + async *[Symbol.asyncIterator]() { + try { + let dirent; + while ((dirent = await this.read()) !== null) { + yield dirent; + } + } finally { + await this.close(); + } + } + read(cb) { + const dirent = this.readSync(); + if (typeof cb !== `undefined`) + return cb(null, dirent); + return Promise.resolve(dirent); + } + readSync() { + this.throwIfClosed(); + return this.nextDirent(); + } + close(cb) { + this.closeSync(); + if (typeof cb !== `undefined`) + return cb(null); + return Promise.resolve(); + } + closeSync() { + this.throwIfClosed(); + this.opts.onClose?.(); + this.closed = true; + } +} +function opendir(fakeFs, path, entries, opts) { + const nextDirent = () => { + const filename = entries.shift(); + if (typeof filename === `undefined`) + return null; + const entryPath = fakeFs.pathUtils.join(path, filename); + return Object.assign(fakeFs.statSync(entryPath), { + name: filename, + path: void 0 + }); + }; + return new CustomDir(path, nextDirent, opts); +} + +function assertStatus(current, expected) { + if (current !== expected) { + throw new Error(`Invalid StatWatcher status: expected '${expected}', got '${current}'`); + } +} +class CustomStatWatcher extends events.EventEmitter { + fakeFs; + path; + bigint; + status = "ready" /* Ready */; + changeListeners = /* @__PURE__ */ new Map(); + lastStats; + startTimeout = null; + static create(fakeFs, path, opts) { + const statWatcher = new CustomStatWatcher(fakeFs, path, opts); + statWatcher.start(); + return statWatcher; + } + constructor(fakeFs, path, { bigint = false } = {}) { + super(); + this.fakeFs = fakeFs; + this.path = path; + this.bigint = bigint; + this.lastStats = this.stat(); + } + start() { + assertStatus(this.status, "ready" /* Ready */); + this.status = "running" /* Running */; + this.startTimeout = setTimeout(() => { + this.startTimeout = null; + if (!this.fakeFs.existsSync(this.path)) { + this.emit("change" /* Change */, this.lastStats, this.lastStats); + } + }, 3); + } + stop() { + assertStatus(this.status, "running" /* Running */); + this.status = "stopped" /* Stopped */; + if (this.startTimeout !== null) { + clearTimeout(this.startTimeout); + this.startTimeout = null; + } + this.emit("stop" /* Stop */); + } + stat() { + try { + return this.fakeFs.statSync(this.path, { bigint: this.bigint }); + } catch { + const statInstance = this.bigint ? new BigIntStatsEntry() : new StatEntry(); + return clearStats(statInstance); + } + } + /** + * Creates an interval whose callback compares the current stats with the previous stats and notifies all listeners in case of changes. + * + * @param opts.persistent Decides whether the interval should be immediately unref-ed. + */ + makeInterval(opts) { + const interval = setInterval(() => { + const currentStats = this.stat(); + const previousStats = this.lastStats; + if (areStatsEqual(currentStats, previousStats)) + return; + this.lastStats = currentStats; + this.emit("change" /* Change */, currentStats, previousStats); + }, opts.interval); + return opts.persistent ? interval : interval.unref(); + } + /** + * Registers a listener and assigns it an interval. + */ + registerChangeListener(listener, opts) { + this.addListener("change" /* Change */, listener); + this.changeListeners.set(listener, this.makeInterval(opts)); + } + /** + * Unregisters the listener and clears the assigned interval. + */ + unregisterChangeListener(listener) { + this.removeListener("change" /* Change */, listener); + const interval = this.changeListeners.get(listener); + if (typeof interval !== `undefined`) + clearInterval(interval); + this.changeListeners.delete(listener); + } + /** + * Unregisters all listeners and clears all assigned intervals. + */ + unregisterAllChangeListeners() { + for (const listener of this.changeListeners.keys()) { + this.unregisterChangeListener(listener); + } + } + hasChangeListeners() { + return this.changeListeners.size > 0; + } + /** + * Refs all stored intervals. + */ + ref() { + for (const interval of this.changeListeners.values()) + interval.ref(); + return this; + } + /** + * Unrefs all stored intervals. + */ + unref() { + for (const interval of this.changeListeners.values()) + interval.unref(); + return this; + } +} + +const statWatchersByFakeFS = /* @__PURE__ */ new WeakMap(); +function watchFile(fakeFs, path, a, b) { + let bigint; + let persistent; + let interval; + let listener; + switch (typeof a) { + case `function`: + { + bigint = false; + persistent = true; + interval = 5007; + listener = a; + } + break; + default: + { + ({ + bigint = false, + persistent = true, + interval = 5007 + } = a); + listener = b; + } + break; + } + let statWatchers = statWatchersByFakeFS.get(fakeFs); + if (typeof statWatchers === `undefined`) + statWatchersByFakeFS.set(fakeFs, statWatchers = /* @__PURE__ */ new Map()); + let statWatcher = statWatchers.get(path); + if (typeof statWatcher === `undefined`) { + statWatcher = CustomStatWatcher.create(fakeFs, path, { bigint }); + statWatchers.set(path, statWatcher); + } + statWatcher.registerChangeListener(listener, { persistent, interval }); + return statWatcher; +} +function unwatchFile(fakeFs, path, cb) { + const statWatchers = statWatchersByFakeFS.get(fakeFs); + if (typeof statWatchers === `undefined`) + return; + const statWatcher = statWatchers.get(path); + if (typeof statWatcher === `undefined`) + return; + if (typeof cb === `undefined`) + statWatcher.unregisterAllChangeListeners(); + else + statWatcher.unregisterChangeListener(cb); + if (!statWatcher.hasChangeListeners()) { + statWatcher.stop(); + statWatchers.delete(path); + } +} +function unwatchAllFiles(fakeFs) { + const statWatchers = statWatchersByFakeFS.get(fakeFs); + if (typeof statWatchers === `undefined`) + return; + for (const path of statWatchers.keys()) { + unwatchFile(fakeFs, path); + } +} + +class FakeFS { + pathUtils; + constructor(pathUtils) { + this.pathUtils = pathUtils; + } + async *genTraversePromise(init, { stableSort = false } = {}) { + const stack = [init]; + while (stack.length > 0) { + const p = stack.shift(); + const entry = await this.lstatPromise(p); + if (entry.isDirectory()) { + const entries = await this.readdirPromise(p); + if (stableSort) { + for (const entry2 of entries.sort()) { + stack.push(this.pathUtils.join(p, entry2)); + } + } else { + throw new Error(`Not supported`); + } + } else { + yield p; + } + } + } + async checksumFilePromise(path, { algorithm = `sha512` } = {}) { + const fd = await this.openPromise(path, `r`); + try { + const CHUNK_SIZE = 65536; + const chunk = Buffer.allocUnsafeSlow(CHUNK_SIZE); + const hash = crypto.createHash(algorithm); + let bytesRead = 0; + while ((bytesRead = await this.readPromise(fd, chunk, 0, CHUNK_SIZE)) !== 0) + hash.update(bytesRead === CHUNK_SIZE ? chunk : chunk.slice(0, bytesRead)); + return hash.digest(`hex`); + } finally { + await this.closePromise(fd); + } + } + async removePromise(p, { recursive = true, maxRetries = 5 } = {}) { + let stat; + try { + stat = await this.lstatPromise(p); + } catch (error) { + if (error.code === `ENOENT`) { + return; + } else { + throw error; + } + } + if (stat.isDirectory()) { + if (recursive) { + const entries = await this.readdirPromise(p); + await Promise.all(entries.map((entry) => { + return this.removePromise(this.pathUtils.resolve(p, entry)); + })); + } + for (let t = 0; t <= maxRetries; t++) { + try { + await this.rmdirPromise(p); + break; + } catch (error) { + if (error.code !== `EBUSY` && error.code !== `ENOTEMPTY`) { + throw error; + } else if (t < maxRetries) { + await new Promise((resolve) => setTimeout(resolve, t * 100)); + } + } + } + } else { + await this.unlinkPromise(p); + } + } + removeSync(p, { recursive = true } = {}) { + let stat; + try { + stat = this.lstatSync(p); + } catch (error) { + if (error.code === `ENOENT`) { + return; + } else { + throw error; + } + } + if (stat.isDirectory()) { + if (recursive) + for (const entry of this.readdirSync(p)) + this.removeSync(this.pathUtils.resolve(p, entry)); + this.rmdirSync(p); + } else { + this.unlinkSync(p); + } + } + async mkdirpPromise(p, { chmod, utimes } = {}) { + p = this.resolve(p); + if (p === this.pathUtils.dirname(p)) + return void 0; + const parts = p.split(this.pathUtils.sep); + let createdDirectory; + for (let u = 2; u <= parts.length; ++u) { + const subPath = parts.slice(0, u).join(this.pathUtils.sep); + if (!this.existsSync(subPath)) { + try { + await this.mkdirPromise(subPath); + } catch (error) { + if (error.code === `EEXIST`) { + continue; + } else { + throw error; + } + } + createdDirectory ??= subPath; + if (chmod != null) + await this.chmodPromise(subPath, chmod); + if (utimes != null) { + await this.utimesPromise(subPath, utimes[0], utimes[1]); + } else { + const parentStat = await this.statPromise(this.pathUtils.dirname(subPath)); + await this.utimesPromise(subPath, parentStat.atime, parentStat.mtime); + } + } + } + return createdDirectory; + } + mkdirpSync(p, { chmod, utimes } = {}) { + p = this.resolve(p); + if (p === this.pathUtils.dirname(p)) + return void 0; + const parts = p.split(this.pathUtils.sep); + let createdDirectory; + for (let u = 2; u <= parts.length; ++u) { + const subPath = parts.slice(0, u).join(this.pathUtils.sep); + if (!this.existsSync(subPath)) { + try { + this.mkdirSync(subPath); + } catch (error) { + if (error.code === `EEXIST`) { + continue; + } else { + throw error; + } + } + createdDirectory ??= subPath; + if (chmod != null) + this.chmodSync(subPath, chmod); + if (utimes != null) { + this.utimesSync(subPath, utimes[0], utimes[1]); + } else { + const parentStat = this.statSync(this.pathUtils.dirname(subPath)); + this.utimesSync(subPath, parentStat.atime, parentStat.mtime); + } + } + } + return createdDirectory; + } + async copyPromise(destination, source, { baseFs = this, overwrite = true, stableSort = false, stableTime = false, linkStrategy = null } = {}) { + return await copyPromise(this, destination, baseFs, source, { overwrite, stableSort, stableTime, linkStrategy }); + } + copySync(destination, source, { baseFs = this, overwrite = true } = {}) { + const stat = baseFs.lstatSync(source); + const exists = this.existsSync(destination); + if (stat.isDirectory()) { + this.mkdirpSync(destination); + const directoryListing = baseFs.readdirSync(source); + for (const entry of directoryListing) { + this.copySync(this.pathUtils.join(destination, entry), baseFs.pathUtils.join(source, entry), { baseFs, overwrite }); + } + } else if (stat.isFile()) { + if (!exists || overwrite) { + if (exists) + this.removeSync(destination); + const content = baseFs.readFileSync(source); + this.writeFileSync(destination, content); + } + } else if (stat.isSymbolicLink()) { + if (!exists || overwrite) { + if (exists) + this.removeSync(destination); + const target = baseFs.readlinkSync(source); + this.symlinkSync(convertPath(this.pathUtils, target), destination); + } + } else { + throw new Error(`Unsupported file type (file: ${source}, mode: 0o${stat.mode.toString(8).padStart(6, `0`)})`); + } + const mode = stat.mode & 511; + this.chmodSync(destination, mode); + } + async changeFilePromise(p, content, opts = {}) { + if (Buffer.isBuffer(content)) { + return this.changeFileBufferPromise(p, content, opts); + } else { + return this.changeFileTextPromise(p, content, opts); + } + } + async changeFileBufferPromise(p, content, { mode } = {}) { + let current = Buffer.alloc(0); + try { + current = await this.readFilePromise(p); + } catch { + } + if (Buffer.compare(current, content) === 0) + return; + await this.writeFilePromise(p, content, { mode }); + } + async changeFileTextPromise(p, content, { automaticNewlines, mode } = {}) { + let current = ``; + try { + current = await this.readFilePromise(p, `utf8`); + } catch { + } + const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; + if (current === normalizedContent) + return; + await this.writeFilePromise(p, normalizedContent, { mode }); + } + changeFileSync(p, content, opts = {}) { + if (Buffer.isBuffer(content)) { + return this.changeFileBufferSync(p, content, opts); + } else { + return this.changeFileTextSync(p, content, opts); + } + } + changeFileBufferSync(p, content, { mode } = {}) { + let current = Buffer.alloc(0); + try { + current = this.readFileSync(p); + } catch { + } + if (Buffer.compare(current, content) === 0) + return; + this.writeFileSync(p, content, { mode }); + } + changeFileTextSync(p, content, { automaticNewlines = false, mode } = {}) { + let current = ``; + try { + current = this.readFileSync(p, `utf8`); + } catch { + } + const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; + if (current === normalizedContent) + return; + this.writeFileSync(p, normalizedContent, { mode }); + } + async movePromise(fromP, toP) { + try { + await this.renamePromise(fromP, toP); + } catch (error) { + if (error.code === `EXDEV`) { + await this.copyPromise(toP, fromP); + await this.removePromise(fromP); + } else { + throw error; + } + } + } + moveSync(fromP, toP) { + try { + this.renameSync(fromP, toP); + } catch (error) { + if (error.code === `EXDEV`) { + this.copySync(toP, fromP); + this.removeSync(fromP); + } else { + throw error; + } + } + } + async lockPromise(affectedPath, callback) { + const lockPath = `${affectedPath}.flock`; + const interval = 1e3 / 60; + const startTime = Date.now(); + let fd = null; + const isAlive = async () => { + let pid; + try { + [pid] = await this.readJsonPromise(lockPath); + } catch { + return Date.now() - startTime < 500; + } + try { + process.kill(pid, 0); + return true; + } catch { + return false; + } + }; + while (fd === null) { + try { + fd = await this.openPromise(lockPath, `wx`); + } catch (error) { + if (error.code === `EEXIST`) { + if (!await isAlive()) { + try { + await this.unlinkPromise(lockPath); + continue; + } catch { + } + } + if (Date.now() - startTime < 60 * 1e3) { + await new Promise((resolve) => setTimeout(resolve, interval)); + } else { + throw new Error(`Couldn't acquire a lock in a reasonable time (via ${lockPath})`); + } + } else { + throw error; + } + } + } + await this.writePromise(fd, JSON.stringify([process.pid])); + try { + return await callback(); + } finally { + try { + await this.closePromise(fd); + await this.unlinkPromise(lockPath); + } catch { + } + } + } + async readJsonPromise(p) { + const content = await this.readFilePromise(p, `utf8`); + try { + return JSON.parse(content); + } catch (error) { + error.message += ` (in ${p})`; + throw error; + } + } + readJsonSync(p) { + const content = this.readFileSync(p, `utf8`); + try { + return JSON.parse(content); + } catch (error) { + error.message += ` (in ${p})`; + throw error; + } + } + async writeJsonPromise(p, data, { compact = false } = {}) { + const space = compact ? 0 : 2; + return await this.writeFilePromise(p, `${JSON.stringify(data, null, space)} +`); + } + writeJsonSync(p, data, { compact = false } = {}) { + const space = compact ? 0 : 2; + return this.writeFileSync(p, `${JSON.stringify(data, null, space)} +`); + } + async preserveTimePromise(p, cb) { + const stat = await this.lstatPromise(p); + const result = await cb(); + if (typeof result !== `undefined`) + p = result; + await this.lutimesPromise(p, stat.atime, stat.mtime); + } + async preserveTimeSync(p, cb) { + const stat = this.lstatSync(p); + const result = cb(); + if (typeof result !== `undefined`) + p = result; + this.lutimesSync(p, stat.atime, stat.mtime); + } +} +class BasePortableFakeFS extends FakeFS { + constructor() { + super(ppath); + } +} +function getEndOfLine(content) { + const matches = content.match(/\r?\n/g); + if (matches === null) + return os.EOL; + const crlf = matches.filter((nl) => nl === `\r +`).length; + const lf = matches.length - crlf; + return crlf > lf ? `\r +` : ` +`; +} +function normalizeLineEndings(originalContent, newContent) { + return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)); +} + +class ProxiedFS extends FakeFS { + getExtractHint(hints) { + return this.baseFs.getExtractHint(hints); + } + resolve(path) { + return this.mapFromBase(this.baseFs.resolve(this.mapToBase(path))); + } + getRealPath() { + return this.mapFromBase(this.baseFs.getRealPath()); + } + async openPromise(p, flags, mode) { + return this.baseFs.openPromise(this.mapToBase(p), flags, mode); + } + openSync(p, flags, mode) { + return this.baseFs.openSync(this.mapToBase(p), flags, mode); + } + async opendirPromise(p, opts) { + return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(p), opts), { path: p }); + } + opendirSync(p, opts) { + return Object.assign(this.baseFs.opendirSync(this.mapToBase(p), opts), { path: p }); + } + async readPromise(fd, buffer, offset, length, position) { + return await this.baseFs.readPromise(fd, buffer, offset, length, position); + } + readSync(fd, buffer, offset, length, position) { + return this.baseFs.readSync(fd, buffer, offset, length, position); + } + async writePromise(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return await this.baseFs.writePromise(fd, buffer, offset); + } else { + return await this.baseFs.writePromise(fd, buffer, offset, length, position); + } + } + writeSync(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.baseFs.writeSync(fd, buffer, offset); + } else { + return this.baseFs.writeSync(fd, buffer, offset, length, position); + } + } + async closePromise(fd) { + return this.baseFs.closePromise(fd); + } + closeSync(fd) { + this.baseFs.closeSync(fd); + } + createReadStream(p, opts) { + return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts); + } + createWriteStream(p, opts) { + return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts); + } + async realpathPromise(p) { + return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p))); + } + realpathSync(p) { + return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p))); + } + async existsPromise(p) { + return this.baseFs.existsPromise(this.mapToBase(p)); + } + existsSync(p) { + return this.baseFs.existsSync(this.mapToBase(p)); + } + accessSync(p, mode) { + return this.baseFs.accessSync(this.mapToBase(p), mode); + } + async accessPromise(p, mode) { + return this.baseFs.accessPromise(this.mapToBase(p), mode); + } + async statPromise(p, opts) { + return this.baseFs.statPromise(this.mapToBase(p), opts); + } + statSync(p, opts) { + return this.baseFs.statSync(this.mapToBase(p), opts); + } + async fstatPromise(fd, opts) { + return this.baseFs.fstatPromise(fd, opts); + } + fstatSync(fd, opts) { + return this.baseFs.fstatSync(fd, opts); + } + lstatPromise(p, opts) { + return this.baseFs.lstatPromise(this.mapToBase(p), opts); + } + lstatSync(p, opts) { + return this.baseFs.lstatSync(this.mapToBase(p), opts); + } + async fchmodPromise(fd, mask) { + return this.baseFs.fchmodPromise(fd, mask); + } + fchmodSync(fd, mask) { + return this.baseFs.fchmodSync(fd, mask); + } + async chmodPromise(p, mask) { + return this.baseFs.chmodPromise(this.mapToBase(p), mask); + } + chmodSync(p, mask) { + return this.baseFs.chmodSync(this.mapToBase(p), mask); + } + async fchownPromise(fd, uid, gid) { + return this.baseFs.fchownPromise(fd, uid, gid); + } + fchownSync(fd, uid, gid) { + return this.baseFs.fchownSync(fd, uid, gid); + } + async chownPromise(p, uid, gid) { + return this.baseFs.chownPromise(this.mapToBase(p), uid, gid); + } + chownSync(p, uid, gid) { + return this.baseFs.chownSync(this.mapToBase(p), uid, gid); + } + async renamePromise(oldP, newP) { + return this.baseFs.renamePromise(this.mapToBase(oldP), this.mapToBase(newP)); + } + renameSync(oldP, newP) { + return this.baseFs.renameSync(this.mapToBase(oldP), this.mapToBase(newP)); + } + async copyFilePromise(sourceP, destP, flags = 0) { + return this.baseFs.copyFilePromise(this.mapToBase(sourceP), this.mapToBase(destP), flags); + } + copyFileSync(sourceP, destP, flags = 0) { + return this.baseFs.copyFileSync(this.mapToBase(sourceP), this.mapToBase(destP), flags); + } + async appendFilePromise(p, content, opts) { + return this.baseFs.appendFilePromise(this.fsMapToBase(p), content, opts); + } + appendFileSync(p, content, opts) { + return this.baseFs.appendFileSync(this.fsMapToBase(p), content, opts); + } + async writeFilePromise(p, content, opts) { + return this.baseFs.writeFilePromise(this.fsMapToBase(p), content, opts); + } + writeFileSync(p, content, opts) { + return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts); + } + async unlinkPromise(p) { + return this.baseFs.unlinkPromise(this.mapToBase(p)); + } + unlinkSync(p) { + return this.baseFs.unlinkSync(this.mapToBase(p)); + } + async utimesPromise(p, atime, mtime) { + return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime); + } + utimesSync(p, atime, mtime) { + return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime); + } + async lutimesPromise(p, atime, mtime) { + return this.baseFs.lutimesPromise(this.mapToBase(p), atime, mtime); + } + lutimesSync(p, atime, mtime) { + return this.baseFs.lutimesSync(this.mapToBase(p), atime, mtime); + } + async mkdirPromise(p, opts) { + return this.baseFs.mkdirPromise(this.mapToBase(p), opts); + } + mkdirSync(p, opts) { + return this.baseFs.mkdirSync(this.mapToBase(p), opts); + } + async rmdirPromise(p, opts) { + return this.baseFs.rmdirPromise(this.mapToBase(p), opts); + } + rmdirSync(p, opts) { + return this.baseFs.rmdirSync(this.mapToBase(p), opts); + } + async rmPromise(p, opts) { + return this.baseFs.rmPromise(this.mapToBase(p), opts); + } + rmSync(p, opts) { + return this.baseFs.rmSync(this.mapToBase(p), opts); + } + async linkPromise(existingP, newP) { + return this.baseFs.linkPromise(this.mapToBase(existingP), this.mapToBase(newP)); + } + linkSync(existingP, newP) { + return this.baseFs.linkSync(this.mapToBase(existingP), this.mapToBase(newP)); + } + async symlinkPromise(target, p, type) { + const mappedP = this.mapToBase(p); + if (this.pathUtils.isAbsolute(target)) + return this.baseFs.symlinkPromise(this.mapToBase(target), mappedP, type); + const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); + const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); + return this.baseFs.symlinkPromise(mappedTarget, mappedP, type); + } + symlinkSync(target, p, type) { + const mappedP = this.mapToBase(p); + if (this.pathUtils.isAbsolute(target)) + return this.baseFs.symlinkSync(this.mapToBase(target), mappedP, type); + const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); + const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); + return this.baseFs.symlinkSync(mappedTarget, mappedP, type); + } + async readFilePromise(p, encoding) { + return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding); + } + readFileSync(p, encoding) { + return this.baseFs.readFileSync(this.fsMapToBase(p), encoding); + } + readdirPromise(p, opts) { + return this.baseFs.readdirPromise(this.mapToBase(p), opts); + } + readdirSync(p, opts) { + return this.baseFs.readdirSync(this.mapToBase(p), opts); + } + async readlinkPromise(p) { + return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(p))); + } + readlinkSync(p) { + return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(p))); + } + async truncatePromise(p, len) { + return this.baseFs.truncatePromise(this.mapToBase(p), len); + } + truncateSync(p, len) { + return this.baseFs.truncateSync(this.mapToBase(p), len); + } + async ftruncatePromise(fd, len) { + return this.baseFs.ftruncatePromise(fd, len); + } + ftruncateSync(fd, len) { + return this.baseFs.ftruncateSync(fd, len); + } + watch(p, a, b) { + return this.baseFs.watch( + this.mapToBase(p), + // @ts-expect-error - reason TBS + a, + b + ); + } + watchFile(p, a, b) { + return this.baseFs.watchFile( + this.mapToBase(p), + // @ts-expect-error - reason TBS + a, + b + ); + } + unwatchFile(p, cb) { + return this.baseFs.unwatchFile(this.mapToBase(p), cb); + } + fsMapToBase(p) { + if (typeof p === `number`) { + return p; + } else { + return this.mapToBase(p); + } + } +} + +function direntToPortable(dirent) { + const portableDirent = dirent; + if (typeof dirent.path === `string`) + portableDirent.path = npath.toPortablePath(dirent.path); + return portableDirent; +} +class NodeFS extends BasePortableFakeFS { + realFs; + constructor(realFs = fs__default.default) { + super(); + this.realFs = realFs; + } + getExtractHint() { + return false; + } + getRealPath() { + return PortablePath.root; + } + resolve(p) { + return ppath.resolve(p); + } + async openPromise(p, flags, mode) { + return await new Promise((resolve, reject) => { + this.realFs.open(npath.fromPortablePath(p), flags, mode, this.makeCallback(resolve, reject)); + }); + } + openSync(p, flags, mode) { + return this.realFs.openSync(npath.fromPortablePath(p), flags, mode); + } + async opendirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (typeof opts !== `undefined`) { + this.realFs.opendir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.opendir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }).then((dir) => { + const dirWithFixedPath = dir; + Object.defineProperty(dirWithFixedPath, `path`, { + value: p, + configurable: true, + writable: true + }); + return dirWithFixedPath; + }); + } + opendirSync(p, opts) { + const dir = typeof opts !== `undefined` ? this.realFs.opendirSync(npath.fromPortablePath(p), opts) : this.realFs.opendirSync(npath.fromPortablePath(p)); + const dirWithFixedPath = dir; + Object.defineProperty(dirWithFixedPath, `path`, { + value: p, + configurable: true, + writable: true + }); + return dirWithFixedPath; + } + async readPromise(fd, buffer, offset = 0, length = 0, position = -1) { + return await new Promise((resolve, reject) => { + this.realFs.read(fd, buffer, offset, length, position, (error, bytesRead) => { + if (error) { + reject(error); + } else { + resolve(bytesRead); + } + }); + }); + } + readSync(fd, buffer, offset, length, position) { + return this.realFs.readSync(fd, buffer, offset, length, position); + } + async writePromise(fd, buffer, offset, length, position) { + return await new Promise((resolve, reject) => { + if (typeof buffer === `string`) { + return this.realFs.write(fd, buffer, offset, this.makeCallback(resolve, reject)); + } else { + return this.realFs.write(fd, buffer, offset, length, position, this.makeCallback(resolve, reject)); + } + }); + } + writeSync(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.realFs.writeSync(fd, buffer, offset); + } else { + return this.realFs.writeSync(fd, buffer, offset, length, position); + } + } + async closePromise(fd) { + await new Promise((resolve, reject) => { + this.realFs.close(fd, this.makeCallback(resolve, reject)); + }); + } + closeSync(fd) { + this.realFs.closeSync(fd); + } + createReadStream(p, opts) { + const realPath = p !== null ? npath.fromPortablePath(p) : p; + return this.realFs.createReadStream(realPath, opts); + } + createWriteStream(p, opts) { + const realPath = p !== null ? npath.fromPortablePath(p) : p; + return this.realFs.createWriteStream(realPath, opts); + } + async realpathPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.realpath(npath.fromPortablePath(p), {}, this.makeCallback(resolve, reject)); + }).then((path) => { + return npath.toPortablePath(path); + }); + } + realpathSync(p) { + return npath.toPortablePath(this.realFs.realpathSync(npath.fromPortablePath(p), {})); + } + async existsPromise(p) { + return await new Promise((resolve) => { + this.realFs.exists(npath.fromPortablePath(p), resolve); + }); + } + accessSync(p, mode) { + return this.realFs.accessSync(npath.fromPortablePath(p), mode); + } + async accessPromise(p, mode) { + return await new Promise((resolve, reject) => { + this.realFs.access(npath.fromPortablePath(p), mode, this.makeCallback(resolve, reject)); + }); + } + existsSync(p) { + return this.realFs.existsSync(npath.fromPortablePath(p)); + } + async statPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.stat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.stat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + statSync(p, opts) { + if (opts) { + return this.realFs.statSync(npath.fromPortablePath(p), opts); + } else { + return this.realFs.statSync(npath.fromPortablePath(p)); + } + } + async fstatPromise(fd, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.fstat(fd, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.fstat(fd, this.makeCallback(resolve, reject)); + } + }); + } + fstatSync(fd, opts) { + if (opts) { + return this.realFs.fstatSync(fd, opts); + } else { + return this.realFs.fstatSync(fd); + } + } + async lstatPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.lstat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.lstat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + lstatSync(p, opts) { + if (opts) { + return this.realFs.lstatSync(npath.fromPortablePath(p), opts); + } else { + return this.realFs.lstatSync(npath.fromPortablePath(p)); + } + } + async fchmodPromise(fd, mask) { + return await new Promise((resolve, reject) => { + this.realFs.fchmod(fd, mask, this.makeCallback(resolve, reject)); + }); + } + fchmodSync(fd, mask) { + return this.realFs.fchmodSync(fd, mask); + } + async chmodPromise(p, mask) { + return await new Promise((resolve, reject) => { + this.realFs.chmod(npath.fromPortablePath(p), mask, this.makeCallback(resolve, reject)); + }); + } + chmodSync(p, mask) { + return this.realFs.chmodSync(npath.fromPortablePath(p), mask); + } + async fchownPromise(fd, uid, gid) { + return await new Promise((resolve, reject) => { + this.realFs.fchown(fd, uid, gid, this.makeCallback(resolve, reject)); + }); + } + fchownSync(fd, uid, gid) { + return this.realFs.fchownSync(fd, uid, gid); + } + async chownPromise(p, uid, gid) { + return await new Promise((resolve, reject) => { + this.realFs.chown(npath.fromPortablePath(p), uid, gid, this.makeCallback(resolve, reject)); + }); + } + chownSync(p, uid, gid) { + return this.realFs.chownSync(npath.fromPortablePath(p), uid, gid); + } + async renamePromise(oldP, newP) { + return await new Promise((resolve, reject) => { + this.realFs.rename(npath.fromPortablePath(oldP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); + }); + } + renameSync(oldP, newP) { + return this.realFs.renameSync(npath.fromPortablePath(oldP), npath.fromPortablePath(newP)); + } + async copyFilePromise(sourceP, destP, flags = 0) { + return await new Promise((resolve, reject) => { + this.realFs.copyFile(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags, this.makeCallback(resolve, reject)); + }); + } + copyFileSync(sourceP, destP, flags = 0) { + return this.realFs.copyFileSync(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags); + } + async appendFilePromise(p, content, opts) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.appendFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.appendFile(fsNativePath, content, this.makeCallback(resolve, reject)); + } + }); + } + appendFileSync(p, content, opts) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.appendFileSync(fsNativePath, content, opts); + } else { + this.realFs.appendFileSync(fsNativePath, content); + } + } + async writeFilePromise(p, content, opts) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.writeFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.writeFile(fsNativePath, content, this.makeCallback(resolve, reject)); + } + }); + } + writeFileSync(p, content, opts) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.writeFileSync(fsNativePath, content, opts); + } else { + this.realFs.writeFileSync(fsNativePath, content); + } + } + async unlinkPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.unlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + }); + } + unlinkSync(p) { + return this.realFs.unlinkSync(npath.fromPortablePath(p)); + } + async utimesPromise(p, atime, mtime) { + return await new Promise((resolve, reject) => { + this.realFs.utimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); + }); + } + utimesSync(p, atime, mtime) { + this.realFs.utimesSync(npath.fromPortablePath(p), atime, mtime); + } + async lutimesPromise(p, atime, mtime) { + return await new Promise((resolve, reject) => { + this.realFs.lutimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); + }); + } + lutimesSync(p, atime, mtime) { + this.realFs.lutimesSync(npath.fromPortablePath(p), atime, mtime); + } + async mkdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + this.realFs.mkdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + }); + } + mkdirSync(p, opts) { + return this.realFs.mkdirSync(npath.fromPortablePath(p), opts); + } + async rmdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.rmdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.rmdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + rmdirSync(p, opts) { + return this.realFs.rmdirSync(npath.fromPortablePath(p), opts); + } + async rmPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.rm(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.rm(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + rmSync(p, opts) { + return this.realFs.rmSync(npath.fromPortablePath(p), opts); + } + async linkPromise(existingP, newP) { + return await new Promise((resolve, reject) => { + this.realFs.link(npath.fromPortablePath(existingP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); + }); + } + linkSync(existingP, newP) { + return this.realFs.linkSync(npath.fromPortablePath(existingP), npath.fromPortablePath(newP)); + } + async symlinkPromise(target, p, type) { + return await new Promise((resolve, reject) => { + this.realFs.symlink(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type, this.makeCallback(resolve, reject)); + }); + } + symlinkSync(target, p, type) { + return this.realFs.symlinkSync(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type); + } + async readFilePromise(p, encoding) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + this.realFs.readFile(fsNativePath, encoding, this.makeCallback(resolve, reject)); + }); + } + readFileSync(p, encoding) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + return this.realFs.readFileSync(fsNativePath, encoding); + } + async readdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + if (opts.recursive && process.platform === `win32`) { + if (opts.withFileTypes) { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(direntToPortable)), reject)); + } else { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(npath.toPortablePath)), reject)); + } + } else { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } + } else { + this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + readdirSync(p, opts) { + if (opts) { + if (opts.recursive && process.platform === `win32`) { + if (opts.withFileTypes) { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(direntToPortable); + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(npath.toPortablePath); + } + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts); + } + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p)); + } + } + async readlinkPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.readlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + }).then((path) => { + return npath.toPortablePath(path); + }); + } + readlinkSync(p) { + return npath.toPortablePath(this.realFs.readlinkSync(npath.fromPortablePath(p))); + } + async truncatePromise(p, len) { + return await new Promise((resolve, reject) => { + this.realFs.truncate(npath.fromPortablePath(p), len, this.makeCallback(resolve, reject)); + }); + } + truncateSync(p, len) { + return this.realFs.truncateSync(npath.fromPortablePath(p), len); + } + async ftruncatePromise(fd, len) { + return await new Promise((resolve, reject) => { + this.realFs.ftruncate(fd, len, this.makeCallback(resolve, reject)); + }); + } + ftruncateSync(fd, len) { + return this.realFs.ftruncateSync(fd, len); + } + watch(p, a, b) { + return this.realFs.watch( + npath.fromPortablePath(p), + // @ts-expect-error - reason TBS + a, + b + ); + } + watchFile(p, a, b) { + return this.realFs.watchFile( + npath.fromPortablePath(p), + // @ts-expect-error - reason TBS + a, + b + ); + } + unwatchFile(p, cb) { + return this.realFs.unwatchFile(npath.fromPortablePath(p), cb); + } + makeCallback(resolve, reject) { + return (err, result) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }; + } +} + +const MOUNT_MASK = 4278190080; +class MountFS extends BasePortableFakeFS { + baseFs; + mountInstances; + fdMap = /* @__PURE__ */ new Map(); + nextFd = 3; + factoryPromise; + factorySync; + filter; + getMountPoint; + magic; + maxAge; + maxOpenFiles; + typeCheck; + isMount = /* @__PURE__ */ new Set(); + notMount = /* @__PURE__ */ new Set(); + realPaths = /* @__PURE__ */ new Map(); + constructor({ baseFs = new NodeFS(), filter = null, magicByte = 42, maxOpenFiles = Infinity, useCache = true, maxAge = 5e3, typeCheck = fs.constants.S_IFREG, getMountPoint, factoryPromise, factorySync }) { + if (Math.floor(magicByte) !== magicByte || !(magicByte > 1 && magicByte <= 127)) + throw new Error(`The magic byte must be set to a round value between 1 and 127 included`); + super(); + this.baseFs = baseFs; + this.mountInstances = useCache ? /* @__PURE__ */ new Map() : null; + this.factoryPromise = factoryPromise; + this.factorySync = factorySync; + this.filter = filter; + this.getMountPoint = getMountPoint; + this.magic = magicByte << 24; + this.maxAge = maxAge; + this.maxOpenFiles = maxOpenFiles; + this.typeCheck = typeCheck; + } + getExtractHint(hints) { + return this.baseFs.getExtractHint(hints); + } + getRealPath() { + return this.baseFs.getRealPath(); + } + saveAndClose() { + unwatchAllFiles(this); + if (this.mountInstances) { + for (const [path, { childFs }] of this.mountInstances.entries()) { + childFs.saveAndClose?.(); + this.mountInstances.delete(path); + } + } + } + discardAndClose() { + unwatchAllFiles(this); + if (this.mountInstances) { + for (const [path, { childFs }] of this.mountInstances.entries()) { + childFs.discardAndClose?.(); + this.mountInstances.delete(path); + } + } + } + resolve(p) { + return this.baseFs.resolve(p); + } + remapFd(mountFs, fd) { + const remappedFd = this.nextFd++ | this.magic; + this.fdMap.set(remappedFd, [mountFs, fd]); + return remappedFd; + } + async openPromise(p, flags, mode) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.openPromise(p, flags, mode); + }, async (mountFs, { subPath }) => { + return this.remapFd(mountFs, await mountFs.openPromise(subPath, flags, mode)); + }); + } + openSync(p, flags, mode) { + return this.makeCallSync(p, () => { + return this.baseFs.openSync(p, flags, mode); + }, (mountFs, { subPath }) => { + return this.remapFd(mountFs, mountFs.openSync(subPath, flags, mode)); + }); + } + async opendirPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.opendirPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.opendirPromise(subPath, opts); + }, { + requireSubpath: false + }); + } + opendirSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.opendirSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.opendirSync(subPath, opts); + }, { + requireSubpath: false + }); + } + async readPromise(fd, buffer, offset, length, position) { + if ((fd & MOUNT_MASK) !== this.magic) + return await this.baseFs.readPromise(fd, buffer, offset, length, position); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`read`); + const [mountFs, realFd] = entry; + return await mountFs.readPromise(realFd, buffer, offset, length, position); + } + readSync(fd, buffer, offset, length, position) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.readSync(fd, buffer, offset, length, position); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`readSync`); + const [mountFs, realFd] = entry; + return mountFs.readSync(realFd, buffer, offset, length, position); + } + async writePromise(fd, buffer, offset, length, position) { + if ((fd & MOUNT_MASK) !== this.magic) { + if (typeof buffer === `string`) { + return await this.baseFs.writePromise(fd, buffer, offset); + } else { + return await this.baseFs.writePromise(fd, buffer, offset, length, position); + } + } + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`write`); + const [mountFs, realFd] = entry; + if (typeof buffer === `string`) { + return await mountFs.writePromise(realFd, buffer, offset); + } else { + return await mountFs.writePromise(realFd, buffer, offset, length, position); + } + } + writeSync(fd, buffer, offset, length, position) { + if ((fd & MOUNT_MASK) !== this.magic) { + if (typeof buffer === `string`) { + return this.baseFs.writeSync(fd, buffer, offset); + } else { + return this.baseFs.writeSync(fd, buffer, offset, length, position); + } + } + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`writeSync`); + const [mountFs, realFd] = entry; + if (typeof buffer === `string`) { + return mountFs.writeSync(realFd, buffer, offset); + } else { + return mountFs.writeSync(realFd, buffer, offset, length, position); + } + } + async closePromise(fd) { + if ((fd & MOUNT_MASK) !== this.magic) + return await this.baseFs.closePromise(fd); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`close`); + this.fdMap.delete(fd); + const [mountFs, realFd] = entry; + return await mountFs.closePromise(realFd); + } + closeSync(fd) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.closeSync(fd); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`closeSync`); + this.fdMap.delete(fd); + const [mountFs, realFd] = entry; + return mountFs.closeSync(realFd); + } + createReadStream(p, opts) { + if (p === null) + return this.baseFs.createReadStream(p, opts); + return this.makeCallSync(p, () => { + return this.baseFs.createReadStream(p, opts); + }, (mountFs, { archivePath, subPath }) => { + const stream = mountFs.createReadStream(subPath, opts); + stream.path = npath.fromPortablePath(this.pathUtils.join(archivePath, subPath)); + return stream; + }); + } + createWriteStream(p, opts) { + if (p === null) + return this.baseFs.createWriteStream(p, opts); + return this.makeCallSync(p, () => { + return this.baseFs.createWriteStream(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.createWriteStream(subPath, opts); + }); + } + async realpathPromise(p) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.realpathPromise(p); + }, async (mountFs, { archivePath, subPath }) => { + let realArchivePath = this.realPaths.get(archivePath); + if (typeof realArchivePath === `undefined`) { + realArchivePath = await this.baseFs.realpathPromise(archivePath); + this.realPaths.set(archivePath, realArchivePath); + } + return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, await mountFs.realpathPromise(subPath))); + }); + } + realpathSync(p) { + return this.makeCallSync(p, () => { + return this.baseFs.realpathSync(p); + }, (mountFs, { archivePath, subPath }) => { + let realArchivePath = this.realPaths.get(archivePath); + if (typeof realArchivePath === `undefined`) { + realArchivePath = this.baseFs.realpathSync(archivePath); + this.realPaths.set(archivePath, realArchivePath); + } + return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, mountFs.realpathSync(subPath))); + }); + } + async existsPromise(p) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.existsPromise(p); + }, async (mountFs, { subPath }) => { + return await mountFs.existsPromise(subPath); + }); + } + existsSync(p) { + return this.makeCallSync(p, () => { + return this.baseFs.existsSync(p); + }, (mountFs, { subPath }) => { + return mountFs.existsSync(subPath); + }); + } + async accessPromise(p, mode) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.accessPromise(p, mode); + }, async (mountFs, { subPath }) => { + return await mountFs.accessPromise(subPath, mode); + }); + } + accessSync(p, mode) { + return this.makeCallSync(p, () => { + return this.baseFs.accessSync(p, mode); + }, (mountFs, { subPath }) => { + return mountFs.accessSync(subPath, mode); + }); + } + async statPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.statPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.statPromise(subPath, opts); + }); + } + statSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.statSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.statSync(subPath, opts); + }); + } + async fstatPromise(fd, opts) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fstatPromise(fd, opts); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fstat`); + const [mountFs, realFd] = entry; + return mountFs.fstatPromise(realFd, opts); + } + fstatSync(fd, opts) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fstatSync(fd, opts); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fstatSync`); + const [mountFs, realFd] = entry; + return mountFs.fstatSync(realFd, opts); + } + async lstatPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.lstatPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.lstatPromise(subPath, opts); + }); + } + lstatSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.lstatSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.lstatSync(subPath, opts); + }); + } + async fchmodPromise(fd, mask) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fchmodPromise(fd, mask); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fchmod`); + const [mountFs, realFd] = entry; + return mountFs.fchmodPromise(realFd, mask); + } + fchmodSync(fd, mask) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fchmodSync(fd, mask); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fchmodSync`); + const [mountFs, realFd] = entry; + return mountFs.fchmodSync(realFd, mask); + } + async chmodPromise(p, mask) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.chmodPromise(p, mask); + }, async (mountFs, { subPath }) => { + return await mountFs.chmodPromise(subPath, mask); + }); + } + chmodSync(p, mask) { + return this.makeCallSync(p, () => { + return this.baseFs.chmodSync(p, mask); + }, (mountFs, { subPath }) => { + return mountFs.chmodSync(subPath, mask); + }); + } + async fchownPromise(fd, uid, gid) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fchownPromise(fd, uid, gid); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fchown`); + const [zipFs, realFd] = entry; + return zipFs.fchownPromise(realFd, uid, gid); + } + fchownSync(fd, uid, gid) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.fchownSync(fd, uid, gid); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fchownSync`); + const [zipFs, realFd] = entry; + return zipFs.fchownSync(realFd, uid, gid); + } + async chownPromise(p, uid, gid) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.chownPromise(p, uid, gid); + }, async (mountFs, { subPath }) => { + return await mountFs.chownPromise(subPath, uid, gid); + }); + } + chownSync(p, uid, gid) { + return this.makeCallSync(p, () => { + return this.baseFs.chownSync(p, uid, gid); + }, (mountFs, { subPath }) => { + return mountFs.chownSync(subPath, uid, gid); + }); + } + async renamePromise(oldP, newP) { + return await this.makeCallPromise(oldP, async () => { + return await this.makeCallPromise(newP, async () => { + return await this.baseFs.renamePromise(oldP, newP); + }, async () => { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + }); + }, async (mountFsO, { subPath: subPathO }) => { + return await this.makeCallPromise(newP, async () => { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + }, async (mountFsN, { subPath: subPathN }) => { + if (mountFsO !== mountFsN) { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + } else { + return await mountFsO.renamePromise(subPathO, subPathN); + } + }); + }); + } + renameSync(oldP, newP) { + return this.makeCallSync(oldP, () => { + return this.makeCallSync(newP, () => { + return this.baseFs.renameSync(oldP, newP); + }, () => { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + }); + }, (mountFsO, { subPath: subPathO }) => { + return this.makeCallSync(newP, () => { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + }, (mountFsN, { subPath: subPathN }) => { + if (mountFsO !== mountFsN) { + throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); + } else { + return mountFsO.renameSync(subPathO, subPathN); + } + }); + }); + } + async copyFilePromise(sourceP, destP, flags = 0) { + const fallback = async (sourceFs, sourceP2, destFs, destP2) => { + if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) + throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP2}' -> ${destP2}'`), { code: `EXDEV` }); + if (flags & fs.constants.COPYFILE_EXCL && await this.existsPromise(sourceP2)) + throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EEXIST` }); + let content; + try { + content = await sourceFs.readFilePromise(sourceP2); + } catch { + throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EINVAL` }); + } + await destFs.writeFilePromise(destP2, content); + }; + return await this.makeCallPromise(sourceP, async () => { + return await this.makeCallPromise(destP, async () => { + return await this.baseFs.copyFilePromise(sourceP, destP, flags); + }, async (mountFsD, { subPath: subPathD }) => { + return await fallback(this.baseFs, sourceP, mountFsD, subPathD); + }); + }, async (mountFsS, { subPath: subPathS }) => { + return await this.makeCallPromise(destP, async () => { + return await fallback(mountFsS, subPathS, this.baseFs, destP); + }, async (mountFsD, { subPath: subPathD }) => { + if (mountFsS !== mountFsD) { + return await fallback(mountFsS, subPathS, mountFsD, subPathD); + } else { + return await mountFsS.copyFilePromise(subPathS, subPathD, flags); + } + }); + }); + } + copyFileSync(sourceP, destP, flags = 0) { + const fallback = (sourceFs, sourceP2, destFs, destP2) => { + if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) + throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP2}' -> ${destP2}'`), { code: `EXDEV` }); + if (flags & fs.constants.COPYFILE_EXCL && this.existsSync(sourceP2)) + throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EEXIST` }); + let content; + try { + content = sourceFs.readFileSync(sourceP2); + } catch { + throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EINVAL` }); + } + destFs.writeFileSync(destP2, content); + }; + return this.makeCallSync(sourceP, () => { + return this.makeCallSync(destP, () => { + return this.baseFs.copyFileSync(sourceP, destP, flags); + }, (mountFsD, { subPath: subPathD }) => { + return fallback(this.baseFs, sourceP, mountFsD, subPathD); + }); + }, (mountFsS, { subPath: subPathS }) => { + return this.makeCallSync(destP, () => { + return fallback(mountFsS, subPathS, this.baseFs, destP); + }, (mountFsD, { subPath: subPathD }) => { + if (mountFsS !== mountFsD) { + return fallback(mountFsS, subPathS, mountFsD, subPathD); + } else { + return mountFsS.copyFileSync(subPathS, subPathD, flags); + } + }); + }); + } + async appendFilePromise(p, content, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.appendFilePromise(p, content, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.appendFilePromise(subPath, content, opts); + }); + } + appendFileSync(p, content, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.appendFileSync(p, content, opts); + }, (mountFs, { subPath }) => { + return mountFs.appendFileSync(subPath, content, opts); + }); + } + async writeFilePromise(p, content, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.writeFilePromise(p, content, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.writeFilePromise(subPath, content, opts); + }); + } + writeFileSync(p, content, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.writeFileSync(p, content, opts); + }, (mountFs, { subPath }) => { + return mountFs.writeFileSync(subPath, content, opts); + }); + } + async unlinkPromise(p) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.unlinkPromise(p); + }, async (mountFs, { subPath }) => { + return await mountFs.unlinkPromise(subPath); + }); + } + unlinkSync(p) { + return this.makeCallSync(p, () => { + return this.baseFs.unlinkSync(p); + }, (mountFs, { subPath }) => { + return mountFs.unlinkSync(subPath); + }); + } + async utimesPromise(p, atime, mtime) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.utimesPromise(p, atime, mtime); + }, async (mountFs, { subPath }) => { + return await mountFs.utimesPromise(subPath, atime, mtime); + }); + } + utimesSync(p, atime, mtime) { + return this.makeCallSync(p, () => { + return this.baseFs.utimesSync(p, atime, mtime); + }, (mountFs, { subPath }) => { + return mountFs.utimesSync(subPath, atime, mtime); + }); + } + async lutimesPromise(p, atime, mtime) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.lutimesPromise(p, atime, mtime); + }, async (mountFs, { subPath }) => { + return await mountFs.lutimesPromise(subPath, atime, mtime); + }); + } + lutimesSync(p, atime, mtime) { + return this.makeCallSync(p, () => { + return this.baseFs.lutimesSync(p, atime, mtime); + }, (mountFs, { subPath }) => { + return mountFs.lutimesSync(subPath, atime, mtime); + }); + } + async mkdirPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.mkdirPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.mkdirPromise(subPath, opts); + }); + } + mkdirSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.mkdirSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.mkdirSync(subPath, opts); + }); + } + async rmdirPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.rmdirPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.rmdirPromise(subPath, opts); + }); + } + rmdirSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.rmdirSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.rmdirSync(subPath, opts); + }); + } + async rmPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.rmPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.rmPromise(subPath, opts); + }); + } + rmSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.rmSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.rmSync(subPath, opts); + }); + } + async linkPromise(existingP, newP) { + return await this.makeCallPromise(newP, async () => { + return await this.baseFs.linkPromise(existingP, newP); + }, async (mountFs, { subPath }) => { + return await mountFs.linkPromise(existingP, subPath); + }); + } + linkSync(existingP, newP) { + return this.makeCallSync(newP, () => { + return this.baseFs.linkSync(existingP, newP); + }, (mountFs, { subPath }) => { + return mountFs.linkSync(existingP, subPath); + }); + } + async symlinkPromise(target, p, type) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.symlinkPromise(target, p, type); + }, async (mountFs, { subPath }) => { + return await mountFs.symlinkPromise(target, subPath); + }); + } + symlinkSync(target, p, type) { + return this.makeCallSync(p, () => { + return this.baseFs.symlinkSync(target, p, type); + }, (mountFs, { subPath }) => { + return mountFs.symlinkSync(target, subPath); + }); + } + async readFilePromise(p, encoding) { + return this.makeCallPromise(p, async () => { + return await this.baseFs.readFilePromise(p, encoding); + }, async (mountFs, { subPath }) => { + return await mountFs.readFilePromise(subPath, encoding); + }); + } + readFileSync(p, encoding) { + return this.makeCallSync(p, () => { + return this.baseFs.readFileSync(p, encoding); + }, (mountFs, { subPath }) => { + return mountFs.readFileSync(subPath, encoding); + }); + } + async readdirPromise(p, opts) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.readdirPromise(p, opts); + }, async (mountFs, { subPath }) => { + return await mountFs.readdirPromise(subPath, opts); + }, { + requireSubpath: false + }); + } + readdirSync(p, opts) { + return this.makeCallSync(p, () => { + return this.baseFs.readdirSync(p, opts); + }, (mountFs, { subPath }) => { + return mountFs.readdirSync(subPath, opts); + }, { + requireSubpath: false + }); + } + async readlinkPromise(p) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.readlinkPromise(p); + }, async (mountFs, { subPath }) => { + return await mountFs.readlinkPromise(subPath); + }); + } + readlinkSync(p) { + return this.makeCallSync(p, () => { + return this.baseFs.readlinkSync(p); + }, (mountFs, { subPath }) => { + return mountFs.readlinkSync(subPath); + }); + } + async truncatePromise(p, len) { + return await this.makeCallPromise(p, async () => { + return await this.baseFs.truncatePromise(p, len); + }, async (mountFs, { subPath }) => { + return await mountFs.truncatePromise(subPath, len); + }); + } + truncateSync(p, len) { + return this.makeCallSync(p, () => { + return this.baseFs.truncateSync(p, len); + }, (mountFs, { subPath }) => { + return mountFs.truncateSync(subPath, len); + }); + } + async ftruncatePromise(fd, len) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.ftruncatePromise(fd, len); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`ftruncate`); + const [mountFs, realFd] = entry; + return mountFs.ftruncatePromise(realFd, len); + } + ftruncateSync(fd, len) { + if ((fd & MOUNT_MASK) !== this.magic) + return this.baseFs.ftruncateSync(fd, len); + const entry = this.fdMap.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`ftruncateSync`); + const [mountFs, realFd] = entry; + return mountFs.ftruncateSync(realFd, len); + } + watch(p, a, b) { + return this.makeCallSync(p, () => { + return this.baseFs.watch( + p, + // @ts-expect-error - reason TBS + a, + b + ); + }, (mountFs, { subPath }) => { + return mountFs.watch( + subPath, + // @ts-expect-error - reason TBS + a, + b + ); + }); + } + watchFile(p, a, b) { + return this.makeCallSync(p, () => { + return this.baseFs.watchFile( + p, + // @ts-expect-error - reason TBS + a, + b + ); + }, () => { + return watchFile(this, p, a, b); + }); + } + unwatchFile(p, cb) { + return this.makeCallSync(p, () => { + return this.baseFs.unwatchFile(p, cb); + }, () => { + return unwatchFile(this, p, cb); + }); + } + async makeCallPromise(p, discard, accept, { requireSubpath = true } = {}) { + if (typeof p !== `string`) + return await discard(); + const normalizedP = this.resolve(p); + const mountInfo = this.findMount(normalizedP); + if (!mountInfo) + return await discard(); + if (requireSubpath && mountInfo.subPath === `/`) + return await discard(); + return await this.getMountPromise(mountInfo.archivePath, async (mountFs) => await accept(mountFs, mountInfo)); + } + makeCallSync(p, discard, accept, { requireSubpath = true } = {}) { + if (typeof p !== `string`) + return discard(); + const normalizedP = this.resolve(p); + const mountInfo = this.findMount(normalizedP); + if (!mountInfo) + return discard(); + if (requireSubpath && mountInfo.subPath === `/`) + return discard(); + return this.getMountSync(mountInfo.archivePath, (mountFs) => accept(mountFs, mountInfo)); + } + findMount(p) { + if (this.filter && !this.filter.test(p)) + return null; + let filePath = ``; + while (true) { + const pathPartWithArchive = p.substring(filePath.length); + const mountPoint = this.getMountPoint(pathPartWithArchive, filePath); + if (!mountPoint) + return null; + filePath = this.pathUtils.join(filePath, mountPoint); + if (!this.isMount.has(filePath)) { + if (this.notMount.has(filePath)) + continue; + try { + if (this.typeCheck !== null && (this.baseFs.statSync(filePath).mode & fs.constants.S_IFMT) !== this.typeCheck) { + this.notMount.add(filePath); + continue; + } + } catch { + return null; + } + this.isMount.add(filePath); + } + return { + archivePath: filePath, + subPath: this.pathUtils.join(PortablePath.root, p.substring(filePath.length)) + }; + } + } + limitOpenFilesTimeout = null; + limitOpenFiles(max) { + if (this.mountInstances === null) + return; + const now = Date.now(); + let nextExpiresAt = now + this.maxAge; + let closeCount = max === null ? 0 : this.mountInstances.size - max; + for (const [path, { childFs, expiresAt, refCount }] of this.mountInstances.entries()) { + if (refCount !== 0 || childFs.hasOpenFileHandles?.()) { + continue; + } else if (now >= expiresAt) { + childFs.saveAndClose?.(); + this.mountInstances.delete(path); + closeCount -= 1; + continue; + } else if (max === null || closeCount <= 0) { + nextExpiresAt = expiresAt; + break; + } + childFs.saveAndClose?.(); + this.mountInstances.delete(path); + closeCount -= 1; + } + if (this.limitOpenFilesTimeout === null && (max === null && this.mountInstances.size > 0 || max !== null) && isFinite(nextExpiresAt)) { + this.limitOpenFilesTimeout = setTimeout(() => { + this.limitOpenFilesTimeout = null; + this.limitOpenFiles(null); + }, nextExpiresAt - now).unref(); + } + } + async getMountPromise(p, accept) { + if (this.mountInstances) { + let cachedMountFs = this.mountInstances.get(p); + if (!cachedMountFs) { + const createFsInstance = await this.factoryPromise(this.baseFs, p); + cachedMountFs = this.mountInstances.get(p); + if (!cachedMountFs) { + cachedMountFs = { + childFs: createFsInstance(), + expiresAt: 0, + refCount: 0 + }; + } + } + this.mountInstances.delete(p); + this.limitOpenFiles(this.maxOpenFiles - 1); + this.mountInstances.set(p, cachedMountFs); + cachedMountFs.expiresAt = Date.now() + this.maxAge; + cachedMountFs.refCount += 1; + try { + return await accept(cachedMountFs.childFs); + } finally { + cachedMountFs.refCount -= 1; + } + } else { + const mountFs = (await this.factoryPromise(this.baseFs, p))(); + try { + return await accept(mountFs); + } finally { + mountFs.saveAndClose?.(); + } + } + } + getMountSync(p, accept) { + if (this.mountInstances) { + let cachedMountFs = this.mountInstances.get(p); + if (!cachedMountFs) { + cachedMountFs = { + childFs: this.factorySync(this.baseFs, p), + expiresAt: 0, + refCount: 0 + }; + } + this.mountInstances.delete(p); + this.limitOpenFiles(this.maxOpenFiles - 1); + this.mountInstances.set(p, cachedMountFs); + cachedMountFs.expiresAt = Date.now() + this.maxAge; + return accept(cachedMountFs.childFs); + } else { + const childFs = this.factorySync(this.baseFs, p); + try { + return accept(childFs); + } finally { + childFs.saveAndClose?.(); + } + } + } +} + +class PosixFS extends ProxiedFS { + baseFs; + constructor(baseFs) { + super(npath); + this.baseFs = baseFs; + } + mapFromBase(path) { + return npath.fromPortablePath(path); + } + mapToBase(path) { + return npath.toPortablePath(path); + } +} + +const NUMBER_REGEXP = /^[0-9]+$/; +const VIRTUAL_REGEXP = /^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/; +const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/; +class VirtualFS extends ProxiedFS { + baseFs; + static makeVirtualPath(base, component, to) { + if (ppath.basename(base) !== `__virtual__`) + throw new Error(`Assertion failed: Virtual folders must be named "__virtual__"`); + if (!ppath.basename(component).match(VALID_COMPONENT)) + throw new Error(`Assertion failed: Virtual components must be ended by an hexadecimal hash`); + const target = ppath.relative(ppath.dirname(base), to); + const segments = target.split(`/`); + let depth = 0; + while (depth < segments.length && segments[depth] === `..`) + depth += 1; + const finalSegments = segments.slice(depth); + const fullVirtualPath = ppath.join(base, component, String(depth), ...finalSegments); + return fullVirtualPath; + } + static resolveVirtual(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match || !match[3] && match[5]) + return p; + const target = ppath.dirname(match[1]); + if (!match[3] || !match[4]) + return target; + const isnum = NUMBER_REGEXP.test(match[4]); + if (!isnum) + return p; + const depth = Number(match[4]); + const backstep = `../`.repeat(depth); + const subpath = match[5] || `.`; + return VirtualFS.resolveVirtual(ppath.join(target, backstep, subpath)); + } + constructor({ baseFs = new NodeFS() } = {}) { + super(ppath); + this.baseFs = baseFs; + } + getExtractHint(hints) { + return this.baseFs.getExtractHint(hints); + } + getRealPath() { + return this.baseFs.getRealPath(); + } + realpathSync(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match) + return this.baseFs.realpathSync(p); + if (!match[5]) + return p; + const realpath = this.baseFs.realpathSync(this.mapToBase(p)); + return VirtualFS.makeVirtualPath(match[1], match[3], realpath); + } + async realpathPromise(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match) + return await this.baseFs.realpathPromise(p); + if (!match[5]) + return p; + const realpath = await this.baseFs.realpathPromise(this.mapToBase(p)); + return VirtualFS.makeVirtualPath(match[1], match[3], realpath); + } + mapToBase(p) { + if (p === ``) + return p; + if (this.pathUtils.isAbsolute(p)) + return VirtualFS.resolveVirtual(p); + const resolvedRoot = VirtualFS.resolveVirtual(this.baseFs.resolve(PortablePath.dot)); + const resolvedP = VirtualFS.resolveVirtual(this.baseFs.resolve(p)); + return ppath.relative(resolvedRoot, resolvedP) || PortablePath.dot; + } + mapFromBase(p) { + return p; + } +} + +const URL = Number(process.versions.node.split('.', 1)[0]) < 20 ? url.URL : globalThis.URL; + +class NodePathFS extends ProxiedFS { + baseFs; + constructor(baseFs) { + super(npath); + this.baseFs = baseFs; + } + mapFromBase(path) { + return path; + } + mapToBase(path) { + if (typeof path === `string`) + return path; + if (path instanceof URL) + return url.fileURLToPath(path); + if (Buffer.isBuffer(path)) { + const str = path.toString(); + if (!isUtf8(path, str)) + throw new Error(`Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942`); + return str; + } + throw new Error(`Unsupported path type: ${nodeUtils.inspect(path)}`); + } +} +function isUtf8(buf, str) { + if (typeof buffer__default.default.isUtf8 !== `undefined`) + return buffer__default.default.isUtf8(buf); + return Buffer.byteLength(str) === buf.byteLength; +} + +const kBaseFs = Symbol(`kBaseFs`); +const kFd = Symbol(`kFd`); +const kClosePromise = Symbol(`kClosePromise`); +const kCloseResolve = Symbol(`kCloseResolve`); +const kCloseReject = Symbol(`kCloseReject`); +const kRefs = Symbol(`kRefs`); +const kRef = Symbol(`kRef`); +const kUnref = Symbol(`kUnref`); +class FileHandle { + [kBaseFs]; + [kFd]; + [kRefs] = 1; + [kClosePromise] = void 0; + [kCloseResolve] = void 0; + [kCloseReject] = void 0; + constructor(fd, baseFs) { + this[kBaseFs] = baseFs; + this[kFd] = fd; + } + get fd() { + return this[kFd]; + } + async appendFile(data, options) { + try { + this[kRef](this.appendFile); + const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; + return await this[kBaseFs].appendFilePromise(this.fd, data, encoding ? { encoding } : void 0); + } finally { + this[kUnref](); + } + } + async chown(uid, gid) { + try { + this[kRef](this.chown); + return await this[kBaseFs].fchownPromise(this.fd, uid, gid); + } finally { + this[kUnref](); + } + } + async chmod(mode) { + try { + this[kRef](this.chmod); + return await this[kBaseFs].fchmodPromise(this.fd, mode); + } finally { + this[kUnref](); + } + } + createReadStream(options) { + return this[kBaseFs].createReadStream(null, { ...options, fd: this.fd }); + } + createWriteStream(options) { + return this[kBaseFs].createWriteStream(null, { ...options, fd: this.fd }); + } + // FIXME: Missing FakeFS version + datasync() { + throw new Error(`Method not implemented.`); + } + // FIXME: Missing FakeFS version + sync() { + throw new Error(`Method not implemented.`); + } + async read(bufferOrOptions, offset, length, position) { + try { + this[kRef](this.read); + let buffer; + if (!Buffer.isBuffer(bufferOrOptions)) { + bufferOrOptions ??= {}; + buffer = bufferOrOptions.buffer ?? Buffer.alloc(16384); + offset = bufferOrOptions.offset || 0; + length = bufferOrOptions.length ?? buffer.byteLength; + position = bufferOrOptions.position ?? null; + } else { + buffer = bufferOrOptions; + } + offset ??= 0; + length ??= 0; + if (length === 0) { + return { + bytesRead: length, + buffer + }; + } + const bytesRead = await this[kBaseFs].readPromise(this.fd, buffer, offset, length, position); + return { + bytesRead, + buffer + }; + } finally { + this[kUnref](); + } + } + async readFile(options) { + try { + this[kRef](this.readFile); + const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; + return await this[kBaseFs].readFilePromise(this.fd, encoding); + } finally { + this[kUnref](); + } + } + readLines(options) { + return readline.createInterface({ + input: this.createReadStream(options), + crlfDelay: Infinity + }); + } + async stat(opts) { + try { + this[kRef](this.stat); + return await this[kBaseFs].fstatPromise(this.fd, opts); + } finally { + this[kUnref](); + } + } + async truncate(len) { + try { + this[kRef](this.truncate); + return await this[kBaseFs].ftruncatePromise(this.fd, len); + } finally { + this[kUnref](); + } + } + // FIXME: Missing FakeFS version + utimes(atime, mtime) { + throw new Error(`Method not implemented.`); + } + async writeFile(data, options) { + try { + this[kRef](this.writeFile); + const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; + await this[kBaseFs].writeFilePromise(this.fd, data, encoding); + } finally { + this[kUnref](); + } + } + async write(...args) { + try { + this[kRef](this.write); + if (ArrayBuffer.isView(args[0])) { + const [buffer, offset, length, position] = args; + const bytesWritten = await this[kBaseFs].writePromise(this.fd, buffer, offset ?? void 0, length ?? void 0, position ?? void 0); + return { bytesWritten, buffer }; + } else { + const [data, position, encoding] = args; + const bytesWritten = await this[kBaseFs].writePromise(this.fd, data, position, encoding); + return { bytesWritten, buffer: data }; + } + } finally { + this[kUnref](); + } + } + // TODO: Use writev from FakeFS when that is implemented + async writev(buffers, position) { + try { + this[kRef](this.writev); + let bytesWritten = 0; + if (typeof position !== `undefined`) { + for (const buffer of buffers) { + const writeResult = await this.write(buffer, void 0, void 0, position); + bytesWritten += writeResult.bytesWritten; + position += writeResult.bytesWritten; + } + } else { + for (const buffer of buffers) { + const writeResult = await this.write(buffer); + bytesWritten += writeResult.bytesWritten; + } + } + return { + buffers, + bytesWritten + }; + } finally { + this[kUnref](); + } + } + // FIXME: Missing FakeFS version + readv(buffers, position) { + throw new Error(`Method not implemented.`); + } + close() { + if (this[kFd] === -1) return Promise.resolve(); + if (this[kClosePromise]) return this[kClosePromise]; + this[kRefs]--; + if (this[kRefs] === 0) { + const fd = this[kFd]; + this[kFd] = -1; + this[kClosePromise] = this[kBaseFs].closePromise(fd).finally(() => { + this[kClosePromise] = void 0; + }); + } else { + this[kClosePromise] = new Promise((resolve, reject) => { + this[kCloseResolve] = resolve; + this[kCloseReject] = reject; + }).finally(() => { + this[kClosePromise] = void 0; + this[kCloseReject] = void 0; + this[kCloseResolve] = void 0; + }); + } + return this[kClosePromise]; + } + [kRef](caller) { + if (this[kFd] === -1) { + const err = new Error(`file closed`); + err.code = `EBADF`; + err.syscall = caller.name; + throw err; + } + this[kRefs]++; + } + [kUnref]() { + this[kRefs]--; + if (this[kRefs] === 0) { + const fd = this[kFd]; + this[kFd] = -1; + this[kBaseFs].closePromise(fd).then(this[kCloseResolve], this[kCloseReject]); + } + } +} + +const SYNC_IMPLEMENTATIONS = /* @__PURE__ */ new Set([ + `accessSync`, + `appendFileSync`, + `createReadStream`, + `createWriteStream`, + `chmodSync`, + `fchmodSync`, + `chownSync`, + `fchownSync`, + `closeSync`, + `copyFileSync`, + `linkSync`, + `lstatSync`, + `fstatSync`, + `lutimesSync`, + `mkdirSync`, + `openSync`, + `opendirSync`, + `readlinkSync`, + `readFileSync`, + `readdirSync`, + `readlinkSync`, + `realpathSync`, + `renameSync`, + `rmdirSync`, + `rmSync`, + `statSync`, + `symlinkSync`, + `truncateSync`, + `ftruncateSync`, + `unlinkSync`, + `unwatchFile`, + `utimesSync`, + `watch`, + `watchFile`, + `writeFileSync`, + `writeSync` +]); +const ASYNC_IMPLEMENTATIONS = /* @__PURE__ */ new Set([ + `accessPromise`, + `appendFilePromise`, + `fchmodPromise`, + `chmodPromise`, + `fchownPromise`, + `chownPromise`, + `closePromise`, + `copyFilePromise`, + `linkPromise`, + `fstatPromise`, + `lstatPromise`, + `lutimesPromise`, + `mkdirPromise`, + `openPromise`, + `opendirPromise`, + `readdirPromise`, + `realpathPromise`, + `readFilePromise`, + `readdirPromise`, + `readlinkPromise`, + `renamePromise`, + `rmdirPromise`, + `rmPromise`, + `statPromise`, + `symlinkPromise`, + `truncatePromise`, + `ftruncatePromise`, + `unlinkPromise`, + `utimesPromise`, + `writeFilePromise`, + `writeSync` +]); +function patchFs(patchedFs, fakeFs) { + fakeFs = new NodePathFS(fakeFs); + const setupFn = (target, name, replacement) => { + const orig = target[name]; + target[name] = replacement; + if (typeof orig?.[nodeUtils.promisify.custom] !== `undefined`) { + replacement[nodeUtils.promisify.custom] = orig[nodeUtils.promisify.custom]; + } + }; + { + setupFn(patchedFs, `exists`, (p, ...args) => { + const hasCallback = typeof args[args.length - 1] === `function`; + const callback = hasCallback ? args.pop() : () => { + }; + process.nextTick(() => { + fakeFs.existsPromise(p).then((exists) => { + callback(exists); + }, () => { + callback(false); + }); + }); + }); + setupFn(patchedFs, `read`, (...args) => { + let [fd, buffer, offset, length, position, callback] = args; + if (args.length <= 3) { + let options = {}; + if (args.length < 3) { + callback = args[1]; + } else { + options = args[1]; + callback = args[2]; + } + ({ + buffer = Buffer.alloc(16384), + offset = 0, + length = buffer.byteLength, + position + } = options); + } + if (offset == null) + offset = 0; + length |= 0; + if (length === 0) { + process.nextTick(() => { + callback(null, 0, buffer); + }); + return; + } + if (position == null) + position = -1; + process.nextTick(() => { + fakeFs.readPromise(fd, buffer, offset, length, position).then((bytesRead) => { + callback(null, bytesRead, buffer); + }, (error) => { + callback(error, 0, buffer); + }); + }); + }); + for (const fnName of ASYNC_IMPLEMENTATIONS) { + const origName = fnName.replace(/Promise$/, ``); + if (typeof patchedFs[origName] === `undefined`) + continue; + const fakeImpl = fakeFs[fnName]; + if (typeof fakeImpl === `undefined`) + continue; + const wrapper = (...args) => { + const hasCallback = typeof args[args.length - 1] === `function`; + const callback = hasCallback ? args.pop() : () => { + }; + process.nextTick(() => { + fakeImpl.apply(fakeFs, args).then((result) => { + callback(null, result); + }, (error) => { + callback(error); + }); + }); + }; + setupFn(patchedFs, origName, wrapper); + } + patchedFs.realpath.native = patchedFs.realpath; + } + { + setupFn(patchedFs, `existsSync`, (p) => { + try { + return fakeFs.existsSync(p); + } catch { + return false; + } + }); + setupFn(patchedFs, `readSync`, (...args) => { + let [fd, buffer, offset, length, position] = args; + if (args.length <= 3) { + const options = args[2] || {}; + ({ offset = 0, length = buffer.byteLength, position } = options); + } + if (offset == null) + offset = 0; + length |= 0; + if (length === 0) + return 0; + if (position == null) + position = -1; + return fakeFs.readSync(fd, buffer, offset, length, position); + }); + for (const fnName of SYNC_IMPLEMENTATIONS) { + const origName = fnName; + if (typeof patchedFs[origName] === `undefined`) + continue; + const fakeImpl = fakeFs[fnName]; + if (typeof fakeImpl === `undefined`) + continue; + setupFn(patchedFs, origName, fakeImpl.bind(fakeFs)); + } + patchedFs.realpathSync.native = patchedFs.realpathSync; + } + { + const patchedFsPromises = patchedFs.promises; + for (const fnName of ASYNC_IMPLEMENTATIONS) { + const origName = fnName.replace(/Promise$/, ``); + if (typeof patchedFsPromises[origName] === `undefined`) + continue; + const fakeImpl = fakeFs[fnName]; + if (typeof fakeImpl === `undefined`) + continue; + if (fnName === `open`) + continue; + setupFn(patchedFsPromises, origName, (pathLike, ...args) => { + if (pathLike instanceof FileHandle) { + return pathLike[origName].apply(pathLike, args); + } else { + return fakeImpl.call(fakeFs, pathLike, ...args); + } + }); + } + setupFn(patchedFsPromises, `open`, async (...args) => { + const fd = await fakeFs.openPromise(...args); + return new FileHandle(fd, fakeFs); + }); + } + { + patchedFs.read[nodeUtils.promisify.custom] = async (fd, buffer, ...args) => { + const res = fakeFs.readPromise(fd, buffer, ...args); + return { bytesRead: await res, buffer }; + }; + patchedFs.write[nodeUtils.promisify.custom] = async (fd, buffer, ...args) => { + const res = fakeFs.writePromise(fd, buffer, ...args); + return { bytesWritten: await res, buffer }; + }; + } +} + +let cachedInstance; +let registeredFactory = () => { + throw new Error(`Assertion failed: No libzip instance is available, and no factory was configured`); +}; +function setFactory(factory) { + registeredFactory = factory; +} +function getInstance() { + if (typeof cachedInstance === `undefined`) + cachedInstance = registeredFactory(); + return cachedInstance; +} + +var libzipSync = {exports: {}}; + +(function (module, exports) { +var frozenFs = Object.assign({}, fs__default.default); +var createModule = function() { + var _scriptDir = void 0; + if (typeof __filename !== "undefined") _scriptDir = _scriptDir || __filename; + return function(createModule2) { + createModule2 = createModule2 || {}; + var Module = typeof createModule2 !== "undefined" ? createModule2 : {}; + var readyPromiseResolve, readyPromiseReject; + Module["ready"] = new Promise(function(resolve, reject) { + readyPromiseResolve = resolve; + readyPromiseReject = reject; + }); + var moduleOverrides = {}; + var key; + for (key in Module) { + if (Module.hasOwnProperty(key)) { + moduleOverrides[key] = Module[key]; + } + } + var scriptDirectory = ""; + function locateFile(path) { + if (Module["locateFile"]) { + return Module["locateFile"](path, scriptDirectory); + } + return scriptDirectory + path; + } + var read_, readBinary; + var nodeFS; + var nodePath; + { + { + scriptDirectory = __dirname + "/"; + } + read_ = function shell_read(filename, binary) { + var ret = tryParseAsDataURI(filename); + if (ret) { + return binary ? ret : ret.toString(); + } + if (!nodeFS) nodeFS = frozenFs; + if (!nodePath) nodePath = path__default.default; + filename = nodePath["normalize"](filename); + return nodeFS["readFileSync"](filename, binary ? null : "utf8"); + }; + readBinary = function readBinary2(filename) { + var ret = read_(filename, true); + if (!ret.buffer) { + ret = new Uint8Array(ret); + } + assert(ret.buffer); + return ret; + }; + if (process["argv"].length > 1) { + process["argv"][1].replace(/\\/g, "/"); + } + process["argv"].slice(2); + Module["inspect"] = function() { + return "[Emscripten Module object]"; + }; + } + Module["print"] || console.log.bind(console); + var err = Module["printErr"] || console.warn.bind(console); + for (key in moduleOverrides) { + if (moduleOverrides.hasOwnProperty(key)) { + Module[key] = moduleOverrides[key]; + } + } + moduleOverrides = null; + if (Module["arguments"]) ; + if (Module["thisProgram"]) ; + if (Module["quit"]) ; + var wasmBinary; + if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; + Module["noExitRuntime"] || true; + if (typeof WebAssembly !== "object") { + abort("no native wasm support detected"); + } + function getValue(ptr, type, noSafe) { + type = type || "i8"; + if (type.charAt(type.length - 1) === "*") type = "i32"; + switch (type) { + case "i1": + return HEAP8[ptr >> 0]; + case "i8": + return HEAP8[ptr >> 0]; + case "i16": + return LE_HEAP_LOAD_I16((ptr >> 1) * 2); + case "i32": + return LE_HEAP_LOAD_I32((ptr >> 2) * 4); + case "i64": + return LE_HEAP_LOAD_I32((ptr >> 2) * 4); + case "float": + return LE_HEAP_LOAD_F32((ptr >> 2) * 4); + case "double": + return LE_HEAP_LOAD_F64((ptr >> 3) * 8); + default: + abort("invalid type for getValue: " + type); + } + return null; + } + var wasmMemory; + var ABORT = false; + function assert(condition, text) { + if (!condition) { + abort("Assertion failed: " + text); + } + } + function getCFunc(ident) { + var func = Module["_" + ident]; + assert( + func, + "Cannot call unknown function " + ident + ", make sure it is exported" + ); + return func; + } + function ccall(ident, returnType, argTypes, args, opts) { + var toC = { + string: function(str) { + var ret2 = 0; + if (str !== null && str !== void 0 && str !== 0) { + var len = (str.length << 2) + 1; + ret2 = stackAlloc(len); + stringToUTF8(str, ret2, len); + } + return ret2; + }, + array: function(arr) { + var ret2 = stackAlloc(arr.length); + writeArrayToMemory(arr, ret2); + return ret2; + } + }; + function convertReturnValue(ret2) { + if (returnType === "string") return UTF8ToString(ret2); + if (returnType === "boolean") return Boolean(ret2); + return ret2; + } + var func = getCFunc(ident); + var cArgs = []; + var stack = 0; + if (args) { + for (var i = 0; i < args.length; i++) { + var converter = toC[argTypes[i]]; + if (converter) { + if (stack === 0) stack = stackSave(); + cArgs[i] = converter(args[i]); + } else { + cArgs[i] = args[i]; + } + } + } + var ret = func.apply(null, cArgs); + ret = convertReturnValue(ret); + if (stack !== 0) stackRestore(stack); + return ret; + } + function cwrap(ident, returnType, argTypes, opts) { + argTypes = argTypes || []; + var numericArgs = argTypes.every(function(type) { + return type === "number"; + }); + var numericRet = returnType !== "string"; + if (numericRet && numericArgs && !opts) { + return getCFunc(ident); + } + return function() { + return ccall(ident, returnType, argTypes, arguments); + }; + } + var UTF8Decoder = new TextDecoder("utf8"); + function UTF8ToString(ptr, maxBytesToRead) { + if (!ptr) return ""; + var maxPtr = ptr + maxBytesToRead; + for (var end = ptr; !(end >= maxPtr) && HEAPU8[end]; ) ++end; + return UTF8Decoder.decode(HEAPU8.subarray(ptr, end)); + } + function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { + if (!(maxBytesToWrite > 0)) return 0; + var startIdx = outIdx; + var endIdx = outIdx + maxBytesToWrite - 1; + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i); + if (u >= 55296 && u <= 57343) { + var u1 = str.charCodeAt(++i); + u = 65536 + ((u & 1023) << 10) | u1 & 1023; + } + if (u <= 127) { + if (outIdx >= endIdx) break; + heap[outIdx++] = u; + } else if (u <= 2047) { + if (outIdx + 1 >= endIdx) break; + heap[outIdx++] = 192 | u >> 6; + heap[outIdx++] = 128 | u & 63; + } else if (u <= 65535) { + if (outIdx + 2 >= endIdx) break; + heap[outIdx++] = 224 | u >> 12; + heap[outIdx++] = 128 | u >> 6 & 63; + heap[outIdx++] = 128 | u & 63; + } else { + if (outIdx + 3 >= endIdx) break; + heap[outIdx++] = 240 | u >> 18; + heap[outIdx++] = 128 | u >> 12 & 63; + heap[outIdx++] = 128 | u >> 6 & 63; + heap[outIdx++] = 128 | u & 63; + } + } + heap[outIdx] = 0; + return outIdx - startIdx; + } + function stringToUTF8(str, outPtr, maxBytesToWrite) { + return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); + } + function lengthBytesUTF8(str) { + var len = 0; + for (var i = 0; i < str.length; ++i) { + var u = str.charCodeAt(i); + if (u >= 55296 && u <= 57343) + u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023; + if (u <= 127) ++len; + else if (u <= 2047) len += 2; + else if (u <= 65535) len += 3; + else len += 4; + } + return len; + } + function allocateUTF8(str) { + var size = lengthBytesUTF8(str) + 1; + var ret = _malloc(size); + if (ret) stringToUTF8Array(str, HEAP8, ret, size); + return ret; + } + function writeArrayToMemory(array, buffer2) { + HEAP8.set(array, buffer2); + } + function alignUp(x, multiple) { + if (x % multiple > 0) { + x += multiple - x % multiple; + } + return x; + } + var buffer, HEAP8, HEAPU8; + var HEAP_DATA_VIEW; + function updateGlobalBufferAndViews(buf) { + buffer = buf; + Module["HEAP_DATA_VIEW"] = HEAP_DATA_VIEW = new DataView(buf); + Module["HEAP8"] = HEAP8 = new Int8Array(buf); + Module["HEAP16"] = new Int16Array(buf); + Module["HEAP32"] = new Int32Array(buf); + Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf); + Module["HEAPU16"] = new Uint16Array(buf); + Module["HEAPU32"] = new Uint32Array(buf); + Module["HEAPF32"] = new Float32Array(buf); + Module["HEAPF64"] = new Float64Array(buf); + } + Module["INITIAL_MEMORY"] || 16777216; + var wasmTable; + var __ATPRERUN__ = []; + var __ATINIT__ = []; + var __ATPOSTRUN__ = []; + function preRun() { + if (Module["preRun"]) { + if (typeof Module["preRun"] == "function") + Module["preRun"] = [Module["preRun"]]; + while (Module["preRun"].length) { + addOnPreRun(Module["preRun"].shift()); + } + } + callRuntimeCallbacks(__ATPRERUN__); + } + function initRuntime() { + callRuntimeCallbacks(__ATINIT__); + } + function postRun() { + if (Module["postRun"]) { + if (typeof Module["postRun"] == "function") + Module["postRun"] = [Module["postRun"]]; + while (Module["postRun"].length) { + addOnPostRun(Module["postRun"].shift()); + } + } + callRuntimeCallbacks(__ATPOSTRUN__); + } + function addOnPreRun(cb) { + __ATPRERUN__.unshift(cb); + } + function addOnInit(cb) { + __ATINIT__.unshift(cb); + } + function addOnPostRun(cb) { + __ATPOSTRUN__.unshift(cb); + } + var runDependencies = 0; + var dependenciesFulfilled = null; + function addRunDependency(id) { + runDependencies++; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + } + function removeRunDependency(id) { + runDependencies--; + if (Module["monitorRunDependencies"]) { + Module["monitorRunDependencies"](runDependencies); + } + if (runDependencies == 0) { + if (dependenciesFulfilled) { + var callback = dependenciesFulfilled; + dependenciesFulfilled = null; + callback(); + } + } + } + Module["preloadedImages"] = {}; + Module["preloadedAudios"] = {}; + function abort(what) { + if (Module["onAbort"]) { + Module["onAbort"](what); + } + what += ""; + err(what); + ABORT = true; + what = "abort(" + what + "). Build with -s ASSERTIONS=1 for more info."; + var e = new WebAssembly.RuntimeError(what); + readyPromiseReject(e); + throw e; + } + var dataURIPrefix = "data:application/octet-stream;base64,"; + function isDataURI(filename) { + return filename.startsWith(dataURIPrefix); + } + var wasmBinaryFile = "data:application/octet-stream;base64,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QCAAKAJIIgEgASADaiADEAcaAkAgAyAAKAJsIgFNBEAgACABIANrNgJsDAELIABCADcCbAsgACAAKAJoIANrIgE2AmggACAAKAJYIANrNgJYIAEgACgChC5JBEAgACABNgKELgsgAEH8gAEoAgARAwAgAiADaiECCwJAIAAoAgAiASgCBCIERQ0AIAAoAjwhBSAAIAIgBCACIARJGyICBH8gACgCSCAAKAJoaiAFaiEFIAEgBCACazYCBAJAAkACQAJAIAEoAhwiBCgCFEEBaw4CAQACCyAEQaABaiAFIAEoAgAgAkHcgAEoAgARCAAMAgsgASABKAIwIAUgASgCACACQcSAASgCABEEADYCMAwBCyAFIAEoAgAgAhAHGgsgASABKAIAIAJqNgIAIAEgASgCCCACajYCCCAAKAI8BSAFCyACaiICNgI8AkAgACgChC4iASACakEDSQ0AIAAoAmggAWshAQJAIAAoAnRBgQhPBEAgACAAIAAoAkggAWoiAi0AACACLQABIAAoAnwRAAA2AlQMAQsgAUUNACAAIAFBAWsgACgChAERAgAaCyAAKAKELiAAKAI8IgJBAUZrIgRFDQAgACABIAQgACgCgAERBQAgACAAKAKELiAEazYChC4gACgCPCECCyACQYUCSw0AIAAoAgAoAgRFDQAgACgCMCEBDAELCwJAIAAoAkQiAiAAKAJAIgNNDQAgAAJ/IAAoAjwgACgCaGoiASADSwRAIAAoAkggAWpBACACIAFrIgNBggIgA0GCAkkbIgMQGSABIANqDAELIAFBggJqIgEgA00NASAAKAJIIANqQQAgAiADayICIAEgA2siAyACIANJGyIDEBkgACgCQCADags2AkALC50CAQF/AkAgAAJ/IAAoAqAuIgFBwABGBEAgACgCBCAAKAIQaiAAKQOYLjcAACAAQgA3A5guIAAgACgCEEEIajYCEEEADAELIAFBIE4EQCAAKAIEIAAoAhBqIAApA5guPgAAIAAgAEGcLmo1AgA3A5guIAAgACgCEEEEajYCECAAIAAoAqAuQSBrIgE2AqAuCyABQRBOBEAgACgCBCAAKAIQaiAAKQOYLj0AACAAIAAoAhBBAmo2AhAgACAAKQOYLkIQiDcDmC4gACAAKAKgLkEQayIBNgKgLgsgAUEISA0BIAAgACgCECIBQQFqNgIQ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KAJUIgEEfyABQQAgARAiEBkgACgCVAVBAAsQBiAAQQA2AlQLC9wMAgl/AX4jAEFAaiIGJAACQAJAAkACQAJAIAEoAjBBABAjIgVBAkZBACABKAI4QQAQIyIEQQFGGw0AIAVBAUZBACAEQQJGGw0AIAVBAkciAw0BIARBAkcNAQsgASABLwEMQYAQcjsBDEEAIQMMAQsgASABLwEMQf/vA3E7AQxBACEFIANFBEBB9eABIAEoAjAgAEEIahBpIgVFDQILIAJBgAJxBEAgBSEDDAELIARBAkcEQCAFIQMMAQtB9cYBIAEoAjggAEEIahBpIgNFBEAgBRAcDAILIAMgBTYCAAsgASABLwEMQf7/A3EgAS8BUiIFQQBHcjsBDAJAAkACQAJAAn8CQAJAIAEpAyhC/v///w9WDQAgASkDIEL+////D1YNACACQYAEcUUNASABKQNIQv////8PVA0BCyAFQYECa0H//wNxQQNJIQdBAQwBCyAFQYECa0H//wNxIQQgAkGACnFBgApHDQEgBEEDSSEHQQALIQkgBkIcEBciBEUEQCAAQQhqIgAEQCAAQQA2AgQgAEEONgIACyADEBwMBQsgAkGACHEhBQJAAkAgAkGAAnEEQAJAIAUNACABKQMgQv////8PVg0AIAEpAyhCgICAgBBUDQMLIAQgASkDKBAYIAEpAyAhDAwBCwJAAkACQCAFDQAgASkDIEL/////D1YNACABKQMoIgxC/////w9WDQEgASkDSEKAgICAEFQNBAsgASkDKCIMQv////8PVA0BCyAEIAwQGAsgASkDICIMQv////8PWgRAIAQgDBAYCyABKQNIIgxC/////w9UDQELIAQgDBAYCyAELQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALIAQQCCADEBwMBQtBASEKQQEgBC0AAAR+IAQpAxAFQgALp0H//wNxIAYQRyEFIAQQCCAFIAM2AgAgBw0BDAILIAMhBSAEQQJLDQELIAZCBxAXIgRFBEAgAEEIaiIABEAgAEEANgIEIABBDjYCAAsgBRAcDAMLIARBAhANIARBhxJBAhAsIAQgAS0AUhBwIAQgAS8BEBANIAQtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAsgBBAIDAILQYGyAkEHIAYQRyEDIAQQCCADIAU2AgBBASEL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NgIEIABB7A42AhggGiEdDAMLIARB/wFxIgJBwABxRQRAIAggDSADLwECQQJ0aiAdp0F/IAJ0QX9zcUECdGoiAy0AASICayEIIB0gAq2IIR0gAy0AACIERQ0HDAELCyAEQSBxBEAgB0G//gA2AgQgASECDAgLIAdB0f4ANgIEIABB0A42AhggASECDAcLIB1BfyAGdEF/c62DIBt8IhunIQUgCCAEQQ9xIgNrIQggGiAErUIPg4ghHSABIBdrIgYgAjMBAiAaQX8gA3RBf3Otg3ynIgRPDQIgBCAGayIGIBlNDQEgBygCjEdFDQEgB0HR/gA2AgQgAEG5DDYCGAsgASECIAshBQwFCwJAIA5FBEAgDCARIAZraiEDDAELIAYgDk0EQCAMIA4gBmtqIQMMAQsgDCARIAYgDmsiBmtqIQMgBSAGTQ0AIAUgBmshBQJAAkAgASADTSABIA8gAWusIhogBq0iGyAaIBtUGyIapyIGaiICIANLcQ0AIAMgBmogAUsgASADT3ENACABIAMgBhAHGiACIQEMAQsgASADIAMgAWsiASABQR91IgFqIAFzIgIQByACaiEBIBogAq0iHn0iHFANACACIANqIQIDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgASACKQAANwAAIAEgAikAGDcAGCABIAIpABA3ABAgASACKQAINwAIIBpCIH0hGiACQSBqIQIgAUEgaiEBIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAEgAikAADcAACABIAIpABg3ABggASACKQAQNwAQIAEgAikACDcACCABIAIpADg3ADggASACKQAwNwAwIAEgAikAKDcAKCABIAIpACA3ACAgASACKQBYNwBYIAEgAikAUDcAUCABIAIpAEg3AEggASACKQBANwBAIAEgAikAYDcAYCABIAIpAGg3AGggASACKQBwNwBwIAEgAikAeDcAeCACQYABaiECIAFBgAFqIQEgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAEgAikAADcAACABIAIpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCABIAIpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCABIAIoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCABIAIvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCABIAItAAA6AAAgAkEBaiECIAFBAWohAQsgHEIAUg0ACwsgDiEGIAwhAwsgBSAGSwRAAkACQCABIANNIAEgDyABa6wiGiAGrSIbIBogG1QbIhqnIglqIgIgA0txDQAgAyAJaiABSyABIANPcQ0AIAEgAyAJEAcaDAELIAEgAyADIAFrIgEgAUEfdSIBaiABcyIBEAcgAWohAiAaIAGtIh59IhxQDQAgASADaiEBA0ACQCAcIB4gHCAeVBsiG0IgVARAIBshGgwBCyAbIhpCIH0iIEIFiEIBfEIDgyIfUEUEQANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCAaQiB9IRogAUEgaiEBIAJBIGohAiAfQgF9Ih9CAFINAAsLICBC4ABUDQADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggAiABKQA4NwA4IAIgASkAMDcAMCACIAEpACg3ACggAiABKQAgNwAgIAIgASkAWDcAWCACIAEpAFA3AFAgAiABKQBINwBIIAIgASkAQDcAQCACIAEpAGA3AGAgAiABKQBoNwBoIAIgASkAcDcAcCACIAEpAHg3AHggAUGAAWohASACQYABaiECIBpCgAF9IhpCH1YNAAsLIBpCEFoEQCACIAEpAAA3AAAgAiABKQAINwAIIBpCEH0hGiACQRBqIQIgAUEQaiEBCyAaQghaBEAgAiABKQAANwAAIBpCCH0hGiACQQhqIQIgAUEIaiEBCyAaQgRaBEAgAiABKAAANgAAIBpCBH0hGiACQQRqIQIgAUEEaiEBCyAaQgJaBEAgAiABLwAAOwAAIBpCAn0hGiACQQJqIQIgAUECaiEBCyAcIBt9IRwgGlBFBEAgAiABLQAAOgAAIAJBAWohAiABQQFqIQELIBxCAFINAAsLIAUgBmshAUEAIARrIQUCQCAEQQdLBEAgBCEDDAELIAEgBE0EQCAEIQMMAQsgAiAEayEFA0ACQCACIAUpAAA3AAAgBEEBdCEDIAEgBGshASACIARqIQIgBEEDSw0AIAMhBCABIANLDQELC0EAIANrIQULIAIgBWohBAJAIAUgDyACa6wiGiABrSIbIBogG1QbIhqnIgFIIAVBf0pxDQAgBUEBSCABIARqIAJLcQ0AIAIgBCABEAcgAWohAgwDCyACIAQgAyADQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANAiABIARqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAILAkAgASADTSABIA8gAWusIhogBa0iGyAaIBtUGyIapyIEaiICIANLcQ0AIAMgBGogAUsgASADT3ENACABIAMgBBAHGgwCCyABIAMgAyABayIBIAFBH3UiAWogAXMiARAHIAFqIQIgGiABrSIefSIcUA0BIAEgA2ohAQNAAkAgHCAeIBwgHlQbIhtCIFQEQCAbIRoMAQsgGyIaQiB9IiBCBYhCAXxCA4MiH1BFBEADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggGkIgfSEaIAFBIGohASACQSBqIQIgH0IBfSIfQgBSDQALCyAgQuAAVA0AA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAIgASkAODcAOCACIAEpADA3ADAgAiABKQAoNwAoIAIgASkAIDcAICACIAEpAFg3AFggAiABKQBQNwBQIAIgASkASDcASCACIAEpAEA3AEAgAiABKQBgNwBgIAIgASkAaDcAaCACIAEpAHA3AHAgAiABKQB4NwB4IAFBgAFqIQEgAkGAAWohAiAaQoABfSIaQh9WDQALCyAaQhBaBEAgAiABKQAANwAAIAIgASkACDcACCAaQhB9IRogAkEQaiECIAFBEGohAQsgGkIIWgRAIAIgASkAADcAACAaQgh9IRogAkEIaiECIAFBCGohAQsgGkIEWgRAIAIgASgAADYAACAaQgR9IRogAkEEaiECIAFBBGohAQsgGkICWgRAIAIgAS8AADsAACAaQgJ9IRogAkECaiECIAFBAmohAQsgHCAbfSEcIBpQRQRAIAIgAS0AADoAACACQQFqIQIgAUEBaiEBCyAcUEUNAAsMAQsCQAJAIBYEQAJAIAQgBUkEQCAHKAKYRyAESw0BCyABIARrIQMCQEEAIARrIgVBf0ogDyABa6wiGiAbIBogG1QbIhqnIgIgBUpxDQAgBUEBSCACIANqIAFLcQ0AIAEgAyACEAcgAmohAgwFCyABIAMgBCAEQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANBCABIANqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAQLIBAgAWsiCUEBaiIGIAUgBSAGSxshAyABIARrIQIgAUEHcUUNAiADRQ0CIAEgAi0AADoAACACQQFqIQIgAUEBaiIGQQdxQQAgA0EBayIFGw0BIAYhASAFIQMgCSEGDAILAkAgBCAFSQRAIAcoAphHIARLDQELIAEgASAEayIGKQAANwAAIAEgBUEBa0EHcUEBaiIDaiECIAUgA2siBEUNAyADIAZqIQEDQCACIAEpAAA3AAAgAUEIaiEBIAJBCGohAiAEQQhrIgQNAAsMAwsgASAEIAUQPyECDAILIAEgAi0AADoAASAJQQFrIQYgA0ECayEFIAJBAWohAgJAIAFBAmoiCkEHcUUNACAFRQ0AIAEgAi0AADoAAiAJQQJrIQYgA0EDayEFIAJBAWohAgJAIAFBA2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAAyAJQQNrIQYgA0EEayEFIAJBAWohAgJAIAFBBGoiCkEHcUUNACAFRQ0AIAEgAi0AADoABCAJQQRrIQYgA0EFayEFIAJBAWohAgJAIAFBBWoiCkEHcUUNACAFRQ0AIAEgAi0AADoABSAJQQVrIQYgA0EGayEFIAJBAWohAgJAIAFBBmoiCkEHcUUNACAFRQ0AIAEgAi0AADoABiAJQQZrIQYgA0EHayEFIAJBAWohAgJAIAFBB2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAByAJQQdrIQYgA0EIayEDIAFBCGohASACQQFqIQIMBgsgCiEBIAUhAwwFCyAKIQEgBSEDDAQLIAohASAFIQMMAwsgCiEBIAUhAwwCCyAKIQEgBSEDDAELIAohASAFIQMLAkACQCAGQRdNBEAgA0UNASADQQFrIQUgA0EHcSIEBEADQCABIAItAAA6AAAgA0EBayEDIAFBAWohASACQQFqIQIgBEEBayIEDQALCyAFQQdJDQEDQCABIAItAAA6AAAgASACLQABOgABIAEgAi0AAjoAAiABIAItAAM6AAMgASACLQAEOgAEIAEgAi0ABToABSABIAItAAY6AAYgASACLQAHOgAHIAFBCGohASACQQhqIQIgA0EIayIDDQALDAELIAMNAQsgASECDAELIAEgBCADED8hAgsgCyEFDAELIAEgAy0AAjoAACABQQFqIQILIAUgFE8NACACIBNJDQELCyAAIAI2AgwgACAFIAhBA3ZrIgE2AgAgACATIAJrQYMCajYCECAAIBQgAWtBDmo2AgQgByAIQQdxIgA2AogBIAcgHUJ/IACthkJ/hYM+AoQBC+cFAQR/IAMgAiACIANLGyEEIAAgAWshAgJAIABBB3FFDQAgBEUNACAAIAItAAA6AAAgA0EBayEGIAJBAWohAiAAQQFqIgdBB3FBACAEQQFrIgUbRQRAIAchACAFIQQgBiEDDAELIAAgAi0AADoAASADQQJrIQYgBEECayEFIAJBAWohAgJAIABBAmoiB0EHcUUNACAFRQ0AIAAgAi0AADoAAiADQQNrIQYgBEEDayEFIAJBAWohAgJAIABBA2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAAyADQQRrIQYgBEEEayEFIAJBAWohAgJAIABBBGoiB0EHcUUNACAFRQ0AIAAgAi0AADoABCADQQVrIQYgBEEFayEFIAJBAWohAgJAIABBBWoiB0EHcUUNACAFRQ0AIAAgAi0AADoABSADQQZrIQYgBEEGayEFIAJBAWohAgJAIABBBmoiB0EHcUUNACAFRQ0AIAAgAi0AADoABiADQQdrIQYgBEEHayEFIAJBAWohAgJAIABBB2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAByADQQhrIQMgBEEIayEEIABBCGohACACQQFqIQIMBgsgByEAIAUhBCAGIQMMBQsgByEAIAUhBCAGIQMMBAsgByEAIAUhBCAGIQMMAwsgByEAIAUhBCAGIQMMAgsgByEAIAUhBCAGIQMMAQsgByEAIAUhBCAGIQMLAkAgA0EXTQRAIARFDQEgBEEBayEBIARBB3EiAwRAA0AgACACLQAAOgAAIARBAWshBCAAQQFqIQAgAkEBaiECIANBAWsi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CyAAIAMtAAAEfiADKQMQBUIAC6dB//8DcSADKAIEEEcLIQUgAxAICyAEQRBqJAAgBQvgAQICfwF+QTAQCSICRQRAIAEEQCABQQA2AgQgAUEONgIAC0EADwsgAkIANwMIIAJBADYCACACQgA3AxAgAkIANwMYIAJCADcDICACQgA3ACUgAFAEQCACDwsCQCAAQv////8AVg0AIACnQQR0EAkiA0UNACACIAM2AgBBACEBQgEhBANAIAMgAUEEdGoiAUIANwIAIAFCADcABSAAIARSBEAgBKchASAEQgF8IQQMAQsLIAIgADcDCCACIAA3AxAgAg8LIAEEQCABQQA2AgQgAUEONgIAC0EAEBAgAhAGQQAL7gECA38BfiMAQRBrIgQkAAJAIARBDGpCBBAXIgNFBEBBfyECDAELAkAgAQRAIAJBgAZxIQUDQAJAIAUgASgCBHFFDQACQCADKQMIQgBUBEAgA0EAOgAADAELIANCADcDECADQQE6AAALIAMgAS8BCBANIAMgAS8BChANIAMtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAtBfyECDAQLQX8hAiAAIARBDGpCBBAbQQBIDQMgATMBCiIGUA0AIAAgASgCDCAGEBtBAEgNAwsgASgCACIBDQALC0EAIQILIAMQCAsgBEEQaiQAIAILPAEBfyAABEAgAUGABnEhAQNAIAEgACgCBHEEQCACIAAvAQpqQQRqIQILIAAoAgAiAA0ACwsgAkH//wNxC5wBAQN/IABFBEBBAA8LIAAhAwNAAn8CQAJAIAAvAQgiAUH04AFNBEAgAUEBRg0BIAFB9cYBRg0BDAILIAFBgbICRg0AIAFB9eABRw0BCyAAKAIAIQEgAEEANgIAIAAoAgwQBiAAEAYgASADIAAgA0YbIQMCQCACRQRAQQAhAgwBCyACIAE2AgALIAEMAQsgACICKAIACyIADQALIAMLsgQCBX8BfgJAAkACQCAAIAGtEBciAQRAIAEtAAANAUEAIQAMAgsgBARAIARBADYCBCAEQQ42AgALQQAPC0EAIQADQCABLQAABH4gASkDCCABKQMQfQVCAAtCBFQNASABEAwhByABIAEQDCIGrRATIghFBEBBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAwNAIAAoAgAhASAAKAIMEAYgABAGIAEiAA0ACwwDCwJAAkBBEBAJIgUEQCAFIAY7AQogBSAHOwEIIAUgAjYCBCAFQQA2AgAgBkUNASAFIAggBhBjIgY2AgwgBg0CIAUQBgtBACECIAQEQCAEQQA2AgQgBEEONgIACyABEAggAEUNBANAIAAoAgAhASAAKAIMEAYgABAGIAEiAA0ACwwECyAFQQA2AgwLAkAgAEUEQCAFIQAMAQsgCSAFNgIACyAFIQkgAS0AAA0ACwsCQCABLQAABH8gASkDECABKQMIUQVBAAsNACABIAEtAAAEfiABKQMIIAEpAxB9BUIACyIKQv////8PgxATIQICQCAKpyIFQQNLDQAgAkUNACACQcEUIAUQPUUNAQtBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAQNAIAAoAgAhASAAKAIMEAYgABAGIAEiAA0ACwwBCyABEAggAwRAIAMgADYCAEEBDwtBASECIABFDQADQCAAKAIAIQEgACgCDBAGIAAQBiABIgANAAsLIAILvgEBBX8gAAR/IAAhAgNAIAIiBCgCACICDQALIAEEQANAIAEiAy8BCCEGIAMoAgAhASAAIQICQAJAA0ACQCACLwEIIAZHDQAgAi8BCiIFIAMvAQpHDQAgBUUNAiACKAIMIAMoAgwgBRA9RQ0CCyACKAIAIgINAAsgA0EANgIAIAQgAzYCACADIQQMAQsgAiACKAIEIAMoAgRBgAZxcjYCBCADQQA2AgAgAygCDBAGIAMQBgsgAQ0ACwsgAAUgAQsLVQICfgF/AkACQCAALQAARQ0AIAApAxAiAkIBfCIDIAJUDQAgAyAAKQMIWA0BCyAAQQA6AAAPCyAAKAIEIgRFBEAPCyAAIAM3AxAgBCACp2ogAToAAAt9AQN/IwBBEGsiAiQAIAIgATYCDEF/IQMCQCAALQAoDQACQCAAKAIAIgRFDQAgBCABEHFBf0oNACAAKAIAIQEgAEEMaiIABEAgACABKAIMNgIAIAAgASgCEDYCBAsMAQsgACACQQxqQgRBExAOQj+HpyEDCyACQRBqJAAgAwvdAQEDfyABIAApAzBaBEAgAEEIagRAIABBADYCDCAAQRI2AggLQX8PCyAAQQhqIQIgAC0AGEECcQRAIAIEQCACQQA2AgQgAkEZNgIAC0F/DwtBfyEDAkAgACABQQAgAhBTIgRFDQAgACgCUCAEIAIQfkUNAAJ/IAEgACkDMFoEQCAAQQhqBEAgAEEANgIMIABBEjYCCAtBfwwBCyABp0EEdCICIAAoAkBqKAIEECAgACgCQCACaiICQQA2AgQgAhBAQQALDQAgACgCQCABp0EEdGpBAToADEEAIQMLIAMLpgIBBX9BfyEFAkAgACABQQBBABAmRQ0AIAAtABhBAnEEQCAAQQhqIgAEQCAAQQA2AgQgAEEZNgIAC0F/DwsCfyAAKAJAIgQgAaciBkEEdGooAgAiBUUEQCADQYCA2I14RyEHQQMMAQsgBSgCRCADRyEHIAUtAAkLIQggBCAGQQR0aiIEIQYgBCgCBCEEQQAgAiAIRiAHG0UEQAJAIAQNACAGIAUQKyIENgIEIAQNACAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0F/DwsgBCADNgJEIAQgAjoACSAEIAQoAgBBEHI2AgBBAA8LQQAhBSAERQ0AIAQgBCgCAEFvcSIANgIAIABFBEAgBBAgIAZBADYCBEEADwsgBCADNgJEIAQgCDoACQsgBQvjCAIFfwR+IAAtABhBAnEEQCAAQQhqBEAgAEEANgIMIABBGTYCCAtCfw8LIAApAzAhCwJAIANBgMAAcQRAIAAgASADQQAQTCIJQn9SDQELAn4CQAJAIAApAzAiCUIBfCIMIAApAzgiClQEQCAAKAJAIQQMAQsgCkIBhiIJQoAIIAlCgAhUGyIJQhAgCUIQVhsgCnwiCadBBHQiBK0gCkIEhkLw////D4NUDQEgACgCQCAEEDQiBEUNASAAIAk3AzggACAENgJAIAApAzAiCUIBfCEMCyAAIAw3AzAgBCAJp0EEdGoiBEIANwIAIARCADcABSAJDAELIABBCGoEQCAAQQA2AgwgAEEONgIIC0J/CyIJQgBZDQBCfw8LAkAgAUUNAAJ/QQAhBCAJIAApAzBaBEAgAEEIagRAIABBADYCDCAAQRI2AggLQX8MAQsgAC0AGEECcQRAIABBCGoEQCAAQQA2AgwgAEEZNgIIC0F/DAELAkAgAUUNACABLQAARQ0AQX8gASABECJB//8DcSADIABBCGoQNSIERQ0BGiADQYAwcQ0AIARBABAjQQNHDQAgBEECNgIICwJAIAAgAUEAQQAQTCIKQgBTIgENACAJIApRDQAgBBAQIABBCGoEQCAAQQA2AgwgAEEKNgIIC0F/DAELAkAgAUEBIAkgClEbRQ0AAkACfwJAIAAoAkAiASAJpyIFQQR0aiIGKAIAIgMEQCADKAIwIAQQYg0BCyAEIAYoAgQNARogBiAGKAIAECsiAzYCBCAEIAMNARogAEEIagRAIABBADYCDCAAQQ42AggLDAILQQEhByAGKAIAKAIwC0EAQQAgAEEIaiIDECUiCEUNAAJAAkAgASAFQQR0aiIFKAIEIgENACAGKAIAIgENAEEAIQEMAQsgASgCMCIBRQRAQQAhAQwBCyABQQBBACADECUiAUUNAQsgACgCUCAIIAlBACADEE1FDQAgAQRAIAAoAlAgAUEAEH4aCyAFKAIEIQMgBwRAIANFDQIgAy0AAEECcUUNAiADKAIwEBAgBSgCBCIBIAEoAgBBfXEiAzYCACADRQRAIAEQICAFQQA2AgQgBBAQQQAMBAsgASAGKAIAKAIwNgIwIAQQEEEADAMLIAMoAgAiAUECcQRAIAMoAjAQECAFKAIEIgMoAgAhAQsgAyAENgIwIAMgAUECcjYCAEEADAILIAQQEEF/DAELIAQQEEEAC0UNACALIAApAzBRBEBCfw8LIAAoAkAgCadBBHRqED4gACALNwMwQn8PCyAJpyIGQQR0IgEgACgCQGoQQAJAAkAgACgCQCIEIAFqIgMoAgAiBUUNAAJAIAMoAgQiAwRAIAMoAgAiAEEBcUUNAQwCCyAFECshAyAAKAJAIgQgBkEEdGogAzYCBCADRQ0CIAMoAgAhAAsgA0F+NgIQIAMgAEEBcjYCAAsgASAEaiACNgIIIAkPCyAAQQhqBEAgAEEANgIMIABBDjYCCAtCfwteAQF/IwBBEGsiAiQAAn8gACgCJEEBRwRAIABBDGoiAARAIABBADYCBCAAQRI2AgALQX8MAQsgAkEANgIIIAIgATcDACAAIAJCEEEMEA5CP4enCyEAIAJBEGokACAAC9oDAQZ/IwBBEGsiBSQAIAUgAjYCDCMAQaABayIEJAAgBEEIakHA8ABBkAEQBxogBCAANgI0IAQgADYCHCAEQX4gAGsiA0H/////ByADQf////8HSRsiBjYCOCAEIAAgBmoiADYCJCAEIAA2AhggBEEIaiEAIwBB0AFrIgMkACADIAI2AswBIANBoAFqQQBBKBAZIAMgAygCzAE2AsgBAkBBACABIANByAFqIANB0ABqIANBoAFqEEpBAEgNACAAKAJMQQBOIQcgACgCACECIAAsAEpBAEwEQCAAIAJBX3E2AgALIAJBIHEhCAJ/IAAoAjAEQCAAIAEgA0HIAWogA0HQAGogA0GgAWoQSgwBCyAAQdAANgIwIAAgA0HQAGo2AhAgACADNgIcIAAgAzYCFCAAKAIsIQIgACADNgIsIAAgASADQcgBaiADQdAAaiADQaABahBKIAJFDQAaIABBAEEAIAAoAiQRAAAaIABBADYCMCAAIAI2AiwgAEEANgIcIABBADYCECAAKAIUGiAAQQA2AhRBAAsaIAAgACgCACAIcjYCACAHRQ0ACyADQdABaiQAIAYEQCAEKAIcIgAgACAEKAIYRmtBADoAAAsgBEGgAWokACAFQRBqJAALUwEDfwJAIAAoAgAsAABBMGtBCk8NAANAIAAoAgAiAiwAACEDIAAgAkEBajYCACABIANqQTBrIQEgAiwAAUEwa0EKTw0BIAFBCmwhAQwACwALIAELuwIAAkAgAUEUSw0AAkACQAJAAkACQAJAAkACQAJAAkAgAUEJaw4KAAECAwQFBgcICQoLIAIgAigCACIBQQRqNgIAIAAgASgCADYCAA8LIAIgAigCACIBQQRqNgIAIAAgATQCADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATUCADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASkDADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATIBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATMBADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATAAADcDAA8LIAIgAigCACIBQQRqNgIAIAAgATEAADcDAA8LIAIgAigCAEEHakF4cSIBQQhqNgIAIAAgASsDADkDAA8LIAAgAkEAEQcACwubAgAgAEUEQEEADwsCfwJAIAAEfyABQf8ATQ0BAkBB9IIBKAIAKAIARQRAIAFBgH9xQYC/A0YNAwwBCyABQf8PTQRAIAAgAUE/cUGAAXI6AAEgACABQQZ2QcABcjoAAEECDAQLIAFBgLADT0EAIAFBgEBxQYDAA0cbRQRAIAAgAUE/cUGAAXI6AAIgACABQQx2QeABcjoAACAAIAFBBnZBP3FBgAFyOgABQQMMBAsgAUGAgARrQf//P00EQCAAIAFBP3FBgAFyOgADIAAgAUESdkHwAXI6AAAgACABQQZ2QT9xQYABcjoAAiAAIAFBDHZBP3FBgAFyOgABQQQMBAsLQYSEAUEZNgIAQX8FQQELDAELIAAgAToAAEEBCwvjAQECfyACQQBHIQMCQAJAAkAgAEEDcUUNACACRQ0AIAFB/wFxIQQDQCAALQAAIARGDQIgAkEBayICQQBHIQMgAEEBaiIAQQNxRQ0BIAINAAsLIANFDQELAkAgAC0AACABQf8BcUYNACACQQRJDQAgAUH/AXFBgYKECGwhAwNAIAAoAgAgA3MiBEF/cyAEQYGChAhrcUGAgYKEeHENASAAQQRqIQAgAkEEayICQQNLDQALCyACRQ0AIAFB/wFxIQEDQCABIAAtAABGBEAgAA8LIABBAWohACACQQFrIgINAAsLQQALeQEBfAJAIABFDQAgACsDECAAKwMgIgIgAUQAAAAAAAAAACABRAAAAAAAAAAAZBsiAUQAAAAAAADwPyABRAAAAAAAAPA/YxsgACsDKCACoaKgIgEgACsDGKFjRQ0AIAAoAgAgASAAKAIMIAAoAgQRDgAgACABOQMYCwtIAQF8AkAgAEUNACAAKwMQIAArAyAiASAAKwMoIAGhoCIBIAArAxihY0UNACAAKAIAIAEgACgCDCAAKAIEEQ4AIAAgATkDGAsLWgICfgF/An8CQAJAIAAtAABFDQAgACkDECIBQgF8IgIgAVQNACACIAApAwhYDQELIABBADoAAEEADAELQQAgACgCBCIDRQ0AGiAAIAI3AxAgAyABp2otAAALC4IEAgZ/AX4gAEEAIAEbRQRAIAIEQCACQQA2AgQgAkESNgIAC0EADwsCQAJAIAApAwhQDQAgACgCECABLQAAIgQEf0Kl6wohCSABIQMDQCAJIAStQv8Bg3whCSADLQABIgQEQCADQQFqIQMgCUL/////D4NCIX4hCQwBCwsgCacFQYUqCyIEIAAoAgBwQQJ0aiIGKAIAIgNFDQADQAJAIAMoAhwgBEcNACABIAMoAgAQOA0AAkAgAykDCEJ/UQRAIAMoAhghAQJAIAUEQCAFIAE2AhgMAQsgBiABNgIACyADEAYgACAAKQMIQgF9Igk3AwggCbogACgCACIBuER7FK5H4XqEP6JjRQ0BIAFBgQJJDQECf0EAIQMgACgCACIGIAFBAXYiBUcEQCAFEDwiB0UEQCACBEAgAkEANgIEIAJBDjYCAAtBAAwCCwJAIAApAwhCACAGG1AEQCAAKAIQIQQMAQsgACgCECEEA0AgBCADQQJ0aigCACIBBEADQCABKAIYIQIgASAHIAEoAhwgBXBBAnRqIggoAgA2AhggCCABNgIAIAIiAQ0ACwsgA0EBaiIDIAZHDQALCyAEEAYgACAFNgIAIAAgBzYCEAtBAQsNAQwFCyADQn83AxALQQEPCyADIgUoAhgiAw0ACwsgAgRAIAJBADYCBCACQQk2AgALC0EAC6UGAgl/AX4jAEHwAGsiBSQAAkACQCAARQ0AAkAgAQRAIAEpAzAgAlYNAQtBACEDIABBCGoEQCAAQQA2AgwgAEESNgIICwwCCwJAIANBCHENACABKAJAIAKnQQR0aiIGKAIIRQRAIAYtAAxFDQELQQAhAyAAQQhqBEAgAEEANgIMIABBDzYCCAsMAgsgASACIANBCHIgBUE4ahCKAUF/TARAQQAhAyAAQQhqBEAgAEEANgIMIABBFDYCCAsMAgsgA0EDdkEEcSADciIGQQRxIQcgBSkDUCEOIAUvAWghCQJAIANBIHFFIAUvAWpBAEdxIgtFDQAgBA0AIAAoAhwiBA0AQQAhAyAAQQhqBEAgAEEANgIMIABBGjYCCAsMAgsgBSkDWFAEQCAAQQBCAEEAEFIhAwwCCwJAIAdFIgwgCUEAR3EiDUEBckUEQEEAIQMgBUEAOwEwIAUgDjcDICAFIA43AxggBSAFKAJgNgIoIAVC3AA3AwAgASgCACAOIAVBACABIAIgAEEIahBeIgYNAQwDC0EAIQMgASACIAYgAEEIaiIGECYiB0UNAiABKAIAIAUpA1ggBUE4aiAHLwEMQQF2QQNxIAEgAiAGEF4iBkUNAgsCfyAGIAE2AiwCQCABKAJEIghBAWoiCiABKAJIIgdJBEAgASgCTCEHDAELIAEoAkwgB0EKaiIIQQJ0EDQiB0UEQCABQQhqBEAgAUEANgIMIAFBDjYCCAtBfwwCCyABIAc2AkwgASAINgJIIAEoAkQiCEEBaiEKCyABIAo2AkQgByAIQQJ0aiAGNgIAQQALQX9MBEAgBhALDAELAkAgC0UEQCAGIQEMAQtBJkEAIAUvAWpBAUYbIgFFBEAgAEEIagRAIABBADYCDCAAQRg2AggLDAMLIAAgBiAFLwFqQQAgBCABEQYAIQEgBhALIAFFDQILAkAgDUUEQCABIQMMAQsgACABIAUvAWgQgQEhAyABEAsgA0UNAQsCQCAJRSAMckUEQCADIQEMAQsgACADQQEQgAEhASADEAsgAUUNAQsgASEDDAELQQAhAwsgBUHwAGokACADC4UBAQF/IAFFBEAgAEEIaiIABEAgAEEANgIEIABBEjYCAAtBAA8LQTgQCSIDRQRAIABBCGoiAARAIABBADYCBCAAQQ42AgALQQAPCyADQQA2AhAgA0IANwIIIANCADcDKCADQQA2AgQgAyACNgIAIANCADcDGCADQQA2AjAgACABQTsgAxBCCw8AIAAgASACQQBBABCCAQusAgECfyABRQRAIABBCGoiAARAIABBADYCBCAAQRI2AgALQQAPCwJAIAJBfUsNACACQf//A3FBCEYNACAAQQhqIgAEQCAAQQA2AgQgAEEQNgIAC0EADwsCQEGwwAAQCSIFBEAgBUEANgIIIAVCADcCACAFQYiBAUGogQEgAxs2AqhAIAUgAjYCFCAFIAM6ABAgBUEAOgAPIAVBADsBDCAFIAMgAkF9SyIGcToADiAFQQggAiAGG0H//wNxIAQgBUGIgQFBqIEBIAMbKAIAEQAAIgI2AqxAIAINASAFEDEgBRAGCyAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0EADwsgACABQTogBRBCIgAEfyAABSAFKAKsQCAFKAKoQCgCBBEDACAFEDEgBRAGQQALC6ABAQF/IAIgACgCBCIDIAIgA0kbIgIEQCAAIAMgAms2AgQCQAJAAkACQCAAKAIcIgMoAhRBAWsOAgEAAgsgA0GgAWogASAAKAIAIAJB3IABKAIAEQgADAILIAAgACgCMCABIAAoAgAgAkHEgAEoAgARBAA2AjAMAQsgASAAKAIAIAIQBxoLIAAgACgCACACajYCACAAIAAoAgggAmo2AggLC7cCAQR/QX4hAgJAIABFDQAgACgCIEUNACAAKAIkIgRFDQAgACgCHCIBRQ0AIAEoAgAgAEcNAAJAAkAgASgCICIDQTlrDjkBAgICAgICAgICAgIBAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyADQZoFRg0AIANBKkcN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DCABajYCDCAGIAYoAgggAWo2AgggBSAFKAIUIAFqNgIUIAUgBSgCECABazYCECAGIAYoAhAgAWsiATYCECABDQAgBiAGKAIENgIIC0EAIQRBACEJIAMoAhBFDQAMCgsgAygCHCgCJCEGIAMgAygCGCIBQQFqNgIYIAEgBmotAAAhASADIARBAWo2AhAgAygCBCAEaiABOgAAIAEEQCADKAIQIQQMAQsLIAMoAhwoAixFDQAgAygCECIGIAlNDQAgBQJ/IAUoAjAhBEEAIAMoAgQgCWoiAUUNABogBCABIAYgCWtB1IABKAIAEQAACzYCMAsgA0HnADYCIAsCQCADKAIcKAIsBEAgAygCDCADKAIQIgFBAmpJBH8gBRAKIAMoAhANAkEABSABCyADKAIEaiAFKAIwOwAAIAMgAygCEEECajYCECADQaABakHkgAEoAgARAQAaCyADQfEANgIgIAUQCiADKAIQRQ0BDAcLDAYLIAUoAgQNAQsgAygCPA0AIApFDQEgAygCIEGaBUYNAQsCfyADKAKIASIBRQRAIAMgChCFAQwBCwJAAkACQCADKAKMAUECaw4CAAECCwJ/AkADQAJAAkAgAygCPA0AIAMQLyADKAI8DQAgCg0BQQAMBAsgAygCSCADKAJoai0AACEEIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qQQA6AAAgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtaiAEOgAAIAMgBEECdGoiASABLwHkAUEBajsB5AEgAyADKAI8QQFrNgI8IAMgAygCaEEBaiIBNgJoIAMoAvAtIAMoAvQtRw0BQQAhBCADIAMoAlgiBkEATgR/IAMoAkggBmoFQQALIAEgBmtBABAPIAMgAygCaDYCWCADKAIAEAogAygCACgCEA0BDAILCyADQQA2AoQuIApBBEYEQCADIAMoAlgiAUEATgR/IAMoAkggAWoFQQALIAMoAmggAWtBARAPIAMgAygCaDYCWCADKAIAEApBA0ECIAMoAgAoAhAbDAILIAMoAvAtBEBBACEEIAMgAygCWCIBQQBOBH8gAygCSCABagVBAAsgAygCaCABa0EAEA8gAyADKAJoNgJYIAMoAgAQCiADKAIAKAIQRQ0BC0EBIQQLIAQL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bGl0ZXJhbC9sZW5ndGhzIHNldABpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQAdW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0AGludmFsaWQgZGlzdGFuY2VzIHNldABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AEZpbGUgYWxyZWFkeSBleGlzdHMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwAlcyVzJXMAYnVmZmVyIGVycm9yAE5vIGVycm9yAHN0cmVhbSBlcnJvcgBUZWxsIGVycm9yAEludGVybmFsIGVycm9yAFNlZWsgZXJyb3IAV3JpdGUgZXJyb3IAZmlsZSBlcnJvcgBSZWFkIGVycm9yAFpsaWIgZXJyb3IAZGF0YSBlcnJvcgBDUkMgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoADEuMi4xMy56bGliLW5nAGludmFsaWQgd2luZG93IHNpemUAUmVhZC1vbmx5IGFyY2hpdmUATm90IGEgemlwIGFyY2hpdmUAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAE1hbGxvYyBmYWlsdXJlAGludmFsaWQgYmxvY2sgdHlwZQBGYWlsdXJlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBDYW4ndCBvcGVuIGZpbGUATm8gc3VjaCBmaWxlAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBDYW4ndCByZW1vdmUgZmlsZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAHN0cmVhbSBlbmQAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRl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UgAIANIACAAyAAgAsgAIAHIACADyAAgACgAIAIoACABKAAgAygAIACoACACqAAgAagAIAOoACAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkA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SXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AQcCAAQuFARMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAgERQADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAQfSCAQsCXEQAQbCDAQsQ/////////////////////w=="; + if (!isDataURI(wasmBinaryFile)) { + wasmBinaryFile = locateFile(wasmBinaryFile); + } + function getBinary(file) { + try { + if (file == wasmBinaryFile && wasmBinary) { + return new Uint8Array(wasmBinary); + } + var binary = tryParseAsDataURI(file); + if (binary) { + return binary; + } + if (readBinary) { + return readBinary(file); + } else { + throw "sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"; + } + } catch (err2) { + abort(err2); + } + } + function instantiateSync(file, info) { + var instance; + var module2; + var binary; + try { + binary = getBinary(file); + module2 = new WebAssembly.Module(binary); + instance = new WebAssembly.Instance(module2, info); + } catch (e) { + var str = e.toString(); + err("failed to compile wasm module: " + str); + if (str.includes("imported Memory") || str.includes("memory import")) { + err( + "Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)." + ); + } + throw e; + } + return [instance, module2]; + } + function createWasm() { + var info = { a: asmLibraryArg }; + function receiveInstance(instance, module2) { + var exports3 = instance.exports; + Module["asm"] = exports3; + wasmMemory = Module["asm"]["g"]; + updateGlobalBufferAndViews(wasmMemory.buffer); + wasmTable = Module["asm"]["W"]; + addOnInit(Module["asm"]["h"]); + removeRunDependency(); + } + addRunDependency(); + if (Module["instantiateWasm"]) { + try { + var exports2 = Module["instantiateWasm"](info, receiveInstance); + return exports2; + } catch (e) { + err("Module.instantiateWasm callback failed with error: " + e); + return false; + } + } + var result = instantiateSync(wasmBinaryFile, info); + receiveInstance(result[0]); + return Module["asm"]; + } + function LE_HEAP_LOAD_F32(byteOffset) { + return HEAP_DATA_VIEW.getFloat32(byteOffset, true); + } + function LE_HEAP_LOAD_F64(byteOffset) { + return HEAP_DATA_VIEW.getFloat64(byteOffset, true); + } + function LE_HEAP_LOAD_I16(byteOffset) { + return HEAP_DATA_VIEW.getInt16(byteOffset, true); + } + function LE_HEAP_LOAD_I32(byteOffset) { + return HEAP_DATA_VIEW.getInt32(byteOffset, true); + } + function LE_HEAP_STORE_I32(byteOffset, value) { + HEAP_DATA_VIEW.setInt32(byteOffset, value, true); + } + function callRuntimeCallbacks(callbacks) { + while (callbacks.length > 0) { + var callback = callbacks.shift(); + if (typeof callback == "function") { + callback(Module); + continue; + } + var func = callback.func; + if (typeof func === "number") { + if (callback.arg === void 0) { + wasmTable.get(func)(); + } else { + wasmTable.get(func)(callback.arg); + } + } else { + func(callback.arg === void 0 ? null : callback.arg); + } + } + } + function _gmtime_r(time, tmPtr) { + var date = new Date(LE_HEAP_LOAD_I32((time >> 2) * 4) * 1e3); + LE_HEAP_STORE_I32((tmPtr >> 2) * 4, date.getUTCSeconds()); + LE_HEAP_STORE_I32((tmPtr + 4 >> 2) * 4, date.getUTCMinutes()); + LE_HEAP_STORE_I32((tmPtr + 8 >> 2) * 4, date.getUTCHours()); + LE_HEAP_STORE_I32((tmPtr + 12 >> 2) * 4, date.getUTCDate()); + LE_HEAP_STORE_I32((tmPtr + 16 >> 2) * 4, date.getUTCMonth()); + LE_HEAP_STORE_I32((tmPtr + 20 >> 2) * 4, date.getUTCFullYear() - 1900); + LE_HEAP_STORE_I32((tmPtr + 24 >> 2) * 4, date.getUTCDay()); + LE_HEAP_STORE_I32((tmPtr + 36 >> 2) * 4, 0); + LE_HEAP_STORE_I32((tmPtr + 32 >> 2) * 4, 0); + var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); + var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0; + LE_HEAP_STORE_I32((tmPtr + 28 >> 2) * 4, yday); + if (!_gmtime_r.GMTString) _gmtime_r.GMTString = allocateUTF8("GMT"); + LE_HEAP_STORE_I32((tmPtr + 40 >> 2) * 4, _gmtime_r.GMTString); + return tmPtr; + } + function ___gmtime_r(a0, a1) { + return _gmtime_r(a0, a1); + } + function _emscripten_memcpy_big(dest, src, num) { + HEAPU8.copyWithin(dest, src, src + num); + } + function emscripten_realloc_buffer(size) { + try { + wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16); + updateGlobalBufferAndViews(wasmMemory.buffer); + return 1; + } catch (e) { + } + } + function _emscripten_resize_heap(requestedSize) { + var oldSize = HEAPU8.length; + requestedSize = requestedSize >>> 0; + var maxHeapSize = 2147483648; + if (requestedSize > maxHeapSize) { + return false; + } + for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { + var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); + overGrownHeapSize = Math.min( + overGrownHeapSize, + requestedSize + 100663296 + ); + var newSize = Math.min( + maxHeapSize, + alignUp(Math.max(requestedSize, overGrownHeapSize), 65536) + ); + var replacement = emscripten_realloc_buffer(newSize); + if (replacement) { + return true; + } + } + return false; + } + function _setTempRet0(val) { + } + function _time(ptr) { + var ret = Date.now() / 1e3 | 0; + if (ptr) { + LE_HEAP_STORE_I32((ptr >> 2) * 4, ret); + } + return ret; + } + function _tzset() { + if (_tzset.called) return; + _tzset.called = true; + var currentYear = (/* @__PURE__ */ new Date()).getFullYear(); + var winter = new Date(currentYear, 0, 1); + var summer = new Date(currentYear, 6, 1); + var winterOffset = winter.getTimezoneOffset(); + var summerOffset = summer.getTimezoneOffset(); + var stdTimezoneOffset = Math.max(winterOffset, summerOffset); + LE_HEAP_STORE_I32((__get_timezone() >> 2) * 4, stdTimezoneOffset * 60); + LE_HEAP_STORE_I32( + (__get_daylight() >> 2) * 4, + Number(winterOffset != summerOffset) + ); + function extractZone(date) { + var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/); + return match ? match[1] : "GMT"; + } + var winterName = extractZone(winter); + var summerName = extractZone(summer); + var winterNamePtr = allocateUTF8(winterName); + var summerNamePtr = allocateUTF8(summerName); + if (summerOffset < winterOffset) { + LE_HEAP_STORE_I32((__get_tzname() >> 2) * 4, winterNamePtr); + LE_HEAP_STORE_I32((__get_tzname() + 4 >> 2) * 4, summerNamePtr); + } else { + LE_HEAP_STORE_I32((__get_tzname() >> 2) * 4, summerNamePtr); + LE_HEAP_STORE_I32((__get_tzname() + 4 >> 2) * 4, winterNamePtr); + } + } + function _timegm(tmPtr) { + _tzset(); + var time = Date.UTC( + LE_HEAP_LOAD_I32((tmPtr + 20 >> 2) * 4) + 1900, + LE_HEAP_LOAD_I32((tmPtr + 16 >> 2) * 4), + LE_HEAP_LOAD_I32((tmPtr + 12 >> 2) * 4), + LE_HEAP_LOAD_I32((tmPtr + 8 >> 2) * 4), + LE_HEAP_LOAD_I32((tmPtr + 4 >> 2) * 4), + LE_HEAP_LOAD_I32((tmPtr >> 2) * 4), + 0 + ); + var date = new Date(time); + LE_HEAP_STORE_I32((tmPtr + 24 >> 2) * 4, date.getUTCDay()); + var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); + var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0; + LE_HEAP_STORE_I32((tmPtr + 28 >> 2) * 4, yday); + return date.getTime() / 1e3 | 0; + } + function intArrayFromBase64(s) { + { + var buf; + try { + buf = Buffer.from(s, "base64"); + } catch (_) { + buf = new Buffer(s, "base64"); + } + return new Uint8Array( + buf["buffer"], + buf["byteOffset"], + buf["byteLength"] + ); + } + } + function tryParseAsDataURI(filename) { + if (!isDataURI(filename)) { + return; + } + return intArrayFromBase64(filename.slice(dataURIPrefix.length)); + } + var asmLibraryArg = { + e: ___gmtime_r, + c: _emscripten_memcpy_big, + d: _emscripten_resize_heap, + a: _setTempRet0, + b: _time, + f: _timegm + }; + var asm = createWasm(); + Module["___wasm_call_ctors"] = asm["h"]; + Module["_zip_ext_count_symlinks"] = asm["i"]; + Module["_zip_file_get_external_attributes"] = asm["j"]; + Module["_zipstruct_statS"] = asm["k"]; + Module["_zipstruct_stat_size"] = asm["l"]; + Module["_zipstruct_stat_mtime"] = asm["m"]; + Module["_zipstruct_stat_crc"] = asm["n"]; + Module["_zipstruct_errorS"] = asm["o"]; + Module["_zipstruct_error_code_zip"] = asm["p"]; + Module["_zipstruct_stat_comp_size"] = asm["q"]; + Module["_zipstruct_stat_comp_method"] = asm["r"]; + Module["_zip_close"] = asm["s"]; + Module["_zip_delete"] = asm["t"]; + Module["_zip_dir_add"] = asm["u"]; + Module["_zip_discard"] = asm["v"]; + Module["_zip_error_init_with_code"] = asm["w"]; + Module["_zip_get_error"] = asm["x"]; + Module["_zip_file_get_error"] = asm["y"]; + Module["_zip_error_strerror"] = asm["z"]; + Module["_zip_fclose"] = asm["A"]; + Module["_zip_file_add"] = asm["B"]; + Module["_free"] = asm["C"]; + var _malloc = Module["_malloc"] = asm["D"]; + Module["_zip_source_error"] = asm["E"]; + Module["_zip_source_seek"] = asm["F"]; + Module["_zip_file_set_external_attributes"] = asm["G"]; + Module["_zip_file_set_mtime"] = asm["H"]; + Module["_zip_fopen_index"] = asm["I"]; + Module["_zip_fread"] = asm["J"]; + Module["_zip_get_name"] = asm["K"]; + Module["_zip_get_num_entries"] = asm["L"]; + Module["_zip_source_read"] = asm["M"]; + Module["_zip_name_locate"] = asm["N"]; + Module["_zip_open_from_source"] = asm["O"]; + Module["_zip_set_file_compression"] = asm["P"]; + Module["_zip_source_buffer"] = asm["Q"]; + Module["_zip_source_buffer_create"] = asm["R"]; + Module["_zip_source_close"] = asm["S"]; + Module["_zip_source_free"] = asm["T"]; + Module["_zip_source_keep"] = asm["U"]; + Module["_zip_source_open"] = asm["V"]; + Module["_zip_source_tell"] = asm["X"]; + Module["_zip_stat_index"] = asm["Y"]; + var __get_tzname = Module["__get_tzname"] = asm["Z"]; + var __get_daylight = Module["__get_daylight"] = asm["_"]; + var __get_timezone = Module["__get_timezone"] = asm["$"]; + var stackSave = Module["stackSave"] = asm["aa"]; + var stackRestore = Module["stackRestore"] = asm["ba"]; + var stackAlloc = Module["stackAlloc"] = asm["ca"]; + Module["cwrap"] = cwrap; + Module["getValue"] = getValue; + var calledRun; + dependenciesFulfilled = function runCaller() { + if (!calledRun) run(); + if (!calledRun) dependenciesFulfilled = runCaller; + }; + function run(args) { + if (runDependencies > 0) { + return; + } + preRun(); + if (runDependencies > 0) { + return; + } + function doRun() { + if (calledRun) return; + calledRun = true; + Module["calledRun"] = true; + if (ABORT) return; + initRuntime(); + readyPromiseResolve(Module); + if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); + postRun(); + } + if (Module["setStatus"]) { + Module["setStatus"]("Running..."); + setTimeout(function() { + setTimeout(function() { + Module["setStatus"](""); + }, 1); + doRun(); + }, 1); + } else { + doRun(); + } + } + Module["run"] = run; + if (Module["preInit"]) { + if (typeof Module["preInit"] == "function") + Module["preInit"] = [Module["preInit"]]; + while (Module["preInit"].length > 0) { + Module["preInit"].pop()(); + } + } + run(); + return createModule2; + }; +}(); +module.exports = createModule; +}(libzipSync)); + +const createModule = libzipSync.exports; + +const number64 = [ + `number`, + // low + `number` + // high +]; +var Errors = /* @__PURE__ */ ((Errors2) => { + Errors2[Errors2["ZIP_ER_OK"] = 0] = "ZIP_ER_OK"; + Errors2[Errors2["ZIP_ER_MULTIDISK"] = 1] = "ZIP_ER_MULTIDISK"; + Errors2[Errors2["ZIP_ER_RENAME"] = 2] = "ZIP_ER_RENAME"; + Errors2[Errors2["ZIP_ER_CLOSE"] = 3] = "ZIP_ER_CLOSE"; + Errors2[Errors2["ZIP_ER_SEEK"] = 4] = "ZIP_ER_SEEK"; + Errors2[Errors2["ZIP_ER_READ"] = 5] = "ZIP_ER_READ"; + Errors2[Errors2["ZIP_ER_WRITE"] = 6] = "ZIP_ER_WRITE"; + Errors2[Errors2["ZIP_ER_CRC"] = 7] = "ZIP_ER_CRC"; + Errors2[Errors2["ZIP_ER_ZIPCLOSED"] = 8] = "ZIP_ER_ZIPCLOSED"; + Errors2[Errors2["ZIP_ER_NOENT"] = 9] = "ZIP_ER_NOENT"; + Errors2[Errors2["ZIP_ER_EXISTS"] = 10] = "ZIP_ER_EXISTS"; + Errors2[Errors2["ZIP_ER_OPEN"] = 11] = "ZIP_ER_OPEN"; + Errors2[Errors2["ZIP_ER_TMPOPEN"] = 12] = "ZIP_ER_TMPOPEN"; + Errors2[Errors2["ZIP_ER_ZLIB"] = 13] = "ZIP_ER_ZLIB"; + Errors2[Errors2["ZIP_ER_MEMORY"] = 14] = "ZIP_ER_MEMORY"; + Errors2[Errors2["ZIP_ER_CHANGED"] = 15] = "ZIP_ER_CHANGED"; + Errors2[Errors2["ZIP_ER_COMPNOTSUPP"] = 16] = "ZIP_ER_COMPNOTSUPP"; + Errors2[Errors2["ZIP_ER_EOF"] = 17] = "ZIP_ER_EOF"; + Errors2[Errors2["ZIP_ER_INVAL"] = 18] = "ZIP_ER_INVAL"; + Errors2[Errors2["ZIP_ER_NOZIP"] = 19] = "ZIP_ER_NOZIP"; + Errors2[Errors2["ZIP_ER_INTERNAL"] = 20] = "ZIP_ER_INTERNAL"; + Errors2[Errors2["ZIP_ER_INCONS"] = 21] = "ZIP_ER_INCONS"; + Errors2[Errors2["ZIP_ER_REMOVE"] = 22] = "ZIP_ER_REMOVE"; + Errors2[Errors2["ZIP_ER_DELETED"] = 23] = "ZIP_ER_DELETED"; + Errors2[Errors2["ZIP_ER_ENCRNOTSUPP"] = 24] = "ZIP_ER_ENCRNOTSUPP"; + Errors2[Errors2["ZIP_ER_RDONLY"] = 25] = "ZIP_ER_RDONLY"; + Errors2[Errors2["ZIP_ER_NOPASSWD"] = 26] = "ZIP_ER_NOPASSWD"; + Errors2[Errors2["ZIP_ER_WRONGPASSWD"] = 27] = "ZIP_ER_WRONGPASSWD"; + Errors2[Errors2["ZIP_ER_OPNOTSUPP"] = 28] = "ZIP_ER_OPNOTSUPP"; + Errors2[Errors2["ZIP_ER_INUSE"] = 29] = "ZIP_ER_INUSE"; + Errors2[Errors2["ZIP_ER_TELL"] = 30] = "ZIP_ER_TELL"; + Errors2[Errors2["ZIP_ER_COMPRESSED_DATA"] = 31] = "ZIP_ER_COMPRESSED_DATA"; + return Errors2; +})(Errors || {}); +const makeInterface = (emZip) => ({ + // Those are getters because they can change after memory growth + get HEAPU8() { + return emZip.HEAPU8; + }, + errors: Errors, + SEEK_SET: 0, + SEEK_CUR: 1, + SEEK_END: 2, + ZIP_CHECKCONS: 4, + ZIP_EXCL: 2, + ZIP_RDONLY: 16, + ZIP_FL_OVERWRITE: 8192, + ZIP_FL_COMPRESSED: 4, + ZIP_OPSYS_DOS: 0, + ZIP_OPSYS_AMIGA: 1, + ZIP_OPSYS_OPENVMS: 2, + ZIP_OPSYS_UNIX: 3, + ZIP_OPSYS_VM_CMS: 4, + ZIP_OPSYS_ATARI_ST: 5, + ZIP_OPSYS_OS_2: 6, + ZIP_OPSYS_MACINTOSH: 7, + ZIP_OPSYS_Z_SYSTEM: 8, + ZIP_OPSYS_CPM: 9, + ZIP_OPSYS_WINDOWS_NTFS: 10, + ZIP_OPSYS_MVS: 11, + ZIP_OPSYS_VSE: 12, + ZIP_OPSYS_ACORN_RISC: 13, + ZIP_OPSYS_VFAT: 14, + ZIP_OPSYS_ALTERNATE_MVS: 15, + ZIP_OPSYS_BEOS: 16, + ZIP_OPSYS_TANDEM: 17, + ZIP_OPSYS_OS_400: 18, + ZIP_OPSYS_OS_X: 19, + ZIP_CM_DEFAULT: -1, + ZIP_CM_STORE: 0, + ZIP_CM_DEFLATE: 8, + uint08S: emZip._malloc(1), + uint32S: emZip._malloc(4), + malloc: emZip._malloc, + free: emZip._free, + getValue: emZip.getValue, + openFromSource: emZip.cwrap(`zip_open_from_source`, `number`, [`number`, `number`, `number`]), + close: emZip.cwrap(`zip_close`, `number`, [`number`]), + discard: emZip.cwrap(`zip_discard`, null, [`number`]), + getError: emZip.cwrap(`zip_get_error`, `number`, [`number`]), + getName: emZip.cwrap(`zip_get_name`, `string`, [`number`, `number`, `number`]), + getNumEntries: emZip.cwrap(`zip_get_num_entries`, `number`, [`number`, `number`]), + delete: emZip.cwrap(`zip_delete`, `number`, [`number`, `number`]), + statIndex: emZip.cwrap(`zip_stat_index`, `number`, [`number`, ...number64, `number`, `number`]), + fopenIndex: emZip.cwrap(`zip_fopen_index`, `number`, [`number`, ...number64, `number`]), + fread: emZip.cwrap(`zip_fread`, `number`, [`number`, `number`, `number`, `number`]), + fclose: emZip.cwrap(`zip_fclose`, `number`, [`number`]), + dir: { + add: emZip.cwrap(`zip_dir_add`, `number`, [`number`, `string`]) + }, + file: { + add: emZip.cwrap(`zip_file_add`, `number`, [`number`, `string`, `number`, `number`]), + getError: emZip.cwrap(`zip_file_get_error`, `number`, [`number`]), + getExternalAttributes: emZip.cwrap(`zip_file_get_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]), + setExternalAttributes: emZip.cwrap(`zip_file_set_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]), + setMtime: emZip.cwrap(`zip_file_set_mtime`, `number`, [`number`, ...number64, `number`, `number`]), + setCompression: emZip.cwrap(`zip_set_file_compression`, `number`, [`number`, ...number64, `number`, `number`]) + }, + ext: { + countSymlinks: emZip.cwrap(`zip_ext_count_symlinks`, `number`, [`number`]) + }, + error: { + initWithCode: emZip.cwrap(`zip_error_init_with_code`, null, [`number`, `number`]), + strerror: emZip.cwrap(`zip_error_strerror`, `string`, [`number`]) + }, + name: { + locate: emZip.cwrap(`zip_name_locate`, `number`, [`number`, `string`, `number`]) + }, + source: { + fromUnattachedBuffer: emZip.cwrap(`zip_source_buffer_create`, `number`, [`number`, ...number64, `number`, `number`]), + fromBuffer: emZip.cwrap(`zip_source_buffer`, `number`, [`number`, `number`, ...number64, `number`]), + free: emZip.cwrap(`zip_source_free`, null, [`number`]), + keep: emZip.cwrap(`zip_source_keep`, null, [`number`]), + open: emZip.cwrap(`zip_source_open`, `number`, [`number`]), + close: emZip.cwrap(`zip_source_close`, `number`, [`number`]), + seek: emZip.cwrap(`zip_source_seek`, `number`, [`number`, ...number64, `number`]), + tell: emZip.cwrap(`zip_source_tell`, `number`, [`number`]), + read: emZip.cwrap(`zip_source_read`, `number`, [`number`, `number`, `number`]), + error: emZip.cwrap(`zip_source_error`, `number`, [`number`]) + }, + struct: { + statS: emZip.cwrap(`zipstruct_statS`, `number`, []), + statSize: emZip.cwrap(`zipstruct_stat_size`, `number`, [`number`]), + statCompSize: emZip.cwrap(`zipstruct_stat_comp_size`, `number`, [`number`]), + statCompMethod: emZip.cwrap(`zipstruct_stat_comp_method`, `number`, [`number`]), + statMtime: emZip.cwrap(`zipstruct_stat_mtime`, `number`, [`number`]), + statCrc: emZip.cwrap(`zipstruct_stat_crc`, `number`, [`number`]), + errorS: emZip.cwrap(`zipstruct_errorS`, `number`, []), + errorCodeZip: emZip.cwrap(`zipstruct_error_code_zip`, `number`, [`number`]) + } +}); + +function getArchivePart(path, extension) { + let idx = path.indexOf(extension); + if (idx <= 0) + return null; + let nextCharIdx = idx; + while (idx >= 0) { + nextCharIdx = idx + extension.length; + if (path[nextCharIdx] === ppath.sep) + break; + if (path[idx - 1] === ppath.sep) + return null; + idx = path.indexOf(extension, nextCharIdx); + } + if (path.length > nextCharIdx && path[nextCharIdx] !== ppath.sep) + return null; + return path.slice(0, nextCharIdx); +} +class ZipOpenFS extends MountFS { + static async openPromise(fn, opts) { + const zipOpenFs = new ZipOpenFS(opts); + try { + return await fn(zipOpenFs); + } finally { + zipOpenFs.saveAndClose(); + } + } + constructor(opts = {}) { + const fileExtensions = opts.fileExtensions; + const readOnlyArchives = opts.readOnlyArchives; + const getMountPoint = typeof fileExtensions === `undefined` ? (path) => getArchivePart(path, `.zip`) : (path) => { + for (const extension of fileExtensions) { + const result = getArchivePart(path, extension); + if (result) { + return result; + } + } + return null; + }; + const factorySync = (baseFs, p) => { + return new ZipFS(p, { + baseFs, + readOnly: readOnlyArchives, + stats: baseFs.statSync(p), + customZipImplementation: opts.customZipImplementation + }); + }; + const factoryPromise = async (baseFs, p) => { + const zipOptions = { + baseFs, + readOnly: readOnlyArchives, + stats: await baseFs.statPromise(p), + customZipImplementation: opts.customZipImplementation + }; + return () => { + return new ZipFS(p, zipOptions); + }; + }; + super({ + ...opts, + factorySync, + factoryPromise, + getMountPoint + }); + } +} + +class LibzipError extends Error { + code; + constructor(message, code) { + super(message); + this.name = `Libzip Error`; + this.code = code; + } +} +class LibZipImpl { + libzip; + lzSource; + zip; + listings; + symlinkCount; + filesShouldBeCached = true; + constructor(opts) { + const buffer = `buffer` in opts ? opts.buffer : opts.baseFs.readFileSync(opts.path); + this.libzip = getInstance(); + const errPtr = this.libzip.malloc(4); + try { + let flags = 0; + if (opts.readOnly) + flags |= this.libzip.ZIP_RDONLY; + const lzSource = this.allocateUnattachedSource(buffer); + try { + this.zip = this.libzip.openFromSource(lzSource, flags, errPtr); + this.lzSource = lzSource; + } catch (error) { + this.libzip.source.free(lzSource); + throw error; + } + if (this.zip === 0) { + const error = this.libzip.struct.errorS(); + this.libzip.error.initWithCode(error, this.libzip.getValue(errPtr, `i32`)); + throw this.makeLibzipError(error); + } + } finally { + this.libzip.free(errPtr); + } + const entryCount = this.libzip.getNumEntries(this.zip, 0); + const listings = new Array(entryCount); + for (let t = 0; t < entryCount; ++t) + listings[t] = this.libzip.getName(this.zip, t, 0); + this.listings = listings; + this.symlinkCount = this.libzip.ext.countSymlinks(this.zip); + if (this.symlinkCount === -1) { + throw this.makeLibzipError(this.libzip.getError(this.zip)); + } + } + getSymlinkCount() { + return this.symlinkCount; + } + getListings() { + return this.listings; + } + stat(entry) { + const stat = this.libzip.struct.statS(); + const rc = this.libzip.statIndex(this.zip, entry, 0, 0, stat); + if (rc === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + const size = this.libzip.struct.statSize(stat) >>> 0; + const mtime = this.libzip.struct.statMtime(stat) >>> 0; + const crc = this.libzip.struct.statCrc(stat) >>> 0; + return { size, mtime, crc }; + } + makeLibzipError(error) { + const errorCode = this.libzip.struct.errorCodeZip(error); + const strerror = this.libzip.error.strerror(error); + const libzipError = new LibzipError(strerror, this.libzip.errors[errorCode]); + if (errorCode === this.libzip.errors.ZIP_ER_CHANGED) + throw new Error(`Assertion failed: Unexpected libzip error: ${libzipError.message}`); + return libzipError; + } + setFileSource(target, compression, buffer) { + const lzSource = this.allocateSource(buffer); + try { + const newIndex = this.libzip.file.add(this.zip, target, lzSource, this.libzip.ZIP_FL_OVERWRITE); + if (newIndex === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + if (compression !== null) { + const rc = this.libzip.file.setCompression(this.zip, newIndex, 0, compression[0], compression[1]); + if (rc === -1) { + throw this.makeLibzipError(this.libzip.getError(this.zip)); + } + } + return newIndex; + } catch (error) { + this.libzip.source.free(lzSource); + throw error; + } + } + setMtime(entry, mtime) { + const rc = this.libzip.file.setMtime(this.zip, entry, 0, mtime, 0); + if (rc === -1) { + throw this.makeLibzipError(this.libzip.getError(this.zip)); + } + } + getExternalAttributes(index) { + const attrs = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S); + if (attrs === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0; + const attributes = this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 0; + return [opsys, attributes]; + } + setExternalAttributes(index, opsys, attributes) { + const rc = this.libzip.file.setExternalAttributes(this.zip, index, 0, 0, opsys, attributes); + if (rc === -1) { + throw this.makeLibzipError(this.libzip.getError(this.zip)); + } + } + locate(name) { + return this.libzip.name.locate(this.zip, name, 0); + } + getFileSource(index) { + const stat = this.libzip.struct.statS(); + const rc = this.libzip.statIndex(this.zip, index, 0, 0, stat); + if (rc === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + const size = this.libzip.struct.statCompSize(stat); + const compressionMethod = this.libzip.struct.statCompMethod(stat); + const buffer = this.libzip.malloc(size); + try { + const file = this.libzip.fopenIndex(this.zip, index, 0, this.libzip.ZIP_FL_COMPRESSED); + if (file === 0) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + try { + const rc2 = this.libzip.fread(file, buffer, size, 0); + if (rc2 === -1) + throw this.makeLibzipError(this.libzip.file.getError(file)); + else if (rc2 < size) + throw new Error(`Incomplete read`); + else if (rc2 > size) + throw new Error(`Overread`); + const memory = this.libzip.HEAPU8.subarray(buffer, buffer + size); + const data = Buffer.from(memory); + return { data, compressionMethod }; + } finally { + this.libzip.fclose(file); + } + } finally { + this.libzip.free(buffer); + } + } + deleteEntry(index) { + const rc = this.libzip.delete(this.zip, index); + if (rc === -1) { + throw this.makeLibzipError(this.libzip.getError(this.zip)); + } + } + addDirectory(path) { + const index = this.libzip.dir.add(this.zip, path); + if (index === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + return index; + } + getBufferAndClose() { + try { + this.libzip.source.keep(this.lzSource); + if (this.libzip.close(this.zip) === -1) + throw this.makeLibzipError(this.libzip.getError(this.zip)); + if (this.libzip.source.open(this.lzSource) === -1) + throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); + if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_END) === -1) + throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); + const size = this.libzip.source.tell(this.lzSource); + if (size === -1) + throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); + if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_SET) === -1) + throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); + const buffer = this.libzip.malloc(size); + if (!buffer) + throw new Error(`Couldn't allocate enough memory`); + try { + const rc = this.libzip.source.read(this.lzSource, buffer, size); + if (rc === -1) + throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); + else if (rc < size) + throw new Error(`Incomplete read`); + else if (rc > size) + throw new Error(`Overread`); + let result = Buffer.from(this.libzip.HEAPU8.subarray(buffer, buffer + size)); + if (process.env.YARN_IS_TEST_ENV && process.env.YARN_ZIP_DATA_EPILOGUE) + result = Buffer.concat([result, Buffer.from(process.env.YARN_ZIP_DATA_EPILOGUE)]); + return result; + } finally { + this.libzip.free(buffer); + } + } finally { + this.libzip.source.close(this.lzSource); + this.libzip.source.free(this.lzSource); + } + } + allocateBuffer(content) { + if (!Buffer.isBuffer(content)) + content = Buffer.from(content); + const buffer = this.libzip.malloc(content.byteLength); + if (!buffer) + throw new Error(`Couldn't allocate enough memory`); + const heap = new Uint8Array(this.libzip.HEAPU8.buffer, buffer, content.byteLength); + heap.set(content); + return { buffer, byteLength: content.byteLength }; + } + allocateUnattachedSource(content) { + const error = this.libzip.struct.errorS(); + const { buffer, byteLength } = this.allocateBuffer(content); + const source = this.libzip.source.fromUnattachedBuffer(buffer, byteLength, 0, 1, error); + if (source === 0) { + this.libzip.free(error); + throw this.makeLibzipError(error); + } + return source; + } + allocateSource(content) { + const { buffer, byteLength } = this.allocateBuffer(content); + const source = this.libzip.source.fromBuffer(this.zip, buffer, byteLength, 0, 1); + if (source === 0) { + this.libzip.free(buffer); + throw this.makeLibzipError(this.libzip.getError(this.zip)); + } + return source; + } + discard() { + this.libzip.discard(this.zip); + } +} + +const ZIP_UNIX = 3; +const STORE = 0; +const DEFLATE = 8; +const DEFAULT_COMPRESSION_LEVEL = `mixed`; +function toUnixTimestamp(time) { + if (typeof time === `string` && String(+time) === time) + return +time; + if (typeof time === `number` && Number.isFinite(time)) { + if (time < 0) { + return Date.now() / 1e3; + } else { + return time; + } + } + if (nodeUtils.types.isDate(time)) + return time.getTime() / 1e3; + throw new Error(`Invalid time`); +} +function makeEmptyArchive() { + return Buffer.from([ + 80, + 75, + 5, + 6, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0, + 0 + ]); +} +class ZipFS extends BasePortableFakeFS { + baseFs; + path; + stats; + level; + zipImpl; + listings = /* @__PURE__ */ new Map(); + entries = /* @__PURE__ */ new Map(); + /** + * A cache of indices mapped to file sources. + * Populated by `setFileSource` calls. + * Required for supporting read after write. + */ + fileSources = /* @__PURE__ */ new Map(); + symlinkCount; + fds = /* @__PURE__ */ new Map(); + nextFd = 0; + ready = false; + readOnly = false; + constructor(source, opts = {}) { + super(); + if (opts.readOnly) + this.readOnly = true; + const pathOptions = opts; + this.level = typeof pathOptions.level !== `undefined` ? pathOptions.level : DEFAULT_COMPRESSION_LEVEL; + const ZipImplCls = opts.customZipImplementation ?? LibZipImpl; + if (typeof source === `string`) { + const { baseFs = new NodeFS() } = pathOptions; + this.baseFs = baseFs; + this.path = source; + } else { + this.path = null; + this.baseFs = null; + } + if (opts.stats) { + this.stats = opts.stats; + } else { + if (typeof source === `string`) { + try { + this.stats = this.baseFs.statSync(source); + } catch (error) { + if (error.code === `ENOENT` && pathOptions.create) { + this.stats = makeDefaultStats(); + } else { + throw error; + } + } + } else { + this.stats = makeDefaultStats(); + } + } + if (typeof source === `string`) { + if (opts.create) { + this.zipImpl = new ZipImplCls({ buffer: makeEmptyArchive(), readOnly: this.readOnly }); + } else { + this.zipImpl = new ZipImplCls({ path: source, baseFs: this.baseFs, readOnly: this.readOnly, size: this.stats.size }); + } + } else { + this.zipImpl = new ZipImplCls({ buffer: source ?? makeEmptyArchive(), readOnly: this.readOnly }); + } + this.listings.set(PortablePath.root, /* @__PURE__ */ new Set()); + const listings = this.zipImpl.getListings(); + for (let t = 0; t < listings.length; t++) { + const raw = listings[t]; + if (ppath.isAbsolute(raw)) + continue; + const p = ppath.resolve(PortablePath.root, raw); + this.registerEntry(p, t); + if (raw.endsWith(`/`)) { + this.registerListing(p); + } + } + this.symlinkCount = this.zipImpl.getSymlinkCount(); + this.ready = true; + } + getExtractHint(hints) { + for (const fileName of this.entries.keys()) { + const ext = this.pathUtils.extname(fileName); + if (hints.relevantExtensions.has(ext)) { + return true; + } + } + return false; + } + getAllFiles() { + return Array.from(this.entries.keys()); + } + getRealPath() { + if (!this.path) + throw new Error(`ZipFS don't have real paths when loaded from a buffer`); + return this.path; + } + prepareClose() { + if (!this.ready) + throw EBUSY(`archive closed, close`); + unwatchAllFiles(this); + } + getBufferAndClose() { + this.prepareClose(); + if (this.entries.size === 0) { + this.discardAndClose(); + return makeEmptyArchive(); + } + try { + return this.zipImpl.getBufferAndClose(); + } finally { + this.ready = false; + } + } + discardAndClose() { + this.prepareClose(); + this.zipImpl.discard(); + this.ready = false; + } + saveAndClose() { + if (!this.path || !this.baseFs) + throw new Error(`ZipFS cannot be saved and must be discarded when loaded from a buffer`); + if (this.readOnly) { + this.discardAndClose(); + return; + } + const newMode = this.baseFs.existsSync(this.path) || this.stats.mode === DEFAULT_MODE ? void 0 : this.stats.mode; + this.baseFs.writeFileSync(this.path, this.getBufferAndClose(), { mode: newMode }); + this.ready = false; + } + resolve(p) { + return ppath.resolve(PortablePath.root, p); + } + async openPromise(p, flags, mode) { + return this.openSync(p, flags, mode); + } + openSync(p, flags, mode) { + const fd = this.nextFd++; + this.fds.set(fd, { cursor: 0, p }); + return fd; + } + hasOpenFileHandles() { + return !!this.fds.size; + } + async opendirPromise(p, opts) { + return this.opendirSync(p, opts); + } + opendirSync(p, opts = {}) { + const resolvedP = this.resolveFilename(`opendir '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`opendir '${p}'`); + const directoryListing = this.listings.get(resolvedP); + if (!directoryListing) + throw ENOTDIR(`opendir '${p}'`); + const entries = [...directoryListing]; + const fd = this.openSync(resolvedP, `r`); + const onClose = () => { + this.closeSync(fd); + }; + return opendir(this, resolvedP, entries, { onClose }); + } + async readPromise(fd, buffer, offset, length, position) { + return this.readSync(fd, buffer, offset, length, position); + } + readSync(fd, buffer, offset = 0, length = buffer.byteLength, position = -1) { + const entry = this.fds.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`read`); + const realPosition = position === -1 || position === null ? entry.cursor : position; + const source = this.readFileSync(entry.p); + source.copy(buffer, offset, realPosition, realPosition + length); + const bytesRead = Math.max(0, Math.min(source.length - realPosition, length)); + if (position === -1 || position === null) + entry.cursor += bytesRead; + return bytesRead; + } + async writePromise(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.writeSync(fd, buffer, position); + } else { + return this.writeSync(fd, buffer, offset, length, position); + } + } + writeSync(fd, buffer, offset, length, position) { + const entry = this.fds.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`read`); + throw new Error(`Unimplemented`); + } + async closePromise(fd) { + return this.closeSync(fd); + } + closeSync(fd) { + const entry = this.fds.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`read`); + this.fds.delete(fd); + } + createReadStream(p, { encoding } = {}) { + if (p === null) + throw new Error(`Unimplemented`); + const fd = this.openSync(p, `r`); + const stream$1 = Object.assign( + new stream.PassThrough({ + emitClose: true, + autoDestroy: true, + destroy: (error, callback) => { + clearImmediate(immediate); + this.closeSync(fd); + callback(error); + } + }), + { + close() { + stream$1.destroy(); + }, + bytesRead: 0, + path: p, + // "This property is `true` if the underlying file has not been opened yet" + pending: false + } + ); + const immediate = setImmediate(async () => { + try { + const data = await this.readFilePromise(p, encoding); + stream$1.bytesRead = data.length; + stream$1.end(data); + } catch (error) { + stream$1.destroy(error); + } + }); + return stream$1; + } + createWriteStream(p, { encoding } = {}) { + if (this.readOnly) + throw EROFS(`open '${p}'`); + if (p === null) + throw new Error(`Unimplemented`); + const chunks = []; + const fd = this.openSync(p, `w`); + const stream$1 = Object.assign( + new stream.PassThrough({ + autoDestroy: true, + emitClose: true, + destroy: (error, callback) => { + try { + if (error) { + callback(error); + } else { + this.writeFileSync(p, Buffer.concat(chunks), encoding); + callback(null); + } + } catch (err) { + callback(err); + } finally { + this.closeSync(fd); + } + } + }), + { + close() { + stream$1.destroy(); + }, + bytesWritten: 0, + path: p, + // "This property is `true` if the underlying file has not been opened yet" + pending: false + } + ); + stream$1.on(`data`, (chunk) => { + const chunkBuffer = Buffer.from(chunk); + stream$1.bytesWritten += chunkBuffer.length; + chunks.push(chunkBuffer); + }); + return stream$1; + } + async realpathPromise(p) { + return this.realpathSync(p); + } + realpathSync(p) { + const resolvedP = this.resolveFilename(`lstat '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`lstat '${p}'`); + return resolvedP; + } + async existsPromise(p) { + return this.existsSync(p); + } + existsSync(p) { + if (!this.ready) + throw EBUSY(`archive closed, existsSync '${p}'`); + if (this.symlinkCount === 0) { + const resolvedP2 = ppath.resolve(PortablePath.root, p); + return this.entries.has(resolvedP2) || this.listings.has(resolvedP2); + } + let resolvedP; + try { + resolvedP = this.resolveFilename(`stat '${p}'`, p, void 0, false); + } catch { + return false; + } + if (resolvedP === void 0) + return false; + return this.entries.has(resolvedP) || this.listings.has(resolvedP); + } + async accessPromise(p, mode) { + return this.accessSync(p, mode); + } + accessSync(p, mode = fs.constants.F_OK) { + const resolvedP = this.resolveFilename(`access '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`access '${p}'`); + if (this.readOnly && mode & fs.constants.W_OK) { + throw EROFS(`access '${p}'`); + } + } + async statPromise(p, opts = { bigint: false }) { + if (opts.bigint) + return this.statSync(p, { bigint: true }); + return this.statSync(p); + } + statSync(p, opts = { bigint: false, throwIfNoEntry: true }) { + const resolvedP = this.resolveFilename(`stat '${p}'`, p, void 0, opts.throwIfNoEntry); + if (resolvedP === void 0) + return void 0; + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) { + if (opts.throwIfNoEntry === false) + return void 0; + throw ENOENT(`stat '${p}'`); + } + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`stat '${p}'`); + return this.statImpl(`stat '${p}'`, resolvedP, opts); + } + async fstatPromise(fd, opts) { + return this.fstatSync(fd, opts); + } + fstatSync(fd, opts) { + const entry = this.fds.get(fd); + if (typeof entry === `undefined`) + throw EBADF(`fstatSync`); + const { p } = entry; + const resolvedP = this.resolveFilename(`stat '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`stat '${p}'`); + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`stat '${p}'`); + return this.statImpl(`fstat '${p}'`, resolvedP, opts); + } + async lstatPromise(p, opts = { bigint: false }) { + if (opts.bigint) + return this.lstatSync(p, { bigint: true }); + return this.lstatSync(p); + } + lstatSync(p, opts = { bigint: false, throwIfNoEntry: true }) { + const resolvedP = this.resolveFilename(`lstat '${p}'`, p, false, opts.throwIfNoEntry); + if (resolvedP === void 0) + return void 0; + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) { + if (opts.throwIfNoEntry === false) + return void 0; + throw ENOENT(`lstat '${p}'`); + } + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`lstat '${p}'`); + return this.statImpl(`lstat '${p}'`, resolvedP, opts); + } + statImpl(reason, p, opts = {}) { + const entry = this.entries.get(p); + if (typeof entry !== `undefined`) { + const stat = this.zipImpl.stat(entry); + const crc = stat.crc; + const size = stat.size; + const mtimeMs = stat.mtime * 1e3; + const uid = this.stats.uid; + const gid = this.stats.gid; + const blksize = 512; + const blocks = Math.ceil(stat.size / blksize); + const atimeMs = mtimeMs; + const birthtimeMs = mtimeMs; + const ctimeMs = mtimeMs; + const atime = new Date(atimeMs); + const birthtime = new Date(birthtimeMs); + const ctime = new Date(ctimeMs); + const mtime = new Date(mtimeMs); + const type = this.listings.has(p) ? fs.constants.S_IFDIR : this.isSymbolicLink(entry) ? fs.constants.S_IFLNK : fs.constants.S_IFREG; + const defaultMode = type === fs.constants.S_IFDIR ? 493 : 420; + const mode = type | this.getUnixMode(entry, defaultMode) & 511; + const statInstance = Object.assign(new StatEntry(), { uid, gid, size, blksize, blocks, atime, birthtime, ctime, mtime, atimeMs, birthtimeMs, ctimeMs, mtimeMs, mode, crc }); + return opts.bigint === true ? convertToBigIntStats(statInstance) : statInstance; + } + if (this.listings.has(p)) { + const uid = this.stats.uid; + const gid = this.stats.gid; + const size = 0; + const blksize = 512; + const blocks = 0; + const atimeMs = this.stats.mtimeMs; + const birthtimeMs = this.stats.mtimeMs; + const ctimeMs = this.stats.mtimeMs; + const mtimeMs = this.stats.mtimeMs; + const atime = new Date(atimeMs); + const birthtime = new Date(birthtimeMs); + const ctime = new Date(ctimeMs); + const mtime = new Date(mtimeMs); + const mode = fs.constants.S_IFDIR | 493; + const crc = 0; + const statInstance = Object.assign(new StatEntry(), { uid, gid, size, blksize, blocks, atime, birthtime, ctime, mtime, atimeMs, birthtimeMs, ctimeMs, mtimeMs, mode, crc }); + return opts.bigint === true ? convertToBigIntStats(statInstance) : statInstance; + } + throw new Error(`Unreachable`); + } + getUnixMode(index, defaultMode) { + const [opsys, attributes] = this.zipImpl.getExternalAttributes(index); + if (opsys !== ZIP_UNIX) + return defaultMode; + return attributes >>> 16; + } + registerListing(p) { + const existingListing = this.listings.get(p); + if (existingListing) + return existingListing; + const parentListing = this.registerListing(ppath.dirname(p)); + parentListing.add(ppath.basename(p)); + const newListing = /* @__PURE__ */ new Set(); + this.listings.set(p, newListing); + return newListing; + } + registerEntry(p, index) { + const parentListing = this.registerListing(ppath.dirname(p)); + parentListing.add(ppath.basename(p)); + this.entries.set(p, index); + } + unregisterListing(p) { + this.listings.delete(p); + const parentListing = this.listings.get(ppath.dirname(p)); + parentListing?.delete(ppath.basename(p)); + } + unregisterEntry(p) { + this.unregisterListing(p); + const entry = this.entries.get(p); + this.entries.delete(p); + if (typeof entry === `undefined`) + return; + this.fileSources.delete(entry); + if (this.isSymbolicLink(entry)) { + this.symlinkCount--; + } + } + deleteEntry(p, index) { + this.unregisterEntry(p); + this.zipImpl.deleteEntry(index); + } + resolveFilename(reason, p, resolveLastComponent = true, throwIfNoEntry = true) { + if (!this.ready) + throw EBUSY(`archive closed, ${reason}`); + let resolvedP = ppath.resolve(PortablePath.root, p); + if (resolvedP === `/`) + return PortablePath.root; + const fileIndex = this.entries.get(resolvedP); + if (resolveLastComponent && fileIndex !== void 0) { + if (this.symlinkCount !== 0 && this.isSymbolicLink(fileIndex)) { + const target = this.getFileSource(fileIndex).toString(); + return this.resolveFilename(reason, ppath.resolve(ppath.dirname(resolvedP), target), true, throwIfNoEntry); + } else { + return resolvedP; + } + } + while (true) { + const parentP = this.resolveFilename(reason, ppath.dirname(resolvedP), true, throwIfNoEntry); + if (parentP === void 0) + return parentP; + const isDir = this.listings.has(parentP); + const doesExist = this.entries.has(parentP); + if (!isDir && !doesExist) { + if (throwIfNoEntry === false) + return void 0; + throw ENOENT(reason); + } + if (!isDir) + throw ENOTDIR(reason); + resolvedP = ppath.resolve(parentP, ppath.basename(resolvedP)); + if (!resolveLastComponent || this.symlinkCount === 0) + break; + const index = this.zipImpl.locate(resolvedP.slice(1)); + if (index === -1) + break; + if (this.isSymbolicLink(index)) { + const target = this.getFileSource(index).toString(); + resolvedP = ppath.resolve(ppath.dirname(resolvedP), target); + } else { + break; + } + } + return resolvedP; + } + setFileSource(p, content) { + const buffer = Buffer.isBuffer(content) ? content : Buffer.from(content); + const target = ppath.relative(PortablePath.root, p); + let compression = null; + if (this.level !== `mixed`) { + const method = this.level === 0 ? STORE : DEFLATE; + compression = [method, this.level]; + } + const newIndex = this.zipImpl.setFileSource(target, compression, buffer); + this.fileSources.set(newIndex, buffer); + return newIndex; + } + isSymbolicLink(index) { + if (this.symlinkCount === 0) + return false; + const [opsys, attrs] = this.zipImpl.getExternalAttributes(index); + if (opsys !== ZIP_UNIX) + return false; + const attributes = attrs >>> 16; + return (attributes & fs.constants.S_IFMT) === fs.constants.S_IFLNK; + } + getFileSource(index, opts = { asyncDecompress: false }) { + const cachedFileSource = this.fileSources.get(index); + if (typeof cachedFileSource !== `undefined`) + return cachedFileSource; + const { data, compressionMethod } = this.zipImpl.getFileSource(index); + if (compressionMethod === STORE) { + if (this.zipImpl.filesShouldBeCached) + this.fileSources.set(index, data); + return data; + } else if (compressionMethod === DEFLATE) { + if (opts.asyncDecompress) { + return new Promise((resolve, reject) => { + zlib__default.default.inflateRaw(data, (error, result) => { + if (error) { + reject(error); + } else { + if (this.zipImpl.filesShouldBeCached) + this.fileSources.set(index, result); + resolve(result); + } + }); + }); + } else { + const decompressedData = zlib__default.default.inflateRawSync(data); + if (this.zipImpl.filesShouldBeCached) + this.fileSources.set(index, decompressedData); + return decompressedData; + } + } else { + throw new Error(`Unsupported compression method: ${compressionMethod}`); + } + } + async fchmodPromise(fd, mask) { + return this.chmodPromise(this.fdToPath(fd, `fchmod`), mask); + } + fchmodSync(fd, mask) { + return this.chmodSync(this.fdToPath(fd, `fchmodSync`), mask); + } + async chmodPromise(p, mask) { + return this.chmodSync(p, mask); + } + chmodSync(p, mask) { + if (this.readOnly) + throw EROFS(`chmod '${p}'`); + mask &= 493; + const resolvedP = this.resolveFilename(`chmod '${p}'`, p, false); + const entry = this.entries.get(resolvedP); + if (typeof entry === `undefined`) + throw new Error(`Assertion failed: The entry should have been registered (${resolvedP})`); + const oldMod = this.getUnixMode(entry, fs.constants.S_IFREG | 0); + const newMod = oldMod & ~511 | mask; + this.zipImpl.setExternalAttributes(entry, ZIP_UNIX, newMod << 16); + } + async fchownPromise(fd, uid, gid) { + return this.chownPromise(this.fdToPath(fd, `fchown`), uid, gid); + } + fchownSync(fd, uid, gid) { + return this.chownSync(this.fdToPath(fd, `fchownSync`), uid, gid); + } + async chownPromise(p, uid, gid) { + return this.chownSync(p, uid, gid); + } + chownSync(p, uid, gid) { + throw new Error(`Unimplemented`); + } + async renamePromise(oldP, newP) { + return this.renameSync(oldP, newP); + } + renameSync(oldP, newP) { + throw new Error(`Unimplemented`); + } + async copyFilePromise(sourceP, destP, flags) { + const { indexSource, indexDest, resolvedDestP } = this.prepareCopyFile(sourceP, destP, flags); + const source = await this.getFileSource(indexSource, { asyncDecompress: true }); + const newIndex = this.setFileSource(resolvedDestP, source); + if (newIndex !== indexDest) { + this.registerEntry(resolvedDestP, newIndex); + } + } + copyFileSync(sourceP, destP, flags = 0) { + const { indexSource, indexDest, resolvedDestP } = this.prepareCopyFile(sourceP, destP, flags); + const source = this.getFileSource(indexSource); + const newIndex = this.setFileSource(resolvedDestP, source); + if (newIndex !== indexDest) { + this.registerEntry(resolvedDestP, newIndex); + } + } + prepareCopyFile(sourceP, destP, flags = 0) { + if (this.readOnly) + throw EROFS(`copyfile '${sourceP} -> '${destP}'`); + if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) + throw ENOSYS(`unsupported clone operation`, `copyfile '${sourceP}' -> ${destP}'`); + const resolvedSourceP = this.resolveFilename(`copyfile '${sourceP} -> ${destP}'`, sourceP); + const indexSource = this.entries.get(resolvedSourceP); + if (typeof indexSource === `undefined`) + throw EINVAL(`copyfile '${sourceP}' -> '${destP}'`); + const resolvedDestP = this.resolveFilename(`copyfile '${sourceP}' -> ${destP}'`, destP); + const indexDest = this.entries.get(resolvedDestP); + if ((flags & (fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE_FORCE)) !== 0 && typeof indexDest !== `undefined`) + throw EEXIST(`copyfile '${sourceP}' -> '${destP}'`); + return { + indexSource, + resolvedDestP, + indexDest + }; + } + async appendFilePromise(p, content, opts) { + if (this.readOnly) + throw EROFS(`open '${p}'`); + if (typeof opts === `undefined`) + opts = { flag: `a` }; + else if (typeof opts === `string`) + opts = { flag: `a`, encoding: opts }; + else if (typeof opts.flag === `undefined`) + opts = { flag: `a`, ...opts }; + return this.writeFilePromise(p, content, opts); + } + appendFileSync(p, content, opts = {}) { + if (this.readOnly) + throw EROFS(`open '${p}'`); + if (typeof opts === `undefined`) + opts = { flag: `a` }; + else if (typeof opts === `string`) + opts = { flag: `a`, encoding: opts }; + else if (typeof opts.flag === `undefined`) + opts = { flag: `a`, ...opts }; + return this.writeFileSync(p, content, opts); + } + fdToPath(fd, reason) { + const path = this.fds.get(fd)?.p; + if (typeof path === `undefined`) + throw EBADF(reason); + return path; + } + async writeFilePromise(p, content, opts) { + const { encoding, mode, index, resolvedP } = this.prepareWriteFile(p, opts); + if (index !== void 0 && typeof opts === `object` && opts.flag && opts.flag.includes(`a`)) + content = Buffer.concat([await this.getFileSource(index, { asyncDecompress: true }), Buffer.from(content)]); + if (encoding !== null) + content = content.toString(encoding); + const newIndex = this.setFileSource(resolvedP, content); + if (newIndex !== index) + this.registerEntry(resolvedP, newIndex); + if (mode !== null) { + await this.chmodPromise(resolvedP, mode); + } + } + writeFileSync(p, content, opts) { + const { encoding, mode, index, resolvedP } = this.prepareWriteFile(p, opts); + if (index !== void 0 && typeof opts === `object` && opts.flag && opts.flag.includes(`a`)) + content = Buffer.concat([this.getFileSource(index), Buffer.from(content)]); + if (encoding !== null) + content = content.toString(encoding); + const newIndex = this.setFileSource(resolvedP, content); + if (newIndex !== index) + this.registerEntry(resolvedP, newIndex); + if (mode !== null) { + this.chmodSync(resolvedP, mode); + } + } + prepareWriteFile(p, opts) { + if (typeof p === `number`) + p = this.fdToPath(p, `read`); + if (this.readOnly) + throw EROFS(`open '${p}'`); + const resolvedP = this.resolveFilename(`open '${p}'`, p); + if (this.listings.has(resolvedP)) + throw EISDIR(`open '${p}'`); + let encoding = null, mode = null; + if (typeof opts === `string`) { + encoding = opts; + } else if (typeof opts === `object`) { + ({ + encoding = null, + mode = null + } = opts); + } + const index = this.entries.get(resolvedP); + return { + encoding, + mode, + resolvedP, + index + }; + } + async unlinkPromise(p) { + return this.unlinkSync(p); + } + unlinkSync(p) { + if (this.readOnly) + throw EROFS(`unlink '${p}'`); + const resolvedP = this.resolveFilename(`unlink '${p}'`, p); + if (this.listings.has(resolvedP)) + throw EISDIR(`unlink '${p}'`); + const index = this.entries.get(resolvedP); + if (typeof index === `undefined`) + throw EINVAL(`unlink '${p}'`); + this.deleteEntry(resolvedP, index); + } + async utimesPromise(p, atime, mtime) { + return this.utimesSync(p, atime, mtime); + } + utimesSync(p, atime, mtime) { + if (this.readOnly) + throw EROFS(`utimes '${p}'`); + const resolvedP = this.resolveFilename(`utimes '${p}'`, p); + this.utimesImpl(resolvedP, mtime); + } + async lutimesPromise(p, atime, mtime) { + return this.lutimesSync(p, atime, mtime); + } + lutimesSync(p, atime, mtime) { + if (this.readOnly) + throw EROFS(`lutimes '${p}'`); + const resolvedP = this.resolveFilename(`utimes '${p}'`, p, false); + this.utimesImpl(resolvedP, mtime); + } + utimesImpl(resolvedP, mtime) { + if (this.listings.has(resolvedP)) { + if (!this.entries.has(resolvedP)) + this.hydrateDirectory(resolvedP); + } + const entry = this.entries.get(resolvedP); + if (entry === void 0) + throw new Error(`Unreachable`); + this.zipImpl.setMtime(entry, toUnixTimestamp(mtime)); + } + async mkdirPromise(p, opts) { + return this.mkdirSync(p, opts); + } + mkdirSync(p, { mode = 493, recursive = false } = {}) { + if (recursive) + return this.mkdirpSync(p, { chmod: mode }); + if (this.readOnly) + throw EROFS(`mkdir '${p}'`); + const resolvedP = this.resolveFilename(`mkdir '${p}'`, p); + if (this.entries.has(resolvedP) || this.listings.has(resolvedP)) + throw EEXIST(`mkdir '${p}'`); + this.hydrateDirectory(resolvedP); + this.chmodSync(resolvedP, mode); + return void 0; + } + async rmdirPromise(p, opts) { + return this.rmdirSync(p, opts); + } + rmdirSync(p, { recursive = false } = {}) { + if (this.readOnly) + throw EROFS(`rmdir '${p}'`); + if (recursive) { + this.removeSync(p); + return; + } + const resolvedP = this.resolveFilename(`rmdir '${p}'`, p); + const directoryListing = this.listings.get(resolvedP); + if (!directoryListing) + throw ENOTDIR(`rmdir '${p}'`); + if (directoryListing.size > 0) + throw ENOTEMPTY(`rmdir '${p}'`); + const index = this.entries.get(resolvedP); + if (typeof index === `undefined`) + throw EINVAL(`rmdir '${p}'`); + this.deleteEntry(p, index); + } + async rmPromise(p, opts) { + return this.rmSync(p, opts); + } + rmSync(p, { recursive = false } = {}) { + if (this.readOnly) + throw EROFS(`rm '${p}'`); + if (recursive) { + this.removeSync(p); + return; + } + const resolvedP = this.resolveFilename(`rm '${p}'`, p); + const directoryListing = this.listings.get(resolvedP); + if (!directoryListing) + throw ENOTDIR(`rm '${p}'`); + if (directoryListing.size > 0) + throw ENOTEMPTY(`rm '${p}'`); + const index = this.entries.get(resolvedP); + if (typeof index === `undefined`) + throw EINVAL(`rm '${p}'`); + this.deleteEntry(p, index); + } + hydrateDirectory(resolvedP) { + const index = this.zipImpl.addDirectory(ppath.relative(PortablePath.root, resolvedP)); + this.registerListing(resolvedP); + this.registerEntry(resolvedP, index); + return index; + } + async linkPromise(existingP, newP) { + return this.linkSync(existingP, newP); + } + linkSync(existingP, newP) { + throw EOPNOTSUPP(`link '${existingP}' -> '${newP}'`); + } + async symlinkPromise(target, p) { + return this.symlinkSync(target, p); + } + symlinkSync(target, p) { + if (this.readOnly) + throw EROFS(`symlink '${target}' -> '${p}'`); + const resolvedP = this.resolveFilename(`symlink '${target}' -> '${p}'`, p); + if (this.listings.has(resolvedP)) + throw EISDIR(`symlink '${target}' -> '${p}'`); + if (this.entries.has(resolvedP)) + throw EEXIST(`symlink '${target}' -> '${p}'`); + const index = this.setFileSource(resolvedP, target); + this.registerEntry(resolvedP, index); + this.zipImpl.setExternalAttributes(index, ZIP_UNIX, (fs.constants.S_IFLNK | 511) << 16); + this.symlinkCount += 1; + } + async readFilePromise(p, encoding) { + if (typeof encoding === `object`) + encoding = encoding ? encoding.encoding : void 0; + const data = await this.readFileBuffer(p, { asyncDecompress: true }); + return encoding ? data.toString(encoding) : data; + } + readFileSync(p, encoding) { + if (typeof encoding === `object`) + encoding = encoding ? encoding.encoding : void 0; + const data = this.readFileBuffer(p); + return encoding ? data.toString(encoding) : data; + } + readFileBuffer(p, opts = { asyncDecompress: false }) { + if (typeof p === `number`) + p = this.fdToPath(p, `read`); + const resolvedP = this.resolveFilename(`open '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`open '${p}'`); + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`open '${p}'`); + if (this.listings.has(resolvedP)) + throw EISDIR(`read`); + const entry = this.entries.get(resolvedP); + if (entry === void 0) + throw new Error(`Unreachable`); + return this.getFileSource(entry, opts); + } + async readdirPromise(p, opts) { + return this.readdirSync(p, opts); + } + readdirSync(p, opts) { + const resolvedP = this.resolveFilename(`scandir '${p}'`, p); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`scandir '${p}'`); + const directoryListing = this.listings.get(resolvedP); + if (!directoryListing) + throw ENOTDIR(`scandir '${p}'`); + if (opts?.recursive) { + if (opts?.withFileTypes) { + const entries = Array.from(directoryListing, (name) => { + return Object.assign(this.statImpl(`lstat`, ppath.join(p, name)), { + name, + path: PortablePath.dot + }); + }); + for (const entry of entries) { + if (!entry.isDirectory()) + continue; + const subPath = ppath.join(entry.path, entry.name); + const subListing = this.listings.get(ppath.join(resolvedP, subPath)); + for (const child of subListing) { + entries.push(Object.assign(this.statImpl(`lstat`, ppath.join(p, subPath, child)), { + name: child, + path: subPath + })); + } + } + return entries; + } else { + const entries = [...directoryListing]; + for (const subPath of entries) { + const subListing = this.listings.get(ppath.join(resolvedP, subPath)); + if (typeof subListing === `undefined`) + continue; + for (const child of subListing) { + entries.push(ppath.join(subPath, child)); + } + } + return entries; + } + } else if (opts?.withFileTypes) { + return Array.from(directoryListing, (name) => { + return Object.assign(this.statImpl(`lstat`, ppath.join(p, name)), { + name, + path: void 0 + }); + }); + } else { + return [...directoryListing]; + } + } + async readlinkPromise(p) { + const entry = this.prepareReadlink(p); + return (await this.getFileSource(entry, { asyncDecompress: true })).toString(); + } + readlinkSync(p) { + const entry = this.prepareReadlink(p); + return this.getFileSource(entry).toString(); + } + prepareReadlink(p) { + const resolvedP = this.resolveFilename(`readlink '${p}'`, p, false); + if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) + throw ENOENT(`readlink '${p}'`); + if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) + throw ENOTDIR(`open '${p}'`); + if (this.listings.has(resolvedP)) + throw EINVAL(`readlink '${p}'`); + const entry = this.entries.get(resolvedP); + if (entry === void 0) + throw new Error(`Unreachable`); + if (!this.isSymbolicLink(entry)) + throw EINVAL(`readlink '${p}'`); + return entry; + } + async truncatePromise(p, len = 0) { + const resolvedP = this.resolveFilename(`open '${p}'`, p); + const index = this.entries.get(resolvedP); + if (typeof index === `undefined`) + throw EINVAL(`open '${p}'`); + const source = await this.getFileSource(index, { asyncDecompress: true }); + const truncated = Buffer.alloc(len, 0); + source.copy(truncated); + return await this.writeFilePromise(p, truncated); + } + truncateSync(p, len = 0) { + const resolvedP = this.resolveFilename(`open '${p}'`, p); + const index = this.entries.get(resolvedP); + if (typeof index === `undefined`) + throw EINVAL(`open '${p}'`); + const source = this.getFileSource(index); + const truncated = Buffer.alloc(len, 0); + source.copy(truncated); + return this.writeFileSync(p, truncated); + } + async ftruncatePromise(fd, len) { + return this.truncatePromise(this.fdToPath(fd, `ftruncate`), len); + } + ftruncateSync(fd, len) { + return this.truncateSync(this.fdToPath(fd, `ftruncateSync`), len); + } + watch(p, a, b) { + let persistent; + switch (typeof a) { + case `function`: + case `string`: + case `undefined`: + { + persistent = true; + } + break; + default: + { + ({ persistent = true } = a); + } + break; + } + if (!persistent) + return { on: () => { + }, close: () => { + } }; + const interval = setInterval(() => { + }, 24 * 60 * 60 * 1e3); + return { + on: () => { + }, + close: () => { + clearInterval(interval); + } + }; + } + watchFile(p, a, b) { + const resolvedP = ppath.resolve(PortablePath.root, p); + return watchFile(this, resolvedP, a, b); + } + unwatchFile(p, cb) { + const resolvedP = ppath.resolve(PortablePath.root, p); + return unwatchFile(this, resolvedP, cb); + } +} + +const SIGNATURE = { + CENTRAL_DIRECTORY: 33639248, + END_OF_CENTRAL_DIRECTORY: 101010256 +}; +const noCommentCDSize = 22; +class JsZipImpl { + fd; + baseFs; + entries; + filesShouldBeCached = false; + constructor(opts) { + if (`buffer` in opts) + throw new Error(`Buffer based zip archives are not supported`); + if (!opts.readOnly) + throw new Error(`Writable zip archives are not supported`); + this.baseFs = opts.baseFs; + this.fd = this.baseFs.openSync(opts.path, `r`); + try { + this.entries = JsZipImpl.readZipSync(this.fd, this.baseFs, opts.size); + } catch (error) { + this.baseFs.closeSync(this.fd); + this.fd = `closed`; + throw error; + } + } + static readZipSync(fd, baseFs, fileSize) { + if (fileSize < noCommentCDSize) + throw new Error(`Invalid ZIP file: EOCD not found`); + let eocdOffset = -1; + let eocdBuffer = Buffer.alloc(noCommentCDSize); + baseFs.readSync( + fd, + eocdBuffer, + 0, + noCommentCDSize, + fileSize - noCommentCDSize + ); + if (eocdBuffer.readUInt32LE(0) === SIGNATURE.END_OF_CENTRAL_DIRECTORY) { + eocdOffset = 0; + } else { + const bufferSize = Math.min(65557, fileSize); + eocdBuffer = Buffer.alloc(bufferSize); + baseFs.readSync( + fd, + eocdBuffer, + 0, + bufferSize, + Math.max(0, fileSize - bufferSize) + ); + for (let i = eocdBuffer.length - 4; i >= 0; i--) { + if (eocdBuffer.readUInt32LE(i) === SIGNATURE.END_OF_CENTRAL_DIRECTORY) { + eocdOffset = i; + break; + } + } + if (eocdOffset === -1) { + throw new Error(`Not a zip archive`); + } + } + const totalEntries = eocdBuffer.readUInt16LE(eocdOffset + 10); + const centralDirSize = eocdBuffer.readUInt32LE(eocdOffset + 12); + const centralDirOffset = eocdBuffer.readUInt32LE(eocdOffset + 16); + const commentLength = eocdBuffer.readUInt16LE(eocdOffset + 20); + if (eocdOffset + commentLength + noCommentCDSize > eocdBuffer.length) + throw new Error(`Zip archive inconsistent`); + if (totalEntries == 65535 || centralDirSize == 4294967295 || centralDirOffset == 4294967295) + throw new Error(`Zip 64 is not supported`); + if (centralDirSize > fileSize) + throw new Error(`Zip archive inconsistent`); + if (totalEntries > centralDirSize / 46) + throw new Error(`Zip archive inconsistent`); + const cdBuffer = Buffer.alloc(centralDirSize); + if (baseFs.readSync(fd, cdBuffer, 0, cdBuffer.length, centralDirOffset) !== cdBuffer.length) + throw new Error(`Zip archive inconsistent`); + const entries = []; + let offset = 0; + let index = 0; + let sumCompressedSize = 0; + while (index < totalEntries) { + if (offset + 46 > cdBuffer.length) + throw new Error(`Zip archive inconsistent`); + if (cdBuffer.readUInt32LE(offset) !== SIGNATURE.CENTRAL_DIRECTORY) + throw new Error(`Zip archive inconsistent`); + const versionMadeBy = cdBuffer.readUInt16LE(offset + 4); + const os = versionMadeBy >>> 8; + const flags = cdBuffer.readUInt16LE(offset + 8); + if ((flags & 1) !== 0) + throw new Error(`Encrypted zip files are not supported`); + const compressionMethod = cdBuffer.readUInt16LE(offset + 10); + const crc = cdBuffer.readUInt32LE(offset + 16); + const nameLength = cdBuffer.readUInt16LE(offset + 28); + const extraLength = cdBuffer.readUInt16LE(offset + 30); + const commentLength2 = cdBuffer.readUInt16LE(offset + 32); + const localHeaderOffset = cdBuffer.readUInt32LE(offset + 42); + const name = cdBuffer.toString(`utf8`, offset + 46, offset + 46 + nameLength).replaceAll(`\0`, ` `); + if (name.includes(`\0`)) + throw new Error(`Invalid ZIP file`); + const compressedSize = cdBuffer.readUInt32LE(offset + 20); + const externalAttributes = cdBuffer.readUInt32LE(offset + 38); + entries.push({ + name, + os, + mtime: SAFE_TIME, + //we dont care, + crc, + compressionMethod, + isSymbolicLink: os === ZIP_UNIX && (externalAttributes >>> 16 & S_IFMT) === S_IFLNK, + size: cdBuffer.readUInt32LE(offset + 24), + compressedSize, + externalAttributes, + localHeaderOffset + }); + sumCompressedSize += compressedSize; + index += 1; + offset += 46 + nameLength + extraLength + commentLength2; + } + if (sumCompressedSize > fileSize) + throw new Error(`Zip archive inconsistent`); + if (offset !== cdBuffer.length) + throw new Error(`Zip archive inconsistent`); + return entries; + } + getExternalAttributes(index) { + const entry = this.entries[index]; + return [entry.os, entry.externalAttributes]; + } + getListings() { + return this.entries.map((e) => e.name); + } + getSymlinkCount() { + let count = 0; + for (const entry of this.entries) + if (entry.isSymbolicLink) + count += 1; + return count; + } + stat(index) { + const entry = this.entries[index]; + return { + crc: entry.crc, + mtime: entry.mtime, + size: entry.size + }; + } + locate(name) { + for (let ind = 0; ind < this.entries.length; ind++) + if (this.entries[ind].name === name) + return ind; + return -1; + } + getFileSource(index) { + if (this.fd === `closed`) + throw new Error(`ZIP file is closed`); + const entry = this.entries[index]; + const localHeaderBuf = Buffer.alloc(30); + this.baseFs.readSync( + this.fd, + localHeaderBuf, + 0, + localHeaderBuf.length, + entry.localHeaderOffset + ); + const nameLength = localHeaderBuf.readUInt16LE(26); + const extraLength = localHeaderBuf.readUInt16LE(28); + const buffer = Buffer.alloc(entry.compressedSize); + if (this.baseFs.readSync(this.fd, buffer, 0, entry.compressedSize, entry.localHeaderOffset + 30 + nameLength + extraLength) !== entry.compressedSize) + throw new Error(`Invalid ZIP file`); + return { data: buffer, compressionMethod: entry.compressionMethod }; + } + discard() { + if (this.fd !== `closed`) { + this.baseFs.closeSync(this.fd); + this.fd = `closed`; + } + } + addDirectory(path) { + throw new Error(`Not implemented`); + } + deleteEntry(index) { + throw new Error(`Not implemented`); + } + setMtime(index, mtime) { + throw new Error(`Not implemented`); + } + getBufferAndClose() { + throw new Error(`Not implemented`); + } + setFileSource(target, compression, buffer) { + throw new Error(`Not implemented`); + } + setExternalAttributes(index, opsys, attributes) { + throw new Error(`Not implemented`); + } +} + +setFactory(() => { + const emZip = createModule(); + return makeInterface(emZip); +}); + +var ErrorCode = /* @__PURE__ */ ((ErrorCode2) => { + ErrorCode2["API_ERROR"] = `API_ERROR`; + ErrorCode2["BUILTIN_NODE_RESOLUTION_FAILED"] = `BUILTIN_NODE_RESOLUTION_FAILED`; + ErrorCode2["EXPORTS_RESOLUTION_FAILED"] = `EXPORTS_RESOLUTION_FAILED`; + ErrorCode2["MISSING_DEPENDENCY"] = `MISSING_DEPENDENCY`; + ErrorCode2["MISSING_PEER_DEPENDENCY"] = `MISSING_PEER_DEPENDENCY`; + ErrorCode2["QUALIFIED_PATH_RESOLUTION_FAILED"] = `QUALIFIED_PATH_RESOLUTION_FAILED`; + ErrorCode2["INTERNAL"] = `INTERNAL`; + ErrorCode2["UNDECLARED_DEPENDENCY"] = `UNDECLARED_DEPENDENCY`; + ErrorCode2["UNSUPPORTED"] = `UNSUPPORTED`; + return ErrorCode2; +})(ErrorCode || {}); +const MODULE_NOT_FOUND_ERRORS = /* @__PURE__ */ new Set([ + "BUILTIN_NODE_RESOLUTION_FAILED" /* BUILTIN_NODE_RESOLUTION_FAILED */, + "MISSING_DEPENDENCY" /* MISSING_DEPENDENCY */, + "MISSING_PEER_DEPENDENCY" /* MISSING_PEER_DEPENDENCY */, + "QUALIFIED_PATH_RESOLUTION_FAILED" /* QUALIFIED_PATH_RESOLUTION_FAILED */, + "UNDECLARED_DEPENDENCY" /* UNDECLARED_DEPENDENCY */ +]); +function makeError(pnpCode, message, data = {}, code) { + code ??= MODULE_NOT_FOUND_ERRORS.has(pnpCode) ? `MODULE_NOT_FOUND` : pnpCode; + const propertySpec = { + configurable: true, + writable: true, + enumerable: false + }; + return Object.defineProperties(new Error(message), { + code: { + ...propertySpec, + value: code + }, + pnpCode: { + ...propertySpec, + value: pnpCode + }, + data: { + ...propertySpec, + value: data + } + }); +} +function getIssuerModule(parent) { + let issuer = parent; + while (issuer && (issuer.id === `[eval]` || issuer.id === `` || !issuer.filename)) + issuer = issuer.parent; + return issuer || null; +} +function getPathForDisplay(p) { + return npath.normalize(npath.fromPortablePath(p)); +} + +const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); +const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13; + +function readPackageScope(checkPath) { + const rootSeparatorIndex = checkPath.indexOf(npath.sep); + let separatorIndex; + do { + separatorIndex = checkPath.lastIndexOf(npath.sep); + checkPath = checkPath.slice(0, separatorIndex); + if (checkPath.endsWith(`${npath.sep}node_modules`)) + return false; + const pjson = readPackage(checkPath + npath.sep); + if (pjson) { + return { + data: pjson, + path: checkPath + }; + } + } while (separatorIndex > rootSeparatorIndex); + return false; +} +function readPackage(requestPath) { + const jsonPath = npath.resolve(requestPath, `package.json`); + if (!fs__default.default.existsSync(jsonPath)) + return null; + return JSON.parse(fs__default.default.readFileSync(jsonPath, `utf8`)); +} +function ERR_REQUIRE_ESM(filename, parentPath = null) { + const basename = parentPath && path__default.default.basename(filename) === path__default.default.basename(parentPath) ? filename : path__default.default.basename(filename); + const msg = `require() of ES Module ${filename}${parentPath ? ` from ${parentPath}` : ``} not supported. +Instead change the require of ${basename} in ${parentPath} to a dynamic import() which is available in all CommonJS modules.`; + const err = new Error(msg); + err.code = `ERR_REQUIRE_ESM`; + return err; +} +function reportRequiredFilesToWatchMode(files) { + if (process.env.WATCH_REPORT_DEPENDENCIES && process.send) { + files = files.map((filename) => npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename)))); + if (WATCH_MODE_MESSAGE_USES_ARRAYS) { + process.send({ "watch:require": files }); + } else { + for (const filename of files) { + process.send({ "watch:require": filename }); + } + } + } +} + +function applyPatch(pnpapi, opts) { + let enableNativeHooks = true; + process.versions.pnp = String(pnpapi.VERSIONS.std); + const moduleExports = require$$0__default.default; + moduleExports.findPnpApi = (lookupSource) => { + const lookupPath = lookupSource instanceof URL ? url.fileURLToPath(lookupSource) : lookupSource; + const apiPath = opts.manager.findApiPathFor(lookupPath); + if (apiPath === null) + return null; + const apiEntry = opts.manager.getApiEntry(apiPath, true); + return apiEntry.instance.findPackageLocator(lookupPath) ? apiEntry.instance : null; + }; + function getRequireStack(parent) { + const requireStack = []; + for (let cursor = parent; cursor; cursor = cursor.parent) + requireStack.push(cursor.filename || cursor.id); + return requireStack; + } + const originalModuleLoad = require$$0.Module._load; + require$$0.Module._load = function(request, parent, isMain) { + if (request === `pnpapi`) { + const parentApiPath = opts.manager.getApiPathFromParent(parent); + if (parentApiPath) { + return opts.manager.getApiEntry(parentApiPath, true).instance; + } + } + return originalModuleLoad.call(require$$0.Module, request, parent, isMain); + }; + function getIssuerSpecsFromPaths(paths) { + return paths.map((path) => ({ + apiPath: opts.manager.findApiPathFor(path), + path, + module: null + })); + } + function getIssuerSpecsFromModule(module) { + if (module && module.id !== `` && module.id !== `internal/preload` && !module.parent && !module.filename && module.paths.length > 0) { + return [{ + apiPath: opts.manager.findApiPathFor(module.paths[0]), + path: module.paths[0], + module + }]; + } + const issuer = getIssuerModule(module); + if (issuer !== null) { + const path = npath.dirname(issuer.filename); + const apiPath = opts.manager.getApiPathFromParent(issuer); + return [{ apiPath, path, module }]; + } else { + const path = process.cwd(); + const apiPath = opts.manager.findApiPathFor(npath.join(path, `[file]`)) ?? opts.manager.getApiPathFromParent(null); + return [{ apiPath, path, module }]; + } + } + function makeFakeParent(path) { + const fakeParent = new require$$0.Module(``); + const fakeFilePath = npath.join(path, `[file]`); + fakeParent.paths = require$$0.Module._nodeModulePaths(fakeFilePath); + return fakeParent; + } + const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/; + const originalModuleResolveFilename = require$$0.Module._resolveFilename; + require$$0.Module._resolveFilename = function(request, parent, isMain, options) { + if (require$$0.isBuiltin(request)) + return request; + if (!enableNativeHooks) + return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, options); + if (options && options.plugnplay === false) { + const { plugnplay, ...forwardedOptions } = options; + try { + enableNativeHooks = false; + return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, forwardedOptions); + } finally { + enableNativeHooks = true; + } + } + if (options) { + const optionNames = new Set(Object.keys(options)); + optionNames.delete(`paths`); + optionNames.delete(`plugnplay`); + if (optionNames.size > 0) { + throw makeError( + ErrorCode.UNSUPPORTED, + `Some options passed to require() aren't supported by PnP yet (${Array.from(optionNames).join(`, `)})` + ); + } + } + const issuerSpecs = options && options.paths ? getIssuerSpecsFromPaths(options.paths) : getIssuerSpecsFromModule(parent); + if (request.match(pathRegExp) === null) { + const parentDirectory = parent?.filename != null ? npath.dirname(parent.filename) : null; + const absoluteRequest = npath.isAbsolute(request) ? request : parentDirectory !== null ? npath.resolve(parentDirectory, request) : null; + if (absoluteRequest !== null) { + const apiPath = parent && parentDirectory === npath.dirname(absoluteRequest) ? opts.manager.getApiPathFromParent(parent) : opts.manager.findApiPathFor(absoluteRequest); + if (apiPath !== null) { + issuerSpecs.unshift({ + apiPath, + path: parentDirectory, + module: null + }); + } + } + } + let firstError; + for (const { apiPath, path, module } of issuerSpecs) { + let resolution; + const issuerApi = apiPath !== null ? opts.manager.getApiEntry(apiPath, true).instance : null; + try { + if (issuerApi !== null) { + resolution = issuerApi.resolveRequest(request, path !== null ? `${path}/` : null); + } else { + if (path === null) + throw new Error(`Assertion failed: Expected the path to be set`); + resolution = originalModuleResolveFilename.call(require$$0.Module, request, module || makeFakeParent(path), isMain); + } + } catch (error) { + firstError = firstError || error; + continue; + } + if (resolution !== null) { + return resolution; + } + } + const requireStack = getRequireStack(parent); + Object.defineProperty(firstError, `requireStack`, { + configurable: true, + writable: true, + enumerable: false, + value: requireStack + }); + if (requireStack.length > 0) + firstError.message += ` +Require stack: +- ${requireStack.join(` +- `)}`; + if (typeof firstError.pnpCode === `string`) + Error.captureStackTrace(firstError); + throw firstError; + }; + const originalFindPath = require$$0.Module._findPath; + require$$0.Module._findPath = function(request, paths, isMain) { + if (request === `pnpapi`) + return false; + if (!enableNativeHooks) + return originalFindPath.call(require$$0.Module, request, paths, isMain); + const isAbsolute = npath.isAbsolute(request); + if (isAbsolute) + paths = [``]; + else if (!paths || paths.length === 0) + return false; + for (const path of paths) { + let resolution; + try { + const pnpApiPath = opts.manager.findApiPathFor(isAbsolute ? request : path); + if (pnpApiPath !== null) { + const api = opts.manager.getApiEntry(pnpApiPath, true).instance; + resolution = api.resolveRequest(request, path) || false; + } else { + resolution = originalFindPath.call(require$$0.Module, request, [path], isMain); + } + } catch { + continue; + } + if (resolution) { + return resolution; + } + } + return false; + }; + if (!process.features.require_module) { + const originalExtensionJSFunction = require$$0.Module._extensions[`.js`]; + require$$0.Module._extensions[`.js`] = function(module, filename) { + if (filename.endsWith(`.js`)) { + const pkg = readPackageScope(filename); + if (pkg && pkg.data?.type === `module`) { + const err = ERR_REQUIRE_ESM(filename, module.parent?.filename); + Error.captureStackTrace(err); + throw err; + } + } + originalExtensionJSFunction.call(this, module, filename); + }; + } + const originalDlopen = process.dlopen; + process.dlopen = function(...args) { + const [module, filename, ...rest] = args; + return originalDlopen.call( + this, + module, + npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename))), + ...rest + ); + }; + const originalEmit = process.emit; + process.emit = function(name, data, ...args) { + if (name === `warning` && typeof data === `object` && data.name === `ExperimentalWarning` && (data.message.includes(`--experimental-loader`) || data.message.includes(`Custom ESM Loaders is an experimental feature`))) + return false; + return originalEmit.apply(process, arguments); + }; + patchFs(fs__default.default, new PosixFS(opts.fakeFs)); +} + +function hydrateRuntimeState(data, { basePath }) { + const portablePath = npath.toPortablePath(basePath); + const absolutePortablePath = ppath.resolve(portablePath); + const ignorePattern = data.ignorePatternData !== null ? new RegExp(data.ignorePatternData) : null; + const packageLocatorsByLocations = /* @__PURE__ */ new Map(); + const packageRegistry = new Map(data.packageRegistryData.map(([packageName, packageStoreData]) => { + return [packageName, new Map(packageStoreData.map(([packageReference, packageInformationData]) => { + if (packageName === null !== (packageReference === null)) + throw new Error(`Assertion failed: The name and reference should be null, or neither should`); + const discardFromLookup = packageInformationData.discardFromLookup ?? false; + const packageLocator = { name: packageName, reference: packageReference }; + const entry = packageLocatorsByLocations.get(packageInformationData.packageLocation); + if (!entry) { + packageLocatorsByLocations.set(packageInformationData.packageLocation, { locator: packageLocator, discardFromLookup }); + } else { + entry.discardFromLookup = entry.discardFromLookup && discardFromLookup; + if (!discardFromLookup) { + entry.locator = packageLocator; + } + } + let resolvedPackageLocation = null; + return [packageReference, { + packageDependencies: new Map(packageInformationData.packageDependencies), + packagePeers: new Set(packageInformationData.packagePeers), + linkType: packageInformationData.linkType, + discardFromLookup, + // we only need this for packages that are used by the currently running script + // this is a lazy getter because `ppath.join` has some overhead + get packageLocation() { + return resolvedPackageLocation || (resolvedPackageLocation = ppath.join(absolutePortablePath, packageInformationData.packageLocation)); + } + }]; + }))]; + })); + const fallbackExclusionList = new Map(data.fallbackExclusionList.map(([packageName, packageReferences]) => { + return [packageName, new Set(packageReferences)]; + })); + const fallbackPool = new Map(data.fallbackPool); + const dependencyTreeRoots = data.dependencyTreeRoots; + const enableTopLevelFallback = data.enableTopLevelFallback; + return { + basePath: portablePath, + dependencyTreeRoots, + enableTopLevelFallback, + fallbackExclusionList, + pnpZipBackend: data.pnpZipBackend, + fallbackPool, + ignorePattern, + packageLocatorsByLocations, + packageRegistry + }; +} + +const ArrayIsArray = Array.isArray; +const JSONStringify = JSON.stringify; +const ObjectGetOwnPropertyNames = Object.getOwnPropertyNames; +const ObjectPrototypeHasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); +const RegExpPrototypeExec = (obj, string) => RegExp.prototype.exec.call(obj, string); +const RegExpPrototypeSymbolReplace = (obj, ...rest) => RegExp.prototype[Symbol.replace].apply(obj, rest); +const StringPrototypeEndsWith = (str, ...rest) => String.prototype.endsWith.apply(str, rest); +const StringPrototypeIncludes = (str, ...rest) => String.prototype.includes.apply(str, rest); +const StringPrototypeLastIndexOf = (str, ...rest) => String.prototype.lastIndexOf.apply(str, rest); +const StringPrototypeIndexOf = (str, ...rest) => String.prototype.indexOf.apply(str, rest); +const StringPrototypeReplace = (str, ...rest) => String.prototype.replace.apply(str, rest); +const StringPrototypeSlice = (str, ...rest) => String.prototype.slice.apply(str, rest); +const StringPrototypeStartsWith = (str, ...rest) => String.prototype.startsWith.apply(str, rest); +const SafeMap = Map; +const JSONParse = JSON.parse; + +function createErrorType(code, messageCreator, errorType) { + return class extends errorType { + constructor(...args) { + super(messageCreator(...args)); + this.code = code; + this.name = `${errorType.name} [${code}]`; + } + }; +} +const ERR_PACKAGE_IMPORT_NOT_DEFINED = createErrorType( + `ERR_PACKAGE_IMPORT_NOT_DEFINED`, + (specifier, packagePath, base) => { + return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ``} imported from ${base}`; + }, + TypeError +); +const ERR_INVALID_MODULE_SPECIFIER = createErrorType( + `ERR_INVALID_MODULE_SPECIFIER`, + (request, reason, base = void 0) => { + return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ``}`; + }, + TypeError +); +const ERR_INVALID_PACKAGE_TARGET = createErrorType( + `ERR_INVALID_PACKAGE_TARGET`, + (pkgPath, key, target, isImport = false, base = void 0) => { + const relError = typeof target === `string` && !isImport && target.length && !StringPrototypeStartsWith(target, `./`); + if (key === `.`) { + assert__default.default(isImport === false); + return `Invalid "exports" main target ${JSONStringify(target)} defined in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; + } + return `Invalid "${isImport ? `imports` : `exports`}" target ${JSONStringify( + target + )} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; + }, + Error +); +const ERR_INVALID_PACKAGE_CONFIG = createErrorType( + `ERR_INVALID_PACKAGE_CONFIG`, + (path, base, message) => { + return `Invalid package config ${path}${base ? ` while importing ${base}` : ``}${message ? `. ${message}` : ``}`; + }, + Error +); +const ERR_PACKAGE_PATH_NOT_EXPORTED = createErrorType( + "ERR_PACKAGE_PATH_NOT_EXPORTED", + (pkgPath, subpath, base = void 0) => { + if (subpath === ".") + return `No "exports" main defined in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`; + return `Package subpath '${subpath}' is not defined by "exports" in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`; + }, + Error +); + +function filterOwnProperties(source, keys) { + const filtered = /* @__PURE__ */ Object.create(null); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (ObjectPrototypeHasOwnProperty(source, key)) { + filtered[key] = source[key]; + } + } + return filtered; +} + +const packageJSONCache = new SafeMap(); +function getPackageConfig(path, specifier, base, readFileSyncFn) { + const existing = packageJSONCache.get(path); + if (existing !== void 0) { + return existing; + } + const source = readFileSyncFn(path); + if (source === void 0) { + const packageConfig2 = { + pjsonPath: path, + exists: false, + main: void 0, + name: void 0, + type: "none", + exports: void 0, + imports: void 0 + }; + packageJSONCache.set(path, packageConfig2); + return packageConfig2; + } + let packageJSON; + try { + packageJSON = JSONParse(source); + } catch (error) { + throw new ERR_INVALID_PACKAGE_CONFIG( + path, + (base ? `"${specifier}" from ` : "") + url.fileURLToPath(base || specifier), + error.message + ); + } + let { imports, main, name, type } = filterOwnProperties(packageJSON, [ + "imports", + "main", + "name", + "type" + ]); + const exports = ObjectPrototypeHasOwnProperty(packageJSON, "exports") ? packageJSON.exports : void 0; + if (typeof imports !== "object" || imports === null) { + imports = void 0; + } + if (typeof main !== "string") { + main = void 0; + } + if (typeof name !== "string") { + name = void 0; + } + if (type !== "module" && type !== "commonjs") { + type = "none"; + } + const packageConfig = { + pjsonPath: path, + exists: true, + main, + name, + type, + exports, + imports + }; + packageJSONCache.set(path, packageConfig); + return packageConfig; +} +function getPackageScopeConfig(resolved, readFileSyncFn) { + let packageJSONUrl = new URL("./package.json", resolved); + while (true) { + const packageJSONPath2 = packageJSONUrl.pathname; + if (StringPrototypeEndsWith(packageJSONPath2, "node_modules/package.json")) { + break; + } + const packageConfig2 = getPackageConfig( + url.fileURLToPath(packageJSONUrl), + resolved, + void 0, + readFileSyncFn + ); + if (packageConfig2.exists) { + return packageConfig2; + } + const lastPackageJSONUrl = packageJSONUrl; + packageJSONUrl = new URL("../package.json", packageJSONUrl); + if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) { + break; + } + } + const packageJSONPath = url.fileURLToPath(packageJSONUrl); + const packageConfig = { + pjsonPath: packageJSONPath, + exists: false, + main: void 0, + name: void 0, + type: "none", + exports: void 0, + imports: void 0 + }; + packageJSONCache.set(packageJSONPath, packageConfig); + return packageConfig; +} + +function throwImportNotDefined(specifier, packageJSONUrl, base) { + throw new ERR_PACKAGE_IMPORT_NOT_DEFINED( + specifier, + packageJSONUrl && url.fileURLToPath(new URL(".", packageJSONUrl)), + url.fileURLToPath(base) + ); +} +function throwInvalidSubpath(subpath, packageJSONUrl, internal, base) { + const reason = `request is not a valid subpath for the "${internal ? "imports" : "exports"}" resolution of ${url.fileURLToPath(packageJSONUrl)}`; + throw new ERR_INVALID_MODULE_SPECIFIER( + subpath, + reason, + base && url.fileURLToPath(base) + ); +} +function throwInvalidPackageTarget(subpath, target, packageJSONUrl, internal, base) { + if (typeof target === "object" && target !== null) { + target = JSONStringify(target, null, ""); + } else { + target = `${target}`; + } + throw new ERR_INVALID_PACKAGE_TARGET( + url.fileURLToPath(new URL(".", packageJSONUrl)), + subpath, + target, + internal, + base && url.fileURLToPath(base) + ); +} +const invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i; +const patternRegEx = /\*/g; +function resolvePackageTargetString(target, subpath, match, packageJSONUrl, base, pattern, internal, conditions) { + if (subpath !== "" && !pattern && target[target.length - 1] !== "/") + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + if (!StringPrototypeStartsWith(target, "./")) { + if (internal && !StringPrototypeStartsWith(target, "../") && !StringPrototypeStartsWith(target, "/")) { + let isURL = false; + try { + new URL(target); + isURL = true; + } catch { + } + if (!isURL) { + const exportTarget = pattern ? RegExpPrototypeSymbolReplace(patternRegEx, target, () => subpath) : target + subpath; + return exportTarget; + } + } + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + } + if (RegExpPrototypeExec( + invalidSegmentRegEx, + StringPrototypeSlice(target, 2) + ) !== null) + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + const resolved = new URL(target, packageJSONUrl); + const resolvedPath = resolved.pathname; + const packagePath = new URL(".", packageJSONUrl).pathname; + if (!StringPrototypeStartsWith(resolvedPath, packagePath)) + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + if (subpath === "") return resolved; + if (RegExpPrototypeExec(invalidSegmentRegEx, subpath) !== null) { + const request = pattern ? StringPrototypeReplace(match, "*", () => subpath) : match + subpath; + throwInvalidSubpath(request, packageJSONUrl, internal, base); + } + if (pattern) { + return new URL( + RegExpPrototypeSymbolReplace(patternRegEx, resolved.href, () => subpath) + ); + } + return new URL(subpath, resolved); +} +function isArrayIndex(key) { + const keyNum = +key; + if (`${keyNum}` !== key) return false; + return keyNum >= 0 && keyNum < 4294967295; +} +function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, base, pattern, internal, conditions) { + if (typeof target === "string") { + return resolvePackageTargetString( + target, + subpath, + packageSubpath, + packageJSONUrl, + base, + pattern, + internal); + } else if (ArrayIsArray(target)) { + if (target.length === 0) { + return null; + } + let lastException; + for (let i = 0; i < target.length; i++) { + const targetItem = target[i]; + let resolveResult; + try { + resolveResult = resolvePackageTarget( + packageJSONUrl, + targetItem, + subpath, + packageSubpath, + base, + pattern, + internal, + conditions + ); + } catch (e) { + lastException = e; + if (e.code === "ERR_INVALID_PACKAGE_TARGET") { + continue; + } + throw e; + } + if (resolveResult === void 0) { + continue; + } + if (resolveResult === null) { + lastException = null; + continue; + } + return resolveResult; + } + if (lastException === void 0 || lastException === null) + return lastException; + throw lastException; + } else if (typeof target === "object" && target !== null) { + const keys = ObjectGetOwnPropertyNames(target); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (isArrayIndex(key)) { + throw new ERR_INVALID_PACKAGE_CONFIG( + url.fileURLToPath(packageJSONUrl), + base, + '"exports" cannot contain numeric property keys.' + ); + } + } + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (key === "default" || conditions.has(key)) { + const conditionalTarget = target[key]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + conditionalTarget, + subpath, + packageSubpath, + base, + pattern, + internal, + conditions + ); + if (resolveResult === void 0) continue; + return resolveResult; + } + } + return void 0; + } else if (target === null) { + return null; + } + throwInvalidPackageTarget( + packageSubpath, + target, + packageJSONUrl, + internal, + base + ); +} +function patternKeyCompare(a, b) { + const aPatternIndex = StringPrototypeIndexOf(a, "*"); + const bPatternIndex = StringPrototypeIndexOf(b, "*"); + const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; + const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1; + if (baseLenA > baseLenB) return -1; + if (baseLenB > baseLenA) return 1; + if (aPatternIndex === -1) return 1; + if (bPatternIndex === -1) return -1; + if (a.length > b.length) return -1; + if (b.length > a.length) return 1; + return 0; +} +function isConditionalExportsMainSugar(exports, packageJSONUrl, base) { + if (typeof exports === "string" || ArrayIsArray(exports)) return true; + if (typeof exports !== "object" || exports === null) return false; + const keys = ObjectGetOwnPropertyNames(exports); + let isConditionalSugar = false; + let i = 0; + for (let j = 0; j < keys.length; j++) { + const key = keys[j]; + const curIsConditionalSugar = key === "" || key[0] !== "."; + if (i++ === 0) { + isConditionalSugar = curIsConditionalSugar; + } else if (isConditionalSugar !== curIsConditionalSugar) { + throw new ERR_INVALID_PACKAGE_CONFIG( + url.fileURLToPath(packageJSONUrl), + base, + `"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.` + ); + } + } + return isConditionalSugar; +} +function throwExportsNotFound(subpath, packageJSONUrl, base) { + throw new ERR_PACKAGE_PATH_NOT_EXPORTED( + url.fileURLToPath(new URL(".", packageJSONUrl)), + subpath, + base && url.fileURLToPath(base) + ); +} +const emittedPackageWarnings = /* @__PURE__ */ new Set(); +function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) { + const pjsonPath = url.fileURLToPath(pjsonUrl); + if (emittedPackageWarnings.has(pjsonPath + "|" + match)) return; + emittedPackageWarnings.add(pjsonPath + "|" + match); + process.emitWarning( + `Use of deprecated trailing slash pattern mapping "${match}" in the "exports" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${url.fileURLToPath(base)}` : ""}. Mapping specifiers ending in "/" is no longer supported.`, + "DeprecationWarning", + "DEP0155" + ); +} +function packageExportsResolve({ + packageJSONUrl, + packageSubpath, + exports, + base, + conditions +}) { + if (isConditionalExportsMainSugar(exports, packageJSONUrl, base)) + exports = { ".": exports }; + if (ObjectPrototypeHasOwnProperty(exports, packageSubpath) && !StringPrototypeIncludes(packageSubpath, "*") && !StringPrototypeEndsWith(packageSubpath, "/")) { + const target = exports[packageSubpath]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + target, + "", + packageSubpath, + base, + false, + false, + conditions + ); + if (resolveResult == null) { + throwExportsNotFound(packageSubpath, packageJSONUrl, base); + } + return resolveResult; + } + let bestMatch = ""; + let bestMatchSubpath; + const keys = ObjectGetOwnPropertyNames(exports); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const patternIndex = StringPrototypeIndexOf(key, "*"); + if (patternIndex !== -1 && StringPrototypeStartsWith( + packageSubpath, + StringPrototypeSlice(key, 0, patternIndex) + )) { + if (StringPrototypeEndsWith(packageSubpath, "/")) + emitTrailingSlashPatternDeprecation( + packageSubpath, + packageJSONUrl, + base + ); + const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); + if (packageSubpath.length >= key.length && StringPrototypeEndsWith(packageSubpath, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { + bestMatch = key; + bestMatchSubpath = StringPrototypeSlice( + packageSubpath, + patternIndex, + packageSubpath.length - patternTrailer.length + ); + } + } + } + if (bestMatch) { + const target = exports[bestMatch]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + target, + bestMatchSubpath, + bestMatch, + base, + true, + false, + conditions + ); + if (resolveResult == null) { + throwExportsNotFound(packageSubpath, packageJSONUrl, base); + } + return resolveResult; + } + throwExportsNotFound(packageSubpath, packageJSONUrl, base); +} +function packageImportsResolve({ name, base, conditions, readFileSyncFn }) { + if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) { + const reason = "is not a valid internal imports specifier name"; + throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, url.fileURLToPath(base)); + } + let packageJSONUrl; + const packageConfig = getPackageScopeConfig(base, readFileSyncFn); + if (packageConfig.exists) { + packageJSONUrl = url.pathToFileURL(packageConfig.pjsonPath); + const imports = packageConfig.imports; + if (imports) { + if (ObjectPrototypeHasOwnProperty(imports, name) && !StringPrototypeIncludes(name, "*")) { + const resolveResult = resolvePackageTarget( + packageJSONUrl, + imports[name], + "", + name, + base, + false, + true, + conditions + ); + if (resolveResult != null) { + return resolveResult; + } + } else { + let bestMatch = ""; + let bestMatchSubpath; + const keys = ObjectGetOwnPropertyNames(imports); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const patternIndex = StringPrototypeIndexOf(key, "*"); + if (patternIndex !== -1 && StringPrototypeStartsWith( + name, + StringPrototypeSlice(key, 0, patternIndex) + )) { + const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); + if (name.length >= key.length && StringPrototypeEndsWith(name, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { + bestMatch = key; + bestMatchSubpath = StringPrototypeSlice( + name, + patternIndex, + name.length - patternTrailer.length + ); + } + } + } + if (bestMatch) { + const target = imports[bestMatch]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + target, + bestMatchSubpath, + bestMatch, + base, + true, + true, + conditions + ); + if (resolveResult != null) { + return resolveResult; + } + } + } + } + } + throwImportNotDefined(name, packageJSONUrl, base); +} + +const flagSymbol = Symbol('arg flag'); + +class ArgError extends Error { + constructor(msg, code) { + super(msg); + this.name = 'ArgError'; + this.code = code; + + Object.setPrototypeOf(this, ArgError.prototype); + } +} + +function arg( + opts, + { + argv = process.argv.slice(2), + permissive = false, + stopAtPositional = false + } = {} +) { + if (!opts) { + throw new ArgError( + 'argument specification object is required', + 'ARG_CONFIG_NO_SPEC' + ); + } + + const result = { _: [] }; + + const aliases = {}; + const handlers = {}; + + for (const key of Object.keys(opts)) { + if (!key) { + throw new ArgError( + 'argument key cannot be an empty string', + 'ARG_CONFIG_EMPTY_KEY' + ); + } + + if (key[0] !== '-') { + throw new ArgError( + `argument key must start with '-' but found: '${key}'`, + 'ARG_CONFIG_NONOPT_KEY' + ); + } + + if (key.length === 1) { + throw new ArgError( + `argument key must have a name; singular '-' keys are not allowed: ${key}`, + 'ARG_CONFIG_NONAME_KEY' + ); + } + + if (typeof opts[key] === 'string') { + aliases[key] = opts[key]; + continue; + } + + let type = opts[key]; + let isFlag = false; + + if ( + Array.isArray(type) && + type.length === 1 && + typeof type[0] === 'function' + ) { + const [fn] = type; + type = (value, name, prev = []) => { + prev.push(fn(value, name, prev[prev.length - 1])); + return prev; + }; + isFlag = fn === Boolean || fn[flagSymbol] === true; + } else if (typeof type === 'function') { + isFlag = type === Boolean || type[flagSymbol] === true; + } else { + throw new ArgError( + `type missing or not a function or valid array type: ${key}`, + 'ARG_CONFIG_VAD_TYPE' + ); + } + + if (key[1] !== '-' && key.length > 2) { + throw new ArgError( + `short argument keys (with a single hyphen) must have only one character: ${key}`, + 'ARG_CONFIG_SHORTOPT_TOOLONG' + ); + } + + handlers[key] = [type, isFlag]; + } + + for (let i = 0, len = argv.length; i < len; i++) { + const wholeArg = argv[i]; + + if (stopAtPositional && result._.length > 0) { + result._ = result._.concat(argv.slice(i)); + break; + } + + if (wholeArg === '--') { + result._ = result._.concat(argv.slice(i + 1)); + break; + } + + if (wholeArg.length > 1 && wholeArg[0] === '-') { + /* eslint-disable operator-linebreak */ + const separatedArguments = + wholeArg[1] === '-' || wholeArg.length === 2 + ? [wholeArg] + : wholeArg + .slice(1) + .split('') + .map((a) => `-${a}`); + /* eslint-enable operator-linebreak */ + + for (let j = 0; j < separatedArguments.length; j++) { + const arg = separatedArguments[j]; + const [originalArgName, argStr] = + arg[1] === '-' ? arg.split(/=(.*)/, 2) : [arg, undefined]; + + let argName = originalArgName; + while (argName in aliases) { + argName = aliases[argName]; + } + + if (!(argName in handlers)) { + if (permissive) { + result._.push(arg); + continue; + } else { + throw new ArgError( + `unknown or unexpected option: ${originalArgName}`, + 'ARG_UNKNOWN_OPTION' + ); + } + } + + const [type, isFlag] = handlers[argName]; + + if (!isFlag && j + 1 < separatedArguments.length) { + throw new ArgError( + `option requires argument (but was followed by another short argument): ${originalArgName}`, + 'ARG_MISSING_REQUIRED_SHORTARG' + ); + } + + if (isFlag) { + result[argName] = type(true, argName, result[argName]); + } else if (argStr === undefined) { + if ( + argv.length < i + 2 || + (argv[i + 1].length > 1 && + argv[i + 1][0] === '-' && + !( + argv[i + 1].match(/^-?\d*(\.(?=\d))?\d*$/) && + (type === Number || + // eslint-disable-next-line no-undef + (typeof BigInt !== 'undefined' && type === BigInt)) + )) + ) { + const extended = + originalArgName === argName ? '' : ` (alias for ${argName})`; + throw new ArgError( + `option requires argument: ${originalArgName}${extended}`, + 'ARG_MISSING_REQUIRED_LONGARG' + ); + } + + result[argName] = type(argv[i + 1], argName, result[argName]); + ++i; + } else { + result[argName] = type(argStr, argName, result[argName]); + } + } + } else { + result._.push(wholeArg); + } + } + + return result; +} + +arg.flag = (fn) => { + fn[flagSymbol] = true; + return fn; +}; + +// Utility types +arg.COUNT = arg.flag((v, name, existingCount) => (existingCount || 0) + 1); + +// Expose error class +arg.ArgError = ArgError; + +var arg_1 = arg; + +/** + @license + The MIT License (MIT) + + Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) + + Permission is hereby granted, free of charge, to any person obtaining a copy + of this software and associated documentation files (the "Software"), to deal + in the Software without restriction, including without limitation the rights + to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + copies of the Software, and to permit persons to whom the Software is + furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + THE SOFTWARE. +*/ +function getOptionValue(opt) { + parseOptions(); + return options[opt]; +} +let options; +function parseOptions() { + if (!options) { + options = { + "--conditions": [], + ...parseArgv(getNodeOptionsEnvArgv()), + ...parseArgv(process.execArgv) + }; + } +} +function parseArgv(argv) { + return arg_1( + { + "--conditions": [String], + "-C": "--conditions" + }, + { + argv, + permissive: true + } + ); +} +function getNodeOptionsEnvArgv() { + const errors = []; + const envArgv = ParseNodeOptionsEnvVar(process.env.NODE_OPTIONS || "", errors); + if (errors.length !== 0) ; + return envArgv; +} +function ParseNodeOptionsEnvVar(node_options, errors) { + const env_argv = []; + let is_in_string = false; + let will_start_new_arg = true; + for (let index = 0; index < node_options.length; ++index) { + let c = node_options[index]; + if (c === "\\" && is_in_string) { + if (index + 1 === node_options.length) { + errors.push("invalid value for NODE_OPTIONS (invalid escape)\n"); + return env_argv; + } else { + c = node_options[++index]; + } + } else if (c === " " && !is_in_string) { + will_start_new_arg = true; + continue; + } else if (c === '"') { + is_in_string = !is_in_string; + continue; + } + if (will_start_new_arg) { + env_argv.push(c); + will_start_new_arg = false; + } else { + env_argv[env_argv.length - 1] += c; + } + } + if (is_in_string) { + errors.push("invalid value for NODE_OPTIONS (unterminated string)\n"); + } + return env_argv; +} + +function makeApi(runtimeState, opts) { + const alwaysWarnOnFallback = Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK) > 0; + const debugLevel = Number(process.env.PNP_DEBUG_LEVEL); + const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/; + const isStrictRegExp = /^(\/|\.{1,2}(\/|$))/; + const isDirRegExp = /\/$/; + const isRelativeRegexp = /^\.{0,2}\//; + const topLevelLocator = { name: null, reference: null }; + const fallbackLocators = []; + const emittedWarnings = /* @__PURE__ */ new Set(); + if (runtimeState.enableTopLevelFallback === true) + fallbackLocators.push(topLevelLocator); + if (opts.compatibilityMode !== false) { + for (const name of [`react-scripts`, `gatsby`]) { + const packageStore = runtimeState.packageRegistry.get(name); + if (packageStore) { + for (const reference of packageStore.keys()) { + if (reference === null) { + throw new Error(`Assertion failed: This reference shouldn't be null`); + } else { + fallbackLocators.push({ name, reference }); + } + } + } + } + } + const { + ignorePattern, + packageRegistry, + packageLocatorsByLocations + } = runtimeState; + function makeLogEntry(name, args) { + return { + fn: name, + args, + error: null, + result: null + }; + } + function trace(entry) { + const colors = process.stderr?.hasColors?.() ?? process.stdout.isTTY; + const c = (n, str) => `\x1B[${n}m${str}\x1B[0m`; + const error = entry.error; + if (error) + console.error(c(`31;1`, `\u2716 ${entry.error?.message.replace(/\n.*/s, ``)}`)); + else + console.error(c(`33;1`, `\u203C Resolution`)); + if (entry.args.length > 0) + console.error(); + for (const arg of entry.args) + console.error(` ${c(`37;1`, `In \u2190`)} ${nodeUtils.inspect(arg, { colors, compact: true })}`); + if (entry.result) { + console.error(); + console.error(` ${c(`37;1`, `Out \u2192`)} ${nodeUtils.inspect(entry.result, { colors, compact: true })}`); + } + const stack = new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2) ?? []; + if (stack.length > 0) { + console.error(); + for (const line of stack) { + console.error(` ${c(`38;5;244`, line)}`); + } + } + console.error(); + } + function maybeLog(name, fn) { + if (opts.allowDebug === false) + return fn; + if (Number.isFinite(debugLevel)) { + if (debugLevel >= 2) { + return (...args) => { + const logEntry = makeLogEntry(name, args); + try { + return logEntry.result = fn(...args); + } catch (error) { + throw logEntry.error = error; + } finally { + trace(logEntry); + } + }; + } else if (debugLevel >= 1) { + return (...args) => { + try { + return fn(...args); + } catch (error) { + const logEntry = makeLogEntry(name, args); + logEntry.error = error; + trace(logEntry); + throw error; + } + }; + } + } + return fn; + } + function getPackageInformationSafe(packageLocator) { + const packageInformation = getPackageInformation(packageLocator); + if (!packageInformation) { + throw makeError( + ErrorCode.INTERNAL, + `Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)` + ); + } + return packageInformation; + } + function isDependencyTreeRoot(packageLocator) { + if (packageLocator.name === null) + return true; + for (const dependencyTreeRoot of runtimeState.dependencyTreeRoots) + if (dependencyTreeRoot.name === packageLocator.name && dependencyTreeRoot.reference === packageLocator.reference) + return true; + return false; + } + const defaultExportsConditions = /* @__PURE__ */ new Set([ + `node`, + `require`, + ...getOptionValue(`--conditions`) + ]); + function applyNodeExportsResolution(unqualifiedPath, conditions = defaultExportsConditions, issuer) { + const locator = findPackageLocator(ppath.join(unqualifiedPath, `internal.js`), { + resolveIgnored: true, + includeDiscardFromLookup: true + }); + if (locator === null) { + throw makeError( + ErrorCode.INTERNAL, + `The locator that owns the "${unqualifiedPath}" path can't be found inside the dependency tree (this is probably an internal error)` + ); + } + const { packageLocation } = getPackageInformationSafe(locator); + const manifestPath = ppath.join(packageLocation, Filename.manifest); + if (!opts.fakeFs.existsSync(manifestPath)) + return null; + const pkgJson = JSON.parse(opts.fakeFs.readFileSync(manifestPath, `utf8`)); + if (pkgJson.exports == null) + return null; + let subpath = ppath.contains(packageLocation, unqualifiedPath); + if (subpath === null) { + throw makeError( + ErrorCode.INTERNAL, + `unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)` + ); + } + if (subpath !== `.` && !isRelativeRegexp.test(subpath)) + subpath = `./${subpath}`; + try { + const resolvedExport = packageExportsResolve({ + packageJSONUrl: url.pathToFileURL(npath.fromPortablePath(manifestPath)), + packageSubpath: subpath, + exports: pkgJson.exports, + base: issuer ? url.pathToFileURL(npath.fromPortablePath(issuer)) : null, + conditions + }); + return npath.toPortablePath(url.fileURLToPath(resolvedExport)); + } catch (error) { + throw makeError( + ErrorCode.EXPORTS_RESOLUTION_FAILED, + error.message, + { unqualifiedPath: getPathForDisplay(unqualifiedPath), locator, pkgJson, subpath: getPathForDisplay(subpath), conditions }, + error.code + ); + } + } + function applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions }) { + let stat; + try { + candidates.push(unqualifiedPath); + stat = opts.fakeFs.statSync(unqualifiedPath); + } catch { + } + if (stat && !stat.isDirectory()) + return opts.fakeFs.realpathSync(unqualifiedPath); + if (stat && stat.isDirectory()) { + let pkgJson; + try { + pkgJson = JSON.parse(opts.fakeFs.readFileSync(ppath.join(unqualifiedPath, Filename.manifest), `utf8`)); + } catch { + } + let nextUnqualifiedPath; + if (pkgJson && pkgJson.main) + nextUnqualifiedPath = ppath.resolve(unqualifiedPath, pkgJson.main); + if (nextUnqualifiedPath && nextUnqualifiedPath !== unqualifiedPath) { + const resolution = applyNodeExtensionResolution(nextUnqualifiedPath, candidates, { extensions }); + if (resolution !== null) { + return resolution; + } + } + } + for (let i = 0, length = extensions.length; i < length; i++) { + const candidateFile = `${unqualifiedPath}${extensions[i]}`; + candidates.push(candidateFile); + if (opts.fakeFs.existsSync(candidateFile)) { + return candidateFile; + } + } + if (stat && stat.isDirectory()) { + for (let i = 0, length = extensions.length; i < length; i++) { + const candidateFile = ppath.format({ dir: unqualifiedPath, name: `index`, ext: extensions[i] }); + candidates.push(candidateFile); + if (opts.fakeFs.existsSync(candidateFile)) { + return candidateFile; + } + } + } + return null; + } + function makeFakeModule(path) { + const fakeModule = new require$$0.Module(path, null); + fakeModule.filename = path; + fakeModule.paths = require$$0.Module._nodeModulePaths(path); + return fakeModule; + } + function callNativeResolution(request, issuer) { + if (issuer.endsWith(`/`)) + issuer = ppath.join(issuer, `internal.js`); + return require$$0.Module._resolveFilename(npath.fromPortablePath(request), makeFakeModule(npath.fromPortablePath(issuer)), false, { plugnplay: false }); + } + function isPathIgnored(path) { + if (ignorePattern === null) + return false; + const subPath = ppath.contains(runtimeState.basePath, path); + if (subPath === null) + return false; + if (ignorePattern.test(subPath.replace(/\/$/, ``))) { + return true; + } else { + return false; + } + } + const VERSIONS = { std: 3, resolveVirtual: 1, getAllLocators: 1 }; + const topLevel = topLevelLocator; + function getPackageInformation({ name, reference }) { + const packageInformationStore = packageRegistry.get(name); + if (!packageInformationStore) + return null; + const packageInformation = packageInformationStore.get(reference); + if (!packageInformation) + return null; + return packageInformation; + } + function findPackageDependents({ name, reference }) { + const dependents = []; + for (const [dependentName, packageInformationStore] of packageRegistry) { + if (dependentName === null) + continue; + for (const [dependentReference, packageInformation] of packageInformationStore) { + if (dependentReference === null) + continue; + const dependencyReference = packageInformation.packageDependencies.get(name); + if (dependencyReference !== reference) + continue; + if (dependentName === name && dependentReference === reference) + continue; + dependents.push({ + name: dependentName, + reference: dependentReference + }); + } + } + return dependents; + } + function findBrokenPeerDependencies(dependency, initialPackage) { + const brokenPackages = /* @__PURE__ */ new Map(); + const alreadyVisited = /* @__PURE__ */ new Set(); + const traversal = (currentPackage) => { + const identifier = JSON.stringify(currentPackage.name); + if (alreadyVisited.has(identifier)) + return; + alreadyVisited.add(identifier); + const dependents = findPackageDependents(currentPackage); + for (const dependent of dependents) { + const dependentInformation = getPackageInformationSafe(dependent); + if (dependentInformation.packagePeers.has(dependency)) { + traversal(dependent); + } else { + let brokenSet = brokenPackages.get(dependent.name); + if (typeof brokenSet === `undefined`) + brokenPackages.set(dependent.name, brokenSet = /* @__PURE__ */ new Set()); + brokenSet.add(dependent.reference); + } + } + }; + traversal(initialPackage); + const brokenList = []; + for (const name of [...brokenPackages.keys()].sort()) + for (const reference of [...brokenPackages.get(name)].sort()) + brokenList.push({ name, reference }); + return brokenList; + } + function findPackageLocator(location, { resolveIgnored = false, includeDiscardFromLookup = false } = {}) { + if (isPathIgnored(location) && !resolveIgnored) + return null; + let relativeLocation = ppath.relative(runtimeState.basePath, location); + if (!relativeLocation.match(isStrictRegExp)) + relativeLocation = `./${relativeLocation}`; + if (!relativeLocation.endsWith(`/`)) + relativeLocation = `${relativeLocation}/`; + do { + const entry = packageLocatorsByLocations.get(relativeLocation); + if (typeof entry === `undefined` || entry.discardFromLookup && !includeDiscardFromLookup) { + relativeLocation = relativeLocation.substring(0, relativeLocation.lastIndexOf(`/`, relativeLocation.length - 2) + 1); + continue; + } + return entry.locator; + } while (relativeLocation !== ``); + return null; + } + function tryReadFile(filePath) { + try { + return opts.fakeFs.readFileSync(npath.toPortablePath(filePath), `utf8`); + } catch (err) { + if (err.code === `ENOENT`) + return void 0; + throw err; + } + } + function resolveToUnqualified(request, issuer, { considerBuiltins = true } = {}) { + if (request.startsWith(`#`)) + throw new Error(`resolveToUnqualified can not handle private import mappings`); + if (request === `pnpapi`) + return npath.toPortablePath(opts.pnpapiResolution); + if (considerBuiltins && require$$0.isBuiltin(request)) + return null; + const requestForDisplay = getPathForDisplay(request); + const issuerForDisplay = issuer && getPathForDisplay(issuer); + if (issuer && isPathIgnored(issuer)) { + if (!ppath.isAbsolute(request) || findPackageLocator(request) === null) { + const result = callNativeResolution(request, issuer); + if (result === false) { + throw makeError( + ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, + `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) + +Require request: "${requestForDisplay}" +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay } + ); + } + return npath.toPortablePath(result); + } + } + let unqualifiedPath; + const dependencyNameMatch = request.match(pathRegExp); + if (!dependencyNameMatch) { + if (ppath.isAbsolute(request)) { + unqualifiedPath = ppath.normalize(request); + } else { + if (!issuer) { + throw makeError( + ErrorCode.API_ERROR, + `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, + { request: requestForDisplay, issuer: issuerForDisplay } + ); + } + const absoluteIssuer = ppath.resolve(issuer); + if (issuer.match(isDirRegExp)) { + unqualifiedPath = ppath.normalize(ppath.join(absoluteIssuer, request)); + } else { + unqualifiedPath = ppath.normalize(ppath.join(ppath.dirname(absoluteIssuer), request)); + } + } + } else { + if (!issuer) { + throw makeError( + ErrorCode.API_ERROR, + `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, + { request: requestForDisplay, issuer: issuerForDisplay } + ); + } + const [, dependencyName, subPath] = dependencyNameMatch; + const issuerLocator = findPackageLocator(issuer); + if (!issuerLocator) { + const result = callNativeResolution(request, issuer); + if (result === false) { + throw makeError( + ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, + `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). + +Require path: "${requestForDisplay}" +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay } + ); + } + return npath.toPortablePath(result); + } + const issuerInformation = getPackageInformationSafe(issuerLocator); + let dependencyReference = issuerInformation.packageDependencies.get(dependencyName); + let fallbackReference = null; + if (dependencyReference == null) { + if (issuerLocator.name !== null) { + const exclusionEntry = runtimeState.fallbackExclusionList.get(issuerLocator.name); + const canUseFallbacks = !exclusionEntry || !exclusionEntry.has(issuerLocator.reference); + if (canUseFallbacks) { + for (let t = 0, T = fallbackLocators.length; t < T; ++t) { + const fallbackInformation = getPackageInformationSafe(fallbackLocators[t]); + const reference = fallbackInformation.packageDependencies.get(dependencyName); + if (reference == null) + continue; + if (alwaysWarnOnFallback) + fallbackReference = reference; + else + dependencyReference = reference; + break; + } + if (runtimeState.enableTopLevelFallback) { + if (dependencyReference == null && fallbackReference === null) { + const reference = runtimeState.fallbackPool.get(dependencyName); + if (reference != null) { + fallbackReference = reference; + } + } + } + } + } + } + let error = null; + if (dependencyReference === null) { + if (isDependencyTreeRoot(issuerLocator)) { + error = makeError( + ErrorCode.MISSING_PEER_DEPENDENCY, + `Your application tried to access ${dependencyName} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } + ); + } else { + const brokenAncestors = findBrokenPeerDependencies(dependencyName, issuerLocator); + if (brokenAncestors.every((ancestor) => isDependencyTreeRoot(ancestor))) { + error = makeError( + ErrorCode.MISSING_PEER_DEPENDENCY, + `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) +${brokenAncestors.map((ancestorLocator) => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference} +`).join(``)} +`, + { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName, brokenAncestors } + ); + } else { + error = makeError( + ErrorCode.MISSING_PEER_DEPENDENCY, + `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) + +${brokenAncestors.map((ancestorLocator) => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference} +`).join(``)} +`, + { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName, brokenAncestors } + ); + } + } + } else if (dependencyReference === void 0) { + if (!considerBuiltins && require$$0.isBuiltin(request)) { + if (isDependencyTreeRoot(issuerLocator)) { + error = makeError( + ErrorCode.UNDECLARED_DEPENDENCY, + `Your application tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } + ); + } else { + error = makeError( + ErrorCode.UNDECLARED_DEPENDENCY, + `${issuerLocator.name} tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in ${issuerLocator.name}'s dependencies, this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName } + ); + } + } else { + if (isDependencyTreeRoot(issuerLocator)) { + error = makeError( + ErrorCode.UNDECLARED_DEPENDENCY, + `Your application tried to access ${dependencyName}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerForDisplay} +`, + { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } + ); + } else { + error = makeError( + ErrorCode.UNDECLARED_DEPENDENCY, + `${issuerLocator.name} tried to access ${dependencyName}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. + +Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) +`, + { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName } + ); + } + } + } + if (dependencyReference == null) { + if (fallbackReference === null || error === null) + throw error || new Error(`Assertion failed: Expected an error to have been set`); + dependencyReference = fallbackReference; + const message = error.message.replace(/\n.*/g, ``); + error.message = message; + if (!emittedWarnings.has(message) && debugLevel !== 0) { + emittedWarnings.add(message); + process.emitWarning(error); + } + } + const dependencyLocator = Array.isArray(dependencyReference) ? { name: dependencyReference[0], reference: dependencyReference[1] } : { name: dependencyName, reference: dependencyReference }; + const dependencyInformation = getPackageInformationSafe(dependencyLocator); + if (!dependencyInformation.packageLocation) { + throw makeError( + ErrorCode.MISSING_DEPENDENCY, + `A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. + +Required package: ${dependencyLocator.name}@${dependencyLocator.reference}${dependencyLocator.name !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} +Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) +`, + { request: requestForDisplay, issuer: issuerForDisplay, dependencyLocator: Object.assign({}, dependencyLocator) } + ); + } + const dependencyLocation = dependencyInformation.packageLocation; + if (subPath) { + unqualifiedPath = ppath.join(dependencyLocation, subPath); + } else { + unqualifiedPath = dependencyLocation; + } + } + return ppath.normalize(unqualifiedPath); + } + function resolveUnqualifiedExport(request, unqualifiedPath, conditions = defaultExportsConditions, issuer) { + if (isStrictRegExp.test(request)) + return unqualifiedPath; + const unqualifiedExportPath = applyNodeExportsResolution(unqualifiedPath, conditions, issuer); + if (unqualifiedExportPath) { + return ppath.normalize(unqualifiedExportPath); + } else { + return unqualifiedPath; + } + } + function resolveUnqualified(unqualifiedPath, { extensions = Object.keys(require$$0.Module._extensions) } = {}) { + const candidates = []; + const qualifiedPath = applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions }); + if (qualifiedPath) { + return ppath.normalize(qualifiedPath); + } else { + reportRequiredFilesToWatchMode(candidates.map((candidate) => npath.fromPortablePath(candidate))); + const unqualifiedPathForDisplay = getPathForDisplay(unqualifiedPath); + const containingPackage = findPackageLocator(unqualifiedPath); + if (containingPackage) { + const { packageLocation } = getPackageInformationSafe(containingPackage); + let exists = true; + try { + opts.fakeFs.accessSync(packageLocation); + } catch (err) { + if (err?.code === `ENOENT`) { + exists = false; + } else { + const readableError = (err?.message ?? err ?? `empty exception thrown`).replace(/^[A-Z]/, ($0) => $0.toLowerCase()); + throw makeError(ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, `Required package exists but could not be accessed (${readableError}). + +Missing package: ${containingPackage.name}@${containingPackage.reference} +Expected package location: ${getPathForDisplay(packageLocation)} +`, { unqualifiedPath: unqualifiedPathForDisplay, extensions }); + } + } + if (!exists) { + const errorMessage = packageLocation.includes(`/unplugged/`) ? `Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).` : `Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.`; + throw makeError( + ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, + `${errorMessage} + +Missing package: ${containingPackage.name}@${containingPackage.reference} +Expected package location: ${getPathForDisplay(packageLocation)} +`, + { unqualifiedPath: unqualifiedPathForDisplay, extensions } + ); + } + } + throw makeError( + ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, + `Qualified path resolution failed: we looked for the following paths, but none could be accessed. + +Source path: ${unqualifiedPathForDisplay} +${candidates.map((candidate) => `Not found: ${getPathForDisplay(candidate)} +`).join(``)}`, + { unqualifiedPath: unqualifiedPathForDisplay, extensions } + ); + } + } + function resolvePrivateRequest(request, issuer, opts2) { + if (!issuer) + throw new Error(`Assertion failed: An issuer is required to resolve private import mappings`); + const resolved = packageImportsResolve({ + name: request, + base: url.pathToFileURL(npath.fromPortablePath(issuer)), + conditions: opts2.conditions ?? defaultExportsConditions, + readFileSyncFn: tryReadFile + }); + if (resolved instanceof URL) { + return resolveUnqualified(npath.toPortablePath(url.fileURLToPath(resolved)), { extensions: opts2.extensions }); + } else { + if (resolved.startsWith(`#`)) + throw new Error(`Mapping from one private import to another isn't allowed`); + return resolveRequest(resolved, issuer, opts2); + } + } + function resolveRequest(request, issuer, opts2 = {}) { + try { + if (request.startsWith(`#`)) + return resolvePrivateRequest(request, issuer, opts2); + const { considerBuiltins, extensions, conditions } = opts2; + const unqualifiedPath = resolveToUnqualified(request, issuer, { considerBuiltins }); + if (request === `pnpapi`) + return unqualifiedPath; + if (unqualifiedPath === null) + return null; + const isIssuerIgnored = () => issuer !== null ? isPathIgnored(issuer) : false; + const remappedPath = (!considerBuiltins || !require$$0.isBuiltin(request)) && !isIssuerIgnored() ? resolveUnqualifiedExport(request, unqualifiedPath, conditions, issuer) : unqualifiedPath; + return resolveUnqualified(remappedPath, { extensions }); + } catch (error) { + if (Object.hasOwn(error, `pnpCode`)) + Object.assign(error.data, { request: getPathForDisplay(request), issuer: issuer && getPathForDisplay(issuer) }); + throw error; + } + } + function resolveVirtual(request) { + const normalized = ppath.normalize(request); + const resolved = VirtualFS.resolveVirtual(normalized); + return resolved !== normalized ? resolved : null; + } + return { + VERSIONS, + topLevel, + getLocator: (name, referencish) => { + if (Array.isArray(referencish)) { + return { name: referencish[0], reference: referencish[1] }; + } else { + return { name, reference: referencish }; + } + }, + getDependencyTreeRoots: () => { + return [...runtimeState.dependencyTreeRoots]; + }, + getAllLocators() { + const locators = []; + for (const [name, entry] of packageRegistry) + for (const reference of entry.keys()) + if (name !== null && reference !== null) + locators.push({ name, reference }); + return locators; + }, + getPackageInformation: (locator) => { + const info = getPackageInformation(locator); + if (info === null) + return null; + const packageLocation = npath.fromPortablePath(info.packageLocation); + const nativeInfo = { ...info, packageLocation }; + return nativeInfo; + }, + findPackageLocator: (path) => { + return findPackageLocator(npath.toPortablePath(path)); + }, + resolveToUnqualified: maybeLog(`resolveToUnqualified`, (request, issuer, opts2) => { + const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null; + const resolution = resolveToUnqualified(npath.toPortablePath(request), portableIssuer, opts2); + if (resolution === null) + return null; + return npath.fromPortablePath(resolution); + }), + resolveUnqualified: maybeLog(`resolveUnqualified`, (unqualifiedPath, opts2) => { + return npath.fromPortablePath(resolveUnqualified(npath.toPortablePath(unqualifiedPath), opts2)); + }), + resolveRequest: maybeLog(`resolveRequest`, (request, issuer, opts2) => { + const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null; + const resolution = resolveRequest(npath.toPortablePath(request), portableIssuer, opts2); + if (resolution === null) + return null; + return npath.fromPortablePath(resolution); + }), + resolveVirtual: maybeLog(`resolveVirtual`, (path) => { + const result = resolveVirtual(npath.toPortablePath(path)); + if (result !== null) { + return npath.fromPortablePath(result); + } else { + return null; + } + }) + }; +} + +function makeManager(pnpapi, opts) { + const initialApiPath = npath.toPortablePath(pnpapi.resolveToUnqualified(`pnpapi`, null)); + const initialApiStats = opts.fakeFs.statSync(npath.toPortablePath(initialApiPath)); + const apiMetadata = /* @__PURE__ */ new Map([ + [initialApiPath, { + instance: pnpapi, + stats: initialApiStats, + lastRefreshCheck: Date.now() + }] + ]); + function loadApiInstance(pnpApiPath) { + const nativePath = npath.fromPortablePath(pnpApiPath); + const module = new require$$0.Module(nativePath, null); + module.load(nativePath); + return module.exports; + } + function refreshApiEntry(pnpApiPath, apiEntry) { + const timeNow = Date.now(); + if (timeNow - apiEntry.lastRefreshCheck < 500) + return; + apiEntry.lastRefreshCheck = timeNow; + const stats = opts.fakeFs.statSync(pnpApiPath); + if (stats.mtime > apiEntry.stats.mtime) { + process.emitWarning(`[Warning] The runtime detected new information in a PnP file; reloading the API instance (${npath.fromPortablePath(pnpApiPath)})`); + apiEntry.stats = stats; + apiEntry.instance = loadApiInstance(pnpApiPath); + } + } + function getApiEntry(pnpApiPath, refresh = false) { + let apiEntry = apiMetadata.get(pnpApiPath); + if (typeof apiEntry !== `undefined`) { + if (refresh) { + refreshApiEntry(pnpApiPath, apiEntry); + } + } else { + apiMetadata.set(pnpApiPath, apiEntry = { + instance: loadApiInstance(pnpApiPath), + stats: opts.fakeFs.statSync(pnpApiPath), + lastRefreshCheck: Date.now() + }); + } + return apiEntry; + } + const findApiPathCache = /* @__PURE__ */ new Map(); + function addToCacheAndReturn(start, end, target) { + if (target !== null) { + target = VirtualFS.resolveVirtual(target); + target = opts.fakeFs.realpathSync(target); + } + let curr; + let next = start; + do { + curr = next; + findApiPathCache.set(curr, target); + next = ppath.dirname(curr); + } while (curr !== end); + return target; + } + function findApiPathFor(modulePath) { + let bestCandidate = null; + for (const [apiPath, apiEntry] of apiMetadata) { + const locator = apiEntry.instance.findPackageLocator(modulePath); + if (!locator) + continue; + if (apiMetadata.size === 1) + return apiPath; + const packageInformation = apiEntry.instance.getPackageInformation(locator); + if (!packageInformation) + throw new Error(`Assertion failed: Couldn't get package information for '${modulePath}'`); + if (!bestCandidate) + bestCandidate = { packageLocation: packageInformation.packageLocation, apiPaths: [] }; + if (packageInformation.packageLocation === bestCandidate.packageLocation) { + bestCandidate.apiPaths.push(apiPath); + } else if (packageInformation.packageLocation.length > bestCandidate.packageLocation.length) { + bestCandidate = { packageLocation: packageInformation.packageLocation, apiPaths: [apiPath] }; + } + } + if (bestCandidate) { + if (bestCandidate.apiPaths.length === 1) + return bestCandidate.apiPaths[0]; + const controlSegment = bestCandidate.apiPaths.map((apiPath) => ` ${npath.fromPortablePath(apiPath)}`).join(` +`); + throw new Error(`Unable to locate pnpapi, the module '${modulePath}' is controlled by multiple pnpapi instances. +This is usually caused by using the global cache (enableGlobalCache: true) + +Controlled by: +${controlSegment} +`); + } + const start = ppath.resolve(npath.toPortablePath(modulePath)); + let curr; + let next = start; + do { + curr = next; + const cached = findApiPathCache.get(curr); + if (cached !== void 0) + return addToCacheAndReturn(start, curr, cached); + const cjsCandidate = ppath.join(curr, Filename.pnpCjs); + if (opts.fakeFs.existsSync(cjsCandidate) && opts.fakeFs.statSync(cjsCandidate).isFile()) + return addToCacheAndReturn(start, curr, cjsCandidate); + const legacyCjsCandidate = ppath.join(curr, Filename.pnpJs); + if (opts.fakeFs.existsSync(legacyCjsCandidate) && opts.fakeFs.statSync(legacyCjsCandidate).isFile()) + return addToCacheAndReturn(start, curr, legacyCjsCandidate); + next = ppath.dirname(curr); + } while (curr !== PortablePath.root); + return addToCacheAndReturn(start, curr, null); + } + const moduleToApiPathCache = /* @__PURE__ */ new WeakMap(); + function getApiPathFromParent(parent) { + if (parent == null) + return initialApiPath; + let apiPath = moduleToApiPathCache.get(parent); + if (typeof apiPath !== `undefined`) + return apiPath; + apiPath = parent.filename ? findApiPathFor(parent.filename) : null; + moduleToApiPathCache.set(parent, apiPath); + return apiPath; + } + return { + getApiPathFromParent, + findApiPathFor, + getApiEntry + }; +} + +const localFs = { ...fs__default.default }; +const nodeFs = new NodeFS(localFs); +const defaultRuntimeState = $$SETUP_STATE(hydrateRuntimeState); +const defaultPnpapiResolution = __filename; +const customZipImplementation = defaultRuntimeState.pnpZipBackend === `js` ? JsZipImpl : void 0; +const defaultFsLayer = new VirtualFS({ + baseFs: new ZipOpenFS({ + customZipImplementation, + baseFs: nodeFs, + maxOpenFiles: 80, + readOnlyArchives: true + }) +}); +class DynamicFS extends ProxiedFS { + baseFs = defaultFsLayer; + constructor() { + super(ppath); + } + mapToBase(p) { + return p; + } + mapFromBase(p) { + return p; + } +} +const dynamicFsLayer = new DynamicFS(); +let manager; +const defaultApi = Object.assign(makeApi(defaultRuntimeState, { + fakeFs: dynamicFsLayer, + pnpapiResolution: defaultPnpapiResolution +}), { + /** + * Can be used to generate a different API than the default one (for example + * to map it on `/` rather than the local directory path, or to use a + * different FS layer than the default one). + */ + makeApi: ({ + basePath = void 0, + fakeFs = dynamicFsLayer, + pnpapiResolution = defaultPnpapiResolution, + ...rest + }) => { + const apiRuntimeState = typeof basePath !== `undefined` ? $$SETUP_STATE(hydrateRuntimeState, basePath) : defaultRuntimeState; + return makeApi(apiRuntimeState, { + fakeFs, + pnpapiResolution, + ...rest + }); + }, + /** + * Will inject the specified API into the environment, monkey-patching FS. Is + * automatically called when the hook is loaded through `--require`. + */ + setup: (api) => { + applyPatch(api || defaultApi, { + fakeFs: defaultFsLayer, + manager + }); + dynamicFsLayer.baseFs = new NodeFS(fs__default.default); + } +}); +manager = makeManager(defaultApi, { + fakeFs: dynamicFsLayer +}); +if (module.parent && module.parent.id === `internal/preload`) { + defaultApi.setup(); + if (module.filename) { + delete require$$0__default.default._cache[module.filename]; + } +} +if (process.mainModule === module) { + const reportError = (code, message, data) => { + process.stdout.write(`${JSON.stringify([{ code, message, data }, null])} +`); + }; + const reportSuccess = (resolution) => { + process.stdout.write(`${JSON.stringify([null, resolution])} +`); + }; + const processResolution = (request, issuer) => { + try { + reportSuccess(defaultApi.resolveRequest(request, issuer)); + } catch (error) { + reportError(error.code, error.message, error.data); + } + }; + const processRequest = (data) => { + try { + const [request, issuer] = JSON.parse(data); + processResolution(request, issuer); + } catch (error) { + reportError(`INVALID_JSON`, error.message, error.data); + } + }; + if (process.argv.length > 2) { + if (process.argv.length !== 4) { + process.stderr.write(`Usage: ${process.argv[0]} ${process.argv[1]} +`); + process.exitCode = 64; + } else { + processResolution(process.argv[2], process.argv[3]); + } + } else { + let buffer = ``; + const decoder = new StringDecoder__default.default.StringDecoder(); + process.stdin.on(`data`, (chunk) => { + buffer += decoder.write(chunk); + do { + const index = buffer.indexOf(` +`); + if (index === -1) + break; + const line = buffer.slice(0, index); + buffer = buffer.slice(index + 1); + processRequest(line); + } while (true); + }); + } +} + +module.exports = defaultApi; diff --git a/.pnp.loader.mjs b/.pnp.loader.mjs new file mode 100644 index 0000000000..9896cc716f --- /dev/null +++ b/.pnp.loader.mjs @@ -0,0 +1,2126 @@ +/* eslint-disable */ +// @ts-nocheck + +import fs from 'fs'; +import { URL as URL$1, fileURLToPath, pathToFileURL } from 'url'; +import path from 'path'; +import { createHash } from 'crypto'; +import { EOL } from 'os'; +import esmModule, { createRequire, isBuiltin } from 'module'; +import assert from 'assert'; + +const SAFE_TIME = 456789e3; + +const PortablePath = { + root: `/`, + dot: `.`, + parent: `..` +}; +const npath = Object.create(path); +const ppath = Object.create(path.posix); +npath.cwd = () => process.cwd(); +ppath.cwd = process.platform === `win32` ? () => toPortablePath(process.cwd()) : process.cwd; +if (process.platform === `win32`) { + ppath.resolve = (...segments) => { + if (segments.length > 0 && ppath.isAbsolute(segments[0])) { + return path.posix.resolve(...segments); + } else { + return path.posix.resolve(ppath.cwd(), ...segments); + } + }; +} +const contains = function(pathUtils, from, to) { + from = pathUtils.normalize(from); + to = pathUtils.normalize(to); + if (from === to) + return `.`; + if (!from.endsWith(pathUtils.sep)) + from = from + pathUtils.sep; + if (to.startsWith(from)) { + return to.slice(from.length); + } else { + return null; + } +}; +npath.contains = (from, to) => contains(npath, from, to); +ppath.contains = (from, to) => contains(ppath, from, to); +const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/; +const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/; +const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/; +const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/; +function fromPortablePathWin32(p) { + let portablePathMatch, uncPortablePathMatch; + if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP)) + p = portablePathMatch[1]; + else if (uncPortablePathMatch = p.match(UNC_PORTABLE_PATH_REGEXP)) + p = `\\\\${uncPortablePathMatch[1] ? `.\\` : ``}${uncPortablePathMatch[2]}`; + else + return p; + return p.replace(/\//g, `\\`); +} +function toPortablePathWin32(p) { + p = p.replace(/\\/g, `/`); + let windowsPathMatch, uncWindowsPathMatch; + if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP)) + p = `/${windowsPathMatch[1]}`; + else if (uncWindowsPathMatch = p.match(UNC_WINDOWS_PATH_REGEXP)) + p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`; + return p; +} +const toPortablePath = process.platform === `win32` ? toPortablePathWin32 : (p) => p; +const fromPortablePath = process.platform === `win32` ? fromPortablePathWin32 : (p) => p; +npath.fromPortablePath = fromPortablePath; +npath.toPortablePath = toPortablePath; +function convertPath(targetPathUtils, sourcePath) { + return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath); +} + +const defaultTime = new Date(SAFE_TIME * 1e3); +const defaultTimeMs = defaultTime.getTime(); +async function copyPromise(destinationFs, destination, sourceFs, source, opts) { + const normalizedDestination = destinationFs.pathUtils.normalize(destination); + const normalizedSource = sourceFs.pathUtils.normalize(source); + const prelayout = []; + const postlayout = []; + const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : await sourceFs.lstatPromise(normalizedSource); + await destinationFs.mkdirpPromise(destinationFs.pathUtils.dirname(destination), { utimes: [atime, mtime] }); + await copyImpl(prelayout, postlayout, destinationFs, normalizedDestination, sourceFs, normalizedSource, { ...opts, didParentExist: true }); + for (const operation of prelayout) + await operation(); + await Promise.all(postlayout.map((operation) => { + return operation(); + })); +} +async function copyImpl(prelayout, postlayout, destinationFs, destination, sourceFs, source, opts) { + const destinationStat = opts.didParentExist ? await maybeLStat(destinationFs, destination) : null; + const sourceStat = await sourceFs.lstatPromise(source); + const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : sourceStat; + let updated; + switch (true) { + case sourceStat.isDirectory(): + { + updated = await copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + case sourceStat.isFile(): + { + updated = await copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + case sourceStat.isSymbolicLink(): + { + updated = await copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } + break; + default: { + throw new Error(`Unsupported file type (${sourceStat.mode})`); + } + } + if (opts.linkStrategy?.type !== `HardlinkFromIndex` || !sourceStat.isFile()) { + if (updated || destinationStat?.mtime?.getTime() !== mtime.getTime() || destinationStat?.atime?.getTime() !== atime.getTime()) { + postlayout.push(() => destinationFs.lutimesPromise(destination, atime, mtime)); + updated = true; + } + if (destinationStat === null || (destinationStat.mode & 511) !== (sourceStat.mode & 511)) { + postlayout.push(() => destinationFs.chmodPromise(destination, sourceStat.mode & 511)); + updated = true; + } + } + return updated; +} +async function maybeLStat(baseFs, p) { + try { + return await baseFs.lstatPromise(p); + } catch { + return null; + } +} +async function copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null && !destinationStat.isDirectory()) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + let updated = false; + if (destinationStat === null) { + prelayout.push(async () => { + try { + await destinationFs.mkdirPromise(destination, { mode: sourceStat.mode }); + } catch (err) { + if (err.code !== `EEXIST`) { + throw err; + } + } + }); + updated = true; + } + const entries = await sourceFs.readdirPromise(source); + const nextOpts = opts.didParentExist && !destinationStat ? { ...opts, didParentExist: false } : opts; + if (opts.stableSort) { + for (const entry of entries.sort()) { + if (await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts)) { + updated = true; + } + } + } else { + const entriesUpdateStatus = await Promise.all(entries.map(async (entry) => { + await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts); + })); + if (entriesUpdateStatus.some((status) => status)) { + updated = true; + } + } + return updated; +} +async function copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, linkStrategy) { + const sourceHash = await sourceFs.checksumFilePromise(source, { algorithm: `sha1` }); + const defaultMode = 420; + const sourceMode = sourceStat.mode & 511; + const indexFileName = `${sourceHash}${sourceMode !== defaultMode ? sourceMode.toString(8) : ``}`; + const indexPath = destinationFs.pathUtils.join(linkStrategy.indexPath, sourceHash.slice(0, 2), `${indexFileName}.dat`); + let AtomicBehavior; + ((AtomicBehavior2) => { + AtomicBehavior2[AtomicBehavior2["Lock"] = 0] = "Lock"; + AtomicBehavior2[AtomicBehavior2["Rename"] = 1] = "Rename"; + })(AtomicBehavior || (AtomicBehavior = {})); + let atomicBehavior = 1 /* Rename */; + let indexStat = await maybeLStat(destinationFs, indexPath); + if (destinationStat) { + const isDestinationHardlinkedFromIndex = indexStat && destinationStat.dev === indexStat.dev && destinationStat.ino === indexStat.ino; + const isIndexModified = indexStat?.mtimeMs !== defaultTimeMs; + if (isDestinationHardlinkedFromIndex) { + if (isIndexModified && linkStrategy.autoRepair) { + atomicBehavior = 0 /* Lock */; + indexStat = null; + } + } + if (!isDestinationHardlinkedFromIndex) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + } + const tempPath = !indexStat && atomicBehavior === 1 /* Rename */ ? `${indexPath}.${Math.floor(Math.random() * 4294967296).toString(16).padStart(8, `0`)}` : null; + let tempPathCleaned = false; + prelayout.push(async () => { + if (!indexStat) { + if (atomicBehavior === 0 /* Lock */) { + await destinationFs.lockPromise(indexPath, async () => { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(indexPath, content); + }); + } + if (atomicBehavior === 1 /* Rename */ && tempPath) { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(tempPath, content); + try { + await destinationFs.linkPromise(tempPath, indexPath); + } catch (err) { + if (err.code === `EEXIST`) { + tempPathCleaned = true; + await destinationFs.unlinkPromise(tempPath); + } else { + throw err; + } + } + } + } + if (!destinationStat) { + await destinationFs.linkPromise(indexPath, destination); + } + }); + postlayout.push(async () => { + if (!indexStat) { + await destinationFs.lutimesPromise(indexPath, defaultTime, defaultTime); + if (sourceMode !== defaultMode) { + await destinationFs.chmodPromise(indexPath, sourceMode); + } + } + if (tempPath && !tempPathCleaned) { + await destinationFs.unlinkPromise(tempPath); + } + }); + return false; +} +async function copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + prelayout.push(async () => { + const content = await sourceFs.readFilePromise(source); + await destinationFs.writeFilePromise(destination, content); + }); + return true; +} +async function copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (opts.linkStrategy?.type === `HardlinkFromIndex`) { + return copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, opts.linkStrategy); + } else { + return copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); + } +} +async function copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { + if (destinationStat !== null) { + if (opts.overwrite) { + prelayout.push(async () => destinationFs.removePromise(destination)); + destinationStat = null; + } else { + return false; + } + } + prelayout.push(async () => { + await destinationFs.symlinkPromise(convertPath(destinationFs.pathUtils, await sourceFs.readlinkPromise(source)), destination); + }); + return true; +} + +class FakeFS { + pathUtils; + constructor(pathUtils) { + this.pathUtils = pathUtils; + } + async *genTraversePromise(init, { stableSort = false } = {}) { + const stack = [init]; + while (stack.length > 0) { + const p = stack.shift(); + const entry = await this.lstatPromise(p); + if (entry.isDirectory()) { + const entries = await this.readdirPromise(p); + if (stableSort) { + for (const entry2 of entries.sort()) { + stack.push(this.pathUtils.join(p, entry2)); + } + } else { + throw new Error(`Not supported`); + } + } else { + yield p; + } + } + } + async checksumFilePromise(path, { algorithm = `sha512` } = {}) { + const fd = await this.openPromise(path, `r`); + try { + const CHUNK_SIZE = 65536; + const chunk = Buffer.allocUnsafeSlow(CHUNK_SIZE); + const hash = createHash(algorithm); + let bytesRead = 0; + while ((bytesRead = await this.readPromise(fd, chunk, 0, CHUNK_SIZE)) !== 0) + hash.update(bytesRead === CHUNK_SIZE ? chunk : chunk.slice(0, bytesRead)); + return hash.digest(`hex`); + } finally { + await this.closePromise(fd); + } + } + async removePromise(p, { recursive = true, maxRetries = 5 } = {}) { + let stat; + try { + stat = await this.lstatPromise(p); + } catch (error) { + if (error.code === `ENOENT`) { + return; + } else { + throw error; + } + } + if (stat.isDirectory()) { + if (recursive) { + const entries = await this.readdirPromise(p); + await Promise.all(entries.map((entry) => { + return this.removePromise(this.pathUtils.resolve(p, entry)); + })); + } + for (let t = 0; t <= maxRetries; t++) { + try { + await this.rmdirPromise(p); + break; + } catch (error) { + if (error.code !== `EBUSY` && error.code !== `ENOTEMPTY`) { + throw error; + } else if (t < maxRetries) { + await new Promise((resolve) => setTimeout(resolve, t * 100)); + } + } + } + } else { + await this.unlinkPromise(p); + } + } + removeSync(p, { recursive = true } = {}) { + let stat; + try { + stat = this.lstatSync(p); + } catch (error) { + if (error.code === `ENOENT`) { + return; + } else { + throw error; + } + } + if (stat.isDirectory()) { + if (recursive) + for (const entry of this.readdirSync(p)) + this.removeSync(this.pathUtils.resolve(p, entry)); + this.rmdirSync(p); + } else { + this.unlinkSync(p); + } + } + async mkdirpPromise(p, { chmod, utimes } = {}) { + p = this.resolve(p); + if (p === this.pathUtils.dirname(p)) + return void 0; + const parts = p.split(this.pathUtils.sep); + let createdDirectory; + for (let u = 2; u <= parts.length; ++u) { + const subPath = parts.slice(0, u).join(this.pathUtils.sep); + if (!this.existsSync(subPath)) { + try { + await this.mkdirPromise(subPath); + } catch (error) { + if (error.code === `EEXIST`) { + continue; + } else { + throw error; + } + } + createdDirectory ??= subPath; + if (chmod != null) + await this.chmodPromise(subPath, chmod); + if (utimes != null) { + await this.utimesPromise(subPath, utimes[0], utimes[1]); + } else { + const parentStat = await this.statPromise(this.pathUtils.dirname(subPath)); + await this.utimesPromise(subPath, parentStat.atime, parentStat.mtime); + } + } + } + return createdDirectory; + } + mkdirpSync(p, { chmod, utimes } = {}) { + p = this.resolve(p); + if (p === this.pathUtils.dirname(p)) + return void 0; + const parts = p.split(this.pathUtils.sep); + let createdDirectory; + for (let u = 2; u <= parts.length; ++u) { + const subPath = parts.slice(0, u).join(this.pathUtils.sep); + if (!this.existsSync(subPath)) { + try { + this.mkdirSync(subPath); + } catch (error) { + if (error.code === `EEXIST`) { + continue; + } else { + throw error; + } + } + createdDirectory ??= subPath; + if (chmod != null) + this.chmodSync(subPath, chmod); + if (utimes != null) { + this.utimesSync(subPath, utimes[0], utimes[1]); + } else { + const parentStat = this.statSync(this.pathUtils.dirname(subPath)); + this.utimesSync(subPath, parentStat.atime, parentStat.mtime); + } + } + } + return createdDirectory; + } + async copyPromise(destination, source, { baseFs = this, overwrite = true, stableSort = false, stableTime = false, linkStrategy = null } = {}) { + return await copyPromise(this, destination, baseFs, source, { overwrite, stableSort, stableTime, linkStrategy }); + } + copySync(destination, source, { baseFs = this, overwrite = true } = {}) { + const stat = baseFs.lstatSync(source); + const exists = this.existsSync(destination); + if (stat.isDirectory()) { + this.mkdirpSync(destination); + const directoryListing = baseFs.readdirSync(source); + for (const entry of directoryListing) { + this.copySync(this.pathUtils.join(destination, entry), baseFs.pathUtils.join(source, entry), { baseFs, overwrite }); + } + } else if (stat.isFile()) { + if (!exists || overwrite) { + if (exists) + this.removeSync(destination); + const content = baseFs.readFileSync(source); + this.writeFileSync(destination, content); + } + } else if (stat.isSymbolicLink()) { + if (!exists || overwrite) { + if (exists) + this.removeSync(destination); + const target = baseFs.readlinkSync(source); + this.symlinkSync(convertPath(this.pathUtils, target), destination); + } + } else { + throw new Error(`Unsupported file type (file: ${source}, mode: 0o${stat.mode.toString(8).padStart(6, `0`)})`); + } + const mode = stat.mode & 511; + this.chmodSync(destination, mode); + } + async changeFilePromise(p, content, opts = {}) { + if (Buffer.isBuffer(content)) { + return this.changeFileBufferPromise(p, content, opts); + } else { + return this.changeFileTextPromise(p, content, opts); + } + } + async changeFileBufferPromise(p, content, { mode } = {}) { + let current = Buffer.alloc(0); + try { + current = await this.readFilePromise(p); + } catch { + } + if (Buffer.compare(current, content) === 0) + return; + await this.writeFilePromise(p, content, { mode }); + } + async changeFileTextPromise(p, content, { automaticNewlines, mode } = {}) { + let current = ``; + try { + current = await this.readFilePromise(p, `utf8`); + } catch { + } + const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; + if (current === normalizedContent) + return; + await this.writeFilePromise(p, normalizedContent, { mode }); + } + changeFileSync(p, content, opts = {}) { + if (Buffer.isBuffer(content)) { + return this.changeFileBufferSync(p, content, opts); + } else { + return this.changeFileTextSync(p, content, opts); + } + } + changeFileBufferSync(p, content, { mode } = {}) { + let current = Buffer.alloc(0); + try { + current = this.readFileSync(p); + } catch { + } + if (Buffer.compare(current, content) === 0) + return; + this.writeFileSync(p, content, { mode }); + } + changeFileTextSync(p, content, { automaticNewlines = false, mode } = {}) { + let current = ``; + try { + current = this.readFileSync(p, `utf8`); + } catch { + } + const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; + if (current === normalizedContent) + return; + this.writeFileSync(p, normalizedContent, { mode }); + } + async movePromise(fromP, toP) { + try { + await this.renamePromise(fromP, toP); + } catch (error) { + if (error.code === `EXDEV`) { + await this.copyPromise(toP, fromP); + await this.removePromise(fromP); + } else { + throw error; + } + } + } + moveSync(fromP, toP) { + try { + this.renameSync(fromP, toP); + } catch (error) { + if (error.code === `EXDEV`) { + this.copySync(toP, fromP); + this.removeSync(fromP); + } else { + throw error; + } + } + } + async lockPromise(affectedPath, callback) { + const lockPath = `${affectedPath}.flock`; + const interval = 1e3 / 60; + const startTime = Date.now(); + let fd = null; + const isAlive = async () => { + let pid; + try { + [pid] = await this.readJsonPromise(lockPath); + } catch { + return Date.now() - startTime < 500; + } + try { + process.kill(pid, 0); + return true; + } catch { + return false; + } + }; + while (fd === null) { + try { + fd = await this.openPromise(lockPath, `wx`); + } catch (error) { + if (error.code === `EEXIST`) { + if (!await isAlive()) { + try { + await this.unlinkPromise(lockPath); + continue; + } catch { + } + } + if (Date.now() - startTime < 60 * 1e3) { + await new Promise((resolve) => setTimeout(resolve, interval)); + } else { + throw new Error(`Couldn't acquire a lock in a reasonable time (via ${lockPath})`); + } + } else { + throw error; + } + } + } + await this.writePromise(fd, JSON.stringify([process.pid])); + try { + return await callback(); + } finally { + try { + await this.closePromise(fd); + await this.unlinkPromise(lockPath); + } catch { + } + } + } + async readJsonPromise(p) { + const content = await this.readFilePromise(p, `utf8`); + try { + return JSON.parse(content); + } catch (error) { + error.message += ` (in ${p})`; + throw error; + } + } + readJsonSync(p) { + const content = this.readFileSync(p, `utf8`); + try { + return JSON.parse(content); + } catch (error) { + error.message += ` (in ${p})`; + throw error; + } + } + async writeJsonPromise(p, data, { compact = false } = {}) { + const space = compact ? 0 : 2; + return await this.writeFilePromise(p, `${JSON.stringify(data, null, space)} +`); + } + writeJsonSync(p, data, { compact = false } = {}) { + const space = compact ? 0 : 2; + return this.writeFileSync(p, `${JSON.stringify(data, null, space)} +`); + } + async preserveTimePromise(p, cb) { + const stat = await this.lstatPromise(p); + const result = await cb(); + if (typeof result !== `undefined`) + p = result; + await this.lutimesPromise(p, stat.atime, stat.mtime); + } + async preserveTimeSync(p, cb) { + const stat = this.lstatSync(p); + const result = cb(); + if (typeof result !== `undefined`) + p = result; + this.lutimesSync(p, stat.atime, stat.mtime); + } +} +class BasePortableFakeFS extends FakeFS { + constructor() { + super(ppath); + } +} +function getEndOfLine(content) { + const matches = content.match(/\r?\n/g); + if (matches === null) + return EOL; + const crlf = matches.filter((nl) => nl === `\r +`).length; + const lf = matches.length - crlf; + return crlf > lf ? `\r +` : ` +`; +} +function normalizeLineEndings(originalContent, newContent) { + return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)); +} + +class ProxiedFS extends FakeFS { + getExtractHint(hints) { + return this.baseFs.getExtractHint(hints); + } + resolve(path) { + return this.mapFromBase(this.baseFs.resolve(this.mapToBase(path))); + } + getRealPath() { + return this.mapFromBase(this.baseFs.getRealPath()); + } + async openPromise(p, flags, mode) { + return this.baseFs.openPromise(this.mapToBase(p), flags, mode); + } + openSync(p, flags, mode) { + return this.baseFs.openSync(this.mapToBase(p), flags, mode); + } + async opendirPromise(p, opts) { + return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(p), opts), { path: p }); + } + opendirSync(p, opts) { + return Object.assign(this.baseFs.opendirSync(this.mapToBase(p), opts), { path: p }); + } + async readPromise(fd, buffer, offset, length, position) { + return await this.baseFs.readPromise(fd, buffer, offset, length, position); + } + readSync(fd, buffer, offset, length, position) { + return this.baseFs.readSync(fd, buffer, offset, length, position); + } + async writePromise(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return await this.baseFs.writePromise(fd, buffer, offset); + } else { + return await this.baseFs.writePromise(fd, buffer, offset, length, position); + } + } + writeSync(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.baseFs.writeSync(fd, buffer, offset); + } else { + return this.baseFs.writeSync(fd, buffer, offset, length, position); + } + } + async closePromise(fd) { + return this.baseFs.closePromise(fd); + } + closeSync(fd) { + this.baseFs.closeSync(fd); + } + createReadStream(p, opts) { + return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts); + } + createWriteStream(p, opts) { + return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts); + } + async realpathPromise(p) { + return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p))); + } + realpathSync(p) { + return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p))); + } + async existsPromise(p) { + return this.baseFs.existsPromise(this.mapToBase(p)); + } + existsSync(p) { + return this.baseFs.existsSync(this.mapToBase(p)); + } + accessSync(p, mode) { + return this.baseFs.accessSync(this.mapToBase(p), mode); + } + async accessPromise(p, mode) { + return this.baseFs.accessPromise(this.mapToBase(p), mode); + } + async statPromise(p, opts) { + return this.baseFs.statPromise(this.mapToBase(p), opts); + } + statSync(p, opts) { + return this.baseFs.statSync(this.mapToBase(p), opts); + } + async fstatPromise(fd, opts) { + return this.baseFs.fstatPromise(fd, opts); + } + fstatSync(fd, opts) { + return this.baseFs.fstatSync(fd, opts); + } + lstatPromise(p, opts) { + return this.baseFs.lstatPromise(this.mapToBase(p), opts); + } + lstatSync(p, opts) { + return this.baseFs.lstatSync(this.mapToBase(p), opts); + } + async fchmodPromise(fd, mask) { + return this.baseFs.fchmodPromise(fd, mask); + } + fchmodSync(fd, mask) { + return this.baseFs.fchmodSync(fd, mask); + } + async chmodPromise(p, mask) { + return this.baseFs.chmodPromise(this.mapToBase(p), mask); + } + chmodSync(p, mask) { + return this.baseFs.chmodSync(this.mapToBase(p), mask); + } + async fchownPromise(fd, uid, gid) { + return this.baseFs.fchownPromise(fd, uid, gid); + } + fchownSync(fd, uid, gid) { + return this.baseFs.fchownSync(fd, uid, gid); + } + async chownPromise(p, uid, gid) { + return this.baseFs.chownPromise(this.mapToBase(p), uid, gid); + } + chownSync(p, uid, gid) { + return this.baseFs.chownSync(this.mapToBase(p), uid, gid); + } + async renamePromise(oldP, newP) { + return this.baseFs.renamePromise(this.mapToBase(oldP), this.mapToBase(newP)); + } + renameSync(oldP, newP) { + return this.baseFs.renameSync(this.mapToBase(oldP), this.mapToBase(newP)); + } + async copyFilePromise(sourceP, destP, flags = 0) { + return this.baseFs.copyFilePromise(this.mapToBase(sourceP), this.mapToBase(destP), flags); + } + copyFileSync(sourceP, destP, flags = 0) { + return this.baseFs.copyFileSync(this.mapToBase(sourceP), this.mapToBase(destP), flags); + } + async appendFilePromise(p, content, opts) { + return this.baseFs.appendFilePromise(this.fsMapToBase(p), content, opts); + } + appendFileSync(p, content, opts) { + return this.baseFs.appendFileSync(this.fsMapToBase(p), content, opts); + } + async writeFilePromise(p, content, opts) { + return this.baseFs.writeFilePromise(this.fsMapToBase(p), content, opts); + } + writeFileSync(p, content, opts) { + return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts); + } + async unlinkPromise(p) { + return this.baseFs.unlinkPromise(this.mapToBase(p)); + } + unlinkSync(p) { + return this.baseFs.unlinkSync(this.mapToBase(p)); + } + async utimesPromise(p, atime, mtime) { + return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime); + } + utimesSync(p, atime, mtime) { + return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime); + } + async lutimesPromise(p, atime, mtime) { + return this.baseFs.lutimesPromise(this.mapToBase(p), atime, mtime); + } + lutimesSync(p, atime, mtime) { + return this.baseFs.lutimesSync(this.mapToBase(p), atime, mtime); + } + async mkdirPromise(p, opts) { + return this.baseFs.mkdirPromise(this.mapToBase(p), opts); + } + mkdirSync(p, opts) { + return this.baseFs.mkdirSync(this.mapToBase(p), opts); + } + async rmdirPromise(p, opts) { + return this.baseFs.rmdirPromise(this.mapToBase(p), opts); + } + rmdirSync(p, opts) { + return this.baseFs.rmdirSync(this.mapToBase(p), opts); + } + async rmPromise(p, opts) { + return this.baseFs.rmPromise(this.mapToBase(p), opts); + } + rmSync(p, opts) { + return this.baseFs.rmSync(this.mapToBase(p), opts); + } + async linkPromise(existingP, newP) { + return this.baseFs.linkPromise(this.mapToBase(existingP), this.mapToBase(newP)); + } + linkSync(existingP, newP) { + return this.baseFs.linkSync(this.mapToBase(existingP), this.mapToBase(newP)); + } + async symlinkPromise(target, p, type) { + const mappedP = this.mapToBase(p); + if (this.pathUtils.isAbsolute(target)) + return this.baseFs.symlinkPromise(this.mapToBase(target), mappedP, type); + const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); + const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); + return this.baseFs.symlinkPromise(mappedTarget, mappedP, type); + } + symlinkSync(target, p, type) { + const mappedP = this.mapToBase(p); + if (this.pathUtils.isAbsolute(target)) + return this.baseFs.symlinkSync(this.mapToBase(target), mappedP, type); + const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); + const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); + return this.baseFs.symlinkSync(mappedTarget, mappedP, type); + } + async readFilePromise(p, encoding) { + return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding); + } + readFileSync(p, encoding) { + return this.baseFs.readFileSync(this.fsMapToBase(p), encoding); + } + readdirPromise(p, opts) { + return this.baseFs.readdirPromise(this.mapToBase(p), opts); + } + readdirSync(p, opts) { + return this.baseFs.readdirSync(this.mapToBase(p), opts); + } + async readlinkPromise(p) { + return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(p))); + } + readlinkSync(p) { + return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(p))); + } + async truncatePromise(p, len) { + return this.baseFs.truncatePromise(this.mapToBase(p), len); + } + truncateSync(p, len) { + return this.baseFs.truncateSync(this.mapToBase(p), len); + } + async ftruncatePromise(fd, len) { + return this.baseFs.ftruncatePromise(fd, len); + } + ftruncateSync(fd, len) { + return this.baseFs.ftruncateSync(fd, len); + } + watch(p, a, b) { + return this.baseFs.watch( + this.mapToBase(p), + // @ts-expect-error - reason TBS + a, + b + ); + } + watchFile(p, a, b) { + return this.baseFs.watchFile( + this.mapToBase(p), + // @ts-expect-error - reason TBS + a, + b + ); + } + unwatchFile(p, cb) { + return this.baseFs.unwatchFile(this.mapToBase(p), cb); + } + fsMapToBase(p) { + if (typeof p === `number`) { + return p; + } else { + return this.mapToBase(p); + } + } +} + +function direntToPortable(dirent) { + const portableDirent = dirent; + if (typeof dirent.path === `string`) + portableDirent.path = npath.toPortablePath(dirent.path); + return portableDirent; +} +class NodeFS extends BasePortableFakeFS { + realFs; + constructor(realFs = fs) { + super(); + this.realFs = realFs; + } + getExtractHint() { + return false; + } + getRealPath() { + return PortablePath.root; + } + resolve(p) { + return ppath.resolve(p); + } + async openPromise(p, flags, mode) { + return await new Promise((resolve, reject) => { + this.realFs.open(npath.fromPortablePath(p), flags, mode, this.makeCallback(resolve, reject)); + }); + } + openSync(p, flags, mode) { + return this.realFs.openSync(npath.fromPortablePath(p), flags, mode); + } + async opendirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (typeof opts !== `undefined`) { + this.realFs.opendir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.opendir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }).then((dir) => { + const dirWithFixedPath = dir; + Object.defineProperty(dirWithFixedPath, `path`, { + value: p, + configurable: true, + writable: true + }); + return dirWithFixedPath; + }); + } + opendirSync(p, opts) { + const dir = typeof opts !== `undefined` ? this.realFs.opendirSync(npath.fromPortablePath(p), opts) : this.realFs.opendirSync(npath.fromPortablePath(p)); + const dirWithFixedPath = dir; + Object.defineProperty(dirWithFixedPath, `path`, { + value: p, + configurable: true, + writable: true + }); + return dirWithFixedPath; + } + async readPromise(fd, buffer, offset = 0, length = 0, position = -1) { + return await new Promise((resolve, reject) => { + this.realFs.read(fd, buffer, offset, length, position, (error, bytesRead) => { + if (error) { + reject(error); + } else { + resolve(bytesRead); + } + }); + }); + } + readSync(fd, buffer, offset, length, position) { + return this.realFs.readSync(fd, buffer, offset, length, position); + } + async writePromise(fd, buffer, offset, length, position) { + return await new Promise((resolve, reject) => { + if (typeof buffer === `string`) { + return this.realFs.write(fd, buffer, offset, this.makeCallback(resolve, reject)); + } else { + return this.realFs.write(fd, buffer, offset, length, position, this.makeCallback(resolve, reject)); + } + }); + } + writeSync(fd, buffer, offset, length, position) { + if (typeof buffer === `string`) { + return this.realFs.writeSync(fd, buffer, offset); + } else { + return this.realFs.writeSync(fd, buffer, offset, length, position); + } + } + async closePromise(fd) { + await new Promise((resolve, reject) => { + this.realFs.close(fd, this.makeCallback(resolve, reject)); + }); + } + closeSync(fd) { + this.realFs.closeSync(fd); + } + createReadStream(p, opts) { + const realPath = p !== null ? npath.fromPortablePath(p) : p; + return this.realFs.createReadStream(realPath, opts); + } + createWriteStream(p, opts) { + const realPath = p !== null ? npath.fromPortablePath(p) : p; + return this.realFs.createWriteStream(realPath, opts); + } + async realpathPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.realpath(npath.fromPortablePath(p), {}, this.makeCallback(resolve, reject)); + }).then((path) => { + return npath.toPortablePath(path); + }); + } + realpathSync(p) { + return npath.toPortablePath(this.realFs.realpathSync(npath.fromPortablePath(p), {})); + } + async existsPromise(p) { + return await new Promise((resolve) => { + this.realFs.exists(npath.fromPortablePath(p), resolve); + }); + } + accessSync(p, mode) { + return this.realFs.accessSync(npath.fromPortablePath(p), mode); + } + async accessPromise(p, mode) { + return await new Promise((resolve, reject) => { + this.realFs.access(npath.fromPortablePath(p), mode, this.makeCallback(resolve, reject)); + }); + } + existsSync(p) { + return this.realFs.existsSync(npath.fromPortablePath(p)); + } + async statPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.stat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.stat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + statSync(p, opts) { + if (opts) { + return this.realFs.statSync(npath.fromPortablePath(p), opts); + } else { + return this.realFs.statSync(npath.fromPortablePath(p)); + } + } + async fstatPromise(fd, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.fstat(fd, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.fstat(fd, this.makeCallback(resolve, reject)); + } + }); + } + fstatSync(fd, opts) { + if (opts) { + return this.realFs.fstatSync(fd, opts); + } else { + return this.realFs.fstatSync(fd); + } + } + async lstatPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.lstat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.lstat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + lstatSync(p, opts) { + if (opts) { + return this.realFs.lstatSync(npath.fromPortablePath(p), opts); + } else { + return this.realFs.lstatSync(npath.fromPortablePath(p)); + } + } + async fchmodPromise(fd, mask) { + return await new Promise((resolve, reject) => { + this.realFs.fchmod(fd, mask, this.makeCallback(resolve, reject)); + }); + } + fchmodSync(fd, mask) { + return this.realFs.fchmodSync(fd, mask); + } + async chmodPromise(p, mask) { + return await new Promise((resolve, reject) => { + this.realFs.chmod(npath.fromPortablePath(p), mask, this.makeCallback(resolve, reject)); + }); + } + chmodSync(p, mask) { + return this.realFs.chmodSync(npath.fromPortablePath(p), mask); + } + async fchownPromise(fd, uid, gid) { + return await new Promise((resolve, reject) => { + this.realFs.fchown(fd, uid, gid, this.makeCallback(resolve, reject)); + }); + } + fchownSync(fd, uid, gid) { + return this.realFs.fchownSync(fd, uid, gid); + } + async chownPromise(p, uid, gid) { + return await new Promise((resolve, reject) => { + this.realFs.chown(npath.fromPortablePath(p), uid, gid, this.makeCallback(resolve, reject)); + }); + } + chownSync(p, uid, gid) { + return this.realFs.chownSync(npath.fromPortablePath(p), uid, gid); + } + async renamePromise(oldP, newP) { + return await new Promise((resolve, reject) => { + this.realFs.rename(npath.fromPortablePath(oldP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); + }); + } + renameSync(oldP, newP) { + return this.realFs.renameSync(npath.fromPortablePath(oldP), npath.fromPortablePath(newP)); + } + async copyFilePromise(sourceP, destP, flags = 0) { + return await new Promise((resolve, reject) => { + this.realFs.copyFile(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags, this.makeCallback(resolve, reject)); + }); + } + copyFileSync(sourceP, destP, flags = 0) { + return this.realFs.copyFileSync(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags); + } + async appendFilePromise(p, content, opts) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.appendFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.appendFile(fsNativePath, content, this.makeCallback(resolve, reject)); + } + }); + } + appendFileSync(p, content, opts) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.appendFileSync(fsNativePath, content, opts); + } else { + this.realFs.appendFileSync(fsNativePath, content); + } + } + async writeFilePromise(p, content, opts) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.writeFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.writeFile(fsNativePath, content, this.makeCallback(resolve, reject)); + } + }); + } + writeFileSync(p, content, opts) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + if (opts) { + this.realFs.writeFileSync(fsNativePath, content, opts); + } else { + this.realFs.writeFileSync(fsNativePath, content); + } + } + async unlinkPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.unlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + }); + } + unlinkSync(p) { + return this.realFs.unlinkSync(npath.fromPortablePath(p)); + } + async utimesPromise(p, atime, mtime) { + return await new Promise((resolve, reject) => { + this.realFs.utimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); + }); + } + utimesSync(p, atime, mtime) { + this.realFs.utimesSync(npath.fromPortablePath(p), atime, mtime); + } + async lutimesPromise(p, atime, mtime) { + return await new Promise((resolve, reject) => { + this.realFs.lutimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); + }); + } + lutimesSync(p, atime, mtime) { + this.realFs.lutimesSync(npath.fromPortablePath(p), atime, mtime); + } + async mkdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + this.realFs.mkdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + }); + } + mkdirSync(p, opts) { + return this.realFs.mkdirSync(npath.fromPortablePath(p), opts); + } + async rmdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.rmdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.rmdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + rmdirSync(p, opts) { + return this.realFs.rmdirSync(npath.fromPortablePath(p), opts); + } + async rmPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + this.realFs.rm(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } else { + this.realFs.rm(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + rmSync(p, opts) { + return this.realFs.rmSync(npath.fromPortablePath(p), opts); + } + async linkPromise(existingP, newP) { + return await new Promise((resolve, reject) => { + this.realFs.link(npath.fromPortablePath(existingP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); + }); + } + linkSync(existingP, newP) { + return this.realFs.linkSync(npath.fromPortablePath(existingP), npath.fromPortablePath(newP)); + } + async symlinkPromise(target, p, type) { + return await new Promise((resolve, reject) => { + this.realFs.symlink(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type, this.makeCallback(resolve, reject)); + }); + } + symlinkSync(target, p, type) { + return this.realFs.symlinkSync(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type); + } + async readFilePromise(p, encoding) { + return await new Promise((resolve, reject) => { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + this.realFs.readFile(fsNativePath, encoding, this.makeCallback(resolve, reject)); + }); + } + readFileSync(p, encoding) { + const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; + return this.realFs.readFileSync(fsNativePath, encoding); + } + async readdirPromise(p, opts) { + return await new Promise((resolve, reject) => { + if (opts) { + if (opts.recursive && process.platform === `win32`) { + if (opts.withFileTypes) { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(direntToPortable)), reject)); + } else { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(npath.toPortablePath)), reject)); + } + } else { + this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); + } + } else { + this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + } + }); + } + readdirSync(p, opts) { + if (opts) { + if (opts.recursive && process.platform === `win32`) { + if (opts.withFileTypes) { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(direntToPortable); + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(npath.toPortablePath); + } + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p), opts); + } + } else { + return this.realFs.readdirSync(npath.fromPortablePath(p)); + } + } + async readlinkPromise(p) { + return await new Promise((resolve, reject) => { + this.realFs.readlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); + }).then((path) => { + return npath.toPortablePath(path); + }); + } + readlinkSync(p) { + return npath.toPortablePath(this.realFs.readlinkSync(npath.fromPortablePath(p))); + } + async truncatePromise(p, len) { + return await new Promise((resolve, reject) => { + this.realFs.truncate(npath.fromPortablePath(p), len, this.makeCallback(resolve, reject)); + }); + } + truncateSync(p, len) { + return this.realFs.truncateSync(npath.fromPortablePath(p), len); + } + async ftruncatePromise(fd, len) { + return await new Promise((resolve, reject) => { + this.realFs.ftruncate(fd, len, this.makeCallback(resolve, reject)); + }); + } + ftruncateSync(fd, len) { + return this.realFs.ftruncateSync(fd, len); + } + watch(p, a, b) { + return this.realFs.watch( + npath.fromPortablePath(p), + // @ts-expect-error - reason TBS + a, + b + ); + } + watchFile(p, a, b) { + return this.realFs.watchFile( + npath.fromPortablePath(p), + // @ts-expect-error - reason TBS + a, + b + ); + } + unwatchFile(p, cb) { + return this.realFs.unwatchFile(npath.fromPortablePath(p), cb); + } + makeCallback(resolve, reject) { + return (err, result) => { + if (err) { + reject(err); + } else { + resolve(result); + } + }; + } +} + +const NUMBER_REGEXP = /^[0-9]+$/; +const VIRTUAL_REGEXP = /^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/; +const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/; +class VirtualFS extends ProxiedFS { + baseFs; + static makeVirtualPath(base, component, to) { + if (ppath.basename(base) !== `__virtual__`) + throw new Error(`Assertion failed: Virtual folders must be named "__virtual__"`); + if (!ppath.basename(component).match(VALID_COMPONENT)) + throw new Error(`Assertion failed: Virtual components must be ended by an hexadecimal hash`); + const target = ppath.relative(ppath.dirname(base), to); + const segments = target.split(`/`); + let depth = 0; + while (depth < segments.length && segments[depth] === `..`) + depth += 1; + const finalSegments = segments.slice(depth); + const fullVirtualPath = ppath.join(base, component, String(depth), ...finalSegments); + return fullVirtualPath; + } + static resolveVirtual(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match || !match[3] && match[5]) + return p; + const target = ppath.dirname(match[1]); + if (!match[3] || !match[4]) + return target; + const isnum = NUMBER_REGEXP.test(match[4]); + if (!isnum) + return p; + const depth = Number(match[4]); + const backstep = `../`.repeat(depth); + const subpath = match[5] || `.`; + return VirtualFS.resolveVirtual(ppath.join(target, backstep, subpath)); + } + constructor({ baseFs = new NodeFS() } = {}) { + super(ppath); + this.baseFs = baseFs; + } + getExtractHint(hints) { + return this.baseFs.getExtractHint(hints); + } + getRealPath() { + return this.baseFs.getRealPath(); + } + realpathSync(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match) + return this.baseFs.realpathSync(p); + if (!match[5]) + return p; + const realpath = this.baseFs.realpathSync(this.mapToBase(p)); + return VirtualFS.makeVirtualPath(match[1], match[3], realpath); + } + async realpathPromise(p) { + const match = p.match(VIRTUAL_REGEXP); + if (!match) + return await this.baseFs.realpathPromise(p); + if (!match[5]) + return p; + const realpath = await this.baseFs.realpathPromise(this.mapToBase(p)); + return VirtualFS.makeVirtualPath(match[1], match[3], realpath); + } + mapToBase(p) { + if (p === ``) + return p; + if (this.pathUtils.isAbsolute(p)) + return VirtualFS.resolveVirtual(p); + const resolvedRoot = VirtualFS.resolveVirtual(this.baseFs.resolve(PortablePath.dot)); + const resolvedP = VirtualFS.resolveVirtual(this.baseFs.resolve(p)); + return ppath.relative(resolvedRoot, resolvedP) || PortablePath.dot; + } + mapFromBase(p) { + return p; + } +} + +const URL = Number(process.versions.node.split('.', 1)[0]) < 20 ? URL$1 : globalThis.URL; + +const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); +const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13; +const HAS_LAZY_LOADED_TRANSLATORS = major === 20 && minor < 6 || major === 19 && minor >= 3; +const SUPPORTS_IMPORT_ATTRIBUTES = major >= 21 || major === 20 && minor >= 10 || major === 18 && minor >= 20; +const SUPPORTS_IMPORT_ATTRIBUTES_ONLY = major >= 22; + +function readPackageScope(checkPath) { + const rootSeparatorIndex = checkPath.indexOf(npath.sep); + let separatorIndex; + do { + separatorIndex = checkPath.lastIndexOf(npath.sep); + checkPath = checkPath.slice(0, separatorIndex); + if (checkPath.endsWith(`${npath.sep}node_modules`)) + return false; + const pjson = readPackage(checkPath + npath.sep); + if (pjson) { + return { + data: pjson, + path: checkPath + }; + } + } while (separatorIndex > rootSeparatorIndex); + return false; +} +function readPackage(requestPath) { + const jsonPath = npath.resolve(requestPath, `package.json`); + if (!fs.existsSync(jsonPath)) + return null; + return JSON.parse(fs.readFileSync(jsonPath, `utf8`)); +} + +async function tryReadFile$1(path2) { + try { + return await fs.promises.readFile(path2, `utf8`); + } catch (error) { + if (error.code === `ENOENT`) + return null; + throw error; + } +} +function tryParseURL(str, base) { + try { + return new URL(str, base); + } catch { + return null; + } +} +let entrypointPath = null; +function setEntrypointPath(file) { + entrypointPath = file; +} +function getFileFormat(filepath) { + const ext = path.extname(filepath); + switch (ext) { + case `.mjs`: { + return `module`; + } + case `.cjs`: { + return `commonjs`; + } + case `.wasm`: { + throw new Error( + `Unknown file extension ".wasm" for ${filepath}` + ); + } + case `.json`: { + return `json`; + } + case `.js`: { + const pkg = readPackageScope(filepath); + if (!pkg) + return `commonjs`; + return pkg.data.type ?? `commonjs`; + } + default: { + if (entrypointPath !== filepath) + return null; + const pkg = readPackageScope(filepath); + if (!pkg) + return `commonjs`; + if (pkg.data.type === `module`) + return null; + return pkg.data.type ?? `commonjs`; + } + } +} + +async function load$1(urlString, context, nextLoad) { + const url = tryParseURL(urlString); + if (url?.protocol !== `file:`) + return nextLoad(urlString, context, nextLoad); + const filePath = fileURLToPath(url); + const format = getFileFormat(filePath); + if (!format) + return nextLoad(urlString, context, nextLoad); + if (format === `json`) { + if (SUPPORTS_IMPORT_ATTRIBUTES_ONLY) { + if (context.importAttributes?.type !== `json`) { + const err = new TypeError(`[ERR_IMPORT_ATTRIBUTE_MISSING]: Module "${urlString}" needs an import attribute of "type: json"`); + err.code = `ERR_IMPORT_ATTRIBUTE_MISSING`; + throw err; + } + } else { + const type = `importAttributes` in context ? context.importAttributes?.type : context.importAssertions?.type; + if (type !== `json`) { + const err = new TypeError(`[ERR_IMPORT_ASSERTION_TYPE_MISSING]: Module "${urlString}" needs an import ${SUPPORTS_IMPORT_ATTRIBUTES ? `attribute` : `assertion`} of type "json"`); + err.code = `ERR_IMPORT_ASSERTION_TYPE_MISSING`; + throw err; + } + } + } + if (process.env.WATCH_REPORT_DEPENDENCIES && process.send) { + const pathToSend = pathToFileURL( + npath.fromPortablePath( + VirtualFS.resolveVirtual(npath.toPortablePath(filePath)) + ) + ).href; + process.send({ + "watch:import": WATCH_MODE_MESSAGE_USES_ARRAYS ? [pathToSend] : pathToSend + }); + } + return { + format, + source: format === `commonjs` ? void 0 : await fs.promises.readFile(filePath, `utf8`), + shortCircuit: true + }; +} + +const ArrayIsArray = Array.isArray; +const JSONStringify = JSON.stringify; +const ObjectGetOwnPropertyNames = Object.getOwnPropertyNames; +const ObjectPrototypeHasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); +const RegExpPrototypeExec = (obj, string) => RegExp.prototype.exec.call(obj, string); +const RegExpPrototypeSymbolReplace = (obj, ...rest) => RegExp.prototype[Symbol.replace].apply(obj, rest); +const StringPrototypeEndsWith = (str, ...rest) => String.prototype.endsWith.apply(str, rest); +const StringPrototypeIncludes = (str, ...rest) => String.prototype.includes.apply(str, rest); +const StringPrototypeLastIndexOf = (str, ...rest) => String.prototype.lastIndexOf.apply(str, rest); +const StringPrototypeIndexOf = (str, ...rest) => String.prototype.indexOf.apply(str, rest); +const StringPrototypeReplace = (str, ...rest) => String.prototype.replace.apply(str, rest); +const StringPrototypeSlice = (str, ...rest) => String.prototype.slice.apply(str, rest); +const StringPrototypeStartsWith = (str, ...rest) => String.prototype.startsWith.apply(str, rest); +const SafeMap = Map; +const JSONParse = JSON.parse; + +function createErrorType(code, messageCreator, errorType) { + return class extends errorType { + constructor(...args) { + super(messageCreator(...args)); + this.code = code; + this.name = `${errorType.name} [${code}]`; + } + }; +} +const ERR_PACKAGE_IMPORT_NOT_DEFINED = createErrorType( + `ERR_PACKAGE_IMPORT_NOT_DEFINED`, + (specifier, packagePath, base) => { + return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ``} imported from ${base}`; + }, + TypeError +); +const ERR_INVALID_MODULE_SPECIFIER = createErrorType( + `ERR_INVALID_MODULE_SPECIFIER`, + (request, reason, base = void 0) => { + return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ``}`; + }, + TypeError +); +const ERR_INVALID_PACKAGE_TARGET = createErrorType( + `ERR_INVALID_PACKAGE_TARGET`, + (pkgPath, key, target, isImport = false, base = void 0) => { + const relError = typeof target === `string` && !isImport && target.length && !StringPrototypeStartsWith(target, `./`); + if (key === `.`) { + assert(isImport === false); + return `Invalid "exports" main target ${JSONStringify(target)} defined in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; + } + return `Invalid "${isImport ? `imports` : `exports`}" target ${JSONStringify( + target + )} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; + }, + Error +); +const ERR_INVALID_PACKAGE_CONFIG = createErrorType( + `ERR_INVALID_PACKAGE_CONFIG`, + (path, base, message) => { + return `Invalid package config ${path}${base ? ` while importing ${base}` : ``}${message ? `. ${message}` : ``}`; + }, + Error +); + +function filterOwnProperties(source, keys) { + const filtered = /* @__PURE__ */ Object.create(null); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (ObjectPrototypeHasOwnProperty(source, key)) { + filtered[key] = source[key]; + } + } + return filtered; +} + +const packageJSONCache = new SafeMap(); +function getPackageConfig(path, specifier, base, readFileSyncFn) { + const existing = packageJSONCache.get(path); + if (existing !== void 0) { + return existing; + } + const source = readFileSyncFn(path); + if (source === void 0) { + const packageConfig2 = { + pjsonPath: path, + exists: false, + main: void 0, + name: void 0, + type: "none", + exports: void 0, + imports: void 0 + }; + packageJSONCache.set(path, packageConfig2); + return packageConfig2; + } + let packageJSON; + try { + packageJSON = JSONParse(source); + } catch (error) { + throw new ERR_INVALID_PACKAGE_CONFIG( + path, + (base ? `"${specifier}" from ` : "") + fileURLToPath(base || specifier), + error.message + ); + } + let { imports, main, name, type } = filterOwnProperties(packageJSON, [ + "imports", + "main", + "name", + "type" + ]); + const exports = ObjectPrototypeHasOwnProperty(packageJSON, "exports") ? packageJSON.exports : void 0; + if (typeof imports !== "object" || imports === null) { + imports = void 0; + } + if (typeof main !== "string") { + main = void 0; + } + if (typeof name !== "string") { + name = void 0; + } + if (type !== "module" && type !== "commonjs") { + type = "none"; + } + const packageConfig = { + pjsonPath: path, + exists: true, + main, + name, + type, + exports, + imports + }; + packageJSONCache.set(path, packageConfig); + return packageConfig; +} +function getPackageScopeConfig(resolved, readFileSyncFn) { + let packageJSONUrl = new URL("./package.json", resolved); + while (true) { + const packageJSONPath2 = packageJSONUrl.pathname; + if (StringPrototypeEndsWith(packageJSONPath2, "node_modules/package.json")) { + break; + } + const packageConfig2 = getPackageConfig( + fileURLToPath(packageJSONUrl), + resolved, + void 0, + readFileSyncFn + ); + if (packageConfig2.exists) { + return packageConfig2; + } + const lastPackageJSONUrl = packageJSONUrl; + packageJSONUrl = new URL("../package.json", packageJSONUrl); + if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) { + break; + } + } + const packageJSONPath = fileURLToPath(packageJSONUrl); + const packageConfig = { + pjsonPath: packageJSONPath, + exists: false, + main: void 0, + name: void 0, + type: "none", + exports: void 0, + imports: void 0 + }; + packageJSONCache.set(packageJSONPath, packageConfig); + return packageConfig; +} + +function throwImportNotDefined(specifier, packageJSONUrl, base) { + throw new ERR_PACKAGE_IMPORT_NOT_DEFINED( + specifier, + packageJSONUrl && fileURLToPath(new URL(".", packageJSONUrl)), + fileURLToPath(base) + ); +} +function throwInvalidSubpath(subpath, packageJSONUrl, internal, base) { + const reason = `request is not a valid subpath for the "${internal ? "imports" : "exports"}" resolution of ${fileURLToPath(packageJSONUrl)}`; + throw new ERR_INVALID_MODULE_SPECIFIER( + subpath, + reason, + base && fileURLToPath(base) + ); +} +function throwInvalidPackageTarget(subpath, target, packageJSONUrl, internal, base) { + if (typeof target === "object" && target !== null) { + target = JSONStringify(target, null, ""); + } else { + target = `${target}`; + } + throw new ERR_INVALID_PACKAGE_TARGET( + fileURLToPath(new URL(".", packageJSONUrl)), + subpath, + target, + internal, + base && fileURLToPath(base) + ); +} +const invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i; +const patternRegEx = /\*/g; +function resolvePackageTargetString(target, subpath, match, packageJSONUrl, base, pattern, internal, conditions) { + if (subpath !== "" && !pattern && target[target.length - 1] !== "/") + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + if (!StringPrototypeStartsWith(target, "./")) { + if (internal && !StringPrototypeStartsWith(target, "../") && !StringPrototypeStartsWith(target, "/")) { + let isURL = false; + try { + new URL(target); + isURL = true; + } catch { + } + if (!isURL) { + const exportTarget = pattern ? RegExpPrototypeSymbolReplace(patternRegEx, target, () => subpath) : target + subpath; + return exportTarget; + } + } + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + } + if (RegExpPrototypeExec( + invalidSegmentRegEx, + StringPrototypeSlice(target, 2) + ) !== null) + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + const resolved = new URL(target, packageJSONUrl); + const resolvedPath = resolved.pathname; + const packagePath = new URL(".", packageJSONUrl).pathname; + if (!StringPrototypeStartsWith(resolvedPath, packagePath)) + throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); + if (subpath === "") return resolved; + if (RegExpPrototypeExec(invalidSegmentRegEx, subpath) !== null) { + const request = pattern ? StringPrototypeReplace(match, "*", () => subpath) : match + subpath; + throwInvalidSubpath(request, packageJSONUrl, internal, base); + } + if (pattern) { + return new URL( + RegExpPrototypeSymbolReplace(patternRegEx, resolved.href, () => subpath) + ); + } + return new URL(subpath, resolved); +} +function isArrayIndex(key) { + const keyNum = +key; + if (`${keyNum}` !== key) return false; + return keyNum >= 0 && keyNum < 4294967295; +} +function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, base, pattern, internal, conditions) { + if (typeof target === "string") { + return resolvePackageTargetString( + target, + subpath, + packageSubpath, + packageJSONUrl, + base, + pattern, + internal); + } else if (ArrayIsArray(target)) { + if (target.length === 0) { + return null; + } + let lastException; + for (let i = 0; i < target.length; i++) { + const targetItem = target[i]; + let resolveResult; + try { + resolveResult = resolvePackageTarget( + packageJSONUrl, + targetItem, + subpath, + packageSubpath, + base, + pattern, + internal, + conditions + ); + } catch (e) { + lastException = e; + if (e.code === "ERR_INVALID_PACKAGE_TARGET") { + continue; + } + throw e; + } + if (resolveResult === void 0) { + continue; + } + if (resolveResult === null) { + lastException = null; + continue; + } + return resolveResult; + } + if (lastException === void 0 || lastException === null) + return lastException; + throw lastException; + } else if (typeof target === "object" && target !== null) { + const keys = ObjectGetOwnPropertyNames(target); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (isArrayIndex(key)) { + throw new ERR_INVALID_PACKAGE_CONFIG( + fileURLToPath(packageJSONUrl), + base, + '"exports" cannot contain numeric property keys.' + ); + } + } + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + if (key === "default" || conditions.has(key)) { + const conditionalTarget = target[key]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + conditionalTarget, + subpath, + packageSubpath, + base, + pattern, + internal, + conditions + ); + if (resolveResult === void 0) continue; + return resolveResult; + } + } + return void 0; + } else if (target === null) { + return null; + } + throwInvalidPackageTarget( + packageSubpath, + target, + packageJSONUrl, + internal, + base + ); +} +function patternKeyCompare(a, b) { + const aPatternIndex = StringPrototypeIndexOf(a, "*"); + const bPatternIndex = StringPrototypeIndexOf(b, "*"); + const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; + const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1; + if (baseLenA > baseLenB) return -1; + if (baseLenB > baseLenA) return 1; + if (aPatternIndex === -1) return 1; + if (bPatternIndex === -1) return -1; + if (a.length > b.length) return -1; + if (b.length > a.length) return 1; + return 0; +} +function packageImportsResolve({ name, base, conditions, readFileSyncFn }) { + if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) { + const reason = "is not a valid internal imports specifier name"; + throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath(base)); + } + let packageJSONUrl; + const packageConfig = getPackageScopeConfig(base, readFileSyncFn); + if (packageConfig.exists) { + packageJSONUrl = pathToFileURL(packageConfig.pjsonPath); + const imports = packageConfig.imports; + if (imports) { + if (ObjectPrototypeHasOwnProperty(imports, name) && !StringPrototypeIncludes(name, "*")) { + const resolveResult = resolvePackageTarget( + packageJSONUrl, + imports[name], + "", + name, + base, + false, + true, + conditions + ); + if (resolveResult != null) { + return resolveResult; + } + } else { + let bestMatch = ""; + let bestMatchSubpath; + const keys = ObjectGetOwnPropertyNames(imports); + for (let i = 0; i < keys.length; i++) { + const key = keys[i]; + const patternIndex = StringPrototypeIndexOf(key, "*"); + if (patternIndex !== -1 && StringPrototypeStartsWith( + name, + StringPrototypeSlice(key, 0, patternIndex) + )) { + const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); + if (name.length >= key.length && StringPrototypeEndsWith(name, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { + bestMatch = key; + bestMatchSubpath = StringPrototypeSlice( + name, + patternIndex, + name.length - patternTrailer.length + ); + } + } + } + if (bestMatch) { + const target = imports[bestMatch]; + const resolveResult = resolvePackageTarget( + packageJSONUrl, + target, + bestMatchSubpath, + bestMatch, + base, + true, + true, + conditions + ); + if (resolveResult != null) { + return resolveResult; + } + } + } + } + } + throwImportNotDefined(name, packageJSONUrl, base); +} + +let findPnpApi = esmModule.findPnpApi; +if (!findPnpApi) { + const require = createRequire(import.meta.url); + const pnpApi = require(`./.pnp.cjs`); + pnpApi.setup(); + findPnpApi = esmModule.findPnpApi; +} +const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/; +const isRelativeRegexp = /^\.{0,2}\//; +function tryReadFile(filePath) { + try { + return fs.readFileSync(filePath, `utf8`); + } catch (err) { + if (err.code === `ENOENT`) + return void 0; + throw err; + } +} +async function resolvePrivateRequest(specifier, issuer, context, nextResolve) { + const resolved = packageImportsResolve({ + name: specifier, + base: pathToFileURL(issuer), + conditions: new Set(context.conditions), + readFileSyncFn: tryReadFile + }); + if (resolved instanceof URL) { + return { url: resolved.href, shortCircuit: true }; + } else { + if (resolved.startsWith(`#`)) + throw new Error(`Mapping from one private import to another isn't allowed`); + return resolve$1(resolved, context, nextResolve); + } +} +async function resolve$1(originalSpecifier, context, nextResolve) { + if (!findPnpApi || isBuiltin(originalSpecifier)) + return nextResolve(originalSpecifier, context, nextResolve); + let specifier = originalSpecifier; + const url = tryParseURL(specifier, isRelativeRegexp.test(specifier) ? context.parentURL : void 0); + if (url) { + if (url.protocol !== `file:`) + return nextResolve(originalSpecifier, context, nextResolve); + specifier = fileURLToPath(url); + } + const { parentURL, conditions = [] } = context; + const issuer = parentURL && tryParseURL(parentURL)?.protocol === `file:` ? fileURLToPath(parentURL) : process.cwd(); + const pnpapi = findPnpApi(issuer) ?? (url ? findPnpApi(specifier) : null); + if (!pnpapi) + return nextResolve(originalSpecifier, context, nextResolve); + if (specifier.startsWith(`#`)) + return resolvePrivateRequest(specifier, issuer, context, nextResolve); + const dependencyNameMatch = specifier.match(pathRegExp); + let allowLegacyResolve = false; + if (dependencyNameMatch) { + const [, dependencyName, subPath] = dependencyNameMatch; + if (subPath === `` && dependencyName !== `pnpapi`) { + const resolved = pnpapi.resolveToUnqualified(`${dependencyName}/package.json`, issuer); + if (resolved) { + const content = await tryReadFile$1(resolved); + if (content) { + const pkg = JSON.parse(content); + allowLegacyResolve = pkg.exports == null; + } + } + } + } + let result; + try { + result = pnpapi.resolveRequest(specifier, issuer, { + conditions: new Set(conditions), + // TODO: Handle --experimental-specifier-resolution=node + extensions: allowLegacyResolve ? void 0 : [] + }); + } catch (err) { + if (err instanceof Error && `code` in err && err.code === `MODULE_NOT_FOUND`) + err.code = `ERR_MODULE_NOT_FOUND`; + throw err; + } + if (!result) + throw new Error(`Resolving '${specifier}' from '${issuer}' failed`); + const resultURL = pathToFileURL(result); + if (url) { + resultURL.search = url.search; + resultURL.hash = url.hash; + } + if (!parentURL) + setEntrypointPath(fileURLToPath(resultURL)); + return { + url: resultURL.href, + shortCircuit: true + }; +} + +if (!HAS_LAZY_LOADED_TRANSLATORS) { + const binding = process.binding(`fs`); + const originalReadFile = binding.readFileUtf8 || binding.readFileSync; + if (originalReadFile) { + binding[originalReadFile.name] = function(...args) { + try { + return fs.readFileSync(args[0], { + encoding: `utf8`, + // @ts-expect-error - The docs says it needs to be a string but + // links to https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#file-system-flags + // which says it can be a number which matches the implementation. + flag: args[1] + }); + } catch { + } + return originalReadFile.apply(this, args); + }; + } else { + const binding2 = process.binding(`fs`); + const originalfstat = binding2.fstat; + const ZIP_MASK = 4278190080; + const ZIP_MAGIC = 704643072; + binding2.fstat = function(...args) { + const [fd, useBigint, req] = args; + if ((fd & ZIP_MASK) === ZIP_MAGIC && useBigint === false && req === void 0) { + try { + const stats = fs.fstatSync(fd); + return new Float64Array([ + stats.dev, + stats.mode, + stats.nlink, + stats.uid, + stats.gid, + stats.rdev, + stats.blksize, + stats.ino, + stats.size, + stats.blocks + // atime sec + // atime ns + // mtime sec + // mtime ns + // ctime sec + // ctime ns + // birthtime sec + // birthtime ns + ]); + } catch { + } + } + return originalfstat.apply(this, args); + }; + } +} + +const resolve = resolve$1; +const load = load$1; + +export { load, resolve }; diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz new file mode 100644 index 0000000000000000000000000000000000000000..8694e741181cef908478be87fb882eba03879823 GIT binary patch literal 285357 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%0D%^js7GF|urlD0+|6 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

  • l#d!E6P$K2YZ4 z>0i8F@pDA;997wIjm=gja3?{!dh@-(^>4y^LBB^+qvIh$0;9n?5M`FWx1t#BF~TTY zU&%HRopJa~nMk4Hc}=&;!cPHpP*Bi3{Y%$5lA|y+n(>Kwm$?v;gl0fLP}cO40lE7^ z?lue118W+PR|(SYR5v6z$XTL_o7@5~)z<+|45OIQ4B(y4<76p(W_tA*&jK~?>0icA zpC5|wtFzuG;RYb=jsy5MQ0mb?&aGhOr~cvH&)z=somWoTPzblgzwoqQK_t}qQ6n$0%r z@Hxnkp>60%BS&JtjcPHR1U55*?KrVU_WLrcSEr>v`i53?EzZREr%#}+8j0%bmL8o-d8 zTp*7aAc2<+pl*vD^z#7lMF>-CkmPpIN9R~mbdIt7&=I2%xT~{bAGKX2nVqCV?FM*A z4Iq_-vMJg&TldAH9Fvof_L&=0!97o4ExyuG{KoW(<3@t-)9Z&$r?aBULf{02{_q~s-pPmUwsL#y{CWeI$ADFpZ?9SUVzK@>EHV5kH7lt zp@3($!JVboYD`tjmBC9C4M_L^HXuftO-E#aUENHCztq*bxx{y4o{1`@bfB*napppF zc92s8vm*p)o_h~WE0FASTsp$4o{49B!4}oqM8F3x-7~RS{d?Q;r$2uNHcwa_J3MB{ z;j?#h4uhlvU!$XH--0XYAO=g2(Q`A2NtOd?H^b$Owj@qNM%I~^eb0g_t0jsSh?IPk z!aQR+Tb;3rwhd}SpZ@KyUIKsr-+2ie;*Z(<+XkV5s6u;TTE!L>2{SJvN^ZhiQ0w5j zn)AxU@{N49y(eTj`}$H1D&(H%b)xH|qwP&HkgYWtjUMkP$krNO;D7I6oTQbAN&k!W zwj!qWOPGIYx)eIuhJAjm+4u-A5QR&TWm*ve%NL>-u?d{=#_c$IgED%9aP$hpKvLzb zd5{=0s?mzR5Wy!i<1F|&R6(ZZ*%YZN6wCZ1G~ir%VEE zjL>jJr?4)=(UuxuI;-fOu{R+@gy8+1hDoW^S}vBB}%;T-0-l$~GY8$SAY`Y~Nh|B9XTcfxW1cL+Oa z9vD+7&T#geIeIS`l!2AS|CYg(8+^G*3Xw%zk~MS848ckn2rQtbZ2%5x9cR{T9T^tb zV%M37@Hy&TuMzuPo(_>oAj|pII`EQr^IOZzgIDfZx*y-r{a&DTKo5bO!?TjT;CkA5 zmL0G*PtYoZQf~Jg5H{(kBMX#-4JVGbsRQ+tGy|6@Yhbe_=(u~dE-pNy^M)v4?qxnN zslf0>9lra0J3loU801;eI-4+_hnNammCPFAkQ|Sp$JOJs(URfgY3q1L@=ZciBGbm% zmzAUi&m5P73Z8>V4>VXCjQ#bKi1nj>GGr3>=|d`_h(Y_ zIc8E{;9V0JL;m4Hq+IJw&l%-xC(qqhT|yIJc&Q^BlGT=ik&mgW+XbUG4ZhF~@0Uvz>LTQvQRV z`iEB^-+d}>KKdOa?$N9FtW241WXhkT<^FJC$-n<4Oo3#$KsGu%km|cTuV@`XFG+6IVY?bGhyVkT0{3`kCCKWBcCHjY<%me-5NOL8OP|Yl_M??yL%j^45j+a@@KD50V(N5A7q{UK3HJz;#R33V5l@F9CxmT1h?f zkj>+W(Tz37S>Cn7o^~KLY;Enik#n~f*gFbO-3--O2Ib;uhO9S%hGk#3f!iJuIB>5{ zeYlJFee}BB`BB?XsDICo`pduY;@-H~PpqNS)GaE@m}K*+P6wLQ1PHK0uZXwCp#~i_b6z`uuNPY{FADM_;W#EwHKmhd zxf2P`9&J>c1OE?Vw0STJgG8npjLQ?6BHS+^)2_wHI0z13xEcDqf;wC68qD+d;`}3e z;~u?o&&Dw5O$@^eB;{So2{h8H+I~>Ea zwKi^BHGdHAJ?mBd{9E*F-o3qh>mIy%&&DUxAAUbR@pD{er15NB4z4lHEtbx-4uD}V zM5+yI!)vraEEx?Xs2266aDxfKC5qx2s1wUl?<)tM!)R;37&1=fF2(TD^5F8>i94|2 zovl&D(|_;+e65zyJEKRr%=Ed#0}J-#g@g>z9Aw#qGKH6rxr%)>+!JV9#4f z&W0OuY6CIW^splRcZ}*QfUIfhZP~KRQ@diJu=mg`LVrMg74vdlYuM_Ngh4Py6pRF` zm0Q}lfe@RFnk7Ml5tPZf;4%(0 zMmQ!d-3*<0WXJBR?X0S#yQ$sJe(E28_Vugp-oLqP*F1RPo{=xi#n!5$i2tZMe2ubZGU?9KfI;2}YBvKjsgP9JVhP5% zZk)nNtvl@SbGCkpILBN^xPXt(PycgYgLCffj9^i&=of2owkc2l(HG$Az_&m$78o#% zr2rWl$dVl}9QmFmtgCvUQO~fWQ6NG9F)VY+u35dLDJRb+F>^%7+6+hhwoIBZxDSH@ z!S(FZE=q3`#xF*<@eN&b)@jsg$Jis)^SG?q4C;Wnw+2iZl7H~y3fU6g{^TW#A;>rMTXg6k^g+SG`&IKy;aGdLg98XWH zO}p>x<;za^8DryX*EY<2sAV2dbK6z9!G_X{`?027sIZ862#Bx!WE@1Hn zJNYi_XpytinpYip`rgf0R;!_i`nlGrrRuT1CYVk(yh&vM^M!Vf1=j#wX0+;C2H`r< zCM_h(Dck1RZ)woY+{vN{M6FCg=Gfp?`<#(=@Sz8Y0tMg&P`F)~S*&m8M&vmXyF%B| zkQhNoq8kTr%(?dNb3uL<8rqE@42O1c2z&+?J>{0Y|GWAA-G>jaK78vxyK9s_dgY!K zvdIsO?z-lp_e{M`U4eD*FmWXxqfm^F1rlw?`Bez=Ftx8?d1EO7kYB|;W1|ZWv7z}GiEWW|X7V0;vlIa4=ct^9_{81#AVHo7Wk=t0)D>6k+plBK zErv~7`}6|Xu!kEjb{=Ew6Ts{DjR-OFbDsXwufBjaumcDJMdbuY4Z612GOU43PGfs@ zPFR0UQ@Fc(mAjre-H1qxYysen*e0;>+yG*X>la8COsE#{0KLXCIyx2Ha}LqX-p*|~ z{b)<=?H*9yy!(^apOi0md%%NN?pX##yJ29wz*DCn8?oJn9qb3O5O9YP))>1pO>R4b zFfCeh&0c<%`x>M~8!~lFk`8NPpoA-J8g9oMJkr7)Dvq8ryRYaF=JB3Bfy%SlM~VN4 z-?&Gw+}#_uenQ`C8GQQli+kgmF;|c49+GFt88hHJYeEyiuCYc5a!C;BBWE7KIV-P0 zPnjIfqo*Ou$<&?4W)S{*S+JCvPmyyXyy-M?I|UM62BJ-X>$~OfBI+q|s3Q3BV*e9Q z0{@72Luf~{o&PjZ(rxTU9Wx_fKhjIibpTu-K*DbO6>MBOYG*I5u<1!Tf|$Q zR3EWpV{E?z`ZEa0O=LH+K7etWhwAJ&tYGV5oK-Shz+#@Ojp(x&=t$ahuAU7VzA&T1 z!*!;ol+zG+gKjebAca3`HxEHRF+!<$=l6nc8i)>UZC~`});~Uwjkq-rQa49=&ou zjOGg40gTaz%h1JxjWE7L_x}tJ@aft*YuVc2&JJjrK>N{V!rsT{U^-s!jtqrZLF!7TEmgALq8AnLqV6fBKB~Y!nXZ(G*{Nn_CiZ;ct3Ws!(O3am)s%!>PD^Fa-AA9tmgJ#Ewl8ym`ISjx zE2}X4p49Y2oBKo%K`VjefVJU7MsB4Jk+~WUcWbhOBmE#Xb=kfJ34E1rUcdVA?d!L1 z>%PbQ=%st6>9=mQYU?Ey!-}yCc$?VOTb)Zs#XaYm#GM9@6>Q27Q<)=Y2Ck}p-7yZt zu*jQ-!G5NkK6|8-WgN1Oc#z$z$0~-Lisl?*}eK-I_w@k2!c~)&lHmk<$(pPT{ zTgAe^KdW&zdrL18dKqyl|ksKHB7+$7h6* zBtm(`dL1?craA~g;ONvN7Sb82I*0C+7S1tHpra>G49sCzY25^Qif|H7Ld)3NsXIR_ zVAwsX2AI;}kaZ4IoQ45;YosyD-Tk6 z_qix3f|p=stiCNa_rWB??#kf5{<-CQ)!Ni<(N0V&@&zt$kEql&B`>@6|7XrU~AVaYU451F2k}u@!UDHm1 zXm2;!n<$?Cvo9dW)ur5^vk%>n_~oox%H-hQ7KP8QtDOc?#g=Mg*yPO)1CzUH2eRF^ zg5+DXPzE(_Wa!~|BE~DJL&!q20dgVp(AI6vOd#;yO4J^lXL>7(ydpMV<-50kR`2iZ z5075EXNBnfMu`47-u!c{w?3hjYe#!#c8q;6J5?u9*v{v&X?`4sBckee#3*SpH|i6l zqvIFP-5@y$79sGMU1X)9pE(C1V0FZR@@y41hYHaV7x46-e-T%$A3)1_`h_kb&2lx< z+;eSdBsl~2f-y8Dbi&P-*zL$eWAQqOLCe@MO_(8+B|1QSwz!uqva|LGSzbc4#1&%M zCg@`5zD24$I?nXw&HrsU%Fmm7EBT|B?OA|9y8#%yz~VyBlHABgh=ruxwbHq9L$Wl| zS7JipO_!NKHlyGw+z>cq^+`DGG13$ah<$_a&^OJEpp{VULg4Q(HIlRy+)fyPc>g_C7(p1l5DQpklU`R z*1$z;4yV}!t`^9KEZadO$iYU6 zC|cK?2T1)9#??s~edzGz33%8+_z1MtI*0l>z)g|ps^s3hx!o1A}M0`SbJ8@ zDTWPz1*YSt|Kf_d3PszzreF#UQvM0htpwKx2KxYq>cWr-HtH>kXHA2p3l8YhB11h) zf#9KC?y=X&8YxrY5Xe=g>{Tr;=0aCaIdkO2V0`*7FSzF3-i{kYJHBz5oq=edouqA@ zF(AA;1;P@t)%q@A2oy{`EQahgM$_tqfGh-EO&_BV%qg4F9B_zTfP7lBH;ml(?z=gX z2rA5;{;MxAz3!FBPDMS4tN~-MDCGI7{2MsQ%zbwJ_|G4&y>X|n+) z!W^TQ(lG5->ywRyq|HePg6Yzy%(GQ<53gK9&6Wt8u}?}`G1V8CUC^2K3IhrbDY!SE z{@;52;nn%>&713T@#^Zief#e9+q-J((X05Z*|go5O<&-_V;#ZQ2Yberl07gCYqkdJ z1okUrO>tu};W5_k!^CnNoo%cPrGeYlfdV)C4$PdLz)vb_ttY&O;C+Npo=vV@*2t@O z4i!$nHQWL6HF9%~lhy`JD25JXC<{WUkVCz-xfZaRQL8&r`*vgQh?ha~cI|BoSUzZ{ zHqTTssm{Aks}P`V3OnjxOH+sX#WxIobH}ZI>KUQlqZjO1p&s7|^Dmd~0^^J#BWR2ol3}pb>~?&B(J@b=;c@z6iBTpq7c#OiuQhm0 zP@AxTwkC7WSY&P7IqV*tRe1BF{muIDYS(%FwqAYv{@u6r{^Kw1O6vzN;1APD`2sIq z0q}HOsG_XF;2@2YjF)L^zI;)&=3~y7rbzFU1u{(fY?D<6i}Mgn%`z9aI)wbw6&;M3 zntPt%*b~w=vyRoFsAMk&Xh=4j&#^6aBlX@$m>Ksg~3-RZtrSEA2P z7bg~19vORuJpI>SpnEa8EtJ=~Y}LjA8*^LGBg=U91UOKXnH!IVa46!diJj4bjjjH7vNf z2KB?BW$#YiX%TJOh(Ihp0M&GvwvA-2pcxY+5pQTR$U-pW{^TMp$M z&GzT)#b?}YfAHbmcki>l@o%r%@-9vJ(F^&^raNxPVB;l{!4{#h-Adu-39BBCD#)O0 z5%8J`GX$eyd)P82Z>N9}DaiZ)O4#b04y$AG>2nsX*~aF$h-@st-ehIUT(b!QITwK; z)vS@Xa@NJJ}xlOc|mEIuSry;6~0| z7vSMauf~ML4mrXZchubbOe7YNHJXfEZqPie3xg`9V@37RM5+g^+dko=GudyC)cWx1 zUHnPq$5;OG-F@5U(X03DTi0*iy3a9R9Mwh=I71`PZ9%HO zfasf@adz_*zt>6EO~n!qiY#)L%RfqPEY5N~~5UVKQCP~%c@OyMhPqaQS^fU*%!@X&fMh#hC2LwfA#jqt0g zuCc+>sfKzA3WOC%st0PsZXav^34IA+KXSX50fz6qWLy`)!>wHQLbSb`Q(i&MLVe}Z zOh`>-^$dknV#NY<-FBJ4J%xbrRp3r;-Lqqiv8jm#H+FSpYg>?Sp*8f}7MvYqlu`qP ztaD)Wg03?e&|)yUwkC*d@$y)}1}=?5?4k5zB&hz-+<++=6S zj1I;^Q1-Pp=OR)#dyjNq9D>nZT;dY4enigLwTEXUZ5_sdosw&M2fI}I(S;^j9n3VK zS^-OPhGs@1s77zKr#_}y0gM_2K0@|BM^jj;$FzfR0nmci1%x$&b0~CYNOY~7EOyZ6 zRUZ&X*~Z|SV8j4s%Ep=zcsURm%E*la_-zBW8)F>5H6i`}r`PWR_wO!r}yE&SsBoYh5f&fK%)oBfudm$f3cBk?_bGU=F zQfL&f#RY!Ks1QU;lpM-^+qZr+dhvEj{j-YK`^_&E&v=mcX=x8$z-M(h{YHoL0;kl; zTG40h9(1^^)m!JIYc~LOhgC~t!RBJAIYfYQ7*3a`({TXQ=A4};p>T>F4Q&k(&=p`R z0K&B+#m1B1CQF+@A^-|*o!jkUyTanwVSMd}&)(pkTT|E>xcfOF=SZIR%fiDZG+ml?e6@3`G=4G;kCbg z)@1VN#e2rtPdCo~7um#aH7EQy)FBuulp0RGNn~w%H-HP15#gy((>rRRD z=w*8rd)jZXr!R1i^D9JP%2-S=dr+*1F`W3!Qv?#$c0FxmTeN56h9VYcSX;*$`INRj zAxk1b(bAE?l{+hr(kDPsP1@}oS-x#4*U~MGg*^Cnk9%~0!tEXx{>I;C?N{IU$GqF) z9=&)!Ouy+1%!F%jgF0ix=$Kyhqaer1G6r%{7oSxDJ3^<6J-eh0#ObnsU+KSL5gG8Tq(HNOn$Fy?oy6fOdWj-)K$QoPskX#d;vd%WMV7(l)g{*s* z85qYZ)I$n-Z7^a72Qpn5`P;+Ne1e_D^Yr1|09MMbf~TzKE-{K|Cp*HEm~!l^>pI39 zmYa)=pv5Y5>LK-nxXNphH)P-(Yt{xbG8_ETazQV<#n~ic)msO^n+yT+M||zRmMQX? zKwVX!;__EE-9P;8*KhyP?_R&J_kTVk{`tpxf5nyU*B{@#zZ>a1co~1Nkxs){9!>V3 z^c*&FuI!Z!d6LqX*+Nbr?&zkF8>t?Is&CBFP?swcutXq@px4k4Fog8V#67UUv6%{W zr1G^B=-!1*9}h2E%F}-XHr_sUf4CEAp z#F4&^R)Zl9;drr-fOZnQ#wTu&#sYSww4rd6>|nNPwrVO9+I)4JR23~4vimuvjAL>> zH9@KkwsjUGJAw1u77dU7ah`=(e|qumrz3Rym;t;q@Dxt7bs)~MZQ*21P;CH%KzzS1 zhaIPf?CEIlK>nTS0gwEcC{&FPq}Xu2K&dfM@?uBv5kOtVQuOy}?pU66x`X?Kf$^`V zBft3%{sY}U&Cmb#H`YJ=-GAu%9sdZw+`B*g?RVee8}c{*@IUr<{qb+y7{uG&M+p&l z+EzoRRys{`YzRpB^#uWWL9K}%34;xGHm$~Wo%{|1)e)u%`LcmL#%;`Q4<`t@J=!);AF z;#C>JYg~^IB%wW&XdO_9de~4#^W>97FKK~{*m4u?qfLmsHO62LSPxEx<7tiPgnRLA z4f1H*_N_ea!%r*x?bomJ-8bL(eTLejSMP_Ze9>4Q5}j)S){+Of=&-pn`>Gv1Wv@-p zHi(^hTJR(wEWGy#Z_$)K%@z}kPoNTq4xM`e-kG+>DxO{olt%p4P=53|Mbi)$2P5y( zfByySHk)92T76jbIi0)jn6A=%=L$zt#etWBS~8a&(p^TCsk!jEE?m#Mnyv;17^DKU zHjr&?dTdZKR=;+ziaC)rA+)BKcPv}odK({YlfQlU-{VM$H}&en$M@ym+_f7Xyn4^H zQ|C>J)ch=`!owj7|HD@ot_N6eUKUn`5%UF|i#dS7MPGfY4CqvP&ov>vp0#&6qzFxe zj})&x&;r77)=mMyyOvf{hs&z2-Y#?(?GNG0UsP5?tehNQ}?Xc+Roi>D4M?s*g zE!;;Nylpz(o2UQj3!ofwPHfQX4G7+|n+|j-hMW!_qrlM~s?8*dn!)1T)|%EwFlwF4 z+_Pm>BISBxz}aFtk5xVU5R}O#nj2kZY6D32Lpvsxh5Xik^62;NcAoP3?N96d>yP)b zwGUplXAeKQIsD}1wS8ox;>+3Pdb#(m#ALwM8G9qUv(;e)a-)MLJX;`db(!|ojG&2I zh3C6=NZ09FdA5%3$^x-nV&T5ZA7@s z&-9*(mc#DSllNH@V~L!NcjB(8H6->lz^M9$5jSOYb5Fy(S=5h~?X!#FffR zz<0f6RQ=A^^$}+JkMC~Zw@0tr55^?a?1FoAu5L@z?Vyz+$lhVMoocO%@W7kP?; z=wxnL;+?uGFU-P*g0n??ZFKV1RAw6qJqo~vocOpvQ}>~jR*0%Z?EBOI{M8F^iah-< zUm`!WW1AsJ7Mi2aF4$^p?XA<-K)!9Kj&@b7d6ne6-^0MXVk_NJ)u@PEwW49)S zaDs}<<&G4Kj5D^w)D$z3p*-?r$h7nHzkYSKTPhnZU3&mRGtlw_-kur;AiLuSa42Ez z2z-2_9n{p)5TKkR#pKLAND`k~7;c8@n_IO52NZ-iPygE& z`0yGH{Q9k2aW241h&>yLuu*FOo=sz&K$Z-4=H0m>M+f?;bJ#+Z%{neaS{+a|`jARY zFB`zKt@oIt?USdEn3CG7GYc53=lHFN;L-5Q+tln&NYY;=Q+!Xg^5BJg)&VCs4!DUiscZXJdr!efWGcrkeMSS zq79vxriBY~GmdnNTM@ydvDUY*+pgo^y}7?bK6=@nt?A{arvLxFyWy6#A~9e+9ktF{ zVz39?yxnY8v`}C*({Yx}Zkq3X;X|tF}!JGt$(I^EU^ayAy2j%%>5DuQljt>9gH)F z<`C?f*-s+`Ct9-+4MnK8<*=IFX^|e>CBI96fAj9`UFH4gHTz*^7N7rJ1HYknDA=0< z`@a*eqHcQp93VL&rt+}zVuDV2r-X0J9zS{h8+D=1Y&~%rk2T3Hww|+~HsWsQOzH?| z*D=&abZGG@N>^LAR)a?iYHzQ5AAptr`XAYaM1wmG&Z8IanU{`l$WZ)w`fAdkGYip+ z`6rN)x2e5RX6B${JQrL{GJ-UXoGPs5OlUL&2|!JFtsNk0%aGm?Ut%5UPXKKX^raWW zoM(yXciz{?J>5iUJpEr^psyBmlyu-wY!RzL-&RNRWC^oxALjd%8Xbw~$n#MIz#rvi z;%&Pish$E<;sfSf3VwF865Uu z;oX0a7kJXy3Sdz;gSs`wTKe<7+a`LdpyZ$7z1obx-U_82p%O|@-#kWx4t z=g!;t_A^*&KY3;!zk2>i(|+fHdoWye+^>{eXKj}mxzOGrp}kEQ#(Q1ep{m1@F;GtIh(D{LCsup- zH{QWAYsO`94*qFS4h#RMb=D}t8(ZL$}{{p;*vGIqqPTSXr)vSGR6Q{-#bB>ZHPR3k5U=GB5 z=YIT*tu&X4NJ1V~8ICwx_+RItpu-b8_~I+hYaxw#Mh5aWZ!d8_^(sI5mB$C_dk@+Z zQ-0k{`So7)PkwVCKY)?^&7Z&XSG@YnM~(o%9^NOGqTO8y??Ut;yO8+e16^<@Sik(t z^pz`7d^wBubk`0sOphW*AFZkLq6%JMY;Q%=2~x#or)F-?<6YN@+UXT--}drMv@J23 zh^Tkby-ubqcq%ac&^lRI^R!xr6Aikt-V#@%MUm%JEB8ItSY2b*Zgyc7G|-f-gxl$? zIcn#2I;|R(KaVEmwdnS8_vh4$4?leItIu9$Jb#(zu@3Uy!}rD6__Lp>yyZLeg_Flm zfButqF(c6klkn;)yG|-v3sbbsQDX-#BDkgtZ?uhOtwW38lV_JWv&zKXJ7=aAI0?uO?gk%hfTiBX4yEI2pjC2)4 zMqZ1cjKNj>3}T)}D5A9x5QWd;r6YnFm6qyQm0K(%H}4&D4llAtQ6+bNoZG76SAB~e zY7qp=0@}L{_D))DbfA)_PgD(YPw${koN7WF*18&3)+=b`z@vVCf?!em&EpcHK7RUs>hLXHT2+?mcu*s)_rJn)rP>$9!HQ(K(F4 zgI4j}b`I!@LQ-S65>|*=Ywj3SB5?#+@dNkwtBYS08?EaSZDxzwNx<{qWAGvSiX6uT zB3{aH&i39NblNLyjP$k@d+&?M?OhSK#HU+r_a3+>+@S5o4fmrF(~K?@yQ*X{f4 z6$A49;z8cqxn4c-#Qj%h+u&iHG1?voQo3wimb_F}KeogN906Tz=aI;Ht0vH6ybyy- z#gc6<-%4Pnb2kWfvl`eFU|gSmMU49ByRvs0aJCZ588Tr@>@|sfwcP;Jf$D7z&}yc) zHTOIx3kjJor{Ju%_*OH16FzrQ~d?%TiT^{eykpGGAL zfB3Urzj~D~QJnhbn;*UT+joEOo9^qW?CDm!DTp+cIS*GPWA{_VZO{@>nDWR~9k_^^1Ks_$ zhn`KwaV46RhmZonI??jF>dB=Ps)BI5RtRh%Da=h9BM0am z*pe4do0CJ9K9-mM+~-{JXZ7i?|N5^zLr%=?jKB8?K5?5KH-5>tBeS7Sl3TO)$$gFq z{iTh7-lDlDnvGU#!7)mEhBbvMc>$!9EY=VI)&(`xAxZ_`eMoIhgP;pz8A>Nhn83H=*`(iWoOq$u~(l5e5H1!|E)Qvb%3A+ znWj?btQOW-+T{x)(`*gH^2KcZ(Uh^9MCI; zX%>9M&<$eZF+0l%!B4!=dFk-J2ENn~?LJ%g(-?Z9vuPf!tl_lG5AWSzZdeW8T@hhD~K-nEzul$eeWrp>=LjT87LMU~t~t?rt&`EX8CIKL!HaEb+6^e4EqfA4|&Nlk&J%Big_ z$#SezQOq5y77mo7&wi$zVV3J0Q#Ls=dxb(Hr?LdQ42x$_5c<(JrmADxH#4S9DToe7 zl)+w}YF)?!@O1DG{I>3O@4f8Sx%CEa_$Gb$QH|l=WA}u_TfdZA_vY`v{iXKa$jOKQ z;2kWrkTSP@I)p}tAg*evyZ6&9*B++YSJb%9tD$rb1y+Zljx63e%_)2+u!tc3tC&uo zd8Q#_tRn-s746v$T*DE?-D}QFm`JC|EtBcacc{nc^v{ya9#IzWJ8Vz1wB)9xC2uD? z0q=FkB}8YYRGI_-JST`hlH#+^5!JN1An2ta;6(p;o#2l8Q4K5c9w=!#1Z;<`D{fDV zLlJtOgFxwKKU+^$>rg2nWiyXF{D-*Irkc;jq);r6-530Jwg(J*eyBHyn70P1NygHO zr5$SXv?TCmHrQ5dRE;~7G#bb;gmfSN)w$YHMdFotE~z=7CF&w$Ed(K*^Y9;CWd^Q| zoJLaxF>@2**i!_)ouind%}B`Dw^N2&w}4Yy?nl3sS!BBVYq=4OJ)f?qECRl@qb4 zHsZ569W76`s8hL|u2i-pZb1wgXpVL#8KPr3vu!3wQiO zmstR56Gt4x_%d+FC}PGYQ}M`#wmW;MyPmbz5$XVv%!mKt8ViAo3zxY~;n|Q=#-NYS zZV4UY>PpAP@V;>**e+Syof&miUcEPoeol*H^YrO9YuffEd(^QkKa&inqg{1`&V>(E zrjXfA*~5Q%trxZpr~zc{*-~JX%?jt8#=N8x>M91c3ruvmW}dyuk=P>g?6ITf?h}FzD%! zeyO>hl2X>$=2qXMhIR#AM83?`?mLdl*p_li zz<%Wz06!o|>lERXI6CFN?z+hv*BRs)HZqV2_1FOM4Y#PMFiD$p4Vv6>!q%yWtMHQF z-oWmC*8lo=`FjuClX&@YgO`5~L&G~>0)e51MTFipHnyTf4%&ckkPl!bhLJ z{;J%#dym|cG4<;vrhdJDGY)6sH3)gB3ks3SzO5P#$%%a7?fpcDBc4~t(FweWQs>%D zsv|DKfbKOuXS$t!u_Ha3BHed_;Y*2xS3oQRfGlnhjkgB3K)ZGM-TP*DtC7E|n)&M3 zCy%>W_a3?@yIAd}i}fDTf!G7Uf0%-N0iw`s&NQ^L^YXaJiMe**+pC}eBD zu97&AY_n5@PP|`dOb`4|YK$H|=fR2-Bz}r#*WUKSfBP<|+dX^}XPy$;t&J3+Sz}po zgoG(rBFI>rGWTq_#0SJ=mhJ3_E{CS@Yn{Y+Z=NU#Oge2K>6Lbq zMI#T7N&{$YIHw@brN58Z6_6`i;gCR^_Q_Jzst)1E z$0LvgIt~sNEoM5zoa7MIN5$wTY+0M9y3U*@1>O*_(}-oXx`l|g@5pa_;~i)pL>kYu zfyh$W$uIdKZ*P&@MuXHg1OZOoMu!!BI5vn53~qGL&6%rVv7=m^os@izy?ZwUdTUh% z)a1)IaJ~fJ3W{}Uv3TFECHJnR-V$bC{_rtm?A}B6L^E!F=|cME?{5KXEqrm6$#yy- zwM5r2+5;7)J~$~ikN`Dv%!!z{fG}VuyR@C7Z{&ov8QZ-t;Czcp#yDuza0VkY$+imE z&&k}H^~}UNyTtfB{CDqQ^X!;Kdt54-PuMi@$Qv{}vKXdqsyYVSPJd~HC!70DH=jdrX!iAWG} zt=o93Ba5uP^0kL9AH+0yR-kSt zmPchF44uc`!)8BSeFB@!L$H-l`o?59bIgbT;eBWz{^Tssj}NUn#=-rhVNZn{-BA2g zBwv*jHdvcoH~QVcV7D_SI*5*Vq`9Y(o!Smz%4pmh-j?JBYRel^H$Z=Fg^?(2 zh46wxaBiiqNf+5xm(;Ni3OqEX2q{(D`)nq&P!XP^8nH5;Ti@EfrHN(tNhnW39rCy2wtp<*atLA4A~Y=)0>QKAAm& zPHdjI&QeFerAJ>75V++exXA~E0=m})&p&aLmPLd)Aw|5&=wgArPpbF$@&a<1buL2K zy^9F{e@)|^)ihA0Rj)WXpigLn{H$Yxq-qXEgAf+aIX6#7DS8R2xbuwU?9zMJ!r8pQ z>W0;q4>}&;vZm;~xWh8Al zuR6lXeoMH#_htTelY0H?!{`1;+<)gW`{E|`GoPtT_={)lpZe?v?_Dd*s+sKW;46;} z@=bO$Yid=ZJqXVkI_!Pfgg6KJf+LW-(@!C?36Or2cFu z3pEkL-c=9*jS0QiY_8dv28qt8gU*l!_|ghw!?9%q?TKhNqJ6rKJi~3ArD_OxQz(;J zLF4s#yS&}|?s_xf{?PMR&+5|;KfDSG&ydja?2{MIKYrw9y7wsl#O7_czINhP7L0e_k>4+9N8eBtZg;)|k{kPgjGxojiR zzS_h8^v#RkG&06;gjg0F7ma1m9&;XBb7{5h$WCyRsHMQNnzMN-Q&Ddd(0OR!8cgNm zATMOB*s()1xO+r5FHzF520_ON^mO;Bh)cMo8{hkJ9&z=afB$3q@LB%w`RgaHEQ?TO zJ*Niv$(bERF=T(X?%P}Qgm$HkL~~w-3^57bLDiB4glj~nc%rPLF|Ey2i1^#7Gi2{b z!(LEv^k`;6XiSJ?J8kCBetRKp-|6q7q6O8^fu`rIUXa!{+kGuoJ{;qS_|B6N(s;Qx z+@rUT4&IDu%k5=@TH+hT{mkkt?X$bVB>=hFTG7R5R1PiKd5BS+65D(Ab6fPh_l4|H z*4d|@eDdPu>sQY%Vfv$6!<`53iO!VVbf)C3tY?W64*6l06wbyd%TAkHc8NPJl@kD| zR3EDSxH0sE6G59Y*ILziw=;9BQ)bi*uMb4e(hRpJ+EWpG&>iA%g6{h;koIRz8S?Ny zzk|*cO*@E4XhO88+nct26*WhJjJHP2&fJl>SP157l@MDZ>0?q-9Ym``=XsX5XtlE= zP2E}?A8oI(ykrE;HbBuDTN(g#mZi%c9VG8O#AK0sB^`U+L(WJlgu>GVam|otO zbCf9NQR{x_Vzxm_(iA=Calny7eL(i&g(KLeVntbm=Rs~YqPxNrv2u~EN=#i_o6@%( zM`SnKAW+cHp0W-XN~#?QuiN(0osTHD;<*Z9n%OwI`2^baP~U8$HljY)ukQ zdD6qYz3QkT3Z*%@$K;hK9IX(%dX{C9yNxl(`dl$;@eyxQ((MoehFALXgA&D@lSdr0 z7)#Ga4MUbA4%>_+)cN6mc?U}@ZjD7^zRsCk){I4v^IP@%ci8cBYRfw8@afBA7c?63ku)85l`O|;fZku8y~6L6X?Ci_;!i?==n#_ z&$IgYcGBN_*q-pZ^_vXU_tFM(&J3K$tj~tkXmo|U0lVgz3}#FwoC+?4tr1MD!E;c} zJPu=Gz=e?u*|&xRrkLCzJWOq+6dAQOZqVC<>9kU_|n>>-S^dXZz%2}dcOKO6WzE8iz*bT%=7YB3woO+ zQV@P(o5PW8Aea7t(Qe^1jNL~aT(oV*p7rp*;VI&%Ab_0Ib-N=86jbLb?}KzWG(Zjd zbkogAvBNGS9ExM_61+|>GANt zUz(ea>oa97M-@xc2VBUeAcY&ey9lP+gs%&I{+iAvgfi%aMUF;E9xzL>9-_{=K#^%N zXrgD?dl15|Q+H-R#bZ171D5MR^7O<1aXkfHwenaiyB|(pP}KIdnlC%>)Ko!f%XD`4 zKDEb0*LXwQJpGML%TQnS4x{#6V_94qzv+pABs(>DHB3OfQ}=3@35ywxnlFhTMa6A%t0WfuaQ@=;JkE5) z8xPcP#AVOsav(68u}9aw2VRn*8L}{`Xyo9-?TVBd0io1vyM(EHZi%8+mRpFF5EZ6- zE{RzLKdwS7O#(~QdiZ}X1P#DmqQAK{&3})g~eyJzZAl zV1>^FHm8oG<)o|t2tW4>kDOqQ#!kHBUD{UXxoQVju$@?@4}aAMm$nL+rJi%mw%2R} z*=RHOnk&OL&fMOmZ|y_7!TjEIAY!6(3%rq2+>vSFjPkE~j5FKp3$Jj=%2nqy_*$73 zOB=bC?W3)uVR6pGU;V+=u9}m*OXzVz$pcS(CXPn4S?{Z<(g9Mkuj~tNKLUwK29`q* z*g=n)*=z}SZ5rcXr20Y~J6cDUy0c~ma@Yh^Vq5WvzGPK#uoMfZz zEeZs;p!SO&WsEtpMF{fII#G)T@nmRk6^WL_P6sU$ftUy6?nW4$A{+({YPH^$6)G~l z#_{kITCw8cufkJz&@D!$mrUJ- z)tqsJf7@vFMGk@&q&;081k4L}$sgGX$%K7@A`>jX(=+jppKJmFf z{-Zu;FF*RqU+ybD_~t>M+vs2Qq<_($;a|kRm*&rZP)~gL+dpzhujhT@Q(y7@*~jtn z#q;>ekNx7G@ng^Mpig}Ak39X!dYS33;w!%TulVP__*Hzxm-rQ*eDhs=_Q@x|jPL&8 zujx?-a)z5LK@M3g7A~!uOl;^CtWwF$uc z#O~i)2|~$4(a+N!+RTTA;QfWFeLnK2-}x;3d2Z;>eqq=@yQuv6UpY-4`Pc6}rtjwF z^6j60@#=e@{p#QP#c!QYKK-7({OH}cwig8C0wL}eIo5KZ#-`i|X$G>nQggbC+7tZ>RG!@kwXg+qZ>GX*?+6#^M>mn2MTRVQ+AuC&^CUHZ z>RpDGEdwpO;DwNRwo!+{U@p{F%%-kot1TSzuG+Ey8r+~V2V07y^>Hh{zxSo_N6gQk ze`>dUtUtT&aK6K}^RwUjv)TE>AH&@2eL(#bUW%=*9b=6Vxv2572?AB0lH@B*a7%*7 zG!TJ(X5_|tG+Wq!WXg`W>@yEiA^YY5lgH2@D5I^3Zb}W|HqKb-h^2T$a=&+3>pPmFf9{J{-@AVMALF@mau|$#+sBbJ(P1NQUUSq2LVtC2IMvqi zZ4AYgoCL?EVeZU%k*d(rYYhaHEgSM!Sv*_vk-Q8*S*D|bwyuTJk8NFr6bZSVq4zGg z{fHU*hrXgF@u+Ej=MjBJlk+dQnVdhI{HuBHol#x_wL~Qh>7|Ko~$Z8+UD;(p6_Uy{(;+V{>O7Y(gCpXqG6`eQ0_n{c;&D* z@Rbi)B`0zJ6kjKLMtDh%pjEb{XWtuX3{}us@3#BS=4#MW7Anxt3($0QJV<%SLbP<% z!r`)Rv*YgFNBR-7^UwRL673@$#+`@s9Zk?b@_3W~t(Elq_|JDfSu^(HT8#Uls~_u9 zlZ>a!$*R!@NscCB-o1gD#I4wBZDVi@OA)#mw5h2YFOXP;WFus_YbeCGTgD)+ik$AL zlCq(vS-CuKsl<0~Zhfs{=xr(bcDCMoOyA*!{`%E_tgC6Dl}1x>H_5ZsL;*_R#zok1AW0!!!g~?ysf;tFdbhVAi~ATAj?E?9WsX`{2=_I7Xfk9aGoRw zckFgGy?5X9Yptd?eXGY=h4&rOcX+G+;{3$#|L!;Y?KW&q#6E+3QFUnooA;E|yAON=%L&)zh2qv)fb!p1oRM(GWsHllE<# z)xG5!Uu*rmZ2~^p?e9FM?`VF0>qqVOKbCuwwdU>*r)RJtVf zfjVNCwl$h__D!8?Ls?-%X@q1SL!$;l{%Y^(EkLYiZ60GZ^KGkm9qt1mC*`D4xKS%Iba!I=$^l5G-s(pT=TWu8>r{)0 zU`MomTqiOQuAfrPi7c~em9#dk=tm|@y-~=c3e;mNXeLZ*ytq-*)fkeLgC>)EMlhY4 zS#nwmZ7W=>PTktoe(v?l7au>X7cW1u*Uv2CWxje0;=c0;K7zb75H`MmBKxV&e(>HI zD>}~N4Ncyrt{{i;5Dn^zn7%VQV(bc;b=lhnk|~Kei**Ylj;kZXLY6kMu^T8j>9bRH zfJq!Dq}c=rkA<ebFfp?Xqb*yxDAr?GqGzWi+yjs*Epvx}#9oslp{1>|jHv?_0FlFMOV!`piCk z{o=g%=#vlgbw2y#<%^F#c?90L_fS6J?cp1555E<&#l3TP9{z?8-UCG9!{7M9dyrJ{ z@Hc(%9%NSDzQuQboZFO~m!E$8%wGN4$L9$egya}LSeT@vT8($Cg3A!&x~&Gf5!?r1 zSHV3HloDhyw2lI>D}z<4d$aY1)=LLGssm9CGuOyIi-m)lor$dkOup2R+MYf2Hl2{c zH+>JV^$&mZ2jBgfCw7|)sdi*&M)V17DV=^LT2xE(aUj@}UT9O!0M}lW8KRBUrgbsy zDZA#G7Z*f(w3Ft&ylomZi-gMsVYDnOc55BrD^Ovt`lQ|N8TWpi&kxhzc>QY#{<_WG zeu9Vz$t>W8%+zMq9_FAib{f(E3PH5t9(@}Nryx+iLn+qH$5!2KOA6Idt!y*5;lCZw z|L8W@>2ZVT9V@aT!KsGigzdft+wA%Il>1$O;+kpqPAvaP2~dChMN*MLxY32Qk;hqj zdTNKr6v)(_wT+noGl89$d1bIg)7&b#x*ca|u)<140|2RIIX7pCKtLh2VJ6Tk+XCa^ z665*uy=(x0_~wiJV-Er{!ngk9pZwOt{LMeD-~7}5Eo$=DKPZ0t_y6)Wp?~S~0eB>= zzmXW{+9)xLLMmXfa^l`V8K>>Ra>|iLf%niTOoxZG4Btn(Hv$KC9!MrTfouT>xtN3UdNxR=pQ9zW5tEe%OLe^ToffxN0a^z8HgK>{%>(_dto87> zUXHh^gKFhbNwX7$F5{#%kld`@I!f$B$0)g*xj7UZ7{uPk3>I7vDoJexgz`3I zkqZKGLur3zdo4>zz)r%vCA=FcmVO<5m&qB5l9RvH)M)pxmNJr8! zP`zytik?tBnWMPAyMb&o97R|=1SX8b3%L1_QYWO(wgxCL#enVy!a9x=PHU+#sP$~Q!K$0* z;cx%o?c;Z>MP=I{gD?^UQBT-twxjdEc%I(9`EgO{dz{U=V z8Lo(?HZoQkrEK4(u#ZgxACn-9C-ZNotg%Jfad8GJ>dpqP9I+X1`IN z{`#-~+T-5ZeaGyHMfS@%^X>i2nQv?Iso4PMY=bdCt9v$i2V78pJnPcUc$sSSlH3{sY&XGatsu575l#Uu8Pd!h&g@u;1t zK*aC0`i73LUlzGteRt7bQ)Z2Z=I7ouy6sG=jJA+H5`c%JO(nTjw~Vs64ruV)1M6_x zUBjaH8n}H;bsI5m=bD`tFCTH9?mcFY*4OyO|4 z-Pio{<25A;D8V;Jv*lr8$qTn{I&@@sk;;-&s29{&jXf5Evs&0u zo7NzuI)K$?$6^q5pyMlFR0L#WE_u`*yYsRAX8!%2*B^ayJNxcEVo&Vu?K@+9X?MSV z@D|{DeHYDTO{v;y$qnkH9HLTgP1drLTN)o&F~ymNIJM(8^-S-*6HDn4_t0n=HW@O| zb(SKx8s1_(Q?4c97`2={#%u%e=u76q-|-H1cW5~s26(3`tpa0f#3eccjH|D?(770> zFrfk2J6bTcqyn0xCfN@=j){#+TyuJwrZj0rRMC4c>b>BCnZBo7sqlTTskV0A`nB&p z#<%7C7q6bZ{^*l<{-}&{?{Ryg1J}M3NcHCL@6Ve1`3{frGcS=viZ<)9))EIWo2&C0 zfsmn*!Kgd-m`GVGLN&mUc(?mcKv@=NCpzjVHTldUFu z)D#}4+crnjB?Yx{Vo+ao@c>cX)1xHk%7Tk>P#fKFE^5@hw}aDJJLo^pmAg$lh?v{V z0WzleoI@`^^jsz2d^j3zbgLO;ng}n_QbxXKi=JnOqcwK***elQ(2}7T&9?Ba(jc;0 zSAmGBB`zfDr=Ni!jO;MJYDA-|l5xfqggUOi&PX)Am+#4_IpJ5Myhu zY{jSbRO#G*%PRfq(@*jxYLeg2&tq$$ZF&9**)oqO;Jt_Oi8e*QX;ZwH^jZ~V)HsyI zHaqh1Bq01i01!7>jUov+oA4IU9ZUrMc8ZZ5?#);ZFLGl#3yoj9LaH`*Mf1?p)m?ic zBX%it`F%hgrPA?6-`Y#57ZwUtkv@j#1V8w*0;M8EM)s`BE7Z7qhZv6WrFLjD=1TG! zZPX}AL9$gxD-&oGAI&1zEwYOePYU6L3=3I+oVixj{!Pot?~APGAAV>b+2?neSMexh z^xk9l#X0x0Z;}|=cW8a#RQJ=L|KzuSo9TN8ONT#aS>@T{Mh*VT0%9fF?jze6UVDj; z=rSZG&Ef@^fMfr0-*kdx_7jtMMpKO|O)_OdULLcxwPMXdridk}36(*H?1#S-ji~~A zeYGK>Q+d0^P(cABDcLBzxAcRZE{0lBv~kX8lF0BgxXT^I4hHmiAM_EJ4w(FcOVGw99*Dxc3X*V)r0;gbG^fm^gS}|yZHmgh zALmi=>xa)@JQe!7d<$xDYsNSm=2}$M^XQFUB_E5Ya*(V{aVw!gK+gQ-~SuE&orc$#--RyP?wdjp&1 zm{_j9g81R@`QVbc3`{aj+!16!G@yz&LPQg^I(D*q5uB^YisM#cu~0pqJ#^_=8p2JB z=QdsoMWhKA@(8lslWOX+K9*iNyX!PNc(-)<4jTUO_kQpm=)8XdW#^A4`dLg@;QHRg z`*4HyG)#<<)rL?s1&U~^w>GE7SqKfSGY@q;(GWy=a!p(2xZ)nD!j7*6JQMP=RL<5N zt)b@^wv#(DR6vx+hWq(MzqY1_OJz>K@s02P*>Anm>be;1Vo)QZqmQ{Uq||0h3}5Ej z-WZxq=(8=X{Hmj1z1rjYxgJKx=yzO!ijeEMyhzJ_)M7X29BLboB%s*?Y%IKD4aHNGK@A z-UbPww{-#P;FUI-r)sqYbKU4y_oOoSY*@D^LOw$b6XdYoQU&gPPWycN{j~k+t7kYg ze^wbiA3o2IUq5>_9#ux~JbsT((c?Q?zvS2Y>Cb=i+doAYv+F31Gt&te?ed@kE+-c% z(?jP@l>gx1+E2`Q7g%B1C+h!gjK5IK4JH344>m5@JVM%9n zZ9)%!AGX&(3*3_e;GT2Pz|LW$(h=Q$=7tCxaqMsU&AkEdvdw$8w5JFTt3<~-nwSxC7VIB|v5 z;XsC$RBl+78`?Y*ZOhf!Tls}SI|%;rXq&?Z7MB3NKtaFJ4kZE8*P{@}mu(m#rOs$T z0=Lxl@DE&|`(t4g$)t=*?M&sKxzC)-y$zebwC31N2HXNw&D)T}q%q+Dgl82Zrj8_d zEaE@{8V<3jT1^fQ^=Sracgo^)l!R3&v@ey1KXu9ejJ9?}Btt8m9mmLUtefC|Pz&kk zD=S$?Bs7>XeWT92t~Rnd7fxwqYefs|jeQ#P6-h}YXyO7`3?|NKM+DRnbf`xmvfTE= zKltW$Wp)a#vy{#rQ{y5M+mwX1GZ)}+LsMCLXFxchP<7ZXd1?&SNz`~=36szPoytBr zrg5FQ(MOR3_v9|bU4gbB*Tn1qD8$1*bj?nJqYCDiHIcAbHQO>Fl_-NwT0xX3Vhu4| z=lWS?;3U^Mu}^n+aeA#y3Dd#qRW>|>X61>Fn015-+py$AP^lLT4ZK=H5B2a5<0;Tr zidsboe^(TM&@3fJaB&!;T$!1<{?`9f>?Ky{Xc7! zla)ClMkgqO2B5w(VKQ&whkpc5G1Ao>&cQ}`4#>M+(+5%84luVg^L%=%(c;jB9q^(uVTMZb7UZQKsYPdT1(pJ9L^3992(1Rh}Jxy=uxh9sJw@)JPU?DJqXtJGavpmo`Uq`9##aq73V^n zac+%WQQmSLvXz~)AKyq)LK2-L^(s4KrJ=D*JBmWcukIslZEDy@4F^P9T(VKA5F7&o z1oSt!F+JVFR-H0>AOYi-xnAeGZ?B!r# z#WEtqF59M4noWCKF|i9^szdZCTdhUxU3)7b`^!7> znyULekh8CDkg?P*$KJjdtgzBlYUf4sLG+|wq|E>>Mul*;jWFQW8nr8fue*qH@}dkx zn-);8>*1fgW+(Q*cFnVX7Qh{o8{WZamX+;n=*h|8;93dh3vSL!kJuV2Eup!UM60A? zQ=c{<$lqIf)`Ie&TN|xcTzsi*YG-VbmP6JgfB0vvH+5Ka?|qLgq`GGtaE5}zBBc~-0x_Vd zi^7jDosszH!^ZU#efp4$GsduKxoI+6uIbqEuu6F@cQ0ezc&wr9Lh!EWA@S`G|LnDb zqe;GZ-&@m0WI0$=>Xh?v8;bfduo?4>_5{%b32QZkaNC58gq_3Iyh5B1x5T$&br|nEUK? zDQhtwERJoOr)d{;g(8QSPDlk1=f;f}4j6}l&Z-pTO*<0WCMhU#AS~p=KYzU=$Hsw4 z*HDeXE|-BALfw0L7r;d~;?;f5si{hMKx&-;U0xkTJcw|mZ?G7pNf3bYw4qoF1NDJX z]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 Rx$y(s`F}nARCa0u4*(uiMkfFO literal 0 HcmV?d00001 diff --git a/fees/moneyfi/index.ts b/fees/moneyfi/index.ts new file mode 100644 index 0000000000..68aeb0453c --- /dev/null +++ b/fees/moneyfi/index.ts @@ -0,0 +1,61 @@ + +import axios from "axios"; +import { SimpleAdapter, FetchOptions } from"../../adapters/types"; +import { CHAIN } from "../../helpers/chains"; +import { getEnv } from "../../helpers/env"; + +const BASE = getEnv("APTOS_PRC") as string; +const API = BASE.endsWith("/v1") ? BASE : `${BASE}/v1`; +const VIEW_URL = `${API}/view`; +const VIEW_FN = "0x97c9ffc7143c5585090f9ade67d19ac95f3b3e7008ed86c73c947637e2862f56::vault::get_fee"; + + +const USDC_TOKEN = "0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b"; +const USDT_TOKEN = "0x357b0b74bc833e95a115ad22604854d6b0fca151cecd94111770e5d6ffc9dc2b"; + +const TOKENS = [ + { arg: USDC_TOKEN, decimals: 6 }, + { arg: USDT_TOKEN, decimals: 6 }, + +]; + + +const fetch = async (_opts: FetchOptions) => { +const dailyProtocolRevenue = _opts.createBalances(); + + const results = await Promise.all( + TOKENS.map(t => + axios.post(VIEW_URL, { + function: VIEW_FN, + type_arguments: [], + arguments: [t.arg], + }) + ) + ); + + + let usdTotal = 0; + results.forEach((res, i) => { + const raw = BigInt(Array.isArray(res.data) ? res.data[0] : res.data); + usdTotal += (Number(raw) * 5) / 10 ** TOKENS[i].decimals; + }); + + dailyProtocolRevenue.addUSDValue(usdTotal); + + return { dailyProtocolRevenue }; +}; + + + + +const adapter: SimpleAdapter = { + version: 2, + fetch, + chains: [CHAIN.APTOS], + start: "2025-08-04", + methodology: { ProtocolRevenue: "Revenue moneyfi" }, +}; + +export default adapter; + + From 852bd73853f11fc73507eb3f806dcc8752c5eafd Mon Sep 17 00:00:00 2001 From: TuanTwendee Date: Tue, 30 Sep 2025 16:30:26 +0700 Subject: [PATCH 2/6] Add revenue moneyfi --- fees/moneyfi/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fees/moneyfi/index.ts b/fees/moneyfi/index.ts index 68aeb0453c..3ff701872d 100644 --- a/fees/moneyfi/index.ts +++ b/fees/moneyfi/index.ts @@ -21,7 +21,7 @@ const TOKENS = [ const fetch = async (_opts: FetchOptions) => { -const dailyProtocolRevenue = _opts.createBalances(); +const FeesCollected = _opts.createBalances(); const results = await Promise.all( TOKENS.map(t => @@ -40,9 +40,9 @@ const dailyProtocolRevenue = _opts.createBalances(); usdTotal += (Number(raw) * 5) / 10 ** TOKENS[i].decimals; }); - dailyProtocolRevenue.addUSDValue(usdTotal); + FeesCollected.addUSDValue(usdTotal); - return { dailyProtocolRevenue }; + return { FeesCollected }; }; @@ -53,7 +53,7 @@ const adapter: SimpleAdapter = { fetch, chains: [CHAIN.APTOS], start: "2025-08-04", - methodology: { ProtocolRevenue: "Revenue moneyfi" }, + methodology: { FeesCollected: "Revenue moneyfi" }, }; export default adapter; From 5fdbaba413785db845a980c530fda719c19f2af0 Mon Sep 17 00:00:00 2001 From: TuanTwendee Date: Tue, 30 Sep 2025 16:31:25 +0700 Subject: [PATCH 3/6] Add revenue moneyfi --- fees/moneyfi/index.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/fees/moneyfi/index.ts b/fees/moneyfi/index.ts index 3ff701872d..68aeb0453c 100644 --- a/fees/moneyfi/index.ts +++ b/fees/moneyfi/index.ts @@ -21,7 +21,7 @@ const TOKENS = [ const fetch = async (_opts: FetchOptions) => { -const FeesCollected = _opts.createBalances(); +const dailyProtocolRevenue = _opts.createBalances(); const results = await Promise.all( TOKENS.map(t => @@ -40,9 +40,9 @@ const FeesCollected = _opts.createBalances(); usdTotal += (Number(raw) * 5) / 10 ** TOKENS[i].decimals; }); - FeesCollected.addUSDValue(usdTotal); + dailyProtocolRevenue.addUSDValue(usdTotal); - return { FeesCollected }; + return { dailyProtocolRevenue }; }; @@ -53,7 +53,7 @@ const adapter: SimpleAdapter = { fetch, chains: [CHAIN.APTOS], start: "2025-08-04", - methodology: { FeesCollected: "Revenue moneyfi" }, + methodology: { ProtocolRevenue: "Revenue moneyfi" }, }; export default adapter; From beb8f3df4cb6a3590d20a72bbdedc050186e3c9a Mon Sep 17 00:00:00 2001 From: tree Date: Thu, 2 Oct 2025 14:19:54 +0530 Subject: [PATCH 4/6] Delete .pnp.cjs --- .pnp.cjs | 12016 ----------------------------------------------------- 1 file changed, 12016 deletions(-) delete mode 100755 .pnp.cjs diff --git a/.pnp.cjs b/.pnp.cjs deleted file mode 100755 index b010f7413d..0000000000 --- a/.pnp.cjs +++ /dev/null @@ -1,12016 +0,0 @@ -#!/usr/bin/env node -/* eslint-disable */ -// @ts-nocheck -"use strict"; - -const RAW_RUNTIME_STATE = -'{\ - "__info": [\ - "This file is automatically generated. Do not touch it, or risk",\ - "your modifications being lost."\ - ],\ - "dependencyTreeRoots": [\ - {\ - "name": "adapters",\ - "reference": "workspace:."\ - }\ - ],\ - "enableTopLevelFallback": true,\ - "ignorePatternData": "(^(?:\\\\.yarn\\\\/sdks(?:\\\\/(?!\\\\.{1,2}(?:\\\\/|$))(?:(?:(?!(?:^|\\\\/)\\\\.{1,2}(?:\\\\/|$)).)*?)|$))$)",\ - "pnpZipBackend": "libzip",\ - "fallbackExclusionList": [\ - ["adapters", ["workspace:."]]\ - ],\ - "fallbackPool": [\ - ],\ - "packageRegistryData": [\ - [null, [\ - [null, {\ - "packageLocation": "./",\ - "packageDependencies": [\ - ["@defillama/sdk", "npm:5.0.172"],\ - ["@supercharge/promise-pool", "npm:3.2.0"],\ - ["@types/async-retry", "npm:1.4.9"],\ - ["@types/node", "npm:18.19.128"],\ - ["adapters", "workspace:."],\ - ["async-retry", "npm:1.3.3"],\ - ["axios", "npm:1.12.2"],\ - ["bignumber.js", "npm:9.3.1"],\ - ["dotenv", "npm:16.6.1"],\ - ["ethers", "npm:6.15.0"],\ - ["glob", "npm:10.4.5"],\ - ["graphql", "npm:16.11.0"],\ - ["graphql-request", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:5.1.0"],\ - ["inquirer", "npm:8.2.7"],\ - ["inquirer-fuzzy-path", "npm:2.3.0"],\ - ["lz4-napi", "npm:2.9.0"],\ - ["p-limit", "npm:3.1.0"],\ - ["pg", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:8.16.3"],\ - ["sequelize", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:6.37.7"],\ - ["tron-format-address", "npm:0.1.12"],\ - ["ts-node", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:10.9.2"],\ - ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"]\ - ],\ - "linkType": "SOFT"\ - }]\ - ]],\ - ["@adraffy/ens-normalize", [\ - ["npm:1.10.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@adraffy-ens-normalize-npm-1.10.1-e60d7ca58d-10c0.zip/node_modules/@adraffy/ens-normalize/",\ - "packageDependencies": [\ - ["@adraffy/ens-normalize", "npm:1.10.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@antoniomuso/lz4-napi-android-arm-eabi", [\ - ["npm:2.9.0", {\ - "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-android-arm-eabi-npm-2.9.0-4068940b91/node_modules/@antoniomuso/lz4-napi-android-arm-eabi/",\ - "packageDependencies": [\ - ["@antoniomuso/lz4-napi-android-arm-eabi", "npm:2.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@antoniomuso/lz4-napi-android-arm64", [\ - ["npm:2.9.0", {\ - "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-android-arm64-npm-2.9.0-87861c5016/node_modules/@antoniomuso/lz4-napi-android-arm64/",\ - "packageDependencies": [\ - ["@antoniomuso/lz4-napi-android-arm64", "npm:2.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@antoniomuso/lz4-napi-darwin-arm64", [\ - ["npm:2.9.0", {\ - "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-darwin-arm64-npm-2.9.0-2988045915/node_modules/@antoniomuso/lz4-napi-darwin-arm64/",\ - "packageDependencies": [\ - ["@antoniomuso/lz4-napi-darwin-arm64", "npm:2.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@antoniomuso/lz4-napi-darwin-x64", [\ - ["npm:2.9.0", {\ - "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-darwin-x64-npm-2.9.0-223d186dbf/node_modules/@antoniomuso/lz4-napi-darwin-x64/",\ - "packageDependencies": [\ - ["@antoniomuso/lz4-napi-darwin-x64", "npm:2.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@antoniomuso/lz4-napi-freebsd-x64", [\ - ["npm:2.9.0", {\ - "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-freebsd-x64-npm-2.9.0-afc248ec88/node_modules/@antoniomuso/lz4-napi-freebsd-x64/",\ - "packageDependencies": [\ - ["@antoniomuso/lz4-napi-freebsd-x64", "npm:2.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@antoniomuso/lz4-napi-linux-arm-gnueabihf", [\ - ["npm:2.9.0", {\ - "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-linux-arm-gnueabihf-npm-2.9.0-0f112026b4/node_modules/@antoniomuso/lz4-napi-linux-arm-gnueabihf/",\ - "packageDependencies": [\ - ["@antoniomuso/lz4-napi-linux-arm-gnueabihf", "npm:2.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@antoniomuso/lz4-napi-linux-arm64-gnu", [\ - ["npm:2.9.0", {\ - "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-linux-arm64-gnu-npm-2.9.0-93f949713a/node_modules/@antoniomuso/lz4-napi-linux-arm64-gnu/",\ - "packageDependencies": [\ - ["@antoniomuso/lz4-napi-linux-arm64-gnu", "npm:2.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@antoniomuso/lz4-napi-linux-arm64-musl", [\ - ["npm:2.9.0", {\ - "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-linux-arm64-musl-npm-2.9.0-98ba3a6694/node_modules/@antoniomuso/lz4-napi-linux-arm64-musl/",\ - "packageDependencies": [\ - ["@antoniomuso/lz4-napi-linux-arm64-musl", "npm:2.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@antoniomuso/lz4-napi-linux-x64-gnu", [\ - ["npm:2.9.0", {\ - "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-linux-x64-gnu-npm-2.9.0-a095c97eca/node_modules/@antoniomuso/lz4-napi-linux-x64-gnu/",\ - "packageDependencies": [\ - ["@antoniomuso/lz4-napi-linux-x64-gnu", "npm:2.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@antoniomuso/lz4-napi-linux-x64-musl", [\ - ["npm:2.9.0", {\ - "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-linux-x64-musl-npm-2.9.0-64da47618b/node_modules/@antoniomuso/lz4-napi-linux-x64-musl/",\ - "packageDependencies": [\ - ["@antoniomuso/lz4-napi-linux-x64-musl", "npm:2.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@antoniomuso/lz4-napi-win32-arm64-msvc", [\ - ["npm:2.9.0", {\ - "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-win32-arm64-msvc-npm-2.9.0-ed874f74fd/node_modules/@antoniomuso/lz4-napi-win32-arm64-msvc/",\ - "packageDependencies": [\ - ["@antoniomuso/lz4-napi-win32-arm64-msvc", "npm:2.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@antoniomuso/lz4-napi-win32-ia32-msvc", [\ - ["npm:2.9.0", {\ - "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-win32-ia32-msvc-npm-2.9.0-d491916985/node_modules/@antoniomuso/lz4-napi-win32-ia32-msvc/",\ - "packageDependencies": [\ - ["@antoniomuso/lz4-napi-win32-ia32-msvc", "npm:2.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@antoniomuso/lz4-napi-win32-x64-msvc", [\ - ["npm:2.9.0", {\ - "packageLocation": "./.yarn/unplugged/@antoniomuso-lz4-napi-win32-x64-msvc-npm-2.9.0-0d1a3e7664/node_modules/@antoniomuso/lz4-napi-win32-x64-msvc/",\ - "packageDependencies": [\ - ["@antoniomuso/lz4-napi-win32-x64-msvc", "npm:2.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-crypto/crc32", [\ - ["npm:5.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-crypto-crc32-npm-5.2.0-a834040f6d-10c0.zip/node_modules/@aws-crypto/crc32/",\ - "packageDependencies": [\ - ["@aws-crypto/crc32", "npm:5.2.0"],\ - ["@aws-crypto/util", "npm:5.2.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-crypto/crc32c", [\ - ["npm:5.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-crypto-crc32c-npm-5.2.0-e4a77c7012-10c0.zip/node_modules/@aws-crypto/crc32c/",\ - "packageDependencies": [\ - ["@aws-crypto/crc32c", "npm:5.2.0"],\ - ["@aws-crypto/util", "npm:5.2.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-crypto/sha1-browser", [\ - ["npm:5.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-crypto-sha1-browser-npm-5.2.0-1973da1a70-10c0.zip/node_modules/@aws-crypto/sha1-browser/",\ - "packageDependencies": [\ - ["@aws-crypto/sha1-browser", "npm:5.2.0"],\ - ["@aws-crypto/supports-web-crypto", "npm:5.2.0"],\ - ["@aws-crypto/util", "npm:5.2.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@aws-sdk/util-locate-window", "npm:3.893.0"],\ - ["@smithy/util-utf8", "npm:2.3.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-crypto/sha256-browser", [\ - ["npm:5.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-crypto-sha256-browser-npm-5.2.0-5e8b02b82a-10c0.zip/node_modules/@aws-crypto/sha256-browser/",\ - "packageDependencies": [\ - ["@aws-crypto/sha256-browser", "npm:5.2.0"],\ - ["@aws-crypto/sha256-js", "npm:5.2.0"],\ - ["@aws-crypto/supports-web-crypto", "npm:5.2.0"],\ - ["@aws-crypto/util", "npm:5.2.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@aws-sdk/util-locate-window", "npm:3.893.0"],\ - ["@smithy/util-utf8", "npm:2.3.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-crypto/sha256-js", [\ - ["npm:5.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-crypto-sha256-js-npm-5.2.0-fbe0f9fbf6-10c0.zip/node_modules/@aws-crypto/sha256-js/",\ - "packageDependencies": [\ - ["@aws-crypto/sha256-js", "npm:5.2.0"],\ - ["@aws-crypto/util", "npm:5.2.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-crypto/supports-web-crypto", [\ - ["npm:5.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-crypto-supports-web-crypto-npm-5.2.0-37acf6e569-10c0.zip/node_modules/@aws-crypto/supports-web-crypto/",\ - "packageDependencies": [\ - ["@aws-crypto/supports-web-crypto", "npm:5.2.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-crypto/util", [\ - ["npm:5.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-crypto-util-npm-5.2.0-67e90fb04c-10c0.zip/node_modules/@aws-crypto/util/",\ - "packageDependencies": [\ - ["@aws-crypto/util", "npm:5.2.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/util-utf8", "npm:2.3.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/client-s3", [\ - ["npm:3.899.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-client-s3-npm-3.899.0-e0086f62b6-10c0.zip/node_modules/@aws-sdk/client-s3/",\ - "packageDependencies": [\ - ["@aws-crypto/sha1-browser", "npm:5.2.0"],\ - ["@aws-crypto/sha256-browser", "npm:5.2.0"],\ - ["@aws-crypto/sha256-js", "npm:5.2.0"],\ - ["@aws-sdk/client-s3", "npm:3.899.0"],\ - ["@aws-sdk/core", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-node", "npm:3.899.0"],\ - ["@aws-sdk/middleware-bucket-endpoint", "npm:3.893.0"],\ - ["@aws-sdk/middleware-expect-continue", "npm:3.893.0"],\ - ["@aws-sdk/middleware-flexible-checksums", "npm:3.899.0"],\ - ["@aws-sdk/middleware-host-header", "npm:3.893.0"],\ - ["@aws-sdk/middleware-location-constraint", "npm:3.893.0"],\ - ["@aws-sdk/middleware-logger", "npm:3.893.0"],\ - ["@aws-sdk/middleware-recursion-detection", "npm:3.893.0"],\ - ["@aws-sdk/middleware-sdk-s3", "npm:3.899.0"],\ - ["@aws-sdk/middleware-ssec", "npm:3.893.0"],\ - ["@aws-sdk/middleware-user-agent", "npm:3.899.0"],\ - ["@aws-sdk/region-config-resolver", "npm:3.893.0"],\ - ["@aws-sdk/signature-v4-multi-region", "npm:3.899.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@aws-sdk/util-endpoints", "npm:3.895.0"],\ - ["@aws-sdk/util-user-agent-browser", "npm:3.893.0"],\ - ["@aws-sdk/util-user-agent-node", "virtual:3dee239b7c9c99fb25083bbe33ec9ed27ed15e135da82518105af51ae429efda4b868db2407d5db388c4eb76e6d86f5ed1add372a69dd591005d5162b731e5ff#npm:3.899.0"],\ - ["@aws-sdk/xml-builder", "npm:3.894.0"],\ - ["@smithy/config-resolver", "npm:4.2.2"],\ - ["@smithy/core", "npm:3.13.0"],\ - ["@smithy/eventstream-serde-browser", "npm:4.1.1"],\ - ["@smithy/eventstream-serde-config-resolver", "npm:4.2.1"],\ - ["@smithy/eventstream-serde-node", "npm:4.1.1"],\ - ["@smithy/fetch-http-handler", "npm:5.2.1"],\ - ["@smithy/hash-blob-browser", "npm:4.1.1"],\ - ["@smithy/hash-node", "npm:4.1.1"],\ - ["@smithy/hash-stream-node", "npm:4.1.1"],\ - ["@smithy/invalid-dependency", "npm:4.1.1"],\ - ["@smithy/md5-js", "npm:4.1.1"],\ - ["@smithy/middleware-content-length", "npm:4.1.1"],\ - ["@smithy/middleware-endpoint", "npm:4.2.5"],\ - ["@smithy/middleware-retry", "npm:4.3.1"],\ - ["@smithy/middleware-serde", "npm:4.1.1"],\ - ["@smithy/middleware-stack", "npm:4.1.1"],\ - ["@smithy/node-config-provider", "npm:4.2.2"],\ - ["@smithy/node-http-handler", "npm:4.2.1"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/smithy-client", "npm:4.6.5"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/url-parser", "npm:4.1.1"],\ - ["@smithy/util-base64", "npm:4.1.0"],\ - ["@smithy/util-body-length-browser", "npm:4.1.0"],\ - ["@smithy/util-body-length-node", "npm:4.1.0"],\ - ["@smithy/util-defaults-mode-browser", "npm:4.1.5"],\ - ["@smithy/util-defaults-mode-node", "npm:4.1.5"],\ - ["@smithy/util-endpoints", "npm:3.1.2"],\ - ["@smithy/util-middleware", "npm:4.1.1"],\ - ["@smithy/util-retry", "npm:4.1.2"],\ - ["@smithy/util-stream", "npm:4.3.2"],\ - ["@smithy/util-utf8", "npm:4.1.0"],\ - ["@smithy/util-waiter", "npm:4.1.1"],\ - ["@smithy/uuid", "npm:1.0.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/client-sso", [\ - ["npm:3.899.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-client-sso-npm-3.899.0-3dee239b7c-10c0.zip/node_modules/@aws-sdk/client-sso/",\ - "packageDependencies": [\ - ["@aws-crypto/sha256-browser", "npm:5.2.0"],\ - ["@aws-crypto/sha256-js", "npm:5.2.0"],\ - ["@aws-sdk/client-sso", "npm:3.899.0"],\ - ["@aws-sdk/core", "npm:3.899.0"],\ - ["@aws-sdk/middleware-host-header", "npm:3.893.0"],\ - ["@aws-sdk/middleware-logger", "npm:3.893.0"],\ - ["@aws-sdk/middleware-recursion-detection", "npm:3.893.0"],\ - ["@aws-sdk/middleware-user-agent", "npm:3.899.0"],\ - ["@aws-sdk/region-config-resolver", "npm:3.893.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@aws-sdk/util-endpoints", "npm:3.895.0"],\ - ["@aws-sdk/util-user-agent-browser", "npm:3.893.0"],\ - ["@aws-sdk/util-user-agent-node", "virtual:3dee239b7c9c99fb25083bbe33ec9ed27ed15e135da82518105af51ae429efda4b868db2407d5db388c4eb76e6d86f5ed1add372a69dd591005d5162b731e5ff#npm:3.899.0"],\ - ["@smithy/config-resolver", "npm:4.2.2"],\ - ["@smithy/core", "npm:3.13.0"],\ - ["@smithy/fetch-http-handler", "npm:5.2.1"],\ - ["@smithy/hash-node", "npm:4.1.1"],\ - ["@smithy/invalid-dependency", "npm:4.1.1"],\ - ["@smithy/middleware-content-length", "npm:4.1.1"],\ - ["@smithy/middleware-endpoint", "npm:4.2.5"],\ - ["@smithy/middleware-retry", "npm:4.3.1"],\ - ["@smithy/middleware-serde", "npm:4.1.1"],\ - ["@smithy/middleware-stack", "npm:4.1.1"],\ - ["@smithy/node-config-provider", "npm:4.2.2"],\ - ["@smithy/node-http-handler", "npm:4.2.1"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/smithy-client", "npm:4.6.5"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/url-parser", "npm:4.1.1"],\ - ["@smithy/util-base64", "npm:4.1.0"],\ - ["@smithy/util-body-length-browser", "npm:4.1.0"],\ - ["@smithy/util-body-length-node", "npm:4.1.0"],\ - ["@smithy/util-defaults-mode-browser", "npm:4.1.5"],\ - ["@smithy/util-defaults-mode-node", "npm:4.1.5"],\ - ["@smithy/util-endpoints", "npm:3.1.2"],\ - ["@smithy/util-middleware", "npm:4.1.1"],\ - ["@smithy/util-retry", "npm:4.1.2"],\ - ["@smithy/util-utf8", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/core", [\ - ["npm:3.899.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-core-npm-3.899.0-2373482a98-10c0.zip/node_modules/@aws-sdk/core/",\ - "packageDependencies": [\ - ["@aws-sdk/core", "npm:3.899.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@aws-sdk/xml-builder", "npm:3.894.0"],\ - ["@smithy/core", "npm:3.13.0"],\ - ["@smithy/node-config-provider", "npm:4.2.2"],\ - ["@smithy/property-provider", "npm:4.1.1"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/signature-v4", "npm:5.2.1"],\ - ["@smithy/smithy-client", "npm:4.6.5"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-base64", "npm:4.1.0"],\ - ["@smithy/util-middleware", "npm:4.1.1"],\ - ["@smithy/util-utf8", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/credential-provider-env", [\ - ["npm:3.899.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-credential-provider-env-npm-3.899.0-08d76a2149-10c0.zip/node_modules/@aws-sdk/credential-provider-env/",\ - "packageDependencies": [\ - ["@aws-sdk/core", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-env", "npm:3.899.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/property-provider", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/credential-provider-http", [\ - ["npm:3.899.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-credential-provider-http-npm-3.899.0-a39e5ceb09-10c0.zip/node_modules/@aws-sdk/credential-provider-http/",\ - "packageDependencies": [\ - ["@aws-sdk/core", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-http", "npm:3.899.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/fetch-http-handler", "npm:5.2.1"],\ - ["@smithy/node-http-handler", "npm:4.2.1"],\ - ["@smithy/property-provider", "npm:4.1.1"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/smithy-client", "npm:4.6.5"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-stream", "npm:4.3.2"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/credential-provider-ini", [\ - ["npm:3.899.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-credential-provider-ini-npm-3.899.0-abf24f14b9-10c0.zip/node_modules/@aws-sdk/credential-provider-ini/",\ - "packageDependencies": [\ - ["@aws-sdk/core", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-env", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-http", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-ini", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-process", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-sso", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-web-identity", "npm:3.899.0"],\ - ["@aws-sdk/nested-clients", "npm:3.899.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/credential-provider-imds", "npm:4.1.2"],\ - ["@smithy/property-provider", "npm:4.1.1"],\ - ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/credential-provider-node", [\ - ["npm:3.899.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-credential-provider-node-npm-3.899.0-718c515aec-10c0.zip/node_modules/@aws-sdk/credential-provider-node/",\ - "packageDependencies": [\ - ["@aws-sdk/credential-provider-env", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-http", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-ini", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-node", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-process", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-sso", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-web-identity", "npm:3.899.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/credential-provider-imds", "npm:4.1.2"],\ - ["@smithy/property-provider", "npm:4.1.1"],\ - ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/credential-provider-process", [\ - ["npm:3.899.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-credential-provider-process-npm-3.899.0-a8e631721d-10c0.zip/node_modules/@aws-sdk/credential-provider-process/",\ - "packageDependencies": [\ - ["@aws-sdk/core", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-process", "npm:3.899.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/property-provider", "npm:4.1.1"],\ - ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/credential-provider-sso", [\ - ["npm:3.899.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-credential-provider-sso-npm-3.899.0-6d13427b7b-10c0.zip/node_modules/@aws-sdk/credential-provider-sso/",\ - "packageDependencies": [\ - ["@aws-sdk/client-sso", "npm:3.899.0"],\ - ["@aws-sdk/core", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-sso", "npm:3.899.0"],\ - ["@aws-sdk/token-providers", "npm:3.899.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/property-provider", "npm:4.1.1"],\ - ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/credential-provider-web-identity", [\ - ["npm:3.899.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-credential-provider-web-identity-npm-3.899.0-09d36281a7-10c0.zip/node_modules/@aws-sdk/credential-provider-web-identity/",\ - "packageDependencies": [\ - ["@aws-sdk/core", "npm:3.899.0"],\ - ["@aws-sdk/credential-provider-web-identity", "npm:3.899.0"],\ - ["@aws-sdk/nested-clients", "npm:3.899.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/property-provider", "npm:4.1.1"],\ - ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/middleware-bucket-endpoint", [\ - ["npm:3.893.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-bucket-endpoint-npm-3.893.0-daf1531b21-10c0.zip/node_modules/@aws-sdk/middleware-bucket-endpoint/",\ - "packageDependencies": [\ - ["@aws-sdk/middleware-bucket-endpoint", "npm:3.893.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@aws-sdk/util-arn-parser", "npm:3.893.0"],\ - ["@smithy/node-config-provider", "npm:4.2.2"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-config-provider", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/middleware-expect-continue", [\ - ["npm:3.893.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-expect-continue-npm-3.893.0-966a29e442-10c0.zip/node_modules/@aws-sdk/middleware-expect-continue/",\ - "packageDependencies": [\ - ["@aws-sdk/middleware-expect-continue", "npm:3.893.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/middleware-flexible-checksums", [\ - ["npm:3.899.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-flexible-checksums-npm-3.899.0-b7da974d74-10c0.zip/node_modules/@aws-sdk/middleware-flexible-checksums/",\ - "packageDependencies": [\ - ["@aws-crypto/crc32", "npm:5.2.0"],\ - ["@aws-crypto/crc32c", "npm:5.2.0"],\ - ["@aws-crypto/util", "npm:5.2.0"],\ - ["@aws-sdk/core", "npm:3.899.0"],\ - ["@aws-sdk/middleware-flexible-checksums", "npm:3.899.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/is-array-buffer", "npm:4.1.0"],\ - ["@smithy/node-config-provider", "npm:4.2.2"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-middleware", "npm:4.1.1"],\ - ["@smithy/util-stream", "npm:4.3.2"],\ - ["@smithy/util-utf8", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/middleware-host-header", [\ - ["npm:3.893.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-host-header-npm-3.893.0-623621d91d-10c0.zip/node_modules/@aws-sdk/middleware-host-header/",\ - "packageDependencies": [\ - ["@aws-sdk/middleware-host-header", "npm:3.893.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/middleware-location-constraint", [\ - ["npm:3.893.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-location-constraint-npm-3.893.0-5bf68e8147-10c0.zip/node_modules/@aws-sdk/middleware-location-constraint/",\ - "packageDependencies": [\ - ["@aws-sdk/middleware-location-constraint", "npm:3.893.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/middleware-logger", [\ - ["npm:3.893.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-logger-npm-3.893.0-1e37871d30-10c0.zip/node_modules/@aws-sdk/middleware-logger/",\ - "packageDependencies": [\ - ["@aws-sdk/middleware-logger", "npm:3.893.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/middleware-recursion-detection", [\ - ["npm:3.893.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-recursion-detection-npm-3.893.0-5c9849ba9c-10c0.zip/node_modules/@aws-sdk/middleware-recursion-detection/",\ - "packageDependencies": [\ - ["@aws-sdk/middleware-recursion-detection", "npm:3.893.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@aws/lambda-invoke-store", "npm:0.0.1"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/middleware-sdk-s3", [\ - ["npm:3.899.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-sdk-s3-npm-3.899.0-d7e4e4b997-10c0.zip/node_modules/@aws-sdk/middleware-sdk-s3/",\ - "packageDependencies": [\ - ["@aws-sdk/core", "npm:3.899.0"],\ - ["@aws-sdk/middleware-sdk-s3", "npm:3.899.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@aws-sdk/util-arn-parser", "npm:3.893.0"],\ - ["@smithy/core", "npm:3.13.0"],\ - ["@smithy/node-config-provider", "npm:4.2.2"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/signature-v4", "npm:5.2.1"],\ - ["@smithy/smithy-client", "npm:4.6.5"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-config-provider", "npm:4.1.0"],\ - ["@smithy/util-middleware", "npm:4.1.1"],\ - ["@smithy/util-stream", "npm:4.3.2"],\ - ["@smithy/util-utf8", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/middleware-ssec", [\ - ["npm:3.893.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-ssec-npm-3.893.0-5108ed4753-10c0.zip/node_modules/@aws-sdk/middleware-ssec/",\ - "packageDependencies": [\ - ["@aws-sdk/middleware-ssec", "npm:3.893.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/middleware-user-agent", [\ - ["npm:3.899.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-middleware-user-agent-npm-3.899.0-86f6859a15-10c0.zip/node_modules/@aws-sdk/middleware-user-agent/",\ - "packageDependencies": [\ - ["@aws-sdk/core", "npm:3.899.0"],\ - ["@aws-sdk/middleware-user-agent", "npm:3.899.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@aws-sdk/util-endpoints", "npm:3.895.0"],\ - ["@smithy/core", "npm:3.13.0"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/nested-clients", [\ - ["npm:3.899.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-nested-clients-npm-3.899.0-dc82c7303f-10c0.zip/node_modules/@aws-sdk/nested-clients/",\ - "packageDependencies": [\ - ["@aws-crypto/sha256-browser", "npm:5.2.0"],\ - ["@aws-crypto/sha256-js", "npm:5.2.0"],\ - ["@aws-sdk/core", "npm:3.899.0"],\ - ["@aws-sdk/middleware-host-header", "npm:3.893.0"],\ - ["@aws-sdk/middleware-logger", "npm:3.893.0"],\ - ["@aws-sdk/middleware-recursion-detection", "npm:3.893.0"],\ - ["@aws-sdk/middleware-user-agent", "npm:3.899.0"],\ - ["@aws-sdk/nested-clients", "npm:3.899.0"],\ - ["@aws-sdk/region-config-resolver", "npm:3.893.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@aws-sdk/util-endpoints", "npm:3.895.0"],\ - ["@aws-sdk/util-user-agent-browser", "npm:3.893.0"],\ - ["@aws-sdk/util-user-agent-node", "virtual:3dee239b7c9c99fb25083bbe33ec9ed27ed15e135da82518105af51ae429efda4b868db2407d5db388c4eb76e6d86f5ed1add372a69dd591005d5162b731e5ff#npm:3.899.0"],\ - ["@smithy/config-resolver", "npm:4.2.2"],\ - ["@smithy/core", "npm:3.13.0"],\ - ["@smithy/fetch-http-handler", "npm:5.2.1"],\ - ["@smithy/hash-node", "npm:4.1.1"],\ - ["@smithy/invalid-dependency", "npm:4.1.1"],\ - ["@smithy/middleware-content-length", "npm:4.1.1"],\ - ["@smithy/middleware-endpoint", "npm:4.2.5"],\ - ["@smithy/middleware-retry", "npm:4.3.1"],\ - ["@smithy/middleware-serde", "npm:4.1.1"],\ - ["@smithy/middleware-stack", "npm:4.1.1"],\ - ["@smithy/node-config-provider", "npm:4.2.2"],\ - ["@smithy/node-http-handler", "npm:4.2.1"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/smithy-client", "npm:4.6.5"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/url-parser", "npm:4.1.1"],\ - ["@smithy/util-base64", "npm:4.1.0"],\ - ["@smithy/util-body-length-browser", "npm:4.1.0"],\ - ["@smithy/util-body-length-node", "npm:4.1.0"],\ - ["@smithy/util-defaults-mode-browser", "npm:4.1.5"],\ - ["@smithy/util-defaults-mode-node", "npm:4.1.5"],\ - ["@smithy/util-endpoints", "npm:3.1.2"],\ - ["@smithy/util-middleware", "npm:4.1.1"],\ - ["@smithy/util-retry", "npm:4.1.2"],\ - ["@smithy/util-utf8", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/region-config-resolver", [\ - ["npm:3.893.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-region-config-resolver-npm-3.893.0-1c4d02c9d8-10c0.zip/node_modules/@aws-sdk/region-config-resolver/",\ - "packageDependencies": [\ - ["@aws-sdk/region-config-resolver", "npm:3.893.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/node-config-provider", "npm:4.2.2"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-config-provider", "npm:4.1.0"],\ - ["@smithy/util-middleware", "npm:4.1.1"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/signature-v4-multi-region", [\ - ["npm:3.899.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-signature-v4-multi-region-npm-3.899.0-acb2a404ee-10c0.zip/node_modules/@aws-sdk/signature-v4-multi-region/",\ - "packageDependencies": [\ - ["@aws-sdk/middleware-sdk-s3", "npm:3.899.0"],\ - ["@aws-sdk/signature-v4-multi-region", "npm:3.899.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/signature-v4", "npm:5.2.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/token-providers", [\ - ["npm:3.899.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-token-providers-npm-3.899.0-7db15ddb57-10c0.zip/node_modules/@aws-sdk/token-providers/",\ - "packageDependencies": [\ - ["@aws-sdk/core", "npm:3.899.0"],\ - ["@aws-sdk/nested-clients", "npm:3.899.0"],\ - ["@aws-sdk/token-providers", "npm:3.899.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/property-provider", "npm:4.1.1"],\ - ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/types", [\ - ["npm:3.893.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-types-npm-3.893.0-e4c26d67a6-10c0.zip/node_modules/@aws-sdk/types/",\ - "packageDependencies": [\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/util-arn-parser", [\ - ["npm:3.893.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-util-arn-parser-npm-3.893.0-57cc541b46-10c0.zip/node_modules/@aws-sdk/util-arn-parser/",\ - "packageDependencies": [\ - ["@aws-sdk/util-arn-parser", "npm:3.893.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/util-endpoints", [\ - ["npm:3.895.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-util-endpoints-npm-3.895.0-7ffd157e89-10c0.zip/node_modules/@aws-sdk/util-endpoints/",\ - "packageDependencies": [\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@aws-sdk/util-endpoints", "npm:3.895.0"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/url-parser", "npm:4.1.1"],\ - ["@smithy/util-endpoints", "npm:3.1.2"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/util-locate-window", [\ - ["npm:3.893.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-util-locate-window-npm-3.893.0-15b9c66e92-10c0.zip/node_modules/@aws-sdk/util-locate-window/",\ - "packageDependencies": [\ - ["@aws-sdk/util-locate-window", "npm:3.893.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/util-user-agent-browser", [\ - ["npm:3.893.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-util-user-agent-browser-npm-3.893.0-551bc934ee-10c0.zip/node_modules/@aws-sdk/util-user-agent-browser/",\ - "packageDependencies": [\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@aws-sdk/util-user-agent-browser", "npm:3.893.0"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["bowser", "npm:2.12.1"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/util-user-agent-node", [\ - ["npm:3.899.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-util-user-agent-node-npm-3.899.0-81d1f33482-10c0.zip/node_modules/@aws-sdk/util-user-agent-node/",\ - "packageDependencies": [\ - ["@aws-sdk/util-user-agent-node", "npm:3.899.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:3dee239b7c9c99fb25083bbe33ec9ed27ed15e135da82518105af51ae429efda4b868db2407d5db388c4eb76e6d86f5ed1add372a69dd591005d5162b731e5ff#npm:3.899.0", {\ - "packageLocation": "./.yarn/__virtual__/@aws-sdk-util-user-agent-node-virtual-bb57dce703/5/.yarn/berry/cache/@aws-sdk-util-user-agent-node-npm-3.899.0-81d1f33482-10c0.zip/node_modules/@aws-sdk/util-user-agent-node/",\ - "packageDependencies": [\ - ["@aws-sdk/middleware-user-agent", "npm:3.899.0"],\ - ["@aws-sdk/types", "npm:3.893.0"],\ - ["@aws-sdk/util-user-agent-node", "virtual:3dee239b7c9c99fb25083bbe33ec9ed27ed15e135da82518105af51ae429efda4b868db2407d5db388c4eb76e6d86f5ed1add372a69dd591005d5162b731e5ff#npm:3.899.0"],\ - ["@smithy/node-config-provider", "npm:4.2.2"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@types/aws-crt", null],\ - ["aws-crt", null],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "packagePeers": [\ - "@types/aws-crt",\ - "aws-crt"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws-sdk/xml-builder", [\ - ["npm:3.894.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-sdk-xml-builder-npm-3.894.0-512f83fdf6-10c0.zip/node_modules/@aws-sdk/xml-builder/",\ - "packageDependencies": [\ - ["@aws-sdk/xml-builder", "npm:3.894.0"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["fast-xml-parser", "npm:5.2.5"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@aws/lambda-invoke-store", [\ - ["npm:0.0.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@aws-lambda-invoke-store-npm-0.0.1-254551ad3d-10c0.zip/node_modules/@aws/lambda-invoke-store/",\ - "packageDependencies": [\ - ["@aws/lambda-invoke-store", "npm:0.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@cspotcode/source-map-support", [\ - ["npm:0.8.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@cspotcode-source-map-support-npm-0.8.1-964f2de99d-10c0.zip/node_modules/@cspotcode/source-map-support/",\ - "packageDependencies": [\ - ["@cspotcode/source-map-support", "npm:0.8.1"],\ - ["@jridgewell/trace-mapping", "npm:0.3.9"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@defillama/sdk", [\ - ["npm:5.0.172", {\ - "packageLocation": "../../../../.yarn/berry/cache/@defillama-sdk-npm-5.0.172-9594ace194-10c0.zip/node_modules/@defillama/sdk/",\ - "packageDependencies": [\ - ["@aws-sdk/client-s3", "npm:3.899.0"],\ - ["@defillama/sdk", "npm:5.0.172"],\ - ["@elastic/elasticsearch", "npm:8.19.1"],\ - ["@supercharge/promise-pool", "npm:2.4.0"],\ - ["axios", "npm:1.12.2"],\ - ["ethers", "npm:6.15.0"],\ - ["p-limit", "npm:3.1.0"],\ - ["tron-format-address", "npm:0.1.12"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@elastic/elasticsearch", [\ - ["npm:8.19.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@elastic-elasticsearch-npm-8.19.1-92fce440a0-10c0.zip/node_modules/@elastic/elasticsearch/",\ - "packageDependencies": [\ - ["@elastic/elasticsearch", "npm:8.19.1"],\ - ["@elastic/transport", "npm:8.10.0"],\ - ["apache-arrow", "npm:21.0.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@elastic/transport", [\ - ["npm:8.10.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@elastic-transport-npm-8.10.0-1dc2ec07cf-10c0.zip/node_modules/@elastic/transport/",\ - "packageDependencies": [\ - ["@elastic/transport", "npm:8.10.0"],\ - ["@opentelemetry/api", "npm:1.9.0"],\ - ["@opentelemetry/core", "virtual:1dc2ec07cf749fac799da3bc4db26ab447def9bb7cf78ad3c7d3d028f3ba1ba6fdf9435781e1ed98b0b34b039887bca2b196a1d316d371cbdc6b6ab9a8c078c5#npm:2.1.0"],\ - ["debug", "virtual:1dc2ec07cf749fac799da3bc4db26ab447def9bb7cf78ad3c7d3d028f3ba1ba6fdf9435781e1ed98b0b34b039887bca2b196a1d316d371cbdc6b6ab9a8c078c5#npm:4.4.3"],\ - ["hpagent", "npm:1.2.0"],\ - ["ms", "npm:2.1.3"],\ - ["secure-json-parse", "npm:3.0.2"],\ - ["tslib", "npm:2.8.1"],\ - ["undici", "npm:6.21.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@graphql-typed-document-node/core", [\ - ["npm:3.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@graphql-typed-document-node-core-npm-3.2.0-505adb1e90-10c0.zip/node_modules/@graphql-typed-document-node/core/",\ - "packageDependencies": [\ - ["@graphql-typed-document-node/core", "npm:3.2.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:b77d6076cf3b5d91398d1f55303ad98dcb5f31a96f2654571413ed616a832b49722c74dcb94a45478c0c06b9fadfe64390d18d9d5c0cf7a1f7a2825bbe5f0b49#npm:3.2.0", {\ - "packageLocation": "./.yarn/__virtual__/@graphql-typed-document-node-core-virtual-8d6aae5285/5/.yarn/berry/cache/@graphql-typed-document-node-core-npm-3.2.0-505adb1e90-10c0.zip/node_modules/@graphql-typed-document-node/core/",\ - "packageDependencies": [\ - ["@graphql-typed-document-node/core", "virtual:b77d6076cf3b5d91398d1f55303ad98dcb5f31a96f2654571413ed616a832b49722c74dcb94a45478c0c06b9fadfe64390d18d9d5c0cf7a1f7a2825bbe5f0b49#npm:3.2.0"],\ - ["@types/graphql", null],\ - ["graphql", "npm:16.11.0"]\ - ],\ - "packagePeers": [\ - "@types/graphql",\ - "graphql"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@inquirer/external-editor", [\ - ["npm:1.0.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/@inquirer-external-editor-npm-1.0.2-389c6568ea-10c0.zip/node_modules/@inquirer/external-editor/",\ - "packageDependencies": [\ - ["@inquirer/external-editor", "npm:1.0.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:89da895fc6c52cfbcaef8b581147d59a7db8b26b92aadd12fb1c6a8a42e4cfcc64fb8c80af7aaf4eaa0ff1e32bd41186d2ccbe98638a604583506802c2ed1384#npm:1.0.2", {\ - "packageLocation": "./.yarn/__virtual__/@inquirer-external-editor-virtual-b48d3fd3f5/5/.yarn/berry/cache/@inquirer-external-editor-npm-1.0.2-389c6568ea-10c0.zip/node_modules/@inquirer/external-editor/",\ - "packageDependencies": [\ - ["@inquirer/external-editor", "virtual:89da895fc6c52cfbcaef8b581147d59a7db8b26b92aadd12fb1c6a8a42e4cfcc64fb8c80af7aaf4eaa0ff1e32bd41186d2ccbe98638a604583506802c2ed1384#npm:1.0.2"],\ - ["@types/node", null],\ - ["chardet", "npm:2.1.0"],\ - ["iconv-lite", "npm:0.7.0"]\ - ],\ - "packagePeers": [\ - "@types/node"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@isaacs/cliui", [\ - ["npm:8.0.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/@isaacs-cliui-npm-8.0.2-f4364666d5-10c0.zip/node_modules/@isaacs/cliui/",\ - "packageDependencies": [\ - ["@isaacs/cliui", "npm:8.0.2"],\ - ["string-width", "npm:5.1.2"],\ - ["string-width-cjs", [\ - "string-width",\ - "npm:4.2.3"\ - ]],\ - ["strip-ansi", "npm:7.1.2"],\ - ["strip-ansi-cjs", [\ - "strip-ansi",\ - "npm:6.0.1"\ - ]],\ - ["wrap-ansi", "npm:8.1.0"],\ - ["wrap-ansi-cjs", [\ - "wrap-ansi",\ - "npm:7.0.0"\ - ]]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jridgewell/resolve-uri", [\ - ["npm:3.1.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/@jridgewell-resolve-uri-npm-3.1.2-5bc4245992-10c0.zip/node_modules/@jridgewell/resolve-uri/",\ - "packageDependencies": [\ - ["@jridgewell/resolve-uri", "npm:3.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jridgewell/sourcemap-codec", [\ - ["npm:1.5.5", {\ - "packageLocation": "../../../../.yarn/berry/cache/@jridgewell-sourcemap-codec-npm-1.5.5-5189d9fc79-10c0.zip/node_modules/@jridgewell/sourcemap-codec/",\ - "packageDependencies": [\ - ["@jridgewell/sourcemap-codec", "npm:1.5.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@jridgewell/trace-mapping", [\ - ["npm:0.3.9", {\ - "packageLocation": "../../../../.yarn/berry/cache/@jridgewell-trace-mapping-npm-0.3.9-91625cd7fb-10c0.zip/node_modules/@jridgewell/trace-mapping/",\ - "packageDependencies": [\ - ["@jridgewell/resolve-uri", "npm:3.1.2"],\ - ["@jridgewell/sourcemap-codec", "npm:1.5.5"],\ - ["@jridgewell/trace-mapping", "npm:0.3.9"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@napi-rs/triples", [\ - ["npm:1.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@napi-rs-triples-npm-1.2.0-2903f4117c-10c0.zip/node_modules/@napi-rs/triples/",\ - "packageDependencies": [\ - ["@napi-rs/triples", "npm:1.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@noble/curves", [\ - ["npm:1.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@noble-curves-npm-1.2.0-9b40ee1239-10c0.zip/node_modules/@noble/curves/",\ - "packageDependencies": [\ - ["@noble/curves", "npm:1.2.0"],\ - ["@noble/hashes", "npm:1.3.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@noble/hashes", [\ - ["npm:1.3.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/@noble-hashes-npm-1.3.2-1e619f9da0-10c0.zip/node_modules/@noble/hashes/",\ - "packageDependencies": [\ - ["@noble/hashes", "npm:1.3.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@node-rs/helper", [\ - ["npm:1.6.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@node-rs-helper-npm-1.6.0-82df6019e7-10c0.zip/node_modules/@node-rs/helper/",\ - "packageDependencies": [\ - ["@napi-rs/triples", "npm:1.2.0"],\ - ["@node-rs/helper", "npm:1.6.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@opentelemetry/api", [\ - ["npm:1.9.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@opentelemetry-api-npm-1.9.0-7d0560d0dd-10c0.zip/node_modules/@opentelemetry/api/",\ - "packageDependencies": [\ - ["@opentelemetry/api", "npm:1.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@opentelemetry/core", [\ - ["npm:2.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@opentelemetry-core-npm-2.1.0-ea8b80bf70-10c0.zip/node_modules/@opentelemetry/core/",\ - "packageDependencies": [\ - ["@opentelemetry/core", "npm:2.1.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:1dc2ec07cf749fac799da3bc4db26ab447def9bb7cf78ad3c7d3d028f3ba1ba6fdf9435781e1ed98b0b34b039887bca2b196a1d316d371cbdc6b6ab9a8c078c5#npm:2.1.0", {\ - "packageLocation": "./.yarn/__virtual__/@opentelemetry-core-virtual-d883fd1575/5/.yarn/berry/cache/@opentelemetry-core-npm-2.1.0-ea8b80bf70-10c0.zip/node_modules/@opentelemetry/core/",\ - "packageDependencies": [\ - ["@opentelemetry/api", "npm:1.9.0"],\ - ["@opentelemetry/core", "virtual:1dc2ec07cf749fac799da3bc4db26ab447def9bb7cf78ad3c7d3d028f3ba1ba6fdf9435781e1ed98b0b34b039887bca2b196a1d316d371cbdc6b6ab9a8c078c5#npm:2.1.0"],\ - ["@opentelemetry/semantic-conventions", "npm:1.37.0"],\ - ["@types/opentelemetry__api", null]\ - ],\ - "packagePeers": [\ - "@opentelemetry/api",\ - "@types/opentelemetry__api"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@opentelemetry/semantic-conventions", [\ - ["npm:1.37.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@opentelemetry-semantic-conventions-npm-1.37.0-6c34392e86-10c0.zip/node_modules/@opentelemetry/semantic-conventions/",\ - "packageDependencies": [\ - ["@opentelemetry/semantic-conventions", "npm:1.37.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@pkgjs/parseargs", [\ - ["npm:0.11.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@pkgjs-parseargs-npm-0.11.0-cd2a3fe948-10c0.zip/node_modules/@pkgjs/parseargs/",\ - "packageDependencies": [\ - ["@pkgjs/parseargs", "npm:0.11.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/abort-controller", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-abort-controller-npm-4.1.1-5a395c6c7a-10c0.zip/node_modules/@smithy/abort-controller/",\ - "packageDependencies": [\ - ["@smithy/abort-controller", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/chunked-blob-reader", [\ - ["npm:5.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-chunked-blob-reader-npm-5.1.0-651b52ca86-10c0.zip/node_modules/@smithy/chunked-blob-reader/",\ - "packageDependencies": [\ - ["@smithy/chunked-blob-reader", "npm:5.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/chunked-blob-reader-native", [\ - ["npm:4.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-chunked-blob-reader-native-npm-4.1.0-337b787178-10c0.zip/node_modules/@smithy/chunked-blob-reader-native/",\ - "packageDependencies": [\ - ["@smithy/chunked-blob-reader-native", "npm:4.1.0"],\ - ["@smithy/util-base64", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/config-resolver", [\ - ["npm:4.2.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-config-resolver-npm-4.2.2-2b7b324244-10c0.zip/node_modules/@smithy/config-resolver/",\ - "packageDependencies": [\ - ["@smithy/config-resolver", "npm:4.2.2"],\ - ["@smithy/node-config-provider", "npm:4.2.2"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-config-provider", "npm:4.1.0"],\ - ["@smithy/util-middleware", "npm:4.1.1"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/core", [\ - ["npm:3.13.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-core-npm-3.13.0-641dcdade5-10c0.zip/node_modules/@smithy/core/",\ - "packageDependencies": [\ - ["@smithy/core", "npm:3.13.0"],\ - ["@smithy/middleware-serde", "npm:4.1.1"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-base64", "npm:4.1.0"],\ - ["@smithy/util-body-length-browser", "npm:4.1.0"],\ - ["@smithy/util-middleware", "npm:4.1.1"],\ - ["@smithy/util-stream", "npm:4.3.2"],\ - ["@smithy/util-utf8", "npm:4.1.0"],\ - ["@smithy/uuid", "npm:1.0.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/credential-provider-imds", [\ - ["npm:4.1.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-credential-provider-imds-npm-4.1.2-e1ba262591-10c0.zip/node_modules/@smithy/credential-provider-imds/",\ - "packageDependencies": [\ - ["@smithy/credential-provider-imds", "npm:4.1.2"],\ - ["@smithy/node-config-provider", "npm:4.2.2"],\ - ["@smithy/property-provider", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/url-parser", "npm:4.1.1"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/eventstream-codec", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-eventstream-codec-npm-4.1.1-76890a6d1e-10c0.zip/node_modules/@smithy/eventstream-codec/",\ - "packageDependencies": [\ - ["@aws-crypto/crc32", "npm:5.2.0"],\ - ["@smithy/eventstream-codec", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-hex-encoding", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/eventstream-serde-browser", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-eventstream-serde-browser-npm-4.1.1-fef8282a9b-10c0.zip/node_modules/@smithy/eventstream-serde-browser/",\ - "packageDependencies": [\ - ["@smithy/eventstream-serde-browser", "npm:4.1.1"],\ - ["@smithy/eventstream-serde-universal", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/eventstream-serde-config-resolver", [\ - ["npm:4.2.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-eventstream-serde-config-resolver-npm-4.2.1-a35e29175c-10c0.zip/node_modules/@smithy/eventstream-serde-config-resolver/",\ - "packageDependencies": [\ - ["@smithy/eventstream-serde-config-resolver", "npm:4.2.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/eventstream-serde-node", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-eventstream-serde-node-npm-4.1.1-357be57e10-10c0.zip/node_modules/@smithy/eventstream-serde-node/",\ - "packageDependencies": [\ - ["@smithy/eventstream-serde-node", "npm:4.1.1"],\ - ["@smithy/eventstream-serde-universal", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/eventstream-serde-universal", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-eventstream-serde-universal-npm-4.1.1-2446849acd-10c0.zip/node_modules/@smithy/eventstream-serde-universal/",\ - "packageDependencies": [\ - ["@smithy/eventstream-codec", "npm:4.1.1"],\ - ["@smithy/eventstream-serde-universal", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/fetch-http-handler", [\ - ["npm:5.2.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-fetch-http-handler-npm-5.2.1-b45fae3d92-10c0.zip/node_modules/@smithy/fetch-http-handler/",\ - "packageDependencies": [\ - ["@smithy/fetch-http-handler", "npm:5.2.1"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/querystring-builder", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-base64", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/hash-blob-browser", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-hash-blob-browser-npm-4.1.1-e6badda960-10c0.zip/node_modules/@smithy/hash-blob-browser/",\ - "packageDependencies": [\ - ["@smithy/chunked-blob-reader", "npm:5.1.0"],\ - ["@smithy/chunked-blob-reader-native", "npm:4.1.0"],\ - ["@smithy/hash-blob-browser", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/hash-node", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-hash-node-npm-4.1.1-4fc94684ee-10c0.zip/node_modules/@smithy/hash-node/",\ - "packageDependencies": [\ - ["@smithy/hash-node", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-buffer-from", "npm:4.1.0"],\ - ["@smithy/util-utf8", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/hash-stream-node", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-hash-stream-node-npm-4.1.1-151e6d1541-10c0.zip/node_modules/@smithy/hash-stream-node/",\ - "packageDependencies": [\ - ["@smithy/hash-stream-node", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-utf8", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/invalid-dependency", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-invalid-dependency-npm-4.1.1-14596bb0dc-10c0.zip/node_modules/@smithy/invalid-dependency/",\ - "packageDependencies": [\ - ["@smithy/invalid-dependency", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/is-array-buffer", [\ - ["npm:2.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-is-array-buffer-npm-2.2.0-108320772d-10c0.zip/node_modules/@smithy/is-array-buffer/",\ - "packageDependencies": [\ - ["@smithy/is-array-buffer", "npm:2.2.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-is-array-buffer-npm-4.1.0-361232228a-10c0.zip/node_modules/@smithy/is-array-buffer/",\ - "packageDependencies": [\ - ["@smithy/is-array-buffer", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/md5-js", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-md5-js-npm-4.1.1-2d0fa2604c-10c0.zip/node_modules/@smithy/md5-js/",\ - "packageDependencies": [\ - ["@smithy/md5-js", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-utf8", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/middleware-content-length", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-middleware-content-length-npm-4.1.1-80c823e981-10c0.zip/node_modules/@smithy/middleware-content-length/",\ - "packageDependencies": [\ - ["@smithy/middleware-content-length", "npm:4.1.1"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/middleware-endpoint", [\ - ["npm:4.2.5", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-middleware-endpoint-npm-4.2.5-4adb06af5d-10c0.zip/node_modules/@smithy/middleware-endpoint/",\ - "packageDependencies": [\ - ["@smithy/core", "npm:3.13.0"],\ - ["@smithy/middleware-endpoint", "npm:4.2.5"],\ - ["@smithy/middleware-serde", "npm:4.1.1"],\ - ["@smithy/node-config-provider", "npm:4.2.2"],\ - ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/url-parser", "npm:4.1.1"],\ - ["@smithy/util-middleware", "npm:4.1.1"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/middleware-retry", [\ - ["npm:4.3.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-middleware-retry-npm-4.3.1-0b7c145af5-10c0.zip/node_modules/@smithy/middleware-retry/",\ - "packageDependencies": [\ - ["@smithy/middleware-retry", "npm:4.3.1"],\ - ["@smithy/node-config-provider", "npm:4.2.2"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/service-error-classification", "npm:4.1.2"],\ - ["@smithy/smithy-client", "npm:4.6.5"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-middleware", "npm:4.1.1"],\ - ["@smithy/util-retry", "npm:4.1.2"],\ - ["@smithy/uuid", "npm:1.0.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/middleware-serde", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-middleware-serde-npm-4.1.1-f880505b80-10c0.zip/node_modules/@smithy/middleware-serde/",\ - "packageDependencies": [\ - ["@smithy/middleware-serde", "npm:4.1.1"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/middleware-stack", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-middleware-stack-npm-4.1.1-ed69cf2808-10c0.zip/node_modules/@smithy/middleware-stack/",\ - "packageDependencies": [\ - ["@smithy/middleware-stack", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/node-config-provider", [\ - ["npm:4.2.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-node-config-provider-npm-4.2.2-2855bf24af-10c0.zip/node_modules/@smithy/node-config-provider/",\ - "packageDependencies": [\ - ["@smithy/node-config-provider", "npm:4.2.2"],\ - ["@smithy/property-provider", "npm:4.1.1"],\ - ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/node-http-handler", [\ - ["npm:4.2.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-node-http-handler-npm-4.2.1-c56a572e50-10c0.zip/node_modules/@smithy/node-http-handler/",\ - "packageDependencies": [\ - ["@smithy/abort-controller", "npm:4.1.1"],\ - ["@smithy/node-http-handler", "npm:4.2.1"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/querystring-builder", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/property-provider", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-property-provider-npm-4.1.1-0589c13110-10c0.zip/node_modules/@smithy/property-provider/",\ - "packageDependencies": [\ - ["@smithy/property-provider", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/protocol-http", [\ - ["npm:5.2.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-protocol-http-npm-5.2.1-cd31763256-10c0.zip/node_modules/@smithy/protocol-http/",\ - "packageDependencies": [\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/querystring-builder", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-querystring-builder-npm-4.1.1-a5da9cffc9-10c0.zip/node_modules/@smithy/querystring-builder/",\ - "packageDependencies": [\ - ["@smithy/querystring-builder", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-uri-escape", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/querystring-parser", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-querystring-parser-npm-4.1.1-9b75c97dc8-10c0.zip/node_modules/@smithy/querystring-parser/",\ - "packageDependencies": [\ - ["@smithy/querystring-parser", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/service-error-classification", [\ - ["npm:4.1.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-service-error-classification-npm-4.1.2-632bffeeed-10c0.zip/node_modules/@smithy/service-error-classification/",\ - "packageDependencies": [\ - ["@smithy/service-error-classification", "npm:4.1.2"],\ - ["@smithy/types", "npm:4.5.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/shared-ini-file-loader", [\ - ["npm:4.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-shared-ini-file-loader-npm-4.2.0-72b23b9aff-10c0.zip/node_modules/@smithy/shared-ini-file-loader/",\ - "packageDependencies": [\ - ["@smithy/shared-ini-file-loader", "npm:4.2.0"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/signature-v4", [\ - ["npm:5.2.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-signature-v4-npm-5.2.1-b853c707d8-10c0.zip/node_modules/@smithy/signature-v4/",\ - "packageDependencies": [\ - ["@smithy/is-array-buffer", "npm:4.1.0"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/signature-v4", "npm:5.2.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-hex-encoding", "npm:4.1.0"],\ - ["@smithy/util-middleware", "npm:4.1.1"],\ - ["@smithy/util-uri-escape", "npm:4.1.0"],\ - ["@smithy/util-utf8", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/smithy-client", [\ - ["npm:4.6.5", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-smithy-client-npm-4.6.5-b62b0c4084-10c0.zip/node_modules/@smithy/smithy-client/",\ - "packageDependencies": [\ - ["@smithy/core", "npm:3.13.0"],\ - ["@smithy/middleware-endpoint", "npm:4.2.5"],\ - ["@smithy/middleware-stack", "npm:4.1.1"],\ - ["@smithy/protocol-http", "npm:5.2.1"],\ - ["@smithy/smithy-client", "npm:4.6.5"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-stream", "npm:4.3.2"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/types", [\ - ["npm:4.5.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-types-npm-4.5.0-072a6c2ac5-10c0.zip/node_modules/@smithy/types/",\ - "packageDependencies": [\ - ["@smithy/types", "npm:4.5.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/url-parser", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-url-parser-npm-4.1.1-2c984c88e6-10c0.zip/node_modules/@smithy/url-parser/",\ - "packageDependencies": [\ - ["@smithy/querystring-parser", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/url-parser", "npm:4.1.1"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/util-base64", [\ - ["npm:4.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-base64-npm-4.1.0-890eed0149-10c0.zip/node_modules/@smithy/util-base64/",\ - "packageDependencies": [\ - ["@smithy/util-base64", "npm:4.1.0"],\ - ["@smithy/util-buffer-from", "npm:4.1.0"],\ - ["@smithy/util-utf8", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/util-body-length-browser", [\ - ["npm:4.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-body-length-browser-npm-4.1.0-b0b26ee1f0-10c0.zip/node_modules/@smithy/util-body-length-browser/",\ - "packageDependencies": [\ - ["@smithy/util-body-length-browser", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/util-body-length-node", [\ - ["npm:4.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-body-length-node-npm-4.1.0-7ed848dd52-10c0.zip/node_modules/@smithy/util-body-length-node/",\ - "packageDependencies": [\ - ["@smithy/util-body-length-node", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/util-buffer-from", [\ - ["npm:2.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-buffer-from-npm-2.2.0-0ef5989125-10c0.zip/node_modules/@smithy/util-buffer-from/",\ - "packageDependencies": [\ - ["@smithy/is-array-buffer", "npm:2.2.0"],\ - ["@smithy/util-buffer-from", "npm:2.2.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-buffer-from-npm-4.1.0-e6d3d42213-10c0.zip/node_modules/@smithy/util-buffer-from/",\ - "packageDependencies": [\ - ["@smithy/is-array-buffer", "npm:4.1.0"],\ - ["@smithy/util-buffer-from", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/util-config-provider", [\ - ["npm:4.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-config-provider-npm-4.1.0-8b2ae28e9b-10c0.zip/node_modules/@smithy/util-config-provider/",\ - "packageDependencies": [\ - ["@smithy/util-config-provider", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/util-defaults-mode-browser", [\ - ["npm:4.1.5", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-defaults-mode-browser-npm-4.1.5-aacc904e63-10c0.zip/node_modules/@smithy/util-defaults-mode-browser/",\ - "packageDependencies": [\ - ["@smithy/property-provider", "npm:4.1.1"],\ - ["@smithy/smithy-client", "npm:4.6.5"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-defaults-mode-browser", "npm:4.1.5"],\ - ["bowser", "npm:2.12.1"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/util-defaults-mode-node", [\ - ["npm:4.1.5", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-defaults-mode-node-npm-4.1.5-6ef12752cd-10c0.zip/node_modules/@smithy/util-defaults-mode-node/",\ - "packageDependencies": [\ - ["@smithy/config-resolver", "npm:4.2.2"],\ - ["@smithy/credential-provider-imds", "npm:4.1.2"],\ - ["@smithy/node-config-provider", "npm:4.2.2"],\ - ["@smithy/property-provider", "npm:4.1.1"],\ - ["@smithy/smithy-client", "npm:4.6.5"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-defaults-mode-node", "npm:4.1.5"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/util-endpoints", [\ - ["npm:3.1.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-endpoints-npm-3.1.2-ba4dc0443a-10c0.zip/node_modules/@smithy/util-endpoints/",\ - "packageDependencies": [\ - ["@smithy/node-config-provider", "npm:4.2.2"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-endpoints", "npm:3.1.2"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/util-hex-encoding", [\ - ["npm:4.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-hex-encoding-npm-4.1.0-afc2edbbb1-10c0.zip/node_modules/@smithy/util-hex-encoding/",\ - "packageDependencies": [\ - ["@smithy/util-hex-encoding", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/util-middleware", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-middleware-npm-4.1.1-e2b6fbb125-10c0.zip/node_modules/@smithy/util-middleware/",\ - "packageDependencies": [\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-middleware", "npm:4.1.1"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/util-retry", [\ - ["npm:4.1.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-retry-npm-4.1.2-a080615178-10c0.zip/node_modules/@smithy/util-retry/",\ - "packageDependencies": [\ - ["@smithy/service-error-classification", "npm:4.1.2"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-retry", "npm:4.1.2"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/util-stream", [\ - ["npm:4.3.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-stream-npm-4.3.2-43a6da1066-10c0.zip/node_modules/@smithy/util-stream/",\ - "packageDependencies": [\ - ["@smithy/fetch-http-handler", "npm:5.2.1"],\ - ["@smithy/node-http-handler", "npm:4.2.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-base64", "npm:4.1.0"],\ - ["@smithy/util-buffer-from", "npm:4.1.0"],\ - ["@smithy/util-hex-encoding", "npm:4.1.0"],\ - ["@smithy/util-stream", "npm:4.3.2"],\ - ["@smithy/util-utf8", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/util-uri-escape", [\ - ["npm:4.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-uri-escape-npm-4.1.0-d557250b4c-10c0.zip/node_modules/@smithy/util-uri-escape/",\ - "packageDependencies": [\ - ["@smithy/util-uri-escape", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/util-utf8", [\ - ["npm:2.3.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-utf8-npm-2.3.0-9dcba0d35f-10c0.zip/node_modules/@smithy/util-utf8/",\ - "packageDependencies": [\ - ["@smithy/util-buffer-from", "npm:2.2.0"],\ - ["@smithy/util-utf8", "npm:2.3.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-utf8-npm-4.1.0-7fda3e57de-10c0.zip/node_modules/@smithy/util-utf8/",\ - "packageDependencies": [\ - ["@smithy/util-buffer-from", "npm:4.1.0"],\ - ["@smithy/util-utf8", "npm:4.1.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/util-waiter", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-util-waiter-npm-4.1.1-8aae0b4d34-10c0.zip/node_modules/@smithy/util-waiter/",\ - "packageDependencies": [\ - ["@smithy/abort-controller", "npm:4.1.1"],\ - ["@smithy/types", "npm:4.5.0"],\ - ["@smithy/util-waiter", "npm:4.1.1"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@smithy/uuid", [\ - ["npm:1.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@smithy-uuid-npm-1.0.0-a08f20cf97-10c0.zip/node_modules/@smithy/uuid/",\ - "packageDependencies": [\ - ["@smithy/uuid", "npm:1.0.0"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@supercharge/promise-pool", [\ - ["npm:2.4.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@supercharge-promise-pool-npm-2.4.0-cb9749bb15-10c0.zip/node_modules/@supercharge/promise-pool/",\ - "packageDependencies": [\ - ["@supercharge/promise-pool", "npm:2.4.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@supercharge-promise-pool-npm-3.2.0-a8707efc66-10c0.zip/node_modules/@supercharge/promise-pool/",\ - "packageDependencies": [\ - ["@supercharge/promise-pool", "npm:3.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@swc/helpers", [\ - ["npm:0.5.17", {\ - "packageLocation": "../../../../.yarn/berry/cache/@swc-helpers-npm-0.5.17-53974f71e8-10c0.zip/node_modules/@swc/helpers/",\ - "packageDependencies": [\ - ["@swc/helpers", "npm:0.5.17"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@tsconfig/node10", [\ - ["npm:1.0.11", {\ - "packageLocation": "../../../../.yarn/berry/cache/@tsconfig-node10-npm-1.0.11-ab23db00e2-10c0.zip/node_modules/@tsconfig/node10/",\ - "packageDependencies": [\ - ["@tsconfig/node10", "npm:1.0.11"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@tsconfig/node12", [\ - ["npm:1.0.11", {\ - "packageLocation": "../../../../.yarn/berry/cache/@tsconfig-node12-npm-1.0.11-9710d1c61b-10c0.zip/node_modules/@tsconfig/node12/",\ - "packageDependencies": [\ - ["@tsconfig/node12", "npm:1.0.11"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@tsconfig/node14", [\ - ["npm:1.0.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/@tsconfig-node14-npm-1.0.3-15321421d2-10c0.zip/node_modules/@tsconfig/node14/",\ - "packageDependencies": [\ - ["@tsconfig/node14", "npm:1.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@tsconfig/node16", [\ - ["npm:1.0.4", {\ - "packageLocation": "../../../../.yarn/berry/cache/@tsconfig-node16-npm-1.0.4-b7cb87d859-10c0.zip/node_modules/@tsconfig/node16/",\ - "packageDependencies": [\ - ["@tsconfig/node16", "npm:1.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/async-retry", [\ - ["npm:1.4.9", {\ - "packageLocation": "../../../../.yarn/berry/cache/@types-async-retry-npm-1.4.9-0d12d53d91-10c0.zip/node_modules/@types/async-retry/",\ - "packageDependencies": [\ - ["@types/async-retry", "npm:1.4.9"],\ - ["@types/retry", "npm:0.12.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/command-line-args", [\ - ["npm:5.2.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/@types-command-line-args-npm-5.2.3-7cfcff5040-10c0.zip/node_modules/@types/command-line-args/",\ - "packageDependencies": [\ - ["@types/command-line-args", "npm:5.2.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/command-line-usage", [\ - ["npm:5.0.4", {\ - "packageLocation": "../../../../.yarn/berry/cache/@types-command-line-usage-npm-5.0.4-a0c17413f5-10c0.zip/node_modules/@types/command-line-usage/",\ - "packageDependencies": [\ - ["@types/command-line-usage", "npm:5.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/debug", [\ - ["npm:4.1.12", {\ - "packageLocation": "../../../../.yarn/berry/cache/@types-debug-npm-4.1.12-82a3fc4905-10c0.zip/node_modules/@types/debug/",\ - "packageDependencies": [\ - ["@types/debug", "npm:4.1.12"],\ - ["@types/ms", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/ms", [\ - ["npm:2.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@types-ms-npm-2.1.0-529ef799cc-10c0.zip/node_modules/@types/ms/",\ - "packageDependencies": [\ - ["@types/ms", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/node", [\ - ["npm:18.19.128", {\ - "packageLocation": "../../../../.yarn/berry/cache/@types-node-npm-18.19.128-ac4f8bdf1a-10c0.zip/node_modules/@types/node/",\ - "packageDependencies": [\ - ["@types/node", "npm:18.19.128"],\ - ["undici-types", "npm:5.26.5"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:22.7.5", {\ - "packageLocation": "../../../../.yarn/berry/cache/@types-node-npm-22.7.5-0428b60a8c-10c0.zip/node_modules/@types/node/",\ - "packageDependencies": [\ - ["@types/node", "npm:22.7.5"],\ - ["undici-types", "npm:6.19.8"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:24.6.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/@types-node-npm-24.6.0-8053228cd5-10c0.zip/node_modules/@types/node/",\ - "packageDependencies": [\ - ["@types/node", "npm:24.6.0"],\ - ["undici-types", "npm:7.13.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/retry", [\ - ["npm:0.12.5", {\ - "packageLocation": "../../../../.yarn/berry/cache/@types-retry-npm-0.12.5-f1986a76a6-10c0.zip/node_modules/@types/retry/",\ - "packageDependencies": [\ - ["@types/retry", "npm:0.12.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["@types/validator", [\ - ["npm:13.15.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/@types-validator-npm-13.15.3-245f3deb5a-10c0.zip/node_modules/@types/validator/",\ - "packageDependencies": [\ - ["@types/validator", "npm:13.15.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["acorn", [\ - ["npm:8.15.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/acorn-npm-8.15.0-0764cf600e-10c0.zip/node_modules/acorn/",\ - "packageDependencies": [\ - ["acorn", "npm:8.15.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["acorn-walk", [\ - ["npm:8.3.4", {\ - "packageLocation": "../../../../.yarn/berry/cache/acorn-walk-npm-8.3.4-a75fa85ead-10c0.zip/node_modules/acorn-walk/",\ - "packageDependencies": [\ - ["acorn", "npm:8.15.0"],\ - ["acorn-walk", "npm:8.3.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["adapters", [\ - ["workspace:.", {\ - "packageLocation": "./",\ - "packageDependencies": [\ - ["@defillama/sdk", "npm:5.0.172"],\ - ["@supercharge/promise-pool", "npm:3.2.0"],\ - ["@types/async-retry", "npm:1.4.9"],\ - ["@types/node", "npm:18.19.128"],\ - ["adapters", "workspace:."],\ - ["async-retry", "npm:1.3.3"],\ - ["axios", "npm:1.12.2"],\ - ["bignumber.js", "npm:9.3.1"],\ - ["dotenv", "npm:16.6.1"],\ - ["ethers", "npm:6.15.0"],\ - ["glob", "npm:10.4.5"],\ - ["graphql", "npm:16.11.0"],\ - ["graphql-request", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:5.1.0"],\ - ["inquirer", "npm:8.2.7"],\ - ["inquirer-fuzzy-path", "npm:2.3.0"],\ - ["lz4-napi", "npm:2.9.0"],\ - ["p-limit", "npm:3.1.0"],\ - ["pg", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:8.16.3"],\ - ["sequelize", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:6.37.7"],\ - ["tron-format-address", "npm:0.1.12"],\ - ["ts-node", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:10.9.2"],\ - ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"]\ - ],\ - "linkType": "SOFT"\ - }]\ - ]],\ - ["aes-js", [\ - ["npm:4.0.0-beta.5", {\ - "packageLocation": "../../../../.yarn/berry/cache/aes-js-npm-4.0.0-beta.5-c70da65547-10c0.zip/node_modules/aes-js/",\ - "packageDependencies": [\ - ["aes-js", "npm:4.0.0-beta.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ansi-escapes", [\ - ["npm:3.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/ansi-escapes-npm-3.2.0-a9d573100e-10c0.zip/node_modules/ansi-escapes/",\ - "packageDependencies": [\ - ["ansi-escapes", "npm:3.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.3.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/ansi-escapes-npm-4.3.2-3ad173702f-10c0.zip/node_modules/ansi-escapes/",\ - "packageDependencies": [\ - ["ansi-escapes", "npm:4.3.2"],\ - ["type-fest", "npm:0.21.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ansi-regex", [\ - ["npm:3.0.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/ansi-regex-npm-3.0.1-01f44078a3-10c0.zip/node_modules/ansi-regex/",\ - "packageDependencies": [\ - ["ansi-regex", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/ansi-regex-npm-4.1.1-af0a582bb9-10c0.zip/node_modules/ansi-regex/",\ - "packageDependencies": [\ - ["ansi-regex", "npm:4.1.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.0.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/ansi-regex-npm-5.0.1-c963a48615-10c0.zip/node_modules/ansi-regex/",\ - "packageDependencies": [\ - ["ansi-regex", "npm:5.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.2.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/ansi-regex-npm-6.2.2-f2d6691eb1-10c0.zip/node_modules/ansi-regex/",\ - "packageDependencies": [\ - ["ansi-regex", "npm:6.2.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ansi-styles", [\ - ["npm:3.2.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/ansi-styles-npm-3.2.1-8cb8107983-10c0.zip/node_modules/ansi-styles/",\ - "packageDependencies": [\ - ["ansi-styles", "npm:3.2.1"],\ - ["color-convert", "npm:1.9.3"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.3.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/ansi-styles-npm-4.3.0-245c7d42c7-10c0.zip/node_modules/ansi-styles/",\ - "packageDependencies": [\ - ["ansi-styles", "npm:4.3.0"],\ - ["color-convert", "npm:2.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.2.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/ansi-styles-npm-6.2.3-6fc7ca2bf5-10c0.zip/node_modules/ansi-styles/",\ - "packageDependencies": [\ - ["ansi-styles", "npm:6.2.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["apache-arrow", [\ - ["npm:21.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/apache-arrow-npm-21.0.0-04b54009bf-10c0.zip/node_modules/apache-arrow/",\ - "packageDependencies": [\ - ["@swc/helpers", "npm:0.5.17"],\ - ["@types/command-line-args", "npm:5.2.3"],\ - ["@types/command-line-usage", "npm:5.0.4"],\ - ["@types/node", "npm:24.6.0"],\ - ["apache-arrow", "npm:21.0.0"],\ - ["command-line-args", "virtual:04b54009bfe0e650dec673c3f1d5a21dc796ad27381e77f5a83286bf7fc56c643c9a914bb137c2b9d7d231098572d90de259785893c5b6a55c4a51fa53633474#npm:6.0.1"],\ - ["command-line-usage", "npm:7.0.3"],\ - ["flatbuffers", "npm:25.9.23"],\ - ["json-bignum", "npm:0.0.3"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["arg", [\ - ["npm:4.1.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/arg-npm-4.1.3-1748b966a8-10c0.zip/node_modules/arg/",\ - "packageDependencies": [\ - ["arg", "npm:4.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["array-back", [\ - ["npm:6.2.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/array-back-npm-6.2.2-81634c71f1-10c0.zip/node_modules/array-back/",\ - "packageDependencies": [\ - ["array-back", "npm:6.2.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["async-function", [\ - ["npm:1.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/async-function-npm-1.0.0-a81667ebcd-10c0.zip/node_modules/async-function/",\ - "packageDependencies": [\ - ["async-function", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["async-generator-function", [\ - ["npm:1.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/async-generator-function-npm-1.0.0-14cf981d13-10c0.zip/node_modules/async-generator-function/",\ - "packageDependencies": [\ - ["async-generator-function", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["async-retry", [\ - ["npm:1.3.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/async-retry-npm-1.3.3-bc90c5cee0-10c0.zip/node_modules/async-retry/",\ - "packageDependencies": [\ - ["async-retry", "npm:1.3.3"],\ - ["retry", "npm:0.13.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["asynckit", [\ - ["npm:0.4.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/asynckit-npm-0.4.0-c718858525-10c0.zip/node_modules/asynckit/",\ - "packageDependencies": [\ - ["asynckit", "npm:0.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["axios", [\ - ["npm:1.12.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/axios-npm-1.12.2-cdb8ea6c90-10c0.zip/node_modules/axios/",\ - "packageDependencies": [\ - ["axios", "npm:1.12.2"],\ - ["follow-redirects", "virtual:cdb8ea6c90bba762bf2366a1a88869c55a09bf9d9076ce8fcccf1e27011bd6d92acc154b2b250d8981e0c9daf722c96602b003df3b346cc7d59ad22f6b68080f#npm:1.15.11"],\ - ["form-data", "npm:4.0.4"],\ - ["proxy-from-env", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["balanced-match", [\ - ["npm:1.0.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/balanced-match-npm-1.0.2-a53c126459-10c0.zip/node_modules/balanced-match/",\ - "packageDependencies": [\ - ["balanced-match", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["base64-js", [\ - ["npm:1.5.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/base64-js-npm-1.5.1-b2f7275641-10c0.zip/node_modules/base64-js/",\ - "packageDependencies": [\ - ["base64-js", "npm:1.5.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["bignumber.js", [\ - ["npm:9.3.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/bignumber.js-npm-9.3.1-d784181dd0-10c0.zip/node_modules/bignumber.js/",\ - "packageDependencies": [\ - ["bignumber.js", "npm:9.3.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["bl", [\ - ["npm:4.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/bl-npm-4.1.0-7f94cdcf3f-10c0.zip/node_modules/bl/",\ - "packageDependencies": [\ - ["bl", "npm:4.1.0"],\ - ["buffer", "npm:5.7.1"],\ - ["inherits", "npm:2.0.4"],\ - ["readable-stream", "npm:3.6.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["bowser", [\ - ["npm:2.12.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/bowser-npm-2.12.1-1aad5935b0-10c0.zip/node_modules/bowser/",\ - "packageDependencies": [\ - ["bowser", "npm:2.12.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["brace-expansion", [\ - ["npm:2.0.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/brace-expansion-npm-2.0.2-bc7f134bbc-10c0.zip/node_modules/brace-expansion/",\ - "packageDependencies": [\ - ["balanced-match", "npm:1.0.2"],\ - ["brace-expansion", "npm:2.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["buffer", [\ - ["npm:5.7.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/buffer-npm-5.7.1-513ef8259e-10c0.zip/node_modules/buffer/",\ - "packageDependencies": [\ - ["base64-js", "npm:1.5.1"],\ - ["buffer", "npm:5.7.1"],\ - ["ieee754", "npm:1.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["call-bind-apply-helpers", [\ - ["npm:1.0.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/call-bind-apply-helpers-npm-1.0.2-3eedbea3bb-10c0.zip/node_modules/call-bind-apply-helpers/",\ - "packageDependencies": [\ - ["call-bind-apply-helpers", "npm:1.0.2"],\ - ["es-errors", "npm:1.3.0"],\ - ["function-bind", "npm:1.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["chalk", [\ - ["npm:2.4.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/chalk-npm-2.4.2-3ea16dd91e-10c0.zip/node_modules/chalk/",\ - "packageDependencies": [\ - ["ansi-styles", "npm:3.2.1"],\ - ["chalk", "npm:2.4.2"],\ - ["escape-string-regexp", "npm:1.0.5"],\ - ["supports-color", "npm:5.5.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.1.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/chalk-npm-4.1.2-ba8b67ab80-10c0.zip/node_modules/chalk/",\ - "packageDependencies": [\ - ["ansi-styles", "npm:4.3.0"],\ - ["chalk", "npm:4.1.2"],\ - ["supports-color", "npm:7.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["chalk-template", [\ - ["npm:0.4.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/chalk-template-npm-0.4.0-d7a0499c36-10c0.zip/node_modules/chalk-template/",\ - "packageDependencies": [\ - ["chalk", "npm:4.1.2"],\ - ["chalk-template", "npm:0.4.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["chardet", [\ - ["npm:0.7.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/chardet-npm-0.7.0-27933dd6c7-10c0.zip/node_modules/chardet/",\ - "packageDependencies": [\ - ["chardet", "npm:0.7.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/chardet-npm-2.1.0-d7766f0f06-10c0.zip/node_modules/chardet/",\ - "packageDependencies": [\ - ["chardet", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cli-cursor", [\ - ["npm:2.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/cli-cursor-npm-2.1.0-3920629c9c-10c0.zip/node_modules/cli-cursor/",\ - "packageDependencies": [\ - ["cli-cursor", "npm:2.1.0"],\ - ["restore-cursor", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/cli-cursor-npm-3.1.0-fee1e46b5e-10c0.zip/node_modules/cli-cursor/",\ - "packageDependencies": [\ - ["cli-cursor", "npm:3.1.0"],\ - ["restore-cursor", "npm:3.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cli-spinners", [\ - ["npm:2.9.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/cli-spinners-npm-2.9.2-be9c08efee-10c0.zip/node_modules/cli-spinners/",\ - "packageDependencies": [\ - ["cli-spinners", "npm:2.9.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cli-width", [\ - ["npm:2.2.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/cli-width-npm-2.2.1-4bdb77393c-10c0.zip/node_modules/cli-width/",\ - "packageDependencies": [\ - ["cli-width", "npm:2.2.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/cli-width-npm-3.0.0-387b3f68f9-10c0.zip/node_modules/cli-width/",\ - "packageDependencies": [\ - ["cli-width", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["clone", [\ - ["npm:1.0.4", {\ - "packageLocation": "../../../../.yarn/berry/cache/clone-npm-1.0.4-a610fcbcf9-10c0.zip/node_modules/clone/",\ - "packageDependencies": [\ - ["clone", "npm:1.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["color-convert", [\ - ["npm:1.9.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/color-convert-npm-1.9.3-1fe690075e-10c0.zip/node_modules/color-convert/",\ - "packageDependencies": [\ - ["color-convert", "npm:1.9.3"],\ - ["color-name", "npm:1.1.3"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.0.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/color-convert-npm-2.0.1-79730e935b-10c0.zip/node_modules/color-convert/",\ - "packageDependencies": [\ - ["color-convert", "npm:2.0.1"],\ - ["color-name", "npm:1.1.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["color-name", [\ - ["npm:1.1.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/color-name-npm-1.1.3-728b7b5d39-10c0.zip/node_modules/color-name/",\ - "packageDependencies": [\ - ["color-name", "npm:1.1.3"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:1.1.4", {\ - "packageLocation": "../../../../.yarn/berry/cache/color-name-npm-1.1.4-025792b0ea-10c0.zip/node_modules/color-name/",\ - "packageDependencies": [\ - ["color-name", "npm:1.1.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["combined-stream", [\ - ["npm:1.0.8", {\ - "packageLocation": "../../../../.yarn/berry/cache/combined-stream-npm-1.0.8-dc14d4a63a-10c0.zip/node_modules/combined-stream/",\ - "packageDependencies": [\ - ["combined-stream", "npm:1.0.8"],\ - ["delayed-stream", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["command-line-args", [\ - ["npm:6.0.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/command-line-args-npm-6.0.1-a52b79bf99-10c0.zip/node_modules/command-line-args/",\ - "packageDependencies": [\ - ["command-line-args", "npm:6.0.1"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:04b54009bfe0e650dec673c3f1d5a21dc796ad27381e77f5a83286bf7fc56c643c9a914bb137c2b9d7d231098572d90de259785893c5b6a55c4a51fa53633474#npm:6.0.1", {\ - "packageLocation": "./.yarn/__virtual__/command-line-args-virtual-86c82d6be5/5/.yarn/berry/cache/command-line-args-npm-6.0.1-a52b79bf99-10c0.zip/node_modules/command-line-args/",\ - "packageDependencies": [\ - ["@75lb/nature", null],\ - ["@types/75lb__nature", null],\ - ["array-back", "npm:6.2.2"],\ - ["command-line-args", "virtual:04b54009bfe0e650dec673c3f1d5a21dc796ad27381e77f5a83286bf7fc56c643c9a914bb137c2b9d7d231098572d90de259785893c5b6a55c4a51fa53633474#npm:6.0.1"],\ - ["find-replace", "virtual:86c82d6be5e347719329c17b97b08e4d567beb32d8e53e386b76d84eb7c23adb46a52d676d865248dbfdd01b4be9bea33d5ef3a2d7c7829ecb983d74144ff4a7#npm:5.0.2"],\ - ["lodash.camelcase", "npm:4.3.0"],\ - ["typical", "npm:7.3.0"]\ - ],\ - "packagePeers": [\ - "@75lb/nature",\ - "@types/75lb__nature"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["command-line-usage", [\ - ["npm:7.0.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/command-line-usage-npm-7.0.3-fc171ce420-10c0.zip/node_modules/command-line-usage/",\ - "packageDependencies": [\ - ["array-back", "npm:6.2.2"],\ - ["chalk-template", "npm:0.4.0"],\ - ["command-line-usage", "npm:7.0.3"],\ - ["table-layout", "npm:4.1.1"],\ - ["typical", "npm:7.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["create-require", [\ - ["npm:1.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/create-require-npm-1.1.1-839884ca2e-10c0.zip/node_modules/create-require/",\ - "packageDependencies": [\ - ["create-require", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cross-fetch", [\ - ["npm:3.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/cross-fetch-npm-3.2.0-267029ff2f-10c0.zip/node_modules/cross-fetch/",\ - "packageDependencies": [\ - ["cross-fetch", "npm:3.2.0"],\ - ["node-fetch", "virtual:267029ff2f85c65479d29496cc50976fb522ed8beda97f97e23b49194e83bd9867cfd15af96b05ad656edae653eb3a95a72ba015ac1556bfdf9591902b5e5ecc#npm:2.7.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["cross-spawn", [\ - ["npm:7.0.6", {\ - "packageLocation": "../../../../.yarn/berry/cache/cross-spawn-npm-7.0.6-264bddf921-10c0.zip/node_modules/cross-spawn/",\ - "packageDependencies": [\ - ["cross-spawn", "npm:7.0.6"],\ - ["path-key", "npm:3.1.1"],\ - ["shebang-command", "npm:2.0.0"],\ - ["which", "npm:2.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["debug", [\ - ["npm:4.4.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/debug-npm-4.4.3-0105c6123a-10c0.zip/node_modules/debug/",\ - "packageDependencies": [\ - ["debug", "npm:4.4.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:1dc2ec07cf749fac799da3bc4db26ab447def9bb7cf78ad3c7d3d028f3ba1ba6fdf9435781e1ed98b0b34b039887bca2b196a1d316d371cbdc6b6ab9a8c078c5#npm:4.4.3", {\ - "packageLocation": "./.yarn/__virtual__/debug-virtual-6b8d41ee0b/5/.yarn/berry/cache/debug-npm-4.4.3-0105c6123a-10c0.zip/node_modules/debug/",\ - "packageDependencies": [\ - ["@types/supports-color", null],\ - ["debug", "virtual:1dc2ec07cf749fac799da3bc4db26ab447def9bb7cf78ad3c7d3d028f3ba1ba6fdf9435781e1ed98b0b34b039887bca2b196a1d316d371cbdc6b6ab9a8c078c5#npm:4.4.3"],\ - ["ms", "npm:2.1.3"],\ - ["supports-color", null]\ - ],\ - "packagePeers": [\ - "@types/supports-color",\ - "supports-color"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["defaults", [\ - ["npm:1.0.4", {\ - "packageLocation": "../../../../.yarn/berry/cache/defaults-npm-1.0.4-f3fbaf2528-10c0.zip/node_modules/defaults/",\ - "packageDependencies": [\ - ["clone", "npm:1.0.4"],\ - ["defaults", "npm:1.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["delayed-stream", [\ - ["npm:1.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/delayed-stream-npm-1.0.0-c5a4c4cc02-10c0.zip/node_modules/delayed-stream/",\ - "packageDependencies": [\ - ["delayed-stream", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["diff", [\ - ["npm:4.0.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/diff-npm-4.0.2-73133c7102-10c0.zip/node_modules/diff/",\ - "packageDependencies": [\ - ["diff", "npm:4.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["dotenv", [\ - ["npm:16.6.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/dotenv-npm-16.6.1-01334288ea-10c0.zip/node_modules/dotenv/",\ - "packageDependencies": [\ - ["dotenv", "npm:16.6.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["dottie", [\ - ["npm:2.0.6", {\ - "packageLocation": "../../../../.yarn/berry/cache/dottie-npm-2.0.6-0b47a47557-10c0.zip/node_modules/dottie/",\ - "packageDependencies": [\ - ["dottie", "npm:2.0.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["dunder-proto", [\ - ["npm:1.0.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/dunder-proto-npm-1.0.1-90eb6829db-10c0.zip/node_modules/dunder-proto/",\ - "packageDependencies": [\ - ["call-bind-apply-helpers", "npm:1.0.2"],\ - ["dunder-proto", "npm:1.0.1"],\ - ["es-errors", "npm:1.3.0"],\ - ["gopd", "npm:1.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["eastasianwidth", [\ - ["npm:0.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/eastasianwidth-npm-0.2.0-c37eb16bd1-10c0.zip/node_modules/eastasianwidth/",\ - "packageDependencies": [\ - ["eastasianwidth", "npm:0.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["emoji-regex", [\ - ["npm:8.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/emoji-regex-npm-8.0.0-213764015c-10c0.zip/node_modules/emoji-regex/",\ - "packageDependencies": [\ - ["emoji-regex", "npm:8.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:9.2.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/emoji-regex-npm-9.2.2-e6fac8d058-10c0.zip/node_modules/emoji-regex/",\ - "packageDependencies": [\ - ["emoji-regex", "npm:9.2.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["es-define-property", [\ - ["npm:1.0.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/es-define-property-npm-1.0.1-3fc6324f1c-10c0.zip/node_modules/es-define-property/",\ - "packageDependencies": [\ - ["es-define-property", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["es-errors", [\ - ["npm:1.3.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/es-errors-npm-1.3.0-fda0c9b8a8-10c0.zip/node_modules/es-errors/",\ - "packageDependencies": [\ - ["es-errors", "npm:1.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["es-object-atoms", [\ - ["npm:1.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/es-object-atoms-npm-1.1.1-362d8043c2-10c0.zip/node_modules/es-object-atoms/",\ - "packageDependencies": [\ - ["es-errors", "npm:1.3.0"],\ - ["es-object-atoms", "npm:1.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["es-set-tostringtag", [\ - ["npm:2.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/es-set-tostringtag-npm-2.1.0-4e55705d3f-10c0.zip/node_modules/es-set-tostringtag/",\ - "packageDependencies": [\ - ["es-errors", "npm:1.3.0"],\ - ["es-set-tostringtag", "npm:2.1.0"],\ - ["get-intrinsic", "npm:1.3.1"],\ - ["has-tostringtag", "npm:1.0.2"],\ - ["hasown", "npm:2.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["escape-string-regexp", [\ - ["npm:1.0.5", {\ - "packageLocation": "../../../../.yarn/berry/cache/escape-string-regexp-npm-1.0.5-3284de402f-10c0.zip/node_modules/escape-string-regexp/",\ - "packageDependencies": [\ - ["escape-string-regexp", "npm:1.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ethers", [\ - ["npm:6.15.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/ethers-npm-6.15.0-f266964bbf-10c0.zip/node_modules/ethers/",\ - "packageDependencies": [\ - ["@adraffy/ens-normalize", "npm:1.10.1"],\ - ["@noble/curves", "npm:1.2.0"],\ - ["@noble/hashes", "npm:1.3.2"],\ - ["@types/node", "npm:22.7.5"],\ - ["aes-js", "npm:4.0.0-beta.5"],\ - ["ethers", "npm:6.15.0"],\ - ["tslib", "npm:2.7.0"],\ - ["ws", "virtual:f266964bbf0a973b765b066fe1b1828807981016fc49075d7d14462508ec0b4c518650d9ae747c8b805b7e3e20b5b050695db51ba47ef5e8e240f1bec894a15f#npm:8.17.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["external-editor", [\ - ["npm:3.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/external-editor-npm-3.1.0-878e7807af-10c0.zip/node_modules/external-editor/",\ - "packageDependencies": [\ - ["chardet", "npm:0.7.0"],\ - ["external-editor", "npm:3.1.0"],\ - ["iconv-lite", "npm:0.4.24"],\ - ["tmp", "npm:0.0.33"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["extract-files", [\ - ["npm:9.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/extract-files-npm-9.0.0-6ee13e6aab-10c0.zip/node_modules/extract-files/",\ - "packageDependencies": [\ - ["extract-files", "npm:9.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fast-xml-parser", [\ - ["npm:5.2.5", {\ - "packageLocation": "../../../../.yarn/berry/cache/fast-xml-parser-npm-5.2.5-4fd49da1b5-10c0.zip/node_modules/fast-xml-parser/",\ - "packageDependencies": [\ - ["fast-xml-parser", "npm:5.2.5"],\ - ["strnum", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["figures", [\ - ["npm:2.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/figures-npm-2.0.0-f2db814eec-10c0.zip/node_modules/figures/",\ - "packageDependencies": [\ - ["escape-string-regexp", "npm:1.0.5"],\ - ["figures", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/figures-npm-3.2.0-85d357e955-10c0.zip/node_modules/figures/",\ - "packageDependencies": [\ - ["escape-string-regexp", "npm:1.0.5"],\ - ["figures", "npm:3.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["find-replace", [\ - ["npm:5.0.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/find-replace-npm-5.0.2-cd92368618-10c0.zip/node_modules/find-replace/",\ - "packageDependencies": [\ - ["find-replace", "npm:5.0.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:86c82d6be5e347719329c17b97b08e4d567beb32d8e53e386b76d84eb7c23adb46a52d676d865248dbfdd01b4be9bea33d5ef3a2d7c7829ecb983d74144ff4a7#npm:5.0.2", {\ - "packageLocation": "./.yarn/__virtual__/find-replace-virtual-8b376dc171/5/.yarn/berry/cache/find-replace-npm-5.0.2-cd92368618-10c0.zip/node_modules/find-replace/",\ - "packageDependencies": [\ - ["@75lb/nature", null],\ - ["@types/75lb__nature", null],\ - ["find-replace", "virtual:86c82d6be5e347719329c17b97b08e4d567beb32d8e53e386b76d84eb7c23adb46a52d676d865248dbfdd01b4be9bea33d5ef3a2d7c7829ecb983d74144ff4a7#npm:5.0.2"]\ - ],\ - "packagePeers": [\ - "@75lb/nature",\ - "@types/75lb__nature"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["flatbuffers", [\ - ["npm:25.9.23", {\ - "packageLocation": "../../../../.yarn/berry/cache/flatbuffers-npm-25.9.23-f6f2bdfca5-10c0.zip/node_modules/flatbuffers/",\ - "packageDependencies": [\ - ["flatbuffers", "npm:25.9.23"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["follow-redirects", [\ - ["npm:1.15.11", {\ - "packageLocation": "../../../../.yarn/berry/cache/follow-redirects-npm-1.15.11-ae7b2db266-10c0.zip/node_modules/follow-redirects/",\ - "packageDependencies": [\ - ["follow-redirects", "npm:1.15.11"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:cdb8ea6c90bba762bf2366a1a88869c55a09bf9d9076ce8fcccf1e27011bd6d92acc154b2b250d8981e0c9daf722c96602b003df3b346cc7d59ad22f6b68080f#npm:1.15.11", {\ - "packageLocation": "./.yarn/__virtual__/follow-redirects-virtual-1c36f0670e/5/.yarn/berry/cache/follow-redirects-npm-1.15.11-ae7b2db266-10c0.zip/node_modules/follow-redirects/",\ - "packageDependencies": [\ - ["@types/debug", null],\ - ["debug", null],\ - ["follow-redirects", "virtual:cdb8ea6c90bba762bf2366a1a88869c55a09bf9d9076ce8fcccf1e27011bd6d92acc154b2b250d8981e0c9daf722c96602b003df3b346cc7d59ad22f6b68080f#npm:1.15.11"]\ - ],\ - "packagePeers": [\ - "@types/debug",\ - "debug"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["foreground-child", [\ - ["npm:3.3.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/foreground-child-npm-3.3.1-b7775fda04-10c0.zip/node_modules/foreground-child/",\ - "packageDependencies": [\ - ["cross-spawn", "npm:7.0.6"],\ - ["foreground-child", "npm:3.3.1"],\ - ["signal-exit", "npm:4.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["form-data", [\ - ["npm:3.0.4", {\ - "packageLocation": "../../../../.yarn/berry/cache/form-data-npm-3.0.4-2a63eafd8b-10c0.zip/node_modules/form-data/",\ - "packageDependencies": [\ - ["asynckit", "npm:0.4.0"],\ - ["combined-stream", "npm:1.0.8"],\ - ["es-set-tostringtag", "npm:2.1.0"],\ - ["form-data", "npm:3.0.4"],\ - ["hasown", "npm:2.0.2"],\ - ["mime-types", "npm:2.1.35"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.0.4", {\ - "packageLocation": "../../../../.yarn/berry/cache/form-data-npm-4.0.4-10eb4ef9c3-10c0.zip/node_modules/form-data/",\ - "packageDependencies": [\ - ["asynckit", "npm:0.4.0"],\ - ["combined-stream", "npm:1.0.8"],\ - ["es-set-tostringtag", "npm:2.1.0"],\ - ["form-data", "npm:4.0.4"],\ - ["hasown", "npm:2.0.2"],\ - ["mime-types", "npm:2.1.35"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["function-bind", [\ - ["npm:1.1.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/function-bind-npm-1.1.2-7a55be9b03-10c0.zip/node_modules/function-bind/",\ - "packageDependencies": [\ - ["function-bind", "npm:1.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["fuzzy", [\ - ["npm:0.1.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/fuzzy-npm-0.1.3-a0dfe08bd0-10c0.zip/node_modules/fuzzy/",\ - "packageDependencies": [\ - ["fuzzy", "npm:0.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["generator-function", [\ - ["npm:2.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/generator-function-npm-2.0.0-64d0208246-10c0.zip/node_modules/generator-function/",\ - "packageDependencies": [\ - ["generator-function", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["get-intrinsic", [\ - ["npm:1.3.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/get-intrinsic-npm-1.3.1-2f734f40ec-10c0.zip/node_modules/get-intrinsic/",\ - "packageDependencies": [\ - ["async-function", "npm:1.0.0"],\ - ["async-generator-function", "npm:1.0.0"],\ - ["call-bind-apply-helpers", "npm:1.0.2"],\ - ["es-define-property", "npm:1.0.1"],\ - ["es-errors", "npm:1.3.0"],\ - ["es-object-atoms", "npm:1.1.1"],\ - ["function-bind", "npm:1.1.2"],\ - ["generator-function", "npm:2.0.0"],\ - ["get-intrinsic", "npm:1.3.1"],\ - ["get-proto", "npm:1.0.1"],\ - ["gopd", "npm:1.2.0"],\ - ["has-symbols", "npm:1.1.0"],\ - ["hasown", "npm:2.0.2"],\ - ["math-intrinsics", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["get-proto", [\ - ["npm:1.0.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/get-proto-npm-1.0.1-4d30bac614-10c0.zip/node_modules/get-proto/",\ - "packageDependencies": [\ - ["dunder-proto", "npm:1.0.1"],\ - ["es-object-atoms", "npm:1.1.1"],\ - ["get-proto", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["glob", [\ - ["npm:10.4.5", {\ - "packageLocation": "../../../../.yarn/berry/cache/glob-npm-10.4.5-8c63175f05-10c0.zip/node_modules/glob/",\ - "packageDependencies": [\ - ["foreground-child", "npm:3.3.1"],\ - ["glob", "npm:10.4.5"],\ - ["jackspeak", "npm:3.4.3"],\ - ["minimatch", "npm:9.0.5"],\ - ["minipass", "npm:7.1.2"],\ - ["package-json-from-dist", "npm:1.0.1"],\ - ["path-scurry", "npm:1.11.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["gopd", [\ - ["npm:1.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/gopd-npm-1.2.0-df89ffa78e-10c0.zip/node_modules/gopd/",\ - "packageDependencies": [\ - ["gopd", "npm:1.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["graphql", [\ - ["npm:16.11.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/graphql-npm-16.11.0-836e6ade28-10c0.zip/node_modules/graphql/",\ - "packageDependencies": [\ - ["graphql", "npm:16.11.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["graphql-request", [\ - ["npm:5.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/graphql-request-npm-5.1.0-170803d963-10c0.zip/node_modules/graphql-request/",\ - "packageDependencies": [\ - ["graphql-request", "npm:5.1.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:5.1.0", {\ - "packageLocation": "./.yarn/__virtual__/graphql-request-virtual-b77d6076cf/5/.yarn/berry/cache/graphql-request-npm-5.1.0-170803d963-10c0.zip/node_modules/graphql-request/",\ - "packageDependencies": [\ - ["@graphql-typed-document-node/core", "virtual:b77d6076cf3b5d91398d1f55303ad98dcb5f31a96f2654571413ed616a832b49722c74dcb94a45478c0c06b9fadfe64390d18d9d5c0cf7a1f7a2825bbe5f0b49#npm:3.2.0"],\ - ["@types/graphql", null],\ - ["cross-fetch", "npm:3.2.0"],\ - ["extract-files", "npm:9.0.0"],\ - ["form-data", "npm:3.0.4"],\ - ["graphql", "npm:16.11.0"],\ - ["graphql-request", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:5.1.0"]\ - ],\ - "packagePeers": [\ - "@types/graphql",\ - "graphql"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["has-flag", [\ - ["npm:3.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/has-flag-npm-3.0.0-16ac11fe05-10c0.zip/node_modules/has-flag/",\ - "packageDependencies": [\ - ["has-flag", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/has-flag-npm-4.0.0-32af9f0536-10c0.zip/node_modules/has-flag/",\ - "packageDependencies": [\ - ["has-flag", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["has-symbols", [\ - ["npm:1.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/has-symbols-npm-1.1.0-9aa7dc2ac1-10c0.zip/node_modules/has-symbols/",\ - "packageDependencies": [\ - ["has-symbols", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["has-tostringtag", [\ - ["npm:1.0.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/has-tostringtag-npm-1.0.2-74a4800369-10c0.zip/node_modules/has-tostringtag/",\ - "packageDependencies": [\ - ["has-symbols", "npm:1.1.0"],\ - ["has-tostringtag", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["hasown", [\ - ["npm:2.0.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/hasown-npm-2.0.2-80fe6c9901-10c0.zip/node_modules/hasown/",\ - "packageDependencies": [\ - ["function-bind", "npm:1.1.2"],\ - ["hasown", "npm:2.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["hpagent", [\ - ["npm:1.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/hpagent-npm-1.2.0-0f725aa4fe-10c0.zip/node_modules/hpagent/",\ - "packageDependencies": [\ - ["hpagent", "npm:1.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["iconv-lite", [\ - ["npm:0.4.24", {\ - "packageLocation": "../../../../.yarn/berry/cache/iconv-lite-npm-0.4.24-c5c4ac6695-10c0.zip/node_modules/iconv-lite/",\ - "packageDependencies": [\ - ["iconv-lite", "npm:0.4.24"],\ - ["safer-buffer", "npm:2.1.2"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:0.7.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/iconv-lite-npm-0.7.0-89105876e3-10c0.zip/node_modules/iconv-lite/",\ - "packageDependencies": [\ - ["iconv-lite", "npm:0.7.0"],\ - ["safer-buffer", "npm:2.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ieee754", [\ - ["npm:1.2.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/ieee754-npm-1.2.1-fb63b3caeb-10c0.zip/node_modules/ieee754/",\ - "packageDependencies": [\ - ["ieee754", "npm:1.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["inflection", [\ - ["npm:1.13.4", {\ - "packageLocation": "../../../../.yarn/berry/cache/inflection-npm-1.13.4-102169ecb5-10c0.zip/node_modules/inflection/",\ - "packageDependencies": [\ - ["inflection", "npm:1.13.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["inherits", [\ - ["npm:2.0.4", {\ - "packageLocation": "../../../../.yarn/berry/cache/inherits-npm-2.0.4-c66b3957a0-10c0.zip/node_modules/inherits/",\ - "packageDependencies": [\ - ["inherits", "npm:2.0.4"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["inquirer", [\ - ["npm:6.5.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/inquirer-npm-6.5.2-4f6408c247-10c0.zip/node_modules/inquirer/",\ - "packageDependencies": [\ - ["ansi-escapes", "npm:3.2.0"],\ - ["chalk", "npm:2.4.2"],\ - ["cli-cursor", "npm:2.1.0"],\ - ["cli-width", "npm:2.2.1"],\ - ["external-editor", "npm:3.1.0"],\ - ["figures", "npm:2.0.0"],\ - ["inquirer", "npm:6.5.2"],\ - ["lodash", "npm:4.17.21"],\ - ["mute-stream", "npm:0.0.7"],\ - ["run-async", "npm:2.4.1"],\ - ["rxjs", "npm:6.6.7"],\ - ["string-width", "npm:2.1.1"],\ - ["strip-ansi", "npm:5.2.0"],\ - ["through", "npm:2.3.8"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:8.2.7", {\ - "packageLocation": "../../../../.yarn/berry/cache/inquirer-npm-8.2.7-89da895fc6-10c0.zip/node_modules/inquirer/",\ - "packageDependencies": [\ - ["@inquirer/external-editor", "virtual:89da895fc6c52cfbcaef8b581147d59a7db8b26b92aadd12fb1c6a8a42e4cfcc64fb8c80af7aaf4eaa0ff1e32bd41186d2ccbe98638a604583506802c2ed1384#npm:1.0.2"],\ - ["ansi-escapes", "npm:4.3.2"],\ - ["chalk", "npm:4.1.2"],\ - ["cli-cursor", "npm:3.1.0"],\ - ["cli-width", "npm:3.0.0"],\ - ["figures", "npm:3.2.0"],\ - ["inquirer", "npm:8.2.7"],\ - ["lodash", "npm:4.17.21"],\ - ["mute-stream", "npm:0.0.8"],\ - ["ora", "npm:5.4.1"],\ - ["run-async", "npm:2.4.1"],\ - ["rxjs", "npm:7.8.2"],\ - ["string-width", "npm:4.2.3"],\ - ["strip-ansi", "npm:6.0.1"],\ - ["through", "npm:2.3.8"],\ - ["wrap-ansi", "npm:6.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["inquirer-autocomplete-prompt", [\ - ["npm:1.4.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/inquirer-autocomplete-prompt-npm-1.4.0-25e0001216-10c0.zip/node_modules/inquirer-autocomplete-prompt/",\ - "packageDependencies": [\ - ["inquirer-autocomplete-prompt", "npm:1.4.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:7bd39220f6d021aa943382cff403175e8dfec5ebeb6501eb3fa6d0839c81a4d87b8bfbd519297b6fc91bfcf5ca4a8ddcefd79c14822f3900410f003c49968680#npm:1.4.0", {\ - "packageLocation": "./.yarn/__virtual__/inquirer-autocomplete-prompt-virtual-8764b92212/5/.yarn/berry/cache/inquirer-autocomplete-prompt-npm-1.4.0-25e0001216-10c0.zip/node_modules/inquirer-autocomplete-prompt/",\ - "packageDependencies": [\ - ["@types/inquirer", null],\ - ["ansi-escapes", "npm:4.3.2"],\ - ["chalk", "npm:4.1.2"],\ - ["figures", "npm:3.2.0"],\ - ["inquirer", "npm:6.5.2"],\ - ["inquirer-autocomplete-prompt", "virtual:7bd39220f6d021aa943382cff403175e8dfec5ebeb6501eb3fa6d0839c81a4d87b8bfbd519297b6fc91bfcf5ca4a8ddcefd79c14822f3900410f003c49968680#npm:1.4.0"],\ - ["run-async", "npm:2.4.1"],\ - ["rxjs", "npm:6.6.7"]\ - ],\ - "packagePeers": [\ - "@types/inquirer",\ - "inquirer"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["inquirer-fuzzy-path", [\ - ["npm:2.3.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/inquirer-fuzzy-path-npm-2.3.0-7bd39220f6-10c0.zip/node_modules/inquirer-fuzzy-path/",\ - "packageDependencies": [\ - ["ansi-styles", "npm:3.2.1"],\ - ["fuzzy", "npm:0.1.3"],\ - ["inquirer", "npm:6.5.2"],\ - ["inquirer-autocomplete-prompt", "virtual:7bd39220f6d021aa943382cff403175e8dfec5ebeb6501eb3fa6d0839c81a4d87b8bfbd519297b6fc91bfcf5ca4a8ddcefd79c14822f3900410f003c49968680#npm:1.4.0"],\ - ["inquirer-fuzzy-path", "npm:2.3.0"],\ - ["strip-ansi", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-fullwidth-code-point", [\ - ["npm:2.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/is-fullwidth-code-point-npm-2.0.0-507f56ec71-10c0.zip/node_modules/is-fullwidth-code-point/",\ - "packageDependencies": [\ - ["is-fullwidth-code-point", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/is-fullwidth-code-point-npm-3.0.0-1ecf4ebee5-10c0.zip/node_modules/is-fullwidth-code-point/",\ - "packageDependencies": [\ - ["is-fullwidth-code-point", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-interactive", [\ - ["npm:1.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/is-interactive-npm-1.0.0-7ff7c6e04a-10c0.zip/node_modules/is-interactive/",\ - "packageDependencies": [\ - ["is-interactive", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["is-unicode-supported", [\ - ["npm:0.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/is-unicode-supported-npm-0.1.0-0833e1bbfb-10c0.zip/node_modules/is-unicode-supported/",\ - "packageDependencies": [\ - ["is-unicode-supported", "npm:0.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["isexe", [\ - ["npm:2.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/isexe-npm-2.0.0-b58870bd2e-10c0.zip/node_modules/isexe/",\ - "packageDependencies": [\ - ["isexe", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["jackspeak", [\ - ["npm:3.4.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/jackspeak-npm-3.4.3-546bfad080-10c0.zip/node_modules/jackspeak/",\ - "packageDependencies": [\ - ["@isaacs/cliui", "npm:8.0.2"],\ - ["@pkgjs/parseargs", "npm:0.11.0"],\ - ["jackspeak", "npm:3.4.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["json-bignum", [\ - ["npm:0.0.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/json-bignum-npm-0.0.3-2b08f05834-10c0.zip/node_modules/json-bignum/",\ - "packageDependencies": [\ - ["json-bignum", "npm:0.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lodash", [\ - ["npm:4.17.21", {\ - "packageLocation": "../../../../.yarn/berry/cache/lodash-npm-4.17.21-6382451519-10c0.zip/node_modules/lodash/",\ - "packageDependencies": [\ - ["lodash", "npm:4.17.21"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lodash.camelcase", [\ - ["npm:4.3.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/lodash.camelcase-npm-4.3.0-bf268e3bf0-10c0.zip/node_modules/lodash.camelcase/",\ - "packageDependencies": [\ - ["lodash.camelcase", "npm:4.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["log-symbols", [\ - ["npm:4.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/log-symbols-npm-4.1.0-0a13492d8b-10c0.zip/node_modules/log-symbols/",\ - "packageDependencies": [\ - ["chalk", "npm:4.1.2"],\ - ["is-unicode-supported", "npm:0.1.0"],\ - ["log-symbols", "npm:4.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lru-cache", [\ - ["npm:10.4.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/lru-cache-npm-10.4.3-30c10b861a-10c0.zip/node_modules/lru-cache/",\ - "packageDependencies": [\ - ["lru-cache", "npm:10.4.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["lz4-napi", [\ - ["npm:2.9.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/lz4-napi-npm-2.9.0-cc6d3ac5a2-10c0.zip/node_modules/lz4-napi/",\ - "packageDependencies": [\ - ["@antoniomuso/lz4-napi-android-arm-eabi", "npm:2.9.0"],\ - ["@antoniomuso/lz4-napi-android-arm64", "npm:2.9.0"],\ - ["@antoniomuso/lz4-napi-darwin-arm64", "npm:2.9.0"],\ - ["@antoniomuso/lz4-napi-darwin-x64", "npm:2.9.0"],\ - ["@antoniomuso/lz4-napi-freebsd-x64", "npm:2.9.0"],\ - ["@antoniomuso/lz4-napi-linux-arm-gnueabihf", "npm:2.9.0"],\ - ["@antoniomuso/lz4-napi-linux-arm64-gnu", "npm:2.9.0"],\ - ["@antoniomuso/lz4-napi-linux-arm64-musl", "npm:2.9.0"],\ - ["@antoniomuso/lz4-napi-linux-x64-gnu", "npm:2.9.0"],\ - ["@antoniomuso/lz4-napi-linux-x64-musl", "npm:2.9.0"],\ - ["@antoniomuso/lz4-napi-win32-arm64-msvc", "npm:2.9.0"],\ - ["@antoniomuso/lz4-napi-win32-ia32-msvc", "npm:2.9.0"],\ - ["@antoniomuso/lz4-napi-win32-x64-msvc", "npm:2.9.0"],\ - ["@node-rs/helper", "npm:1.6.0"],\ - ["lz4-napi", "npm:2.9.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["make-error", [\ - ["npm:1.3.6", {\ - "packageLocation": "../../../../.yarn/berry/cache/make-error-npm-1.3.6-ccb85d9458-10c0.zip/node_modules/make-error/",\ - "packageDependencies": [\ - ["make-error", "npm:1.3.6"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["math-intrinsics", [\ - ["npm:1.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/math-intrinsics-npm-1.1.0-9204d80e7d-10c0.zip/node_modules/math-intrinsics/",\ - "packageDependencies": [\ - ["math-intrinsics", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["mime-db", [\ - ["npm:1.52.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/mime-db-npm-1.52.0-b5371d6fd2-10c0.zip/node_modules/mime-db/",\ - "packageDependencies": [\ - ["mime-db", "npm:1.52.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["mime-types", [\ - ["npm:2.1.35", {\ - "packageLocation": "../../../../.yarn/berry/cache/mime-types-npm-2.1.35-dd9ea9f3e2-10c0.zip/node_modules/mime-types/",\ - "packageDependencies": [\ - ["mime-db", "npm:1.52.0"],\ - ["mime-types", "npm:2.1.35"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["mimic-fn", [\ - ["npm:1.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/mimic-fn-npm-1.2.0-960bf15ab7-10c0.zip/node_modules/mimic-fn/",\ - "packageDependencies": [\ - ["mimic-fn", "npm:1.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/mimic-fn-npm-2.1.0-4fbeb3abb4-10c0.zip/node_modules/mimic-fn/",\ - "packageDependencies": [\ - ["mimic-fn", "npm:2.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minimatch", [\ - ["npm:9.0.5", {\ - "packageLocation": "../../../../.yarn/berry/cache/minimatch-npm-9.0.5-9aa93d97fa-10c0.zip/node_modules/minimatch/",\ - "packageDependencies": [\ - ["brace-expansion", "npm:2.0.2"],\ - ["minimatch", "npm:9.0.5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["minipass", [\ - ["npm:7.1.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/minipass-npm-7.1.2-3a5327d36d-10c0.zip/node_modules/minipass/",\ - "packageDependencies": [\ - ["minipass", "npm:7.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["moment", [\ - ["npm:2.30.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/moment-npm-2.30.1-1c51a5c631-10c0.zip/node_modules/moment/",\ - "packageDependencies": [\ - ["moment", "npm:2.30.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["moment-timezone", [\ - ["npm:0.5.48", {\ - "packageLocation": "../../../../.yarn/berry/cache/moment-timezone-npm-0.5.48-3b583954df-10c0.zip/node_modules/moment-timezone/",\ - "packageDependencies": [\ - ["moment", "npm:2.30.1"],\ - ["moment-timezone", "npm:0.5.48"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ms", [\ - ["npm:2.1.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/ms-npm-2.1.3-81ff3cfac1-10c0.zip/node_modules/ms/",\ - "packageDependencies": [\ - ["ms", "npm:2.1.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["mute-stream", [\ - ["npm:0.0.7", {\ - "packageLocation": "../../../../.yarn/berry/cache/mute-stream-npm-0.0.7-22b59a65dd-10c0.zip/node_modules/mute-stream/",\ - "packageDependencies": [\ - ["mute-stream", "npm:0.0.7"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:0.0.8", {\ - "packageLocation": "../../../../.yarn/berry/cache/mute-stream-npm-0.0.8-489a7d6c2b-10c0.zip/node_modules/mute-stream/",\ - "packageDependencies": [\ - ["mute-stream", "npm:0.0.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["node-fetch", [\ - ["npm:2.7.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/node-fetch-npm-2.7.0-587d57004e-10c0.zip/node_modules/node-fetch/",\ - "packageDependencies": [\ - ["node-fetch", "npm:2.7.0"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:267029ff2f85c65479d29496cc50976fb522ed8beda97f97e23b49194e83bd9867cfd15af96b05ad656edae653eb3a95a72ba015ac1556bfdf9591902b5e5ecc#npm:2.7.0", {\ - "packageLocation": "./.yarn/__virtual__/node-fetch-virtual-14fbf57bea/5/.yarn/berry/cache/node-fetch-npm-2.7.0-587d57004e-10c0.zip/node_modules/node-fetch/",\ - "packageDependencies": [\ - ["@types/encoding", null],\ - ["encoding", null],\ - ["node-fetch", "virtual:267029ff2f85c65479d29496cc50976fb522ed8beda97f97e23b49194e83bd9867cfd15af96b05ad656edae653eb3a95a72ba015ac1556bfdf9591902b5e5ecc#npm:2.7.0"],\ - ["whatwg-url", "npm:5.0.0"]\ - ],\ - "packagePeers": [\ - "@types/encoding",\ - "encoding"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["onetime", [\ - ["npm:2.0.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/onetime-npm-2.0.1-6c39ecc911-10c0.zip/node_modules/onetime/",\ - "packageDependencies": [\ - ["mimic-fn", "npm:1.2.0"],\ - ["onetime", "npm:2.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.1.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/onetime-npm-5.1.2-3ed148fa42-10c0.zip/node_modules/onetime/",\ - "packageDependencies": [\ - ["mimic-fn", "npm:2.1.0"],\ - ["onetime", "npm:5.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ora", [\ - ["npm:5.4.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/ora-npm-5.4.1-4f0343adb7-10c0.zip/node_modules/ora/",\ - "packageDependencies": [\ - ["bl", "npm:4.1.0"],\ - ["chalk", "npm:4.1.2"],\ - ["cli-cursor", "npm:3.1.0"],\ - ["cli-spinners", "npm:2.9.2"],\ - ["is-interactive", "npm:1.0.0"],\ - ["is-unicode-supported", "npm:0.1.0"],\ - ["log-symbols", "npm:4.1.0"],\ - ["ora", "npm:5.4.1"],\ - ["strip-ansi", "npm:6.0.1"],\ - ["wcwidth", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["os-tmpdir", [\ - ["npm:1.0.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/os-tmpdir-npm-1.0.2-e305b0689b-10c0.zip/node_modules/os-tmpdir/",\ - "packageDependencies": [\ - ["os-tmpdir", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["p-limit", [\ - ["npm:3.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/p-limit-npm-3.1.0-05d2ede37f-10c0.zip/node_modules/p-limit/",\ - "packageDependencies": [\ - ["p-limit", "npm:3.1.0"],\ - ["yocto-queue", "npm:0.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["package-json-from-dist", [\ - ["npm:1.0.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/package-json-from-dist-npm-1.0.1-4631a88465-10c0.zip/node_modules/package-json-from-dist/",\ - "packageDependencies": [\ - ["package-json-from-dist", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["path-key", [\ - ["npm:3.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/path-key-npm-3.1.1-0e66ea8321-10c0.zip/node_modules/path-key/",\ - "packageDependencies": [\ - ["path-key", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["path-scurry", [\ - ["npm:1.11.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/path-scurry-npm-1.11.1-aaf8c339af-10c0.zip/node_modules/path-scurry/",\ - "packageDependencies": [\ - ["lru-cache", "npm:10.4.3"],\ - ["minipass", "npm:7.1.2"],\ - ["path-scurry", "npm:1.11.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pg", [\ - ["npm:8.16.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/pg-npm-8.16.3-b98e6b613b-10c0.zip/node_modules/pg/",\ - "packageDependencies": [\ - ["pg", "npm:8.16.3"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:8.16.3", {\ - "packageLocation": "./.yarn/__virtual__/pg-virtual-0a3cfd415e/5/.yarn/berry/cache/pg-npm-8.16.3-b98e6b613b-10c0.zip/node_modules/pg/",\ - "packageDependencies": [\ - ["@types/pg-native", null],\ - ["pg", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:8.16.3"],\ - ["pg-cloudflare", "npm:1.2.7"],\ - ["pg-connection-string", "npm:2.9.1"],\ - ["pg-native", null],\ - ["pg-pool", "virtual:0a3cfd415edebaeebb5600fce6e0e5f9095c63aec6239ad2f36feabbd5e63cd71017eb880545773b1a4c3e85cdf96891d3beef4402b670e0488c72f7e88d1544#npm:3.10.1"],\ - ["pg-protocol", "npm:1.10.3"],\ - ["pg-types", "npm:2.2.0"],\ - ["pgpass", "npm:1.0.5"]\ - ],\ - "packagePeers": [\ - "@types/pg-native",\ - "pg-native"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pg-cloudflare", [\ - ["npm:1.2.7", {\ - "packageLocation": "../../../../.yarn/berry/cache/pg-cloudflare-npm-1.2.7-d440af1270-10c0.zip/node_modules/pg-cloudflare/",\ - "packageDependencies": [\ - ["pg-cloudflare", "npm:1.2.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pg-connection-string", [\ - ["npm:2.9.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/pg-connection-string-npm-2.9.1-f24224b1ff-10c0.zip/node_modules/pg-connection-string/",\ - "packageDependencies": [\ - ["pg-connection-string", "npm:2.9.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pg-int8", [\ - ["npm:1.0.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/pg-int8-npm-1.0.1-5cd67f3e22-10c0.zip/node_modules/pg-int8/",\ - "packageDependencies": [\ - ["pg-int8", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pg-pool", [\ - ["npm:3.10.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/pg-pool-npm-3.10.1-708b6eab98-10c0.zip/node_modules/pg-pool/",\ - "packageDependencies": [\ - ["pg-pool", "npm:3.10.1"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:0a3cfd415edebaeebb5600fce6e0e5f9095c63aec6239ad2f36feabbd5e63cd71017eb880545773b1a4c3e85cdf96891d3beef4402b670e0488c72f7e88d1544#npm:3.10.1", {\ - "packageLocation": "./.yarn/__virtual__/pg-pool-virtual-f7dd7b4494/5/.yarn/berry/cache/pg-pool-npm-3.10.1-708b6eab98-10c0.zip/node_modules/pg-pool/",\ - "packageDependencies": [\ - ["@types/pg", null],\ - ["pg", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:8.16.3"],\ - ["pg-pool", "virtual:0a3cfd415edebaeebb5600fce6e0e5f9095c63aec6239ad2f36feabbd5e63cd71017eb880545773b1a4c3e85cdf96891d3beef4402b670e0488c72f7e88d1544#npm:3.10.1"]\ - ],\ - "packagePeers": [\ - "@types/pg",\ - "pg"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pg-protocol", [\ - ["npm:1.10.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/pg-protocol-npm-1.10.3-f64bdf6543-10c0.zip/node_modules/pg-protocol/",\ - "packageDependencies": [\ - ["pg-protocol", "npm:1.10.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pg-types", [\ - ["npm:2.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/pg-types-npm-2.2.0-a3360226c4-10c0.zip/node_modules/pg-types/",\ - "packageDependencies": [\ - ["pg-int8", "npm:1.0.1"],\ - ["pg-types", "npm:2.2.0"],\ - ["postgres-array", "npm:2.0.0"],\ - ["postgres-bytea", "npm:1.0.0"],\ - ["postgres-date", "npm:1.0.7"],\ - ["postgres-interval", "npm:1.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["pgpass", [\ - ["npm:1.0.5", {\ - "packageLocation": "../../../../.yarn/berry/cache/pgpass-npm-1.0.5-653e71ddd8-10c0.zip/node_modules/pgpass/",\ - "packageDependencies": [\ - ["pgpass", "npm:1.0.5"],\ - ["split2", "npm:4.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["postgres-array", [\ - ["npm:2.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/postgres-array-npm-2.0.0-4f49dc1389-10c0.zip/node_modules/postgres-array/",\ - "packageDependencies": [\ - ["postgres-array", "npm:2.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["postgres-bytea", [\ - ["npm:1.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/postgres-bytea-npm-1.0.0-8c2b81fa73-10c0.zip/node_modules/postgres-bytea/",\ - "packageDependencies": [\ - ["postgres-bytea", "npm:1.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["postgres-date", [\ - ["npm:1.0.7", {\ - "packageLocation": "../../../../.yarn/berry/cache/postgres-date-npm-1.0.7-aadfe5531e-10c0.zip/node_modules/postgres-date/",\ - "packageDependencies": [\ - ["postgres-date", "npm:1.0.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["postgres-interval", [\ - ["npm:1.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/postgres-interval-npm-1.2.0-ca6414744d-10c0.zip/node_modules/postgres-interval/",\ - "packageDependencies": [\ - ["postgres-interval", "npm:1.2.0"],\ - ["xtend", "npm:4.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["proxy-from-env", [\ - ["npm:1.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/proxy-from-env-npm-1.1.0-c13d07f26b-10c0.zip/node_modules/proxy-from-env/",\ - "packageDependencies": [\ - ["proxy-from-env", "npm:1.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["readable-stream", [\ - ["npm:3.6.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/readable-stream-npm-3.6.2-d2a6069158-10c0.zip/node_modules/readable-stream/",\ - "packageDependencies": [\ - ["inherits", "npm:2.0.4"],\ - ["readable-stream", "npm:3.6.2"],\ - ["string_decoder", "npm:1.3.0"],\ - ["util-deprecate", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["restore-cursor", [\ - ["npm:2.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/restore-cursor-npm-2.0.0-80278eb6b7-10c0.zip/node_modules/restore-cursor/",\ - "packageDependencies": [\ - ["onetime", "npm:2.0.1"],\ - ["restore-cursor", "npm:2.0.0"],\ - ["signal-exit", "npm:3.0.7"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:3.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/restore-cursor-npm-3.1.0-52c5a4c98f-10c0.zip/node_modules/restore-cursor/",\ - "packageDependencies": [\ - ["onetime", "npm:5.1.2"],\ - ["restore-cursor", "npm:3.1.0"],\ - ["signal-exit", "npm:3.0.7"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["retry", [\ - ["npm:0.13.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/retry-npm-0.13.1-89eb100ab6-10c0.zip/node_modules/retry/",\ - "packageDependencies": [\ - ["retry", "npm:0.13.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["retry-as-promised", [\ - ["npm:7.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/retry-as-promised-npm-7.1.1-c32ec4d7d9-10c0.zip/node_modules/retry-as-promised/",\ - "packageDependencies": [\ - ["retry-as-promised", "npm:7.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["run-async", [\ - ["npm:2.4.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/run-async-npm-2.4.1-a94bb90861-10c0.zip/node_modules/run-async/",\ - "packageDependencies": [\ - ["run-async", "npm:2.4.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["rxjs", [\ - ["npm:6.6.7", {\ - "packageLocation": "../../../../.yarn/berry/cache/rxjs-npm-6.6.7-055046ea3c-10c0.zip/node_modules/rxjs/",\ - "packageDependencies": [\ - ["rxjs", "npm:6.6.7"],\ - ["tslib", "npm:1.14.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.8.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/rxjs-npm-7.8.2-80ecda9013-10c0.zip/node_modules/rxjs/",\ - "packageDependencies": [\ - ["rxjs", "npm:7.8.2"],\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["safe-buffer", [\ - ["npm:5.2.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/safe-buffer-npm-5.2.1-3481c8aa9b-10c0.zip/node_modules/safe-buffer/",\ - "packageDependencies": [\ - ["safe-buffer", "npm:5.2.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["safer-buffer", [\ - ["npm:2.1.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/safer-buffer-npm-2.1.2-8d5c0b705e-10c0.zip/node_modules/safer-buffer/",\ - "packageDependencies": [\ - ["safer-buffer", "npm:2.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["secure-json-parse", [\ - ["npm:3.0.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/secure-json-parse-npm-3.0.2-57c3bac78a-10c0.zip/node_modules/secure-json-parse/",\ - "packageDependencies": [\ - ["secure-json-parse", "npm:3.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["semver", [\ - ["npm:7.7.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/semver-npm-7.7.2-dfc3bc5ec9-10c0.zip/node_modules/semver/",\ - "packageDependencies": [\ - ["semver", "npm:7.7.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["sequelize", [\ - ["npm:6.37.7", {\ - "packageLocation": "../../../../.yarn/berry/cache/sequelize-npm-6.37.7-1b092a23bb-10c0.zip/node_modules/sequelize/",\ - "packageDependencies": [\ - ["sequelize", "npm:6.37.7"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:6.37.7", {\ - "packageLocation": "./.yarn/__virtual__/sequelize-virtual-3fcf29a043/5/.yarn/berry/cache/sequelize-npm-6.37.7-1b092a23bb-10c0.zip/node_modules/sequelize/",\ - "packageDependencies": [\ - ["@types/debug", "npm:4.1.12"],\ - ["@types/ibm_db", null],\ - ["@types/mariadb", null],\ - ["@types/mysql2", null],\ - ["@types/oracledb", null],\ - ["@types/pg", null],\ - ["@types/pg-hstore", null],\ - ["@types/snowflake-sdk", null],\ - ["@types/sqlite3", null],\ - ["@types/tedious", null],\ - ["@types/validator", "npm:13.15.3"],\ - ["debug", "virtual:1dc2ec07cf749fac799da3bc4db26ab447def9bb7cf78ad3c7d3d028f3ba1ba6fdf9435781e1ed98b0b34b039887bca2b196a1d316d371cbdc6b6ab9a8c078c5#npm:4.4.3"],\ - ["dottie", "npm:2.0.6"],\ - ["ibm_db", null],\ - ["inflection", "npm:1.13.4"],\ - ["lodash", "npm:4.17.21"],\ - ["mariadb", null],\ - ["moment", "npm:2.30.1"],\ - ["moment-timezone", "npm:0.5.48"],\ - ["mysql2", null],\ - ["oracledb", null],\ - ["pg", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:8.16.3"],\ - ["pg-connection-string", "npm:2.9.1"],\ - ["pg-hstore", null],\ - ["retry-as-promised", "npm:7.1.1"],\ - ["semver", "npm:7.7.2"],\ - ["sequelize", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:6.37.7"],\ - ["sequelize-pool", "npm:7.1.0"],\ - ["snowflake-sdk", null],\ - ["sqlite3", null],\ - ["tedious", null],\ - ["toposort-class", "npm:1.0.1"],\ - ["uuid", "npm:8.3.2"],\ - ["validator", "npm:13.15.15"],\ - ["wkx", "npm:0.5.0"]\ - ],\ - "packagePeers": [\ - "@types/ibm_db",\ - "@types/mariadb",\ - "@types/mysql2",\ - "@types/oracledb",\ - "@types/pg-hstore",\ - "@types/pg",\ - "@types/snowflake-sdk",\ - "@types/sqlite3",\ - "@types/tedious",\ - "ibm_db",\ - "mariadb",\ - "mysql2",\ - "oracledb",\ - "pg-hstore",\ - "pg",\ - "snowflake-sdk",\ - "sqlite3",\ - "tedious"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["sequelize-pool", [\ - ["npm:7.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/sequelize-pool-npm-7.1.0-670df81ecb-10c0.zip/node_modules/sequelize-pool/",\ - "packageDependencies": [\ - ["sequelize-pool", "npm:7.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["shebang-command", [\ - ["npm:2.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/shebang-command-npm-2.0.0-eb2b01921d-10c0.zip/node_modules/shebang-command/",\ - "packageDependencies": [\ - ["shebang-command", "npm:2.0.0"],\ - ["shebang-regex", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["shebang-regex", [\ - ["npm:3.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/shebang-regex-npm-3.0.0-899a0cd65e-10c0.zip/node_modules/shebang-regex/",\ - "packageDependencies": [\ - ["shebang-regex", "npm:3.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["signal-exit", [\ - ["npm:3.0.7", {\ - "packageLocation": "../../../../.yarn/berry/cache/signal-exit-npm-3.0.7-bd270458a3-10c0.zip/node_modules/signal-exit/",\ - "packageDependencies": [\ - ["signal-exit", "npm:3.0.7"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/signal-exit-npm-4.1.0-61fb957687-10c0.zip/node_modules/signal-exit/",\ - "packageDependencies": [\ - ["signal-exit", "npm:4.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["split2", [\ - ["npm:4.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/split2-npm-4.2.0-16aa3883ba-10c0.zip/node_modules/split2/",\ - "packageDependencies": [\ - ["split2", "npm:4.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["string-width", [\ - ["npm:2.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/string-width-npm-2.1.1-0c2c6ae53f-10c0.zip/node_modules/string-width/",\ - "packageDependencies": [\ - ["is-fullwidth-code-point", "npm:2.0.0"],\ - ["string-width", "npm:2.1.1"],\ - ["strip-ansi", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:4.2.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/string-width-npm-4.2.3-2c27177bae-10c0.zip/node_modules/string-width/",\ - "packageDependencies": [\ - ["emoji-regex", "npm:8.0.0"],\ - ["is-fullwidth-code-point", "npm:3.0.0"],\ - ["string-width", "npm:4.2.3"],\ - ["strip-ansi", "npm:6.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.1.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/string-width-npm-5.1.2-bf60531341-10c0.zip/node_modules/string-width/",\ - "packageDependencies": [\ - ["eastasianwidth", "npm:0.2.0"],\ - ["emoji-regex", "npm:9.2.2"],\ - ["string-width", "npm:5.1.2"],\ - ["strip-ansi", "npm:7.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["string_decoder", [\ - ["npm:1.3.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/string_decoder-npm-1.3.0-2422117fd0-10c0.zip/node_modules/string_decoder/",\ - "packageDependencies": [\ - ["safe-buffer", "npm:5.2.1"],\ - ["string_decoder", "npm:1.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["strip-ansi", [\ - ["npm:4.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/strip-ansi-npm-4.0.0-d4de985014-10c0.zip/node_modules/strip-ansi/",\ - "packageDependencies": [\ - ["ansi-regex", "npm:3.0.1"],\ - ["strip-ansi", "npm:4.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:5.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/strip-ansi-npm-5.2.0-275214c316-10c0.zip/node_modules/strip-ansi/",\ - "packageDependencies": [\ - ["ansi-regex", "npm:4.1.1"],\ - ["strip-ansi", "npm:5.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.0.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/strip-ansi-npm-6.0.1-caddc7cb40-10c0.zip/node_modules/strip-ansi/",\ - "packageDependencies": [\ - ["ansi-regex", "npm:5.0.1"],\ - ["strip-ansi", "npm:6.0.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.1.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/strip-ansi-npm-7.1.2-aa4fadccd9-10c0.zip/node_modules/strip-ansi/",\ - "packageDependencies": [\ - ["ansi-regex", "npm:6.2.2"],\ - ["strip-ansi", "npm:7.1.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["strnum", [\ - ["npm:2.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/strnum-npm-2.1.1-2f45f2aae3-10c0.zip/node_modules/strnum/",\ - "packageDependencies": [\ - ["strnum", "npm:2.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["supports-color", [\ - ["npm:5.5.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/supports-color-npm-5.5.0-183ac537bc-10c0.zip/node_modules/supports-color/",\ - "packageDependencies": [\ - ["has-flag", "npm:3.0.0"],\ - ["supports-color", "npm:5.5.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/supports-color-npm-7.2.0-606bfcf7da-10c0.zip/node_modules/supports-color/",\ - "packageDependencies": [\ - ["has-flag", "npm:4.0.0"],\ - ["supports-color", "npm:7.2.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["table-layout", [\ - ["npm:4.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/table-layout-npm-4.1.1-d5039a9074-10c0.zip/node_modules/table-layout/",\ - "packageDependencies": [\ - ["array-back", "npm:6.2.2"],\ - ["table-layout", "npm:4.1.1"],\ - ["wordwrapjs", "npm:5.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["through", [\ - ["npm:2.3.8", {\ - "packageLocation": "../../../../.yarn/berry/cache/through-npm-2.3.8-df5f72a16e-10c0.zip/node_modules/through/",\ - "packageDependencies": [\ - ["through", "npm:2.3.8"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["tmp", [\ - ["npm:0.0.33", {\ - "packageLocation": "../../../../.yarn/berry/cache/tmp-npm-0.0.33-bcbf65df2a-10c0.zip/node_modules/tmp/",\ - "packageDependencies": [\ - ["os-tmpdir", "npm:1.0.2"],\ - ["tmp", "npm:0.0.33"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["toposort-class", [\ - ["npm:1.0.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/toposort-class-npm-1.0.1-aefabde69e-10c0.zip/node_modules/toposort-class/",\ - "packageDependencies": [\ - ["toposort-class", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["tr46", [\ - ["npm:0.0.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/tr46-npm-0.0.3-de53018915-10c0.zip/node_modules/tr46/",\ - "packageDependencies": [\ - ["tr46", "npm:0.0.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["tron-format-address", [\ - ["npm:0.1.12", {\ - "packageLocation": "../../../../.yarn/berry/cache/tron-format-address-npm-0.1.12-fc1f3ce1a8-10c0.zip/node_modules/tron-format-address/",\ - "packageDependencies": [\ - ["tron-format-address", "npm:0.1.12"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ts-node", [\ - ["npm:10.9.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/ts-node-npm-10.9.2-3f3890b9ac-10c0.zip/node_modules/ts-node/",\ - "packageDependencies": [\ - ["ts-node", "npm:10.9.2"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:10.9.2", {\ - "packageLocation": "./.yarn/__virtual__/ts-node-virtual-d9214475e7/5/.yarn/berry/cache/ts-node-npm-10.9.2-3f3890b9ac-10c0.zip/node_modules/ts-node/",\ - "packageDependencies": [\ - ["@cspotcode/source-map-support", "npm:0.8.1"],\ - ["@swc/core", null],\ - ["@swc/wasm", null],\ - ["@tsconfig/node10", "npm:1.0.11"],\ - ["@tsconfig/node12", "npm:1.0.11"],\ - ["@tsconfig/node14", "npm:1.0.3"],\ - ["@tsconfig/node16", "npm:1.0.4"],\ - ["@types/node", "npm:18.19.128"],\ - ["@types/swc__core", null],\ - ["@types/swc__wasm", null],\ - ["@types/typescript", null],\ - ["acorn", "npm:8.15.0"],\ - ["acorn-walk", "npm:8.3.4"],\ - ["arg", "npm:4.1.3"],\ - ["create-require", "npm:1.1.1"],\ - ["diff", "npm:4.0.2"],\ - ["make-error", "npm:1.3.6"],\ - ["ts-node", "virtual:cd17087020bbeffb9b8a7e3b00b46b60c83438a868effe1911e6f73e9d14e74d826b26904b74dde7065a42303e49afb091b18b1f97df2cafaed3dd45f929eba0#npm:10.9.2"],\ - ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"],\ - ["v8-compile-cache-lib", "npm:3.0.1"],\ - ["yn", "npm:3.1.1"]\ - ],\ - "packagePeers": [\ - "@swc/core",\ - "@swc/wasm",\ - "@types/node",\ - "@types/swc__core",\ - "@types/swc__wasm",\ - "@types/typescript",\ - "typescript"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["tslib", [\ - ["npm:1.14.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/tslib-npm-1.14.1-102499115e-10c0.zip/node_modules/tslib/",\ - "packageDependencies": [\ - ["tslib", "npm:1.14.1"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.7.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/tslib-npm-2.7.0-21668f5c21-10c0.zip/node_modules/tslib/",\ - "packageDependencies": [\ - ["tslib", "npm:2.7.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:2.8.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/tslib-npm-2.8.1-66590b21b8-10c0.zip/node_modules/tslib/",\ - "packageDependencies": [\ - ["tslib", "npm:2.8.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["type-fest", [\ - ["npm:0.21.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/type-fest-npm-0.21.3-5ff2a9c6fd-10c0.zip/node_modules/type-fest/",\ - "packageDependencies": [\ - ["type-fest", "npm:0.21.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["typescript", [\ - ["patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5", {\ - "packageLocation": "../../../../.yarn/berry/cache/typescript-patch-bcfe2ebaf8-10c0.zip/node_modules/typescript/",\ - "packageDependencies": [\ - ["typescript", "patch:typescript@npm%3A5.9.2#optional!builtin::version=5.9.2&hash=5786d5"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["typical", [\ - ["npm:7.3.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/typical-npm-7.3.0-2a831dec52-10c0.zip/node_modules/typical/",\ - "packageDependencies": [\ - ["typical", "npm:7.3.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["undici", [\ - ["npm:6.21.3", {\ - "packageLocation": "../../../../.yarn/berry/cache/undici-npm-6.21.3-28d9334837-10c0.zip/node_modules/undici/",\ - "packageDependencies": [\ - ["undici", "npm:6.21.3"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["undici-types", [\ - ["npm:5.26.5", {\ - "packageLocation": "../../../../.yarn/berry/cache/undici-types-npm-5.26.5-de4f7c7bb9-10c0.zip/node_modules/undici-types/",\ - "packageDependencies": [\ - ["undici-types", "npm:5.26.5"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:6.19.8", {\ - "packageLocation": "../../../../.yarn/berry/cache/undici-types-npm-6.19.8-9f12285b7a-10c0.zip/node_modules/undici-types/",\ - "packageDependencies": [\ - ["undici-types", "npm:6.19.8"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.13.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/undici-types-npm-7.13.0-df78d4ea2d-10c0.zip/node_modules/undici-types/",\ - "packageDependencies": [\ - ["undici-types", "npm:7.13.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["util-deprecate", [\ - ["npm:1.0.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/util-deprecate-npm-1.0.2-e3fe1a219c-10c0.zip/node_modules/util-deprecate/",\ - "packageDependencies": [\ - ["util-deprecate", "npm:1.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["uuid", [\ - ["npm:8.3.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/uuid-npm-8.3.2-eca0baba53-10c0.zip/node_modules/uuid/",\ - "packageDependencies": [\ - ["uuid", "npm:8.3.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["v8-compile-cache-lib", [\ - ["npm:3.0.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/v8-compile-cache-lib-npm-3.0.1-4886071ece-10c0.zip/node_modules/v8-compile-cache-lib/",\ - "packageDependencies": [\ - ["v8-compile-cache-lib", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["validator", [\ - ["npm:13.15.15", {\ - "packageLocation": "../../../../.yarn/berry/cache/validator-npm-13.15.15-143146ad19-10c0.zip/node_modules/validator/",\ - "packageDependencies": [\ - ["validator", "npm:13.15.15"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["wcwidth", [\ - ["npm:1.0.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/wcwidth-npm-1.0.1-05fa596453-10c0.zip/node_modules/wcwidth/",\ - "packageDependencies": [\ - ["defaults", "npm:1.0.4"],\ - ["wcwidth", "npm:1.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["webidl-conversions", [\ - ["npm:3.0.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/webidl-conversions-npm-3.0.1-60310f6a2b-10c0.zip/node_modules/webidl-conversions/",\ - "packageDependencies": [\ - ["webidl-conversions", "npm:3.0.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["whatwg-url", [\ - ["npm:5.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/whatwg-url-npm-5.0.0-374fb45e60-10c0.zip/node_modules/whatwg-url/",\ - "packageDependencies": [\ - ["tr46", "npm:0.0.3"],\ - ["webidl-conversions", "npm:3.0.1"],\ - ["whatwg-url", "npm:5.0.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["which", [\ - ["npm:2.0.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/which-npm-2.0.2-320ddf72f7-10c0.zip/node_modules/which/",\ - "packageDependencies": [\ - ["isexe", "npm:2.0.0"],\ - ["which", "npm:2.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["wkx", [\ - ["npm:0.5.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/wkx-npm-0.5.0-fca5152cd8-10c0.zip/node_modules/wkx/",\ - "packageDependencies": [\ - ["@types/node", "npm:24.6.0"],\ - ["wkx", "npm:0.5.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["wordwrapjs", [\ - ["npm:5.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/wordwrapjs-npm-5.1.0-41e18fb6d0-10c0.zip/node_modules/wordwrapjs/",\ - "packageDependencies": [\ - ["wordwrapjs", "npm:5.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["wrap-ansi", [\ - ["npm:6.2.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/wrap-ansi-npm-6.2.0-439a7246d8-10c0.zip/node_modules/wrap-ansi/",\ - "packageDependencies": [\ - ["ansi-styles", "npm:4.3.0"],\ - ["string-width", "npm:4.2.3"],\ - ["strip-ansi", "npm:6.0.1"],\ - ["wrap-ansi", "npm:6.2.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:7.0.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/wrap-ansi-npm-7.0.0-ad6e1a0554-10c0.zip/node_modules/wrap-ansi/",\ - "packageDependencies": [\ - ["ansi-styles", "npm:4.3.0"],\ - ["string-width", "npm:4.2.3"],\ - ["strip-ansi", "npm:6.0.1"],\ - ["wrap-ansi", "npm:7.0.0"]\ - ],\ - "linkType": "HARD"\ - }],\ - ["npm:8.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/wrap-ansi-npm-8.1.0-26a4e6ae28-10c0.zip/node_modules/wrap-ansi/",\ - "packageDependencies": [\ - ["ansi-styles", "npm:6.2.3"],\ - ["string-width", "npm:5.1.2"],\ - ["strip-ansi", "npm:7.1.2"],\ - ["wrap-ansi", "npm:8.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["ws", [\ - ["npm:8.17.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/ws-npm-8.17.1-f57fb24a2c-10c0.zip/node_modules/ws/",\ - "packageDependencies": [\ - ["ws", "npm:8.17.1"]\ - ],\ - "linkType": "SOFT"\ - }],\ - ["virtual:f266964bbf0a973b765b066fe1b1828807981016fc49075d7d14462508ec0b4c518650d9ae747c8b805b7e3e20b5b050695db51ba47ef5e8e240f1bec894a15f#npm:8.17.1", {\ - "packageLocation": "./.yarn/__virtual__/ws-virtual-d0741043a0/5/.yarn/berry/cache/ws-npm-8.17.1-f57fb24a2c-10c0.zip/node_modules/ws/",\ - "packageDependencies": [\ - ["@types/bufferutil", null],\ - ["@types/utf-8-validate", null],\ - ["bufferutil", null],\ - ["utf-8-validate", null],\ - ["ws", "virtual:f266964bbf0a973b765b066fe1b1828807981016fc49075d7d14462508ec0b4c518650d9ae747c8b805b7e3e20b5b050695db51ba47ef5e8e240f1bec894a15f#npm:8.17.1"]\ - ],\ - "packagePeers": [\ - "@types/bufferutil",\ - "@types/utf-8-validate",\ - "bufferutil",\ - "utf-8-validate"\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["xtend", [\ - ["npm:4.0.2", {\ - "packageLocation": "../../../../.yarn/berry/cache/xtend-npm-4.0.2-7f2375736e-10c0.zip/node_modules/xtend/",\ - "packageDependencies": [\ - ["xtend", "npm:4.0.2"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["yn", [\ - ["npm:3.1.1", {\ - "packageLocation": "../../../../.yarn/berry/cache/yn-npm-3.1.1-8ad4259784-10c0.zip/node_modules/yn/",\ - "packageDependencies": [\ - ["yn", "npm:3.1.1"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]],\ - ["yocto-queue", [\ - ["npm:0.1.0", {\ - "packageLocation": "../../../../.yarn/berry/cache/yocto-queue-npm-0.1.0-c6c9a7db29-10c0.zip/node_modules/yocto-queue/",\ - "packageDependencies": [\ - ["yocto-queue", "npm:0.1.0"]\ - ],\ - "linkType": "HARD"\ - }]\ - ]]\ - ]\ -}'; - -function $$SETUP_STATE(hydrateRuntimeState, basePath) { - return hydrateRuntimeState(JSON.parse(RAW_RUNTIME_STATE), {basePath: basePath || __dirname}); -} - -const fs = require('fs'); -const path = require('path'); -const crypto = require('crypto'); -const os = require('os'); -const events = require('events'); -const nodeUtils = require('util'); -const stream = require('stream'); -const zlib = require('zlib'); -const require$$0 = require('module'); -const StringDecoder = require('string_decoder'); -const url = require('url'); -const buffer = require('buffer'); -const readline = require('readline'); -const assert = require('assert'); - -const _interopDefaultLegacy = e => e && typeof e === 'object' && 'default' in e ? e : { default: e }; - -function _interopNamespace(e) { - if (e && e.__esModule) return e; - const n = Object.create(null); - if (e) { - for (const k in e) { - if (k !== 'default') { - const d = Object.getOwnPropertyDescriptor(e, k); - Object.defineProperty(n, k, d.get ? d : { - enumerable: true, - get: () => e[k] - }); - } - } - } - n.default = e; - return Object.freeze(n); -} - -const fs__default = /*#__PURE__*/_interopDefaultLegacy(fs); -const path__default = /*#__PURE__*/_interopDefaultLegacy(path); -const nodeUtils__namespace = /*#__PURE__*/_interopNamespace(nodeUtils); -const zlib__default = /*#__PURE__*/_interopDefaultLegacy(zlib); -const require$$0__default = /*#__PURE__*/_interopDefaultLegacy(require$$0); -const StringDecoder__default = /*#__PURE__*/_interopDefaultLegacy(StringDecoder); -const buffer__default = /*#__PURE__*/_interopDefaultLegacy(buffer); -const assert__default = /*#__PURE__*/_interopDefaultLegacy(assert); - -const S_IFMT = 61440; -const S_IFDIR = 16384; -const S_IFREG = 32768; -const S_IFLNK = 40960; -const SAFE_TIME = 456789e3; - -function makeError$1(code, message) { - return Object.assign(new Error(`${code}: ${message}`), { code }); -} -function EBUSY(message) { - return makeError$1(`EBUSY`, message); -} -function ENOSYS(message, reason) { - return makeError$1(`ENOSYS`, `${message}, ${reason}`); -} -function EINVAL(reason) { - return makeError$1(`EINVAL`, `invalid argument, ${reason}`); -} -function EBADF(reason) { - return makeError$1(`EBADF`, `bad file descriptor, ${reason}`); -} -function ENOENT(reason) { - return makeError$1(`ENOENT`, `no such file or directory, ${reason}`); -} -function ENOTDIR(reason) { - return makeError$1(`ENOTDIR`, `not a directory, ${reason}`); -} -function EISDIR(reason) { - return makeError$1(`EISDIR`, `illegal operation on a directory, ${reason}`); -} -function EEXIST(reason) { - return makeError$1(`EEXIST`, `file already exists, ${reason}`); -} -function EROFS(reason) { - return makeError$1(`EROFS`, `read-only filesystem, ${reason}`); -} -function ENOTEMPTY(reason) { - return makeError$1(`ENOTEMPTY`, `directory not empty, ${reason}`); -} -function EOPNOTSUPP(reason) { - return makeError$1(`EOPNOTSUPP`, `operation not supported, ${reason}`); -} -function ERR_DIR_CLOSED() { - return makeError$1(`ERR_DIR_CLOSED`, `Directory handle was closed`); -} - -const DEFAULT_MODE = S_IFREG | 420; -class StatEntry { - uid = 0; - gid = 0; - size = 0; - blksize = 0; - atimeMs = 0; - mtimeMs = 0; - ctimeMs = 0; - birthtimeMs = 0; - atime = /* @__PURE__ */ new Date(0); - mtime = /* @__PURE__ */ new Date(0); - ctime = /* @__PURE__ */ new Date(0); - birthtime = /* @__PURE__ */ new Date(0); - dev = 0; - ino = 0; - mode = DEFAULT_MODE; - nlink = 1; - rdev = 0; - blocks = 1; - isBlockDevice() { - return false; - } - isCharacterDevice() { - return false; - } - isDirectory() { - return (this.mode & S_IFMT) === S_IFDIR; - } - isFIFO() { - return false; - } - isFile() { - return (this.mode & S_IFMT) === S_IFREG; - } - isSocket() { - return false; - } - isSymbolicLink() { - return (this.mode & S_IFMT) === S_IFLNK; - } -} -class BigIntStatsEntry { - uid = BigInt(0); - gid = BigInt(0); - size = BigInt(0); - blksize = BigInt(0); - atimeMs = BigInt(0); - mtimeMs = BigInt(0); - ctimeMs = BigInt(0); - birthtimeMs = BigInt(0); - atimeNs = BigInt(0); - mtimeNs = BigInt(0); - ctimeNs = BigInt(0); - birthtimeNs = BigInt(0); - atime = /* @__PURE__ */ new Date(0); - mtime = /* @__PURE__ */ new Date(0); - ctime = /* @__PURE__ */ new Date(0); - birthtime = /* @__PURE__ */ new Date(0); - dev = BigInt(0); - ino = BigInt(0); - mode = BigInt(DEFAULT_MODE); - nlink = BigInt(1); - rdev = BigInt(0); - blocks = BigInt(1); - isBlockDevice() { - return false; - } - isCharacterDevice() { - return false; - } - isDirectory() { - return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFDIR); - } - isFIFO() { - return false; - } - isFile() { - return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFREG); - } - isSocket() { - return false; - } - isSymbolicLink() { - return (this.mode & BigInt(S_IFMT)) === BigInt(S_IFLNK); - } -} -function makeDefaultStats() { - return new StatEntry(); -} -function clearStats(stats) { - for (const key in stats) { - if (Object.hasOwn(stats, key)) { - const element = stats[key]; - if (typeof element === `number`) { - stats[key] = 0; - } else if (typeof element === `bigint`) { - stats[key] = BigInt(0); - } else if (nodeUtils__namespace.types.isDate(element)) { - stats[key] = /* @__PURE__ */ new Date(0); - } - } - } - return stats; -} -function convertToBigIntStats(stats) { - const bigintStats = new BigIntStatsEntry(); - for (const key in stats) { - if (Object.hasOwn(stats, key)) { - const element = stats[key]; - if (typeof element === `number`) { - bigintStats[key] = BigInt(element); - } else if (nodeUtils__namespace.types.isDate(element)) { - bigintStats[key] = new Date(element); - } - } - } - bigintStats.atimeNs = bigintStats.atimeMs * BigInt(1e6); - bigintStats.mtimeNs = bigintStats.mtimeMs * BigInt(1e6); - bigintStats.ctimeNs = bigintStats.ctimeMs * BigInt(1e6); - bigintStats.birthtimeNs = bigintStats.birthtimeMs * BigInt(1e6); - return bigintStats; -} -function areStatsEqual(a, b) { - if (a.atimeMs !== b.atimeMs) - return false; - if (a.birthtimeMs !== b.birthtimeMs) - return false; - if (a.blksize !== b.blksize) - return false; - if (a.blocks !== b.blocks) - return false; - if (a.ctimeMs !== b.ctimeMs) - return false; - if (a.dev !== b.dev) - return false; - if (a.gid !== b.gid) - return false; - if (a.ino !== b.ino) - return false; - if (a.isBlockDevice() !== b.isBlockDevice()) - return false; - if (a.isCharacterDevice() !== b.isCharacterDevice()) - return false; - if (a.isDirectory() !== b.isDirectory()) - return false; - if (a.isFIFO() !== b.isFIFO()) - return false; - if (a.isFile() !== b.isFile()) - return false; - if (a.isSocket() !== b.isSocket()) - return false; - if (a.isSymbolicLink() !== b.isSymbolicLink()) - return false; - if (a.mode !== b.mode) - return false; - if (a.mtimeMs !== b.mtimeMs) - return false; - if (a.nlink !== b.nlink) - return false; - if (a.rdev !== b.rdev) - return false; - if (a.size !== b.size) - return false; - if (a.uid !== b.uid) - return false; - const aN = a; - const bN = b; - if (aN.atimeNs !== bN.atimeNs) - return false; - if (aN.mtimeNs !== bN.mtimeNs) - return false; - if (aN.ctimeNs !== bN.ctimeNs) - return false; - if (aN.birthtimeNs !== bN.birthtimeNs) - return false; - return true; -} - -const PortablePath = { - root: `/`, - dot: `.`, - parent: `..` -}; -const Filename = { - home: `~`, - nodeModules: `node_modules`, - manifest: `package.json`, - lockfile: `yarn.lock`, - virtual: `__virtual__`, - /** - * @deprecated - */ - pnpJs: `.pnp.js`, - pnpCjs: `.pnp.cjs`, - pnpData: `.pnp.data.json`, - pnpEsmLoader: `.pnp.loader.mjs`, - rc: `.yarnrc.yml`, - env: `.env` -}; -const npath = Object.create(path__default.default); -const ppath = Object.create(path__default.default.posix); -npath.cwd = () => process.cwd(); -ppath.cwd = process.platform === `win32` ? () => toPortablePath(process.cwd()) : process.cwd; -if (process.platform === `win32`) { - ppath.resolve = (...segments) => { - if (segments.length > 0 && ppath.isAbsolute(segments[0])) { - return path__default.default.posix.resolve(...segments); - } else { - return path__default.default.posix.resolve(ppath.cwd(), ...segments); - } - }; -} -const contains = function(pathUtils, from, to) { - from = pathUtils.normalize(from); - to = pathUtils.normalize(to); - if (from === to) - return `.`; - if (!from.endsWith(pathUtils.sep)) - from = from + pathUtils.sep; - if (to.startsWith(from)) { - return to.slice(from.length); - } else { - return null; - } -}; -npath.contains = (from, to) => contains(npath, from, to); -ppath.contains = (from, to) => contains(ppath, from, to); -const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/; -const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/; -const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/; -const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/; -function fromPortablePathWin32(p) { - let portablePathMatch, uncPortablePathMatch; - if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP)) - p = portablePathMatch[1]; - else if (uncPortablePathMatch = p.match(UNC_PORTABLE_PATH_REGEXP)) - p = `\\\\${uncPortablePathMatch[1] ? `.\\` : ``}${uncPortablePathMatch[2]}`; - else - return p; - return p.replace(/\//g, `\\`); -} -function toPortablePathWin32(p) { - p = p.replace(/\\/g, `/`); - let windowsPathMatch, uncWindowsPathMatch; - if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP)) - p = `/${windowsPathMatch[1]}`; - else if (uncWindowsPathMatch = p.match(UNC_WINDOWS_PATH_REGEXP)) - p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`; - return p; -} -const toPortablePath = process.platform === `win32` ? toPortablePathWin32 : (p) => p; -const fromPortablePath = process.platform === `win32` ? fromPortablePathWin32 : (p) => p; -npath.fromPortablePath = fromPortablePath; -npath.toPortablePath = toPortablePath; -function convertPath(targetPathUtils, sourcePath) { - return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath); -} - -const defaultTime = new Date(SAFE_TIME * 1e3); -const defaultTimeMs = defaultTime.getTime(); -async function copyPromise(destinationFs, destination, sourceFs, source, opts) { - const normalizedDestination = destinationFs.pathUtils.normalize(destination); - const normalizedSource = sourceFs.pathUtils.normalize(source); - const prelayout = []; - const postlayout = []; - const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : await sourceFs.lstatPromise(normalizedSource); - await destinationFs.mkdirpPromise(destinationFs.pathUtils.dirname(destination), { utimes: [atime, mtime] }); - await copyImpl(prelayout, postlayout, destinationFs, normalizedDestination, sourceFs, normalizedSource, { ...opts, didParentExist: true }); - for (const operation of prelayout) - await operation(); - await Promise.all(postlayout.map((operation) => { - return operation(); - })); -} -async function copyImpl(prelayout, postlayout, destinationFs, destination, sourceFs, source, opts) { - const destinationStat = opts.didParentExist ? await maybeLStat(destinationFs, destination) : null; - const sourceStat = await sourceFs.lstatPromise(source); - const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : sourceStat; - let updated; - switch (true) { - case sourceStat.isDirectory(): - { - updated = await copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - case sourceStat.isFile(): - { - updated = await copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - case sourceStat.isSymbolicLink(): - { - updated = await copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - default: { - throw new Error(`Unsupported file type (${sourceStat.mode})`); - } - } - if (opts.linkStrategy?.type !== `HardlinkFromIndex` || !sourceStat.isFile()) { - if (updated || destinationStat?.mtime?.getTime() !== mtime.getTime() || destinationStat?.atime?.getTime() !== atime.getTime()) { - postlayout.push(() => destinationFs.lutimesPromise(destination, atime, mtime)); - updated = true; - } - if (destinationStat === null || (destinationStat.mode & 511) !== (sourceStat.mode & 511)) { - postlayout.push(() => destinationFs.chmodPromise(destination, sourceStat.mode & 511)); - updated = true; - } - } - return updated; -} -async function maybeLStat(baseFs, p) { - try { - return await baseFs.lstatPromise(p); - } catch { - return null; - } -} -async function copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null && !destinationStat.isDirectory()) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - let updated = false; - if (destinationStat === null) { - prelayout.push(async () => { - try { - await destinationFs.mkdirPromise(destination, { mode: sourceStat.mode }); - } catch (err) { - if (err.code !== `EEXIST`) { - throw err; - } - } - }); - updated = true; - } - const entries = await sourceFs.readdirPromise(source); - const nextOpts = opts.didParentExist && !destinationStat ? { ...opts, didParentExist: false } : opts; - if (opts.stableSort) { - for (const entry of entries.sort()) { - if (await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts)) { - updated = true; - } - } - } else { - const entriesUpdateStatus = await Promise.all(entries.map(async (entry) => { - await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts); - })); - if (entriesUpdateStatus.some((status) => status)) { - updated = true; - } - } - return updated; -} -async function copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, linkStrategy) { - const sourceHash = await sourceFs.checksumFilePromise(source, { algorithm: `sha1` }); - const defaultMode = 420; - const sourceMode = sourceStat.mode & 511; - const indexFileName = `${sourceHash}${sourceMode !== defaultMode ? sourceMode.toString(8) : ``}`; - const indexPath = destinationFs.pathUtils.join(linkStrategy.indexPath, sourceHash.slice(0, 2), `${indexFileName}.dat`); - let AtomicBehavior; - ((AtomicBehavior2) => { - AtomicBehavior2[AtomicBehavior2["Lock"] = 0] = "Lock"; - AtomicBehavior2[AtomicBehavior2["Rename"] = 1] = "Rename"; - })(AtomicBehavior || (AtomicBehavior = {})); - let atomicBehavior = 1 /* Rename */; - let indexStat = await maybeLStat(destinationFs, indexPath); - if (destinationStat) { - const isDestinationHardlinkedFromIndex = indexStat && destinationStat.dev === indexStat.dev && destinationStat.ino === indexStat.ino; - const isIndexModified = indexStat?.mtimeMs !== defaultTimeMs; - if (isDestinationHardlinkedFromIndex) { - if (isIndexModified && linkStrategy.autoRepair) { - atomicBehavior = 0 /* Lock */; - indexStat = null; - } - } - if (!isDestinationHardlinkedFromIndex) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - } - const tempPath = !indexStat && atomicBehavior === 1 /* Rename */ ? `${indexPath}.${Math.floor(Math.random() * 4294967296).toString(16).padStart(8, `0`)}` : null; - let tempPathCleaned = false; - prelayout.push(async () => { - if (!indexStat) { - if (atomicBehavior === 0 /* Lock */) { - await destinationFs.lockPromise(indexPath, async () => { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(indexPath, content); - }); - } - if (atomicBehavior === 1 /* Rename */ && tempPath) { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(tempPath, content); - try { - await destinationFs.linkPromise(tempPath, indexPath); - } catch (err) { - if (err.code === `EEXIST`) { - tempPathCleaned = true; - await destinationFs.unlinkPromise(tempPath); - } else { - throw err; - } - } - } - } - if (!destinationStat) { - await destinationFs.linkPromise(indexPath, destination); - } - }); - postlayout.push(async () => { - if (!indexStat) { - await destinationFs.lutimesPromise(indexPath, defaultTime, defaultTime); - if (sourceMode !== defaultMode) { - await destinationFs.chmodPromise(indexPath, sourceMode); - } - } - if (tempPath && !tempPathCleaned) { - await destinationFs.unlinkPromise(tempPath); - } - }); - return false; -} -async function copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - prelayout.push(async () => { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(destination, content); - }); - return true; -} -async function copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (opts.linkStrategy?.type === `HardlinkFromIndex`) { - return copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, opts.linkStrategy); - } else { - return copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } -} -async function copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - prelayout.push(async () => { - await destinationFs.symlinkPromise(convertPath(destinationFs.pathUtils, await sourceFs.readlinkPromise(source)), destination); - }); - return true; -} - -class CustomDir { - constructor(path, nextDirent, opts = {}) { - this.path = path; - this.nextDirent = nextDirent; - this.opts = opts; - } - closed = false; - throwIfClosed() { - if (this.closed) { - throw ERR_DIR_CLOSED(); - } - } - async *[Symbol.asyncIterator]() { - try { - let dirent; - while ((dirent = await this.read()) !== null) { - yield dirent; - } - } finally { - await this.close(); - } - } - read(cb) { - const dirent = this.readSync(); - if (typeof cb !== `undefined`) - return cb(null, dirent); - return Promise.resolve(dirent); - } - readSync() { - this.throwIfClosed(); - return this.nextDirent(); - } - close(cb) { - this.closeSync(); - if (typeof cb !== `undefined`) - return cb(null); - return Promise.resolve(); - } - closeSync() { - this.throwIfClosed(); - this.opts.onClose?.(); - this.closed = true; - } -} -function opendir(fakeFs, path, entries, opts) { - const nextDirent = () => { - const filename = entries.shift(); - if (typeof filename === `undefined`) - return null; - const entryPath = fakeFs.pathUtils.join(path, filename); - return Object.assign(fakeFs.statSync(entryPath), { - name: filename, - path: void 0 - }); - }; - return new CustomDir(path, nextDirent, opts); -} - -function assertStatus(current, expected) { - if (current !== expected) { - throw new Error(`Invalid StatWatcher status: expected '${expected}', got '${current}'`); - } -} -class CustomStatWatcher extends events.EventEmitter { - fakeFs; - path; - bigint; - status = "ready" /* Ready */; - changeListeners = /* @__PURE__ */ new Map(); - lastStats; - startTimeout = null; - static create(fakeFs, path, opts) { - const statWatcher = new CustomStatWatcher(fakeFs, path, opts); - statWatcher.start(); - return statWatcher; - } - constructor(fakeFs, path, { bigint = false } = {}) { - super(); - this.fakeFs = fakeFs; - this.path = path; - this.bigint = bigint; - this.lastStats = this.stat(); - } - start() { - assertStatus(this.status, "ready" /* Ready */); - this.status = "running" /* Running */; - this.startTimeout = setTimeout(() => { - this.startTimeout = null; - if (!this.fakeFs.existsSync(this.path)) { - this.emit("change" /* Change */, this.lastStats, this.lastStats); - } - }, 3); - } - stop() { - assertStatus(this.status, "running" /* Running */); - this.status = "stopped" /* Stopped */; - if (this.startTimeout !== null) { - clearTimeout(this.startTimeout); - this.startTimeout = null; - } - this.emit("stop" /* Stop */); - } - stat() { - try { - return this.fakeFs.statSync(this.path, { bigint: this.bigint }); - } catch { - const statInstance = this.bigint ? new BigIntStatsEntry() : new StatEntry(); - return clearStats(statInstance); - } - } - /** - * Creates an interval whose callback compares the current stats with the previous stats and notifies all listeners in case of changes. - * - * @param opts.persistent Decides whether the interval should be immediately unref-ed. - */ - makeInterval(opts) { - const interval = setInterval(() => { - const currentStats = this.stat(); - const previousStats = this.lastStats; - if (areStatsEqual(currentStats, previousStats)) - return; - this.lastStats = currentStats; - this.emit("change" /* Change */, currentStats, previousStats); - }, opts.interval); - return opts.persistent ? interval : interval.unref(); - } - /** - * Registers a listener and assigns it an interval. - */ - registerChangeListener(listener, opts) { - this.addListener("change" /* Change */, listener); - this.changeListeners.set(listener, this.makeInterval(opts)); - } - /** - * Unregisters the listener and clears the assigned interval. - */ - unregisterChangeListener(listener) { - this.removeListener("change" /* Change */, listener); - const interval = this.changeListeners.get(listener); - if (typeof interval !== `undefined`) - clearInterval(interval); - this.changeListeners.delete(listener); - } - /** - * Unregisters all listeners and clears all assigned intervals. - */ - unregisterAllChangeListeners() { - for (const listener of this.changeListeners.keys()) { - this.unregisterChangeListener(listener); - } - } - hasChangeListeners() { - return this.changeListeners.size > 0; - } - /** - * Refs all stored intervals. - */ - ref() { - for (const interval of this.changeListeners.values()) - interval.ref(); - return this; - } - /** - * Unrefs all stored intervals. - */ - unref() { - for (const interval of this.changeListeners.values()) - interval.unref(); - return this; - } -} - -const statWatchersByFakeFS = /* @__PURE__ */ new WeakMap(); -function watchFile(fakeFs, path, a, b) { - let bigint; - let persistent; - let interval; - let listener; - switch (typeof a) { - case `function`: - { - bigint = false; - persistent = true; - interval = 5007; - listener = a; - } - break; - default: - { - ({ - bigint = false, - persistent = true, - interval = 5007 - } = a); - listener = b; - } - break; - } - let statWatchers = statWatchersByFakeFS.get(fakeFs); - if (typeof statWatchers === `undefined`) - statWatchersByFakeFS.set(fakeFs, statWatchers = /* @__PURE__ */ new Map()); - let statWatcher = statWatchers.get(path); - if (typeof statWatcher === `undefined`) { - statWatcher = CustomStatWatcher.create(fakeFs, path, { bigint }); - statWatchers.set(path, statWatcher); - } - statWatcher.registerChangeListener(listener, { persistent, interval }); - return statWatcher; -} -function unwatchFile(fakeFs, path, cb) { - const statWatchers = statWatchersByFakeFS.get(fakeFs); - if (typeof statWatchers === `undefined`) - return; - const statWatcher = statWatchers.get(path); - if (typeof statWatcher === `undefined`) - return; - if (typeof cb === `undefined`) - statWatcher.unregisterAllChangeListeners(); - else - statWatcher.unregisterChangeListener(cb); - if (!statWatcher.hasChangeListeners()) { - statWatcher.stop(); - statWatchers.delete(path); - } -} -function unwatchAllFiles(fakeFs) { - const statWatchers = statWatchersByFakeFS.get(fakeFs); - if (typeof statWatchers === `undefined`) - return; - for (const path of statWatchers.keys()) { - unwatchFile(fakeFs, path); - } -} - -class FakeFS { - pathUtils; - constructor(pathUtils) { - this.pathUtils = pathUtils; - } - async *genTraversePromise(init, { stableSort = false } = {}) { - const stack = [init]; - while (stack.length > 0) { - const p = stack.shift(); - const entry = await this.lstatPromise(p); - if (entry.isDirectory()) { - const entries = await this.readdirPromise(p); - if (stableSort) { - for (const entry2 of entries.sort()) { - stack.push(this.pathUtils.join(p, entry2)); - } - } else { - throw new Error(`Not supported`); - } - } else { - yield p; - } - } - } - async checksumFilePromise(path, { algorithm = `sha512` } = {}) { - const fd = await this.openPromise(path, `r`); - try { - const CHUNK_SIZE = 65536; - const chunk = Buffer.allocUnsafeSlow(CHUNK_SIZE); - const hash = crypto.createHash(algorithm); - let bytesRead = 0; - while ((bytesRead = await this.readPromise(fd, chunk, 0, CHUNK_SIZE)) !== 0) - hash.update(bytesRead === CHUNK_SIZE ? chunk : chunk.slice(0, bytesRead)); - return hash.digest(`hex`); - } finally { - await this.closePromise(fd); - } - } - async removePromise(p, { recursive = true, maxRetries = 5 } = {}) { - let stat; - try { - stat = await this.lstatPromise(p); - } catch (error) { - if (error.code === `ENOENT`) { - return; - } else { - throw error; - } - } - if (stat.isDirectory()) { - if (recursive) { - const entries = await this.readdirPromise(p); - await Promise.all(entries.map((entry) => { - return this.removePromise(this.pathUtils.resolve(p, entry)); - })); - } - for (let t = 0; t <= maxRetries; t++) { - try { - await this.rmdirPromise(p); - break; - } catch (error) { - if (error.code !== `EBUSY` && error.code !== `ENOTEMPTY`) { - throw error; - } else if (t < maxRetries) { - await new Promise((resolve) => setTimeout(resolve, t * 100)); - } - } - } - } else { - await this.unlinkPromise(p); - } - } - removeSync(p, { recursive = true } = {}) { - let stat; - try { - stat = this.lstatSync(p); - } catch (error) { - if (error.code === `ENOENT`) { - return; - } else { - throw error; - } - } - if (stat.isDirectory()) { - if (recursive) - for (const entry of this.readdirSync(p)) - this.removeSync(this.pathUtils.resolve(p, entry)); - this.rmdirSync(p); - } else { - this.unlinkSync(p); - } - } - async mkdirpPromise(p, { chmod, utimes } = {}) { - p = this.resolve(p); - if (p === this.pathUtils.dirname(p)) - return void 0; - const parts = p.split(this.pathUtils.sep); - let createdDirectory; - for (let u = 2; u <= parts.length; ++u) { - const subPath = parts.slice(0, u).join(this.pathUtils.sep); - if (!this.existsSync(subPath)) { - try { - await this.mkdirPromise(subPath); - } catch (error) { - if (error.code === `EEXIST`) { - continue; - } else { - throw error; - } - } - createdDirectory ??= subPath; - if (chmod != null) - await this.chmodPromise(subPath, chmod); - if (utimes != null) { - await this.utimesPromise(subPath, utimes[0], utimes[1]); - } else { - const parentStat = await this.statPromise(this.pathUtils.dirname(subPath)); - await this.utimesPromise(subPath, parentStat.atime, parentStat.mtime); - } - } - } - return createdDirectory; - } - mkdirpSync(p, { chmod, utimes } = {}) { - p = this.resolve(p); - if (p === this.pathUtils.dirname(p)) - return void 0; - const parts = p.split(this.pathUtils.sep); - let createdDirectory; - for (let u = 2; u <= parts.length; ++u) { - const subPath = parts.slice(0, u).join(this.pathUtils.sep); - if (!this.existsSync(subPath)) { - try { - this.mkdirSync(subPath); - } catch (error) { - if (error.code === `EEXIST`) { - continue; - } else { - throw error; - } - } - createdDirectory ??= subPath; - if (chmod != null) - this.chmodSync(subPath, chmod); - if (utimes != null) { - this.utimesSync(subPath, utimes[0], utimes[1]); - } else { - const parentStat = this.statSync(this.pathUtils.dirname(subPath)); - this.utimesSync(subPath, parentStat.atime, parentStat.mtime); - } - } - } - return createdDirectory; - } - async copyPromise(destination, source, { baseFs = this, overwrite = true, stableSort = false, stableTime = false, linkStrategy = null } = {}) { - return await copyPromise(this, destination, baseFs, source, { overwrite, stableSort, stableTime, linkStrategy }); - } - copySync(destination, source, { baseFs = this, overwrite = true } = {}) { - const stat = baseFs.lstatSync(source); - const exists = this.existsSync(destination); - if (stat.isDirectory()) { - this.mkdirpSync(destination); - const directoryListing = baseFs.readdirSync(source); - for (const entry of directoryListing) { - this.copySync(this.pathUtils.join(destination, entry), baseFs.pathUtils.join(source, entry), { baseFs, overwrite }); - } - } else if (stat.isFile()) { - if (!exists || overwrite) { - if (exists) - this.removeSync(destination); - const content = baseFs.readFileSync(source); - this.writeFileSync(destination, content); - } - } else if (stat.isSymbolicLink()) { - if (!exists || overwrite) { - if (exists) - this.removeSync(destination); - const target = baseFs.readlinkSync(source); - this.symlinkSync(convertPath(this.pathUtils, target), destination); - } - } else { - throw new Error(`Unsupported file type (file: ${source}, mode: 0o${stat.mode.toString(8).padStart(6, `0`)})`); - } - const mode = stat.mode & 511; - this.chmodSync(destination, mode); - } - async changeFilePromise(p, content, opts = {}) { - if (Buffer.isBuffer(content)) { - return this.changeFileBufferPromise(p, content, opts); - } else { - return this.changeFileTextPromise(p, content, opts); - } - } - async changeFileBufferPromise(p, content, { mode } = {}) { - let current = Buffer.alloc(0); - try { - current = await this.readFilePromise(p); - } catch { - } - if (Buffer.compare(current, content) === 0) - return; - await this.writeFilePromise(p, content, { mode }); - } - async changeFileTextPromise(p, content, { automaticNewlines, mode } = {}) { - let current = ``; - try { - current = await this.readFilePromise(p, `utf8`); - } catch { - } - const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; - if (current === normalizedContent) - return; - await this.writeFilePromise(p, normalizedContent, { mode }); - } - changeFileSync(p, content, opts = {}) { - if (Buffer.isBuffer(content)) { - return this.changeFileBufferSync(p, content, opts); - } else { - return this.changeFileTextSync(p, content, opts); - } - } - changeFileBufferSync(p, content, { mode } = {}) { - let current = Buffer.alloc(0); - try { - current = this.readFileSync(p); - } catch { - } - if (Buffer.compare(current, content) === 0) - return; - this.writeFileSync(p, content, { mode }); - } - changeFileTextSync(p, content, { automaticNewlines = false, mode } = {}) { - let current = ``; - try { - current = this.readFileSync(p, `utf8`); - } catch { - } - const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; - if (current === normalizedContent) - return; - this.writeFileSync(p, normalizedContent, { mode }); - } - async movePromise(fromP, toP) { - try { - await this.renamePromise(fromP, toP); - } catch (error) { - if (error.code === `EXDEV`) { - await this.copyPromise(toP, fromP); - await this.removePromise(fromP); - } else { - throw error; - } - } - } - moveSync(fromP, toP) { - try { - this.renameSync(fromP, toP); - } catch (error) { - if (error.code === `EXDEV`) { - this.copySync(toP, fromP); - this.removeSync(fromP); - } else { - throw error; - } - } - } - async lockPromise(affectedPath, callback) { - const lockPath = `${affectedPath}.flock`; - const interval = 1e3 / 60; - const startTime = Date.now(); - let fd = null; - const isAlive = async () => { - let pid; - try { - [pid] = await this.readJsonPromise(lockPath); - } catch { - return Date.now() - startTime < 500; - } - try { - process.kill(pid, 0); - return true; - } catch { - return false; - } - }; - while (fd === null) { - try { - fd = await this.openPromise(lockPath, `wx`); - } catch (error) { - if (error.code === `EEXIST`) { - if (!await isAlive()) { - try { - await this.unlinkPromise(lockPath); - continue; - } catch { - } - } - if (Date.now() - startTime < 60 * 1e3) { - await new Promise((resolve) => setTimeout(resolve, interval)); - } else { - throw new Error(`Couldn't acquire a lock in a reasonable time (via ${lockPath})`); - } - } else { - throw error; - } - } - } - await this.writePromise(fd, JSON.stringify([process.pid])); - try { - return await callback(); - } finally { - try { - await this.closePromise(fd); - await this.unlinkPromise(lockPath); - } catch { - } - } - } - async readJsonPromise(p) { - const content = await this.readFilePromise(p, `utf8`); - try { - return JSON.parse(content); - } catch (error) { - error.message += ` (in ${p})`; - throw error; - } - } - readJsonSync(p) { - const content = this.readFileSync(p, `utf8`); - try { - return JSON.parse(content); - } catch (error) { - error.message += ` (in ${p})`; - throw error; - } - } - async writeJsonPromise(p, data, { compact = false } = {}) { - const space = compact ? 0 : 2; - return await this.writeFilePromise(p, `${JSON.stringify(data, null, space)} -`); - } - writeJsonSync(p, data, { compact = false } = {}) { - const space = compact ? 0 : 2; - return this.writeFileSync(p, `${JSON.stringify(data, null, space)} -`); - } - async preserveTimePromise(p, cb) { - const stat = await this.lstatPromise(p); - const result = await cb(); - if (typeof result !== `undefined`) - p = result; - await this.lutimesPromise(p, stat.atime, stat.mtime); - } - async preserveTimeSync(p, cb) { - const stat = this.lstatSync(p); - const result = cb(); - if (typeof result !== `undefined`) - p = result; - this.lutimesSync(p, stat.atime, stat.mtime); - } -} -class BasePortableFakeFS extends FakeFS { - constructor() { - super(ppath); - } -} -function getEndOfLine(content) { - const matches = content.match(/\r?\n/g); - if (matches === null) - return os.EOL; - const crlf = matches.filter((nl) => nl === `\r -`).length; - const lf = matches.length - crlf; - return crlf > lf ? `\r -` : ` -`; -} -function normalizeLineEndings(originalContent, newContent) { - return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)); -} - -class ProxiedFS extends FakeFS { - getExtractHint(hints) { - return this.baseFs.getExtractHint(hints); - } - resolve(path) { - return this.mapFromBase(this.baseFs.resolve(this.mapToBase(path))); - } - getRealPath() { - return this.mapFromBase(this.baseFs.getRealPath()); - } - async openPromise(p, flags, mode) { - return this.baseFs.openPromise(this.mapToBase(p), flags, mode); - } - openSync(p, flags, mode) { - return this.baseFs.openSync(this.mapToBase(p), flags, mode); - } - async opendirPromise(p, opts) { - return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(p), opts), { path: p }); - } - opendirSync(p, opts) { - return Object.assign(this.baseFs.opendirSync(this.mapToBase(p), opts), { path: p }); - } - async readPromise(fd, buffer, offset, length, position) { - return await this.baseFs.readPromise(fd, buffer, offset, length, position); - } - readSync(fd, buffer, offset, length, position) { - return this.baseFs.readSync(fd, buffer, offset, length, position); - } - async writePromise(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return await this.baseFs.writePromise(fd, buffer, offset); - } else { - return await this.baseFs.writePromise(fd, buffer, offset, length, position); - } - } - writeSync(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return this.baseFs.writeSync(fd, buffer, offset); - } else { - return this.baseFs.writeSync(fd, buffer, offset, length, position); - } - } - async closePromise(fd) { - return this.baseFs.closePromise(fd); - } - closeSync(fd) { - this.baseFs.closeSync(fd); - } - createReadStream(p, opts) { - return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts); - } - createWriteStream(p, opts) { - return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts); - } - async realpathPromise(p) { - return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p))); - } - realpathSync(p) { - return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p))); - } - async existsPromise(p) { - return this.baseFs.existsPromise(this.mapToBase(p)); - } - existsSync(p) { - return this.baseFs.existsSync(this.mapToBase(p)); - } - accessSync(p, mode) { - return this.baseFs.accessSync(this.mapToBase(p), mode); - } - async accessPromise(p, mode) { - return this.baseFs.accessPromise(this.mapToBase(p), mode); - } - async statPromise(p, opts) { - return this.baseFs.statPromise(this.mapToBase(p), opts); - } - statSync(p, opts) { - return this.baseFs.statSync(this.mapToBase(p), opts); - } - async fstatPromise(fd, opts) { - return this.baseFs.fstatPromise(fd, opts); - } - fstatSync(fd, opts) { - return this.baseFs.fstatSync(fd, opts); - } - lstatPromise(p, opts) { - return this.baseFs.lstatPromise(this.mapToBase(p), opts); - } - lstatSync(p, opts) { - return this.baseFs.lstatSync(this.mapToBase(p), opts); - } - async fchmodPromise(fd, mask) { - return this.baseFs.fchmodPromise(fd, mask); - } - fchmodSync(fd, mask) { - return this.baseFs.fchmodSync(fd, mask); - } - async chmodPromise(p, mask) { - return this.baseFs.chmodPromise(this.mapToBase(p), mask); - } - chmodSync(p, mask) { - return this.baseFs.chmodSync(this.mapToBase(p), mask); - } - async fchownPromise(fd, uid, gid) { - return this.baseFs.fchownPromise(fd, uid, gid); - } - fchownSync(fd, uid, gid) { - return this.baseFs.fchownSync(fd, uid, gid); - } - async chownPromise(p, uid, gid) { - return this.baseFs.chownPromise(this.mapToBase(p), uid, gid); - } - chownSync(p, uid, gid) { - return this.baseFs.chownSync(this.mapToBase(p), uid, gid); - } - async renamePromise(oldP, newP) { - return this.baseFs.renamePromise(this.mapToBase(oldP), this.mapToBase(newP)); - } - renameSync(oldP, newP) { - return this.baseFs.renameSync(this.mapToBase(oldP), this.mapToBase(newP)); - } - async copyFilePromise(sourceP, destP, flags = 0) { - return this.baseFs.copyFilePromise(this.mapToBase(sourceP), this.mapToBase(destP), flags); - } - copyFileSync(sourceP, destP, flags = 0) { - return this.baseFs.copyFileSync(this.mapToBase(sourceP), this.mapToBase(destP), flags); - } - async appendFilePromise(p, content, opts) { - return this.baseFs.appendFilePromise(this.fsMapToBase(p), content, opts); - } - appendFileSync(p, content, opts) { - return this.baseFs.appendFileSync(this.fsMapToBase(p), content, opts); - } - async writeFilePromise(p, content, opts) { - return this.baseFs.writeFilePromise(this.fsMapToBase(p), content, opts); - } - writeFileSync(p, content, opts) { - return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts); - } - async unlinkPromise(p) { - return this.baseFs.unlinkPromise(this.mapToBase(p)); - } - unlinkSync(p) { - return this.baseFs.unlinkSync(this.mapToBase(p)); - } - async utimesPromise(p, atime, mtime) { - return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime); - } - utimesSync(p, atime, mtime) { - return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime); - } - async lutimesPromise(p, atime, mtime) { - return this.baseFs.lutimesPromise(this.mapToBase(p), atime, mtime); - } - lutimesSync(p, atime, mtime) { - return this.baseFs.lutimesSync(this.mapToBase(p), atime, mtime); - } - async mkdirPromise(p, opts) { - return this.baseFs.mkdirPromise(this.mapToBase(p), opts); - } - mkdirSync(p, opts) { - return this.baseFs.mkdirSync(this.mapToBase(p), opts); - } - async rmdirPromise(p, opts) { - return this.baseFs.rmdirPromise(this.mapToBase(p), opts); - } - rmdirSync(p, opts) { - return this.baseFs.rmdirSync(this.mapToBase(p), opts); - } - async rmPromise(p, opts) { - return this.baseFs.rmPromise(this.mapToBase(p), opts); - } - rmSync(p, opts) { - return this.baseFs.rmSync(this.mapToBase(p), opts); - } - async linkPromise(existingP, newP) { - return this.baseFs.linkPromise(this.mapToBase(existingP), this.mapToBase(newP)); - } - linkSync(existingP, newP) { - return this.baseFs.linkSync(this.mapToBase(existingP), this.mapToBase(newP)); - } - async symlinkPromise(target, p, type) { - const mappedP = this.mapToBase(p); - if (this.pathUtils.isAbsolute(target)) - return this.baseFs.symlinkPromise(this.mapToBase(target), mappedP, type); - const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); - const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); - return this.baseFs.symlinkPromise(mappedTarget, mappedP, type); - } - symlinkSync(target, p, type) { - const mappedP = this.mapToBase(p); - if (this.pathUtils.isAbsolute(target)) - return this.baseFs.symlinkSync(this.mapToBase(target), mappedP, type); - const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); - const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); - return this.baseFs.symlinkSync(mappedTarget, mappedP, type); - } - async readFilePromise(p, encoding) { - return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding); - } - readFileSync(p, encoding) { - return this.baseFs.readFileSync(this.fsMapToBase(p), encoding); - } - readdirPromise(p, opts) { - return this.baseFs.readdirPromise(this.mapToBase(p), opts); - } - readdirSync(p, opts) { - return this.baseFs.readdirSync(this.mapToBase(p), opts); - } - async readlinkPromise(p) { - return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(p))); - } - readlinkSync(p) { - return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(p))); - } - async truncatePromise(p, len) { - return this.baseFs.truncatePromise(this.mapToBase(p), len); - } - truncateSync(p, len) { - return this.baseFs.truncateSync(this.mapToBase(p), len); - } - async ftruncatePromise(fd, len) { - return this.baseFs.ftruncatePromise(fd, len); - } - ftruncateSync(fd, len) { - return this.baseFs.ftruncateSync(fd, len); - } - watch(p, a, b) { - return this.baseFs.watch( - this.mapToBase(p), - // @ts-expect-error - reason TBS - a, - b - ); - } - watchFile(p, a, b) { - return this.baseFs.watchFile( - this.mapToBase(p), - // @ts-expect-error - reason TBS - a, - b - ); - } - unwatchFile(p, cb) { - return this.baseFs.unwatchFile(this.mapToBase(p), cb); - } - fsMapToBase(p) { - if (typeof p === `number`) { - return p; - } else { - return this.mapToBase(p); - } - } -} - -function direntToPortable(dirent) { - const portableDirent = dirent; - if (typeof dirent.path === `string`) - portableDirent.path = npath.toPortablePath(dirent.path); - return portableDirent; -} -class NodeFS extends BasePortableFakeFS { - realFs; - constructor(realFs = fs__default.default) { - super(); - this.realFs = realFs; - } - getExtractHint() { - return false; - } - getRealPath() { - return PortablePath.root; - } - resolve(p) { - return ppath.resolve(p); - } - async openPromise(p, flags, mode) { - return await new Promise((resolve, reject) => { - this.realFs.open(npath.fromPortablePath(p), flags, mode, this.makeCallback(resolve, reject)); - }); - } - openSync(p, flags, mode) { - return this.realFs.openSync(npath.fromPortablePath(p), flags, mode); - } - async opendirPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (typeof opts !== `undefined`) { - this.realFs.opendir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.opendir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }).then((dir) => { - const dirWithFixedPath = dir; - Object.defineProperty(dirWithFixedPath, `path`, { - value: p, - configurable: true, - writable: true - }); - return dirWithFixedPath; - }); - } - opendirSync(p, opts) { - const dir = typeof opts !== `undefined` ? this.realFs.opendirSync(npath.fromPortablePath(p), opts) : this.realFs.opendirSync(npath.fromPortablePath(p)); - const dirWithFixedPath = dir; - Object.defineProperty(dirWithFixedPath, `path`, { - value: p, - configurable: true, - writable: true - }); - return dirWithFixedPath; - } - async readPromise(fd, buffer, offset = 0, length = 0, position = -1) { - return await new Promise((resolve, reject) => { - this.realFs.read(fd, buffer, offset, length, position, (error, bytesRead) => { - if (error) { - reject(error); - } else { - resolve(bytesRead); - } - }); - }); - } - readSync(fd, buffer, offset, length, position) { - return this.realFs.readSync(fd, buffer, offset, length, position); - } - async writePromise(fd, buffer, offset, length, position) { - return await new Promise((resolve, reject) => { - if (typeof buffer === `string`) { - return this.realFs.write(fd, buffer, offset, this.makeCallback(resolve, reject)); - } else { - return this.realFs.write(fd, buffer, offset, length, position, this.makeCallback(resolve, reject)); - } - }); - } - writeSync(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return this.realFs.writeSync(fd, buffer, offset); - } else { - return this.realFs.writeSync(fd, buffer, offset, length, position); - } - } - async closePromise(fd) { - await new Promise((resolve, reject) => { - this.realFs.close(fd, this.makeCallback(resolve, reject)); - }); - } - closeSync(fd) { - this.realFs.closeSync(fd); - } - createReadStream(p, opts) { - const realPath = p !== null ? npath.fromPortablePath(p) : p; - return this.realFs.createReadStream(realPath, opts); - } - createWriteStream(p, opts) { - const realPath = p !== null ? npath.fromPortablePath(p) : p; - return this.realFs.createWriteStream(realPath, opts); - } - async realpathPromise(p) { - return await new Promise((resolve, reject) => { - this.realFs.realpath(npath.fromPortablePath(p), {}, this.makeCallback(resolve, reject)); - }).then((path) => { - return npath.toPortablePath(path); - }); - } - realpathSync(p) { - return npath.toPortablePath(this.realFs.realpathSync(npath.fromPortablePath(p), {})); - } - async existsPromise(p) { - return await new Promise((resolve) => { - this.realFs.exists(npath.fromPortablePath(p), resolve); - }); - } - accessSync(p, mode) { - return this.realFs.accessSync(npath.fromPortablePath(p), mode); - } - async accessPromise(p, mode) { - return await new Promise((resolve, reject) => { - this.realFs.access(npath.fromPortablePath(p), mode, this.makeCallback(resolve, reject)); - }); - } - existsSync(p) { - return this.realFs.existsSync(npath.fromPortablePath(p)); - } - async statPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.stat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.stat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - statSync(p, opts) { - if (opts) { - return this.realFs.statSync(npath.fromPortablePath(p), opts); - } else { - return this.realFs.statSync(npath.fromPortablePath(p)); - } - } - async fstatPromise(fd, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.fstat(fd, opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.fstat(fd, this.makeCallback(resolve, reject)); - } - }); - } - fstatSync(fd, opts) { - if (opts) { - return this.realFs.fstatSync(fd, opts); - } else { - return this.realFs.fstatSync(fd); - } - } - async lstatPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.lstat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.lstat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - lstatSync(p, opts) { - if (opts) { - return this.realFs.lstatSync(npath.fromPortablePath(p), opts); - } else { - return this.realFs.lstatSync(npath.fromPortablePath(p)); - } - } - async fchmodPromise(fd, mask) { - return await new Promise((resolve, reject) => { - this.realFs.fchmod(fd, mask, this.makeCallback(resolve, reject)); - }); - } - fchmodSync(fd, mask) { - return this.realFs.fchmodSync(fd, mask); - } - async chmodPromise(p, mask) { - return await new Promise((resolve, reject) => { - this.realFs.chmod(npath.fromPortablePath(p), mask, this.makeCallback(resolve, reject)); - }); - } - chmodSync(p, mask) { - return this.realFs.chmodSync(npath.fromPortablePath(p), mask); - } - async fchownPromise(fd, uid, gid) { - return await new Promise((resolve, reject) => { - this.realFs.fchown(fd, uid, gid, this.makeCallback(resolve, reject)); - }); - } - fchownSync(fd, uid, gid) { - return this.realFs.fchownSync(fd, uid, gid); - } - async chownPromise(p, uid, gid) { - return await new Promise((resolve, reject) => { - this.realFs.chown(npath.fromPortablePath(p), uid, gid, this.makeCallback(resolve, reject)); - }); - } - chownSync(p, uid, gid) { - return this.realFs.chownSync(npath.fromPortablePath(p), uid, gid); - } - async renamePromise(oldP, newP) { - return await new Promise((resolve, reject) => { - this.realFs.rename(npath.fromPortablePath(oldP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); - }); - } - renameSync(oldP, newP) { - return this.realFs.renameSync(npath.fromPortablePath(oldP), npath.fromPortablePath(newP)); - } - async copyFilePromise(sourceP, destP, flags = 0) { - return await new Promise((resolve, reject) => { - this.realFs.copyFile(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags, this.makeCallback(resolve, reject)); - }); - } - copyFileSync(sourceP, destP, flags = 0) { - return this.realFs.copyFileSync(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags); - } - async appendFilePromise(p, content, opts) { - return await new Promise((resolve, reject) => { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.appendFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.appendFile(fsNativePath, content, this.makeCallback(resolve, reject)); - } - }); - } - appendFileSync(p, content, opts) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.appendFileSync(fsNativePath, content, opts); - } else { - this.realFs.appendFileSync(fsNativePath, content); - } - } - async writeFilePromise(p, content, opts) { - return await new Promise((resolve, reject) => { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.writeFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.writeFile(fsNativePath, content, this.makeCallback(resolve, reject)); - } - }); - } - writeFileSync(p, content, opts) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.writeFileSync(fsNativePath, content, opts); - } else { - this.realFs.writeFileSync(fsNativePath, content); - } - } - async unlinkPromise(p) { - return await new Promise((resolve, reject) => { - this.realFs.unlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - }); - } - unlinkSync(p) { - return this.realFs.unlinkSync(npath.fromPortablePath(p)); - } - async utimesPromise(p, atime, mtime) { - return await new Promise((resolve, reject) => { - this.realFs.utimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); - }); - } - utimesSync(p, atime, mtime) { - this.realFs.utimesSync(npath.fromPortablePath(p), atime, mtime); - } - async lutimesPromise(p, atime, mtime) { - return await new Promise((resolve, reject) => { - this.realFs.lutimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); - }); - } - lutimesSync(p, atime, mtime) { - this.realFs.lutimesSync(npath.fromPortablePath(p), atime, mtime); - } - async mkdirPromise(p, opts) { - return await new Promise((resolve, reject) => { - this.realFs.mkdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - }); - } - mkdirSync(p, opts) { - return this.realFs.mkdirSync(npath.fromPortablePath(p), opts); - } - async rmdirPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.rmdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.rmdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - rmdirSync(p, opts) { - return this.realFs.rmdirSync(npath.fromPortablePath(p), opts); - } - async rmPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.rm(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.rm(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - rmSync(p, opts) { - return this.realFs.rmSync(npath.fromPortablePath(p), opts); - } - async linkPromise(existingP, newP) { - return await new Promise((resolve, reject) => { - this.realFs.link(npath.fromPortablePath(existingP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); - }); - } - linkSync(existingP, newP) { - return this.realFs.linkSync(npath.fromPortablePath(existingP), npath.fromPortablePath(newP)); - } - async symlinkPromise(target, p, type) { - return await new Promise((resolve, reject) => { - this.realFs.symlink(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type, this.makeCallback(resolve, reject)); - }); - } - symlinkSync(target, p, type) { - return this.realFs.symlinkSync(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type); - } - async readFilePromise(p, encoding) { - return await new Promise((resolve, reject) => { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - this.realFs.readFile(fsNativePath, encoding, this.makeCallback(resolve, reject)); - }); - } - readFileSync(p, encoding) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - return this.realFs.readFileSync(fsNativePath, encoding); - } - async readdirPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - if (opts.recursive && process.platform === `win32`) { - if (opts.withFileTypes) { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(direntToPortable)), reject)); - } else { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(npath.toPortablePath)), reject)); - } - } else { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } - } else { - this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - readdirSync(p, opts) { - if (opts) { - if (opts.recursive && process.platform === `win32`) { - if (opts.withFileTypes) { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(direntToPortable); - } else { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(npath.toPortablePath); - } - } else { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts); - } - } else { - return this.realFs.readdirSync(npath.fromPortablePath(p)); - } - } - async readlinkPromise(p) { - return await new Promise((resolve, reject) => { - this.realFs.readlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - }).then((path) => { - return npath.toPortablePath(path); - }); - } - readlinkSync(p) { - return npath.toPortablePath(this.realFs.readlinkSync(npath.fromPortablePath(p))); - } - async truncatePromise(p, len) { - return await new Promise((resolve, reject) => { - this.realFs.truncate(npath.fromPortablePath(p), len, this.makeCallback(resolve, reject)); - }); - } - truncateSync(p, len) { - return this.realFs.truncateSync(npath.fromPortablePath(p), len); - } - async ftruncatePromise(fd, len) { - return await new Promise((resolve, reject) => { - this.realFs.ftruncate(fd, len, this.makeCallback(resolve, reject)); - }); - } - ftruncateSync(fd, len) { - return this.realFs.ftruncateSync(fd, len); - } - watch(p, a, b) { - return this.realFs.watch( - npath.fromPortablePath(p), - // @ts-expect-error - reason TBS - a, - b - ); - } - watchFile(p, a, b) { - return this.realFs.watchFile( - npath.fromPortablePath(p), - // @ts-expect-error - reason TBS - a, - b - ); - } - unwatchFile(p, cb) { - return this.realFs.unwatchFile(npath.fromPortablePath(p), cb); - } - makeCallback(resolve, reject) { - return (err, result) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }; - } -} - -const MOUNT_MASK = 4278190080; -class MountFS extends BasePortableFakeFS { - baseFs; - mountInstances; - fdMap = /* @__PURE__ */ new Map(); - nextFd = 3; - factoryPromise; - factorySync; - filter; - getMountPoint; - magic; - maxAge; - maxOpenFiles; - typeCheck; - isMount = /* @__PURE__ */ new Set(); - notMount = /* @__PURE__ */ new Set(); - realPaths = /* @__PURE__ */ new Map(); - constructor({ baseFs = new NodeFS(), filter = null, magicByte = 42, maxOpenFiles = Infinity, useCache = true, maxAge = 5e3, typeCheck = fs.constants.S_IFREG, getMountPoint, factoryPromise, factorySync }) { - if (Math.floor(magicByte) !== magicByte || !(magicByte > 1 && magicByte <= 127)) - throw new Error(`The magic byte must be set to a round value between 1 and 127 included`); - super(); - this.baseFs = baseFs; - this.mountInstances = useCache ? /* @__PURE__ */ new Map() : null; - this.factoryPromise = factoryPromise; - this.factorySync = factorySync; - this.filter = filter; - this.getMountPoint = getMountPoint; - this.magic = magicByte << 24; - this.maxAge = maxAge; - this.maxOpenFiles = maxOpenFiles; - this.typeCheck = typeCheck; - } - getExtractHint(hints) { - return this.baseFs.getExtractHint(hints); - } - getRealPath() { - return this.baseFs.getRealPath(); - } - saveAndClose() { - unwatchAllFiles(this); - if (this.mountInstances) { - for (const [path, { childFs }] of this.mountInstances.entries()) { - childFs.saveAndClose?.(); - this.mountInstances.delete(path); - } - } - } - discardAndClose() { - unwatchAllFiles(this); - if (this.mountInstances) { - for (const [path, { childFs }] of this.mountInstances.entries()) { - childFs.discardAndClose?.(); - this.mountInstances.delete(path); - } - } - } - resolve(p) { - return this.baseFs.resolve(p); - } - remapFd(mountFs, fd) { - const remappedFd = this.nextFd++ | this.magic; - this.fdMap.set(remappedFd, [mountFs, fd]); - return remappedFd; - } - async openPromise(p, flags, mode) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.openPromise(p, flags, mode); - }, async (mountFs, { subPath }) => { - return this.remapFd(mountFs, await mountFs.openPromise(subPath, flags, mode)); - }); - } - openSync(p, flags, mode) { - return this.makeCallSync(p, () => { - return this.baseFs.openSync(p, flags, mode); - }, (mountFs, { subPath }) => { - return this.remapFd(mountFs, mountFs.openSync(subPath, flags, mode)); - }); - } - async opendirPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.opendirPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.opendirPromise(subPath, opts); - }, { - requireSubpath: false - }); - } - opendirSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.opendirSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.opendirSync(subPath, opts); - }, { - requireSubpath: false - }); - } - async readPromise(fd, buffer, offset, length, position) { - if ((fd & MOUNT_MASK) !== this.magic) - return await this.baseFs.readPromise(fd, buffer, offset, length, position); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`read`); - const [mountFs, realFd] = entry; - return await mountFs.readPromise(realFd, buffer, offset, length, position); - } - readSync(fd, buffer, offset, length, position) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.readSync(fd, buffer, offset, length, position); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`readSync`); - const [mountFs, realFd] = entry; - return mountFs.readSync(realFd, buffer, offset, length, position); - } - async writePromise(fd, buffer, offset, length, position) { - if ((fd & MOUNT_MASK) !== this.magic) { - if (typeof buffer === `string`) { - return await this.baseFs.writePromise(fd, buffer, offset); - } else { - return await this.baseFs.writePromise(fd, buffer, offset, length, position); - } - } - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`write`); - const [mountFs, realFd] = entry; - if (typeof buffer === `string`) { - return await mountFs.writePromise(realFd, buffer, offset); - } else { - return await mountFs.writePromise(realFd, buffer, offset, length, position); - } - } - writeSync(fd, buffer, offset, length, position) { - if ((fd & MOUNT_MASK) !== this.magic) { - if (typeof buffer === `string`) { - return this.baseFs.writeSync(fd, buffer, offset); - } else { - return this.baseFs.writeSync(fd, buffer, offset, length, position); - } - } - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`writeSync`); - const [mountFs, realFd] = entry; - if (typeof buffer === `string`) { - return mountFs.writeSync(realFd, buffer, offset); - } else { - return mountFs.writeSync(realFd, buffer, offset, length, position); - } - } - async closePromise(fd) { - if ((fd & MOUNT_MASK) !== this.magic) - return await this.baseFs.closePromise(fd); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`close`); - this.fdMap.delete(fd); - const [mountFs, realFd] = entry; - return await mountFs.closePromise(realFd); - } - closeSync(fd) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.closeSync(fd); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`closeSync`); - this.fdMap.delete(fd); - const [mountFs, realFd] = entry; - return mountFs.closeSync(realFd); - } - createReadStream(p, opts) { - if (p === null) - return this.baseFs.createReadStream(p, opts); - return this.makeCallSync(p, () => { - return this.baseFs.createReadStream(p, opts); - }, (mountFs, { archivePath, subPath }) => { - const stream = mountFs.createReadStream(subPath, opts); - stream.path = npath.fromPortablePath(this.pathUtils.join(archivePath, subPath)); - return stream; - }); - } - createWriteStream(p, opts) { - if (p === null) - return this.baseFs.createWriteStream(p, opts); - return this.makeCallSync(p, () => { - return this.baseFs.createWriteStream(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.createWriteStream(subPath, opts); - }); - } - async realpathPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.realpathPromise(p); - }, async (mountFs, { archivePath, subPath }) => { - let realArchivePath = this.realPaths.get(archivePath); - if (typeof realArchivePath === `undefined`) { - realArchivePath = await this.baseFs.realpathPromise(archivePath); - this.realPaths.set(archivePath, realArchivePath); - } - return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, await mountFs.realpathPromise(subPath))); - }); - } - realpathSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.realpathSync(p); - }, (mountFs, { archivePath, subPath }) => { - let realArchivePath = this.realPaths.get(archivePath); - if (typeof realArchivePath === `undefined`) { - realArchivePath = this.baseFs.realpathSync(archivePath); - this.realPaths.set(archivePath, realArchivePath); - } - return this.pathUtils.join(realArchivePath, this.pathUtils.relative(PortablePath.root, mountFs.realpathSync(subPath))); - }); - } - async existsPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.existsPromise(p); - }, async (mountFs, { subPath }) => { - return await mountFs.existsPromise(subPath); - }); - } - existsSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.existsSync(p); - }, (mountFs, { subPath }) => { - return mountFs.existsSync(subPath); - }); - } - async accessPromise(p, mode) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.accessPromise(p, mode); - }, async (mountFs, { subPath }) => { - return await mountFs.accessPromise(subPath, mode); - }); - } - accessSync(p, mode) { - return this.makeCallSync(p, () => { - return this.baseFs.accessSync(p, mode); - }, (mountFs, { subPath }) => { - return mountFs.accessSync(subPath, mode); - }); - } - async statPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.statPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.statPromise(subPath, opts); - }); - } - statSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.statSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.statSync(subPath, opts); - }); - } - async fstatPromise(fd, opts) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fstatPromise(fd, opts); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fstat`); - const [mountFs, realFd] = entry; - return mountFs.fstatPromise(realFd, opts); - } - fstatSync(fd, opts) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fstatSync(fd, opts); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fstatSync`); - const [mountFs, realFd] = entry; - return mountFs.fstatSync(realFd, opts); - } - async lstatPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.lstatPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.lstatPromise(subPath, opts); - }); - } - lstatSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.lstatSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.lstatSync(subPath, opts); - }); - } - async fchmodPromise(fd, mask) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fchmodPromise(fd, mask); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fchmod`); - const [mountFs, realFd] = entry; - return mountFs.fchmodPromise(realFd, mask); - } - fchmodSync(fd, mask) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fchmodSync(fd, mask); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fchmodSync`); - const [mountFs, realFd] = entry; - return mountFs.fchmodSync(realFd, mask); - } - async chmodPromise(p, mask) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.chmodPromise(p, mask); - }, async (mountFs, { subPath }) => { - return await mountFs.chmodPromise(subPath, mask); - }); - } - chmodSync(p, mask) { - return this.makeCallSync(p, () => { - return this.baseFs.chmodSync(p, mask); - }, (mountFs, { subPath }) => { - return mountFs.chmodSync(subPath, mask); - }); - } - async fchownPromise(fd, uid, gid) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fchownPromise(fd, uid, gid); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fchown`); - const [zipFs, realFd] = entry; - return zipFs.fchownPromise(realFd, uid, gid); - } - fchownSync(fd, uid, gid) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.fchownSync(fd, uid, gid); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fchownSync`); - const [zipFs, realFd] = entry; - return zipFs.fchownSync(realFd, uid, gid); - } - async chownPromise(p, uid, gid) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.chownPromise(p, uid, gid); - }, async (mountFs, { subPath }) => { - return await mountFs.chownPromise(subPath, uid, gid); - }); - } - chownSync(p, uid, gid) { - return this.makeCallSync(p, () => { - return this.baseFs.chownSync(p, uid, gid); - }, (mountFs, { subPath }) => { - return mountFs.chownSync(subPath, uid, gid); - }); - } - async renamePromise(oldP, newP) { - return await this.makeCallPromise(oldP, async () => { - return await this.makeCallPromise(newP, async () => { - return await this.baseFs.renamePromise(oldP, newP); - }, async () => { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); - }); - }, async (mountFsO, { subPath: subPathO }) => { - return await this.makeCallPromise(newP, async () => { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); - }, async (mountFsN, { subPath: subPathN }) => { - if (mountFsO !== mountFsN) { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); - } else { - return await mountFsO.renamePromise(subPathO, subPathN); - } - }); - }); - } - renameSync(oldP, newP) { - return this.makeCallSync(oldP, () => { - return this.makeCallSync(newP, () => { - return this.baseFs.renameSync(oldP, newP); - }, () => { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); - }); - }, (mountFsO, { subPath: subPathO }) => { - return this.makeCallSync(newP, () => { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); - }, (mountFsN, { subPath: subPathN }) => { - if (mountFsO !== mountFsN) { - throw Object.assign(new Error(`EEXDEV: cross-device link not permitted`), { code: `EEXDEV` }); - } else { - return mountFsO.renameSync(subPathO, subPathN); - } - }); - }); - } - async copyFilePromise(sourceP, destP, flags = 0) { - const fallback = async (sourceFs, sourceP2, destFs, destP2) => { - if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) - throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP2}' -> ${destP2}'`), { code: `EXDEV` }); - if (flags & fs.constants.COPYFILE_EXCL && await this.existsPromise(sourceP2)) - throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EEXIST` }); - let content; - try { - content = await sourceFs.readFilePromise(sourceP2); - } catch { - throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EINVAL` }); - } - await destFs.writeFilePromise(destP2, content); - }; - return await this.makeCallPromise(sourceP, async () => { - return await this.makeCallPromise(destP, async () => { - return await this.baseFs.copyFilePromise(sourceP, destP, flags); - }, async (mountFsD, { subPath: subPathD }) => { - return await fallback(this.baseFs, sourceP, mountFsD, subPathD); - }); - }, async (mountFsS, { subPath: subPathS }) => { - return await this.makeCallPromise(destP, async () => { - return await fallback(mountFsS, subPathS, this.baseFs, destP); - }, async (mountFsD, { subPath: subPathD }) => { - if (mountFsS !== mountFsD) { - return await fallback(mountFsS, subPathS, mountFsD, subPathD); - } else { - return await mountFsS.copyFilePromise(subPathS, subPathD, flags); - } - }); - }); - } - copyFileSync(sourceP, destP, flags = 0) { - const fallback = (sourceFs, sourceP2, destFs, destP2) => { - if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) - throw Object.assign(new Error(`EXDEV: cross-device clone not permitted, copyfile '${sourceP2}' -> ${destP2}'`), { code: `EXDEV` }); - if (flags & fs.constants.COPYFILE_EXCL && this.existsSync(sourceP2)) - throw Object.assign(new Error(`EEXIST: file already exists, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EEXIST` }); - let content; - try { - content = sourceFs.readFileSync(sourceP2); - } catch { - throw Object.assign(new Error(`EINVAL: invalid argument, copyfile '${sourceP2}' -> '${destP2}'`), { code: `EINVAL` }); - } - destFs.writeFileSync(destP2, content); - }; - return this.makeCallSync(sourceP, () => { - return this.makeCallSync(destP, () => { - return this.baseFs.copyFileSync(sourceP, destP, flags); - }, (mountFsD, { subPath: subPathD }) => { - return fallback(this.baseFs, sourceP, mountFsD, subPathD); - }); - }, (mountFsS, { subPath: subPathS }) => { - return this.makeCallSync(destP, () => { - return fallback(mountFsS, subPathS, this.baseFs, destP); - }, (mountFsD, { subPath: subPathD }) => { - if (mountFsS !== mountFsD) { - return fallback(mountFsS, subPathS, mountFsD, subPathD); - } else { - return mountFsS.copyFileSync(subPathS, subPathD, flags); - } - }); - }); - } - async appendFilePromise(p, content, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.appendFilePromise(p, content, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.appendFilePromise(subPath, content, opts); - }); - } - appendFileSync(p, content, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.appendFileSync(p, content, opts); - }, (mountFs, { subPath }) => { - return mountFs.appendFileSync(subPath, content, opts); - }); - } - async writeFilePromise(p, content, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.writeFilePromise(p, content, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.writeFilePromise(subPath, content, opts); - }); - } - writeFileSync(p, content, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.writeFileSync(p, content, opts); - }, (mountFs, { subPath }) => { - return mountFs.writeFileSync(subPath, content, opts); - }); - } - async unlinkPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.unlinkPromise(p); - }, async (mountFs, { subPath }) => { - return await mountFs.unlinkPromise(subPath); - }); - } - unlinkSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.unlinkSync(p); - }, (mountFs, { subPath }) => { - return mountFs.unlinkSync(subPath); - }); - } - async utimesPromise(p, atime, mtime) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.utimesPromise(p, atime, mtime); - }, async (mountFs, { subPath }) => { - return await mountFs.utimesPromise(subPath, atime, mtime); - }); - } - utimesSync(p, atime, mtime) { - return this.makeCallSync(p, () => { - return this.baseFs.utimesSync(p, atime, mtime); - }, (mountFs, { subPath }) => { - return mountFs.utimesSync(subPath, atime, mtime); - }); - } - async lutimesPromise(p, atime, mtime) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.lutimesPromise(p, atime, mtime); - }, async (mountFs, { subPath }) => { - return await mountFs.lutimesPromise(subPath, atime, mtime); - }); - } - lutimesSync(p, atime, mtime) { - return this.makeCallSync(p, () => { - return this.baseFs.lutimesSync(p, atime, mtime); - }, (mountFs, { subPath }) => { - return mountFs.lutimesSync(subPath, atime, mtime); - }); - } - async mkdirPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.mkdirPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.mkdirPromise(subPath, opts); - }); - } - mkdirSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.mkdirSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.mkdirSync(subPath, opts); - }); - } - async rmdirPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.rmdirPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.rmdirPromise(subPath, opts); - }); - } - rmdirSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.rmdirSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.rmdirSync(subPath, opts); - }); - } - async rmPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.rmPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.rmPromise(subPath, opts); - }); - } - rmSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.rmSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.rmSync(subPath, opts); - }); - } - async linkPromise(existingP, newP) { - return await this.makeCallPromise(newP, async () => { - return await this.baseFs.linkPromise(existingP, newP); - }, async (mountFs, { subPath }) => { - return await mountFs.linkPromise(existingP, subPath); - }); - } - linkSync(existingP, newP) { - return this.makeCallSync(newP, () => { - return this.baseFs.linkSync(existingP, newP); - }, (mountFs, { subPath }) => { - return mountFs.linkSync(existingP, subPath); - }); - } - async symlinkPromise(target, p, type) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.symlinkPromise(target, p, type); - }, async (mountFs, { subPath }) => { - return await mountFs.symlinkPromise(target, subPath); - }); - } - symlinkSync(target, p, type) { - return this.makeCallSync(p, () => { - return this.baseFs.symlinkSync(target, p, type); - }, (mountFs, { subPath }) => { - return mountFs.symlinkSync(target, subPath); - }); - } - async readFilePromise(p, encoding) { - return this.makeCallPromise(p, async () => { - return await this.baseFs.readFilePromise(p, encoding); - }, async (mountFs, { subPath }) => { - return await mountFs.readFilePromise(subPath, encoding); - }); - } - readFileSync(p, encoding) { - return this.makeCallSync(p, () => { - return this.baseFs.readFileSync(p, encoding); - }, (mountFs, { subPath }) => { - return mountFs.readFileSync(subPath, encoding); - }); - } - async readdirPromise(p, opts) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.readdirPromise(p, opts); - }, async (mountFs, { subPath }) => { - return await mountFs.readdirPromise(subPath, opts); - }, { - requireSubpath: false - }); - } - readdirSync(p, opts) { - return this.makeCallSync(p, () => { - return this.baseFs.readdirSync(p, opts); - }, (mountFs, { subPath }) => { - return mountFs.readdirSync(subPath, opts); - }, { - requireSubpath: false - }); - } - async readlinkPromise(p) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.readlinkPromise(p); - }, async (mountFs, { subPath }) => { - return await mountFs.readlinkPromise(subPath); - }); - } - readlinkSync(p) { - return this.makeCallSync(p, () => { - return this.baseFs.readlinkSync(p); - }, (mountFs, { subPath }) => { - return mountFs.readlinkSync(subPath); - }); - } - async truncatePromise(p, len) { - return await this.makeCallPromise(p, async () => { - return await this.baseFs.truncatePromise(p, len); - }, async (mountFs, { subPath }) => { - return await mountFs.truncatePromise(subPath, len); - }); - } - truncateSync(p, len) { - return this.makeCallSync(p, () => { - return this.baseFs.truncateSync(p, len); - }, (mountFs, { subPath }) => { - return mountFs.truncateSync(subPath, len); - }); - } - async ftruncatePromise(fd, len) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.ftruncatePromise(fd, len); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`ftruncate`); - const [mountFs, realFd] = entry; - return mountFs.ftruncatePromise(realFd, len); - } - ftruncateSync(fd, len) { - if ((fd & MOUNT_MASK) !== this.magic) - return this.baseFs.ftruncateSync(fd, len); - const entry = this.fdMap.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`ftruncateSync`); - const [mountFs, realFd] = entry; - return mountFs.ftruncateSync(realFd, len); - } - watch(p, a, b) { - return this.makeCallSync(p, () => { - return this.baseFs.watch( - p, - // @ts-expect-error - reason TBS - a, - b - ); - }, (mountFs, { subPath }) => { - return mountFs.watch( - subPath, - // @ts-expect-error - reason TBS - a, - b - ); - }); - } - watchFile(p, a, b) { - return this.makeCallSync(p, () => { - return this.baseFs.watchFile( - p, - // @ts-expect-error - reason TBS - a, - b - ); - }, () => { - return watchFile(this, p, a, b); - }); - } - unwatchFile(p, cb) { - return this.makeCallSync(p, () => { - return this.baseFs.unwatchFile(p, cb); - }, () => { - return unwatchFile(this, p, cb); - }); - } - async makeCallPromise(p, discard, accept, { requireSubpath = true } = {}) { - if (typeof p !== `string`) - return await discard(); - const normalizedP = this.resolve(p); - const mountInfo = this.findMount(normalizedP); - if (!mountInfo) - return await discard(); - if (requireSubpath && mountInfo.subPath === `/`) - return await discard(); - return await this.getMountPromise(mountInfo.archivePath, async (mountFs) => await accept(mountFs, mountInfo)); - } - makeCallSync(p, discard, accept, { requireSubpath = true } = {}) { - if (typeof p !== `string`) - return discard(); - const normalizedP = this.resolve(p); - const mountInfo = this.findMount(normalizedP); - if (!mountInfo) - return discard(); - if (requireSubpath && mountInfo.subPath === `/`) - return discard(); - return this.getMountSync(mountInfo.archivePath, (mountFs) => accept(mountFs, mountInfo)); - } - findMount(p) { - if (this.filter && !this.filter.test(p)) - return null; - let filePath = ``; - while (true) { - const pathPartWithArchive = p.substring(filePath.length); - const mountPoint = this.getMountPoint(pathPartWithArchive, filePath); - if (!mountPoint) - return null; - filePath = this.pathUtils.join(filePath, mountPoint); - if (!this.isMount.has(filePath)) { - if (this.notMount.has(filePath)) - continue; - try { - if (this.typeCheck !== null && (this.baseFs.statSync(filePath).mode & fs.constants.S_IFMT) !== this.typeCheck) { - this.notMount.add(filePath); - continue; - } - } catch { - return null; - } - this.isMount.add(filePath); - } - return { - archivePath: filePath, - subPath: this.pathUtils.join(PortablePath.root, p.substring(filePath.length)) - }; - } - } - limitOpenFilesTimeout = null; - limitOpenFiles(max) { - if (this.mountInstances === null) - return; - const now = Date.now(); - let nextExpiresAt = now + this.maxAge; - let closeCount = max === null ? 0 : this.mountInstances.size - max; - for (const [path, { childFs, expiresAt, refCount }] of this.mountInstances.entries()) { - if (refCount !== 0 || childFs.hasOpenFileHandles?.()) { - continue; - } else if (now >= expiresAt) { - childFs.saveAndClose?.(); - this.mountInstances.delete(path); - closeCount -= 1; - continue; - } else if (max === null || closeCount <= 0) { - nextExpiresAt = expiresAt; - break; - } - childFs.saveAndClose?.(); - this.mountInstances.delete(path); - closeCount -= 1; - } - if (this.limitOpenFilesTimeout === null && (max === null && this.mountInstances.size > 0 || max !== null) && isFinite(nextExpiresAt)) { - this.limitOpenFilesTimeout = setTimeout(() => { - this.limitOpenFilesTimeout = null; - this.limitOpenFiles(null); - }, nextExpiresAt - now).unref(); - } - } - async getMountPromise(p, accept) { - if (this.mountInstances) { - let cachedMountFs = this.mountInstances.get(p); - if (!cachedMountFs) { - const createFsInstance = await this.factoryPromise(this.baseFs, p); - cachedMountFs = this.mountInstances.get(p); - if (!cachedMountFs) { - cachedMountFs = { - childFs: createFsInstance(), - expiresAt: 0, - refCount: 0 - }; - } - } - this.mountInstances.delete(p); - this.limitOpenFiles(this.maxOpenFiles - 1); - this.mountInstances.set(p, cachedMountFs); - cachedMountFs.expiresAt = Date.now() + this.maxAge; - cachedMountFs.refCount += 1; - try { - return await accept(cachedMountFs.childFs); - } finally { - cachedMountFs.refCount -= 1; - } - } else { - const mountFs = (await this.factoryPromise(this.baseFs, p))(); - try { - return await accept(mountFs); - } finally { - mountFs.saveAndClose?.(); - } - } - } - getMountSync(p, accept) { - if (this.mountInstances) { - let cachedMountFs = this.mountInstances.get(p); - if (!cachedMountFs) { - cachedMountFs = { - childFs: this.factorySync(this.baseFs, p), - expiresAt: 0, - refCount: 0 - }; - } - this.mountInstances.delete(p); - this.limitOpenFiles(this.maxOpenFiles - 1); - this.mountInstances.set(p, cachedMountFs); - cachedMountFs.expiresAt = Date.now() + this.maxAge; - return accept(cachedMountFs.childFs); - } else { - const childFs = this.factorySync(this.baseFs, p); - try { - return accept(childFs); - } finally { - childFs.saveAndClose?.(); - } - } - } -} - -class PosixFS extends ProxiedFS { - baseFs; - constructor(baseFs) { - super(npath); - this.baseFs = baseFs; - } - mapFromBase(path) { - return npath.fromPortablePath(path); - } - mapToBase(path) { - return npath.toPortablePath(path); - } -} - -const NUMBER_REGEXP = /^[0-9]+$/; -const VIRTUAL_REGEXP = /^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/; -const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/; -class VirtualFS extends ProxiedFS { - baseFs; - static makeVirtualPath(base, component, to) { - if (ppath.basename(base) !== `__virtual__`) - throw new Error(`Assertion failed: Virtual folders must be named "__virtual__"`); - if (!ppath.basename(component).match(VALID_COMPONENT)) - throw new Error(`Assertion failed: Virtual components must be ended by an hexadecimal hash`); - const target = ppath.relative(ppath.dirname(base), to); - const segments = target.split(`/`); - let depth = 0; - while (depth < segments.length && segments[depth] === `..`) - depth += 1; - const finalSegments = segments.slice(depth); - const fullVirtualPath = ppath.join(base, component, String(depth), ...finalSegments); - return fullVirtualPath; - } - static resolveVirtual(p) { - const match = p.match(VIRTUAL_REGEXP); - if (!match || !match[3] && match[5]) - return p; - const target = ppath.dirname(match[1]); - if (!match[3] || !match[4]) - return target; - const isnum = NUMBER_REGEXP.test(match[4]); - if (!isnum) - return p; - const depth = Number(match[4]); - const backstep = `../`.repeat(depth); - const subpath = match[5] || `.`; - return VirtualFS.resolveVirtual(ppath.join(target, backstep, subpath)); - } - constructor({ baseFs = new NodeFS() } = {}) { - super(ppath); - this.baseFs = baseFs; - } - getExtractHint(hints) { - return this.baseFs.getExtractHint(hints); - } - getRealPath() { - return this.baseFs.getRealPath(); - } - realpathSync(p) { - const match = p.match(VIRTUAL_REGEXP); - if (!match) - return this.baseFs.realpathSync(p); - if (!match[5]) - return p; - const realpath = this.baseFs.realpathSync(this.mapToBase(p)); - return VirtualFS.makeVirtualPath(match[1], match[3], realpath); - } - async realpathPromise(p) { - const match = p.match(VIRTUAL_REGEXP); - if (!match) - return await this.baseFs.realpathPromise(p); - if (!match[5]) - return p; - const realpath = await this.baseFs.realpathPromise(this.mapToBase(p)); - return VirtualFS.makeVirtualPath(match[1], match[3], realpath); - } - mapToBase(p) { - if (p === ``) - return p; - if (this.pathUtils.isAbsolute(p)) - return VirtualFS.resolveVirtual(p); - const resolvedRoot = VirtualFS.resolveVirtual(this.baseFs.resolve(PortablePath.dot)); - const resolvedP = VirtualFS.resolveVirtual(this.baseFs.resolve(p)); - return ppath.relative(resolvedRoot, resolvedP) || PortablePath.dot; - } - mapFromBase(p) { - return p; - } -} - -const URL = Number(process.versions.node.split('.', 1)[0]) < 20 ? url.URL : globalThis.URL; - -class NodePathFS extends ProxiedFS { - baseFs; - constructor(baseFs) { - super(npath); - this.baseFs = baseFs; - } - mapFromBase(path) { - return path; - } - mapToBase(path) { - if (typeof path === `string`) - return path; - if (path instanceof URL) - return url.fileURLToPath(path); - if (Buffer.isBuffer(path)) { - const str = path.toString(); - if (!isUtf8(path, str)) - throw new Error(`Non-utf8 buffers are not supported at the moment. Please upvote the following issue if you encounter this error: https://github.com/yarnpkg/berry/issues/4942`); - return str; - } - throw new Error(`Unsupported path type: ${nodeUtils.inspect(path)}`); - } -} -function isUtf8(buf, str) { - if (typeof buffer__default.default.isUtf8 !== `undefined`) - return buffer__default.default.isUtf8(buf); - return Buffer.byteLength(str) === buf.byteLength; -} - -const kBaseFs = Symbol(`kBaseFs`); -const kFd = Symbol(`kFd`); -const kClosePromise = Symbol(`kClosePromise`); -const kCloseResolve = Symbol(`kCloseResolve`); -const kCloseReject = Symbol(`kCloseReject`); -const kRefs = Symbol(`kRefs`); -const kRef = Symbol(`kRef`); -const kUnref = Symbol(`kUnref`); -class FileHandle { - [kBaseFs]; - [kFd]; - [kRefs] = 1; - [kClosePromise] = void 0; - [kCloseResolve] = void 0; - [kCloseReject] = void 0; - constructor(fd, baseFs) { - this[kBaseFs] = baseFs; - this[kFd] = fd; - } - get fd() { - return this[kFd]; - } - async appendFile(data, options) { - try { - this[kRef](this.appendFile); - const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; - return await this[kBaseFs].appendFilePromise(this.fd, data, encoding ? { encoding } : void 0); - } finally { - this[kUnref](); - } - } - async chown(uid, gid) { - try { - this[kRef](this.chown); - return await this[kBaseFs].fchownPromise(this.fd, uid, gid); - } finally { - this[kUnref](); - } - } - async chmod(mode) { - try { - this[kRef](this.chmod); - return await this[kBaseFs].fchmodPromise(this.fd, mode); - } finally { - this[kUnref](); - } - } - createReadStream(options) { - return this[kBaseFs].createReadStream(null, { ...options, fd: this.fd }); - } - createWriteStream(options) { - return this[kBaseFs].createWriteStream(null, { ...options, fd: this.fd }); - } - // FIXME: Missing FakeFS version - datasync() { - throw new Error(`Method not implemented.`); - } - // FIXME: Missing FakeFS version - sync() { - throw new Error(`Method not implemented.`); - } - async read(bufferOrOptions, offset, length, position) { - try { - this[kRef](this.read); - let buffer; - if (!Buffer.isBuffer(bufferOrOptions)) { - bufferOrOptions ??= {}; - buffer = bufferOrOptions.buffer ?? Buffer.alloc(16384); - offset = bufferOrOptions.offset || 0; - length = bufferOrOptions.length ?? buffer.byteLength; - position = bufferOrOptions.position ?? null; - } else { - buffer = bufferOrOptions; - } - offset ??= 0; - length ??= 0; - if (length === 0) { - return { - bytesRead: length, - buffer - }; - } - const bytesRead = await this[kBaseFs].readPromise(this.fd, buffer, offset, length, position); - return { - bytesRead, - buffer - }; - } finally { - this[kUnref](); - } - } - async readFile(options) { - try { - this[kRef](this.readFile); - const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; - return await this[kBaseFs].readFilePromise(this.fd, encoding); - } finally { - this[kUnref](); - } - } - readLines(options) { - return readline.createInterface({ - input: this.createReadStream(options), - crlfDelay: Infinity - }); - } - async stat(opts) { - try { - this[kRef](this.stat); - return await this[kBaseFs].fstatPromise(this.fd, opts); - } finally { - this[kUnref](); - } - } - async truncate(len) { - try { - this[kRef](this.truncate); - return await this[kBaseFs].ftruncatePromise(this.fd, len); - } finally { - this[kUnref](); - } - } - // FIXME: Missing FakeFS version - utimes(atime, mtime) { - throw new Error(`Method not implemented.`); - } - async writeFile(data, options) { - try { - this[kRef](this.writeFile); - const encoding = (typeof options === `string` ? options : options?.encoding) ?? void 0; - await this[kBaseFs].writeFilePromise(this.fd, data, encoding); - } finally { - this[kUnref](); - } - } - async write(...args) { - try { - this[kRef](this.write); - if (ArrayBuffer.isView(args[0])) { - const [buffer, offset, length, position] = args; - const bytesWritten = await this[kBaseFs].writePromise(this.fd, buffer, offset ?? void 0, length ?? void 0, position ?? void 0); - return { bytesWritten, buffer }; - } else { - const [data, position, encoding] = args; - const bytesWritten = await this[kBaseFs].writePromise(this.fd, data, position, encoding); - return { bytesWritten, buffer: data }; - } - } finally { - this[kUnref](); - } - } - // TODO: Use writev from FakeFS when that is implemented - async writev(buffers, position) { - try { - this[kRef](this.writev); - let bytesWritten = 0; - if (typeof position !== `undefined`) { - for (const buffer of buffers) { - const writeResult = await this.write(buffer, void 0, void 0, position); - bytesWritten += writeResult.bytesWritten; - position += writeResult.bytesWritten; - } - } else { - for (const buffer of buffers) { - const writeResult = await this.write(buffer); - bytesWritten += writeResult.bytesWritten; - } - } - return { - buffers, - bytesWritten - }; - } finally { - this[kUnref](); - } - } - // FIXME: Missing FakeFS version - readv(buffers, position) { - throw new Error(`Method not implemented.`); - } - close() { - if (this[kFd] === -1) return Promise.resolve(); - if (this[kClosePromise]) return this[kClosePromise]; - this[kRefs]--; - if (this[kRefs] === 0) { - const fd = this[kFd]; - this[kFd] = -1; - this[kClosePromise] = this[kBaseFs].closePromise(fd).finally(() => { - this[kClosePromise] = void 0; - }); - } else { - this[kClosePromise] = new Promise((resolve, reject) => { - this[kCloseResolve] = resolve; - this[kCloseReject] = reject; - }).finally(() => { - this[kClosePromise] = void 0; - this[kCloseReject] = void 0; - this[kCloseResolve] = void 0; - }); - } - return this[kClosePromise]; - } - [kRef](caller) { - if (this[kFd] === -1) { - const err = new Error(`file closed`); - err.code = `EBADF`; - err.syscall = caller.name; - throw err; - } - this[kRefs]++; - } - [kUnref]() { - this[kRefs]--; - if (this[kRefs] === 0) { - const fd = this[kFd]; - this[kFd] = -1; - this[kBaseFs].closePromise(fd).then(this[kCloseResolve], this[kCloseReject]); - } - } -} - -const SYNC_IMPLEMENTATIONS = /* @__PURE__ */ new Set([ - `accessSync`, - `appendFileSync`, - `createReadStream`, - `createWriteStream`, - `chmodSync`, - `fchmodSync`, - `chownSync`, - `fchownSync`, - `closeSync`, - `copyFileSync`, - `linkSync`, - `lstatSync`, - `fstatSync`, - `lutimesSync`, - `mkdirSync`, - `openSync`, - `opendirSync`, - `readlinkSync`, - `readFileSync`, - `readdirSync`, - `readlinkSync`, - `realpathSync`, - `renameSync`, - `rmdirSync`, - `rmSync`, - `statSync`, - `symlinkSync`, - `truncateSync`, - `ftruncateSync`, - `unlinkSync`, - `unwatchFile`, - `utimesSync`, - `watch`, - `watchFile`, - `writeFileSync`, - `writeSync` -]); -const ASYNC_IMPLEMENTATIONS = /* @__PURE__ */ new Set([ - `accessPromise`, - `appendFilePromise`, - `fchmodPromise`, - `chmodPromise`, - `fchownPromise`, - `chownPromise`, - `closePromise`, - `copyFilePromise`, - `linkPromise`, - `fstatPromise`, - `lstatPromise`, - `lutimesPromise`, - `mkdirPromise`, - `openPromise`, - `opendirPromise`, - `readdirPromise`, - `realpathPromise`, - `readFilePromise`, - `readdirPromise`, - `readlinkPromise`, - `renamePromise`, - `rmdirPromise`, - `rmPromise`, - `statPromise`, - `symlinkPromise`, - `truncatePromise`, - `ftruncatePromise`, - `unlinkPromise`, - `utimesPromise`, - `writeFilePromise`, - `writeSync` -]); -function patchFs(patchedFs, fakeFs) { - fakeFs = new NodePathFS(fakeFs); - const setupFn = (target, name, replacement) => { - const orig = target[name]; - target[name] = replacement; - if (typeof orig?.[nodeUtils.promisify.custom] !== `undefined`) { - replacement[nodeUtils.promisify.custom] = orig[nodeUtils.promisify.custom]; - } - }; - { - setupFn(patchedFs, `exists`, (p, ...args) => { - const hasCallback = typeof args[args.length - 1] === `function`; - const callback = hasCallback ? args.pop() : () => { - }; - process.nextTick(() => { - fakeFs.existsPromise(p).then((exists) => { - callback(exists); - }, () => { - callback(false); - }); - }); - }); - setupFn(patchedFs, `read`, (...args) => { - let [fd, buffer, offset, length, position, callback] = args; - if (args.length <= 3) { - let options = {}; - if (args.length < 3) { - callback = args[1]; - } else { - options = args[1]; - callback = args[2]; - } - ({ - buffer = Buffer.alloc(16384), - offset = 0, - length = buffer.byteLength, - position - } = options); - } - if (offset == null) - offset = 0; - length |= 0; - if (length === 0) { - process.nextTick(() => { - callback(null, 0, buffer); - }); - return; - } - if (position == null) - position = -1; - process.nextTick(() => { - fakeFs.readPromise(fd, buffer, offset, length, position).then((bytesRead) => { - callback(null, bytesRead, buffer); - }, (error) => { - callback(error, 0, buffer); - }); - }); - }); - for (const fnName of ASYNC_IMPLEMENTATIONS) { - const origName = fnName.replace(/Promise$/, ``); - if (typeof patchedFs[origName] === `undefined`) - continue; - const fakeImpl = fakeFs[fnName]; - if (typeof fakeImpl === `undefined`) - continue; - const wrapper = (...args) => { - const hasCallback = typeof args[args.length - 1] === `function`; - const callback = hasCallback ? args.pop() : () => { - }; - process.nextTick(() => { - fakeImpl.apply(fakeFs, args).then((result) => { - callback(null, result); - }, (error) => { - callback(error); - }); - }); - }; - setupFn(patchedFs, origName, wrapper); - } - patchedFs.realpath.native = patchedFs.realpath; - } - { - setupFn(patchedFs, `existsSync`, (p) => { - try { - return fakeFs.existsSync(p); - } catch { - return false; - } - }); - setupFn(patchedFs, `readSync`, (...args) => { - let [fd, buffer, offset, length, position] = args; - if (args.length <= 3) { - const options = args[2] || {}; - ({ offset = 0, length = buffer.byteLength, position } = options); - } - if (offset == null) - offset = 0; - length |= 0; - if (length === 0) - return 0; - if (position == null) - position = -1; - return fakeFs.readSync(fd, buffer, offset, length, position); - }); - for (const fnName of SYNC_IMPLEMENTATIONS) { - const origName = fnName; - if (typeof patchedFs[origName] === `undefined`) - continue; - const fakeImpl = fakeFs[fnName]; - if (typeof fakeImpl === `undefined`) - continue; - setupFn(patchedFs, origName, fakeImpl.bind(fakeFs)); - } - patchedFs.realpathSync.native = patchedFs.realpathSync; - } - { - const patchedFsPromises = patchedFs.promises; - for (const fnName of ASYNC_IMPLEMENTATIONS) { - const origName = fnName.replace(/Promise$/, ``); - if (typeof patchedFsPromises[origName] === `undefined`) - continue; - const fakeImpl = fakeFs[fnName]; - if (typeof fakeImpl === `undefined`) - continue; - if (fnName === `open`) - continue; - setupFn(patchedFsPromises, origName, (pathLike, ...args) => { - if (pathLike instanceof FileHandle) { - return pathLike[origName].apply(pathLike, args); - } else { - return fakeImpl.call(fakeFs, pathLike, ...args); - } - }); - } - setupFn(patchedFsPromises, `open`, async (...args) => { - const fd = await fakeFs.openPromise(...args); - return new FileHandle(fd, fakeFs); - }); - } - { - patchedFs.read[nodeUtils.promisify.custom] = async (fd, buffer, ...args) => { - const res = fakeFs.readPromise(fd, buffer, ...args); - return { bytesRead: await res, buffer }; - }; - patchedFs.write[nodeUtils.promisify.custom] = async (fd, buffer, ...args) => { - const res = fakeFs.writePromise(fd, buffer, ...args); - return { bytesWritten: await res, buffer }; - }; - } -} - -let cachedInstance; -let registeredFactory = () => { - throw new Error(`Assertion failed: No libzip instance is available, and no factory was configured`); -}; -function setFactory(factory) { - registeredFactory = factory; -} -function getInstance() { - if (typeof cachedInstance === `undefined`) - cachedInstance = registeredFactory(); - return cachedInstance; -} - -var libzipSync = {exports: {}}; - -(function (module, exports) { -var frozenFs = Object.assign({}, fs__default.default); -var createModule = function() { - var _scriptDir = void 0; - if (typeof __filename !== "undefined") _scriptDir = _scriptDir || __filename; - return function(createModule2) { - createModule2 = createModule2 || {}; - var Module = typeof createModule2 !== "undefined" ? createModule2 : {}; - var readyPromiseResolve, readyPromiseReject; - Module["ready"] = new Promise(function(resolve, reject) { - readyPromiseResolve = resolve; - readyPromiseReject = reject; - }); - var moduleOverrides = {}; - var key; - for (key in Module) { - if (Module.hasOwnProperty(key)) { - moduleOverrides[key] = Module[key]; - } - } - var scriptDirectory = ""; - function locateFile(path) { - if (Module["locateFile"]) { - return Module["locateFile"](path, scriptDirectory); - } - return scriptDirectory + path; - } - var read_, readBinary; - var nodeFS; - var nodePath; - { - { - scriptDirectory = __dirname + "/"; - } - read_ = function shell_read(filename, binary) { - var ret = tryParseAsDataURI(filename); - if (ret) { - return binary ? ret : ret.toString(); - } - if (!nodeFS) nodeFS = frozenFs; - if (!nodePath) nodePath = path__default.default; - filename = nodePath["normalize"](filename); - return nodeFS["readFileSync"](filename, binary ? null : "utf8"); - }; - readBinary = function readBinary2(filename) { - var ret = read_(filename, true); - if (!ret.buffer) { - ret = new Uint8Array(ret); - } - assert(ret.buffer); - return ret; - }; - if (process["argv"].length > 1) { - process["argv"][1].replace(/\\/g, "/"); - } - process["argv"].slice(2); - Module["inspect"] = function() { - return "[Emscripten Module object]"; - }; - } - Module["print"] || console.log.bind(console); - var err = Module["printErr"] || console.warn.bind(console); - for (key in moduleOverrides) { - if (moduleOverrides.hasOwnProperty(key)) { - Module[key] = moduleOverrides[key]; - } - } - moduleOverrides = null; - if (Module["arguments"]) ; - if (Module["thisProgram"]) ; - if (Module["quit"]) ; - var wasmBinary; - if (Module["wasmBinary"]) wasmBinary = Module["wasmBinary"]; - Module["noExitRuntime"] || true; - if (typeof WebAssembly !== "object") { - abort("no native wasm support detected"); - } - function getValue(ptr, type, noSafe) { - type = type || "i8"; - if (type.charAt(type.length - 1) === "*") type = "i32"; - switch (type) { - case "i1": - return HEAP8[ptr >> 0]; - case "i8": - return HEAP8[ptr >> 0]; - case "i16": - return LE_HEAP_LOAD_I16((ptr >> 1) * 2); - case "i32": - return LE_HEAP_LOAD_I32((ptr >> 2) * 4); - case "i64": - return LE_HEAP_LOAD_I32((ptr >> 2) * 4); - case "float": - return LE_HEAP_LOAD_F32((ptr >> 2) * 4); - case "double": - return LE_HEAP_LOAD_F64((ptr >> 3) * 8); - default: - abort("invalid type for getValue: " + type); - } - return null; - } - var wasmMemory; - var ABORT = false; - function assert(condition, text) { - if (!condition) { - abort("Assertion failed: " + text); - } - } - function getCFunc(ident) { - var func = Module["_" + ident]; - assert( - func, - "Cannot call unknown function " + ident + ", make sure it is exported" - ); - return func; - } - function ccall(ident, returnType, argTypes, args, opts) { - var toC = { - string: function(str) { - var ret2 = 0; - if (str !== null && str !== void 0 && str !== 0) { - var len = (str.length << 2) + 1; - ret2 = stackAlloc(len); - stringToUTF8(str, ret2, len); - } - return ret2; - }, - array: function(arr) { - var ret2 = stackAlloc(arr.length); - writeArrayToMemory(arr, ret2); - return ret2; - } - }; - function convertReturnValue(ret2) { - if (returnType === "string") return UTF8ToString(ret2); - if (returnType === "boolean") return Boolean(ret2); - return ret2; - } - var func = getCFunc(ident); - var cArgs = []; - var stack = 0; - if (args) { - for (var i = 0; i < args.length; i++) { - var converter = toC[argTypes[i]]; - if (converter) { - if (stack === 0) stack = stackSave(); - cArgs[i] = converter(args[i]); - } else { - cArgs[i] = args[i]; - } - } - } - var ret = func.apply(null, cArgs); - ret = convertReturnValue(ret); - if (stack !== 0) stackRestore(stack); - return ret; - } - function cwrap(ident, returnType, argTypes, opts) { - argTypes = argTypes || []; - var numericArgs = argTypes.every(function(type) { - return type === "number"; - }); - var numericRet = returnType !== "string"; - if (numericRet && numericArgs && !opts) { - return getCFunc(ident); - } - return function() { - return ccall(ident, returnType, argTypes, arguments); - }; - } - var UTF8Decoder = new TextDecoder("utf8"); - function UTF8ToString(ptr, maxBytesToRead) { - if (!ptr) return ""; - var maxPtr = ptr + maxBytesToRead; - for (var end = ptr; !(end >= maxPtr) && HEAPU8[end]; ) ++end; - return UTF8Decoder.decode(HEAPU8.subarray(ptr, end)); - } - function stringToUTF8Array(str, heap, outIdx, maxBytesToWrite) { - if (!(maxBytesToWrite > 0)) return 0; - var startIdx = outIdx; - var endIdx = outIdx + maxBytesToWrite - 1; - for (var i = 0; i < str.length; ++i) { - var u = str.charCodeAt(i); - if (u >= 55296 && u <= 57343) { - var u1 = str.charCodeAt(++i); - u = 65536 + ((u & 1023) << 10) | u1 & 1023; - } - if (u <= 127) { - if (outIdx >= endIdx) break; - heap[outIdx++] = u; - } else if (u <= 2047) { - if (outIdx + 1 >= endIdx) break; - heap[outIdx++] = 192 | u >> 6; - heap[outIdx++] = 128 | u & 63; - } else if (u <= 65535) { - if (outIdx + 2 >= endIdx) break; - heap[outIdx++] = 224 | u >> 12; - heap[outIdx++] = 128 | u >> 6 & 63; - heap[outIdx++] = 128 | u & 63; - } else { - if (outIdx + 3 >= endIdx) break; - heap[outIdx++] = 240 | u >> 18; - heap[outIdx++] = 128 | u >> 12 & 63; - heap[outIdx++] = 128 | u >> 6 & 63; - heap[outIdx++] = 128 | u & 63; - } - } - heap[outIdx] = 0; - return outIdx - startIdx; - } - function stringToUTF8(str, outPtr, maxBytesToWrite) { - return stringToUTF8Array(str, HEAPU8, outPtr, maxBytesToWrite); - } - function lengthBytesUTF8(str) { - var len = 0; - for (var i = 0; i < str.length; ++i) { - var u = str.charCodeAt(i); - if (u >= 55296 && u <= 57343) - u = 65536 + ((u & 1023) << 10) | str.charCodeAt(++i) & 1023; - if (u <= 127) ++len; - else if (u <= 2047) len += 2; - else if (u <= 65535) len += 3; - else len += 4; - } - return len; - } - function allocateUTF8(str) { - var size = lengthBytesUTF8(str) + 1; - var ret = _malloc(size); - if (ret) stringToUTF8Array(str, HEAP8, ret, size); - return ret; - } - function writeArrayToMemory(array, buffer2) { - HEAP8.set(array, buffer2); - } - function alignUp(x, multiple) { - if (x % multiple > 0) { - x += multiple - x % multiple; - } - return x; - } - var buffer, HEAP8, HEAPU8; - var HEAP_DATA_VIEW; - function updateGlobalBufferAndViews(buf) { - buffer = buf; - Module["HEAP_DATA_VIEW"] = HEAP_DATA_VIEW = new DataView(buf); - Module["HEAP8"] = HEAP8 = new Int8Array(buf); - Module["HEAP16"] = new Int16Array(buf); - Module["HEAP32"] = new Int32Array(buf); - Module["HEAPU8"] = HEAPU8 = new Uint8Array(buf); - Module["HEAPU16"] = new Uint16Array(buf); - Module["HEAPU32"] = new Uint32Array(buf); - Module["HEAPF32"] = new Float32Array(buf); - Module["HEAPF64"] = new Float64Array(buf); - } - Module["INITIAL_MEMORY"] || 16777216; - var wasmTable; - var __ATPRERUN__ = []; - var __ATINIT__ = []; - var __ATPOSTRUN__ = []; - function preRun() { - if (Module["preRun"]) { - if (typeof Module["preRun"] == "function") - Module["preRun"] = [Module["preRun"]]; - while (Module["preRun"].length) { - addOnPreRun(Module["preRun"].shift()); - } - } - callRuntimeCallbacks(__ATPRERUN__); - } - function initRuntime() { - callRuntimeCallbacks(__ATINIT__); - } - function postRun() { - if (Module["postRun"]) { - if (typeof Module["postRun"] == "function") - Module["postRun"] = [Module["postRun"]]; - while (Module["postRun"].length) { - addOnPostRun(Module["postRun"].shift()); - } - } - callRuntimeCallbacks(__ATPOSTRUN__); - } - function addOnPreRun(cb) { - __ATPRERUN__.unshift(cb); - } - function addOnInit(cb) { - __ATINIT__.unshift(cb); - } - function addOnPostRun(cb) { - __ATPOSTRUN__.unshift(cb); - } - var runDependencies = 0; - var dependenciesFulfilled = null; - function addRunDependency(id) { - runDependencies++; - if (Module["monitorRunDependencies"]) { - Module["monitorRunDependencies"](runDependencies); - } - } - function removeRunDependency(id) { - runDependencies--; - if (Module["monitorRunDependencies"]) { - Module["monitorRunDependencies"](runDependencies); - } - if (runDependencies == 0) { - if (dependenciesFulfilled) { - var callback = dependenciesFulfilled; - dependenciesFulfilled = null; - callback(); - } - } - } - Module["preloadedImages"] = {}; - Module["preloadedAudios"] = {}; - function abort(what) { - if (Module["onAbort"]) { - Module["onAbort"](what); - } - what += ""; - err(what); - ABORT = true; - what = "abort(" + what + "). Build with -s ASSERTIONS=1 for more info."; - var e = new WebAssembly.RuntimeError(what); - readyPromiseReject(e); - throw e; - } - var dataURIPrefix = "data:application/octet-stream;base64,"; - function isDataURI(filename) { - return filename.startsWith(dataURIPrefix); - } - var wasmBinaryFile = "data:application/octet-stream;base64,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QCAAKAJIIgEgASADaiADEAcaAkAgAyAAKAJsIgFNBEAgACABIANrNgJsDAELIABCADcCbAsgACAAKAJoIANrIgE2AmggACAAKAJYIANrNgJYIAEgACgChC5JBEAgACABNgKELgsgAEH8gAEoAgARAwAgAiADaiECCwJAIAAoAgAiASgCBCIERQ0AIAAoAjwhBSAAIAIgBCACIARJGyICBH8gACgCSCAAKAJoaiAFaiEFIAEgBCACazYCBAJAAkACQAJAIAEoAhwiBCgCFEEBaw4CAQACCyAEQaABaiAFIAEoAgAgAkHcgAEoAgARCAAMAgsgASABKAIwIAUgASgCACACQcSAASgCABEEADYCMAwBCyAFIAEoAgAgAhAHGgsgASABKAIAIAJqNgIAIAEgASgCCCACajYCCCAAKAI8BSAFCyACaiICNgI8AkAgACgChC4iASACakEDSQ0AIAAoAmggAWshAQJAIAAoAnRBgQhPBEAgACAAIAAoAkggAWoiAi0AACACLQABIAAoAnwRAAA2AlQMAQsgAUUNACAAIAFBAWsgACgChAERAgAaCyAAKAKELiAAKAI8IgJBAUZrIgRFDQAgACABIAQgACgCgAERBQAgACAAKAKELiAEazYChC4gACgCPCECCyACQYUCSw0AIAAoAgAoAgRFDQAgACgCMCEBDAELCwJAIAAoAkQiAiAAKAJAIgNNDQAgAAJ/IAAoAjwgACgCaGoiASADSwRAIAAoAkggAWpBACACIAFrIgNBggIgA0GCAkkbIgMQGSABIANqDAELIAFBggJqIgEgA00NASAAKAJIIANqQQAgAiADayICIAEgA2siAyACIANJGyIDEBkgACgCQCADags2AkALC50CAQF/AkAgAAJ/IAAoAqAuIgFBwABGBEAgACgCBCAAKAIQaiAAKQOYLjcAACAAQgA3A5guIAAgACgCEEEIajYCEEEADAELIAFBIE4EQCAAKAIEIAAoAhBqIAApA5guPgAAIAAgAEGcLmo1AgA3A5guIAAgACgCEEEEajYCECAAIAAoAqAuQSBrIgE2AqAuCyABQRBOBEAgACgCBCAAKAIQaiAAKQOYLj0AACAAIAAoAhBBAmo2AhAgACAAKQOYLkIQiDcDmC4gACAAKAKgLkEQayIBNgKgLgsgAUEISA0BIAAgACgCECIBQQFqNgIQ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KAJUIgEEfyABQQAgARAiEBkgACgCVAVBAAsQBiAAQQA2AlQLC9wMAgl/AX4jAEFAaiIGJAACQAJAAkACQAJAIAEoAjBBABAjIgVBAkZBACABKAI4QQAQIyIEQQFGGw0AIAVBAUZBACAEQQJGGw0AIAVBAkciAw0BIARBAkcNAQsgASABLwEMQYAQcjsBDEEAIQMMAQsgASABLwEMQf/vA3E7AQxBACEFIANFBEBB9eABIAEoAjAgAEEIahBpIgVFDQILIAJBgAJxBEAgBSEDDAELIARBAkcEQCAFIQMMAQtB9cYBIAEoAjggAEEIahBpIgNFBEAgBRAcDAILIAMgBTYCAAsgASABLwEMQf7/A3EgAS8BUiIFQQBHcjsBDAJAAkACQAJAAn8CQAJAIAEpAyhC/v///w9WDQAgASkDIEL+////D1YNACACQYAEcUUNASABKQNIQv////8PVA0BCyAFQYECa0H//wNxQQNJIQdBAQwBCyAFQYECa0H//wNxIQQgAkGACnFBgApHDQEgBEEDSSEHQQALIQkgBkIcEBciBEUEQCAAQQhqIgAEQCAAQQA2AgQgAEEONgIACyADEBwMBQsgAkGACHEhBQJAAkAgAkGAAnEEQAJAIAUNACABKQMgQv////8PVg0AIAEpAyhCgICAgBBUDQMLIAQgASkDKBAYIAEpAyAhDAwBCwJAAkACQCAFDQAgASkDIEL/////D1YNACABKQMoIgxC/////w9WDQEgASkDSEKAgICAEFQNBAsgASkDKCIMQv////8PVA0BCyAEIAwQGAsgASkDICIMQv////8PWgRAIAQgDBAYCyABKQNIIgxC/////w9UDQELIAQgDBAYCyAELQAARQRAIABBCGoiAARAIABBADYCBCAAQRQ2AgALIAQQCCADEBwMBQtBASEKQQEgBC0AAAR+IAQpAxAFQgALp0H//wNxIAYQRyEFIAQQCCAFIAM2AgAgBw0BDAILIAMhBSAEQQJLDQELIAZCBxAXIgRFBEAgAEEIaiIABEAgAEEANgIEIABBDjYCAAsgBRAcDAMLIARBAhANIARBhxJBAhAsIAQgAS0AUhBwIAQgAS8BEBANIAQtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAsgBBAIDAILQYGyAkEHIAYQRyEDIAQQCCADIAU2AgBBASEL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NgIEIABB7A42AhggGiEdDAMLIARB/wFxIgJBwABxRQRAIAggDSADLwECQQJ0aiAdp0F/IAJ0QX9zcUECdGoiAy0AASICayEIIB0gAq2IIR0gAy0AACIERQ0HDAELCyAEQSBxBEAgB0G//gA2AgQgASECDAgLIAdB0f4ANgIEIABB0A42AhggASECDAcLIB1BfyAGdEF/c62DIBt8IhunIQUgCCAEQQ9xIgNrIQggGiAErUIPg4ghHSABIBdrIgYgAjMBAiAaQX8gA3RBf3Otg3ynIgRPDQIgBCAGayIGIBlNDQEgBygCjEdFDQEgB0HR/gA2AgQgAEG5DDYCGAsgASECIAshBQwFCwJAIA5FBEAgDCARIAZraiEDDAELIAYgDk0EQCAMIA4gBmtqIQMMAQsgDCARIAYgDmsiBmtqIQMgBSAGTQ0AIAUgBmshBQJAAkAgASADTSABIA8gAWusIhogBq0iGyAaIBtUGyIapyIGaiICIANLcQ0AIAMgBmogAUsgASADT3ENACABIAMgBhAHGiACIQEMAQsgASADIAMgAWsiASABQR91IgFqIAFzIgIQByACaiEBIBogAq0iHn0iHFANACACIANqIQIDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgASACKQAANwAAIAEgAikAGDcAGCABIAIpABA3ABAgASACKQAINwAIIBpCIH0hGiACQSBqIQIgAUEgaiEBIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAEgAikAADcAACABIAIpABg3ABggASACKQAQNwAQIAEgAikACDcACCABIAIpADg3ADggASACKQAwNwAwIAEgAikAKDcAKCABIAIpACA3ACAgASACKQBYNwBYIAEgAikAUDcAUCABIAIpAEg3AEggASACKQBANwBAIAEgAikAYDcAYCABIAIpAGg3AGggASACKQBwNwBwIAEgAikAeDcAeCACQYABaiECIAFBgAFqIQEgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAEgAikAADcAACABIAIpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCABIAIpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCABIAIoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCABIAIvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCABIAItAAA6AAAgAkEBaiECIAFBAWohAQsgHEIAUg0ACwsgDiEGIAwhAwsgBSAGSwRAAkACQCABIANNIAEgDyABa6wiGiAGrSIbIBogG1QbIhqnIglqIgIgA0txDQAgAyAJaiABSyABIANPcQ0AIAEgAyAJEAcaDAELIAEgAyADIAFrIgEgAUEfdSIBaiABcyIBEAcgAWohAiAaIAGtIh59IhxQDQAgASADaiEBA0ACQCAcIB4gHCAeVBsiG0IgVARAIBshGgwBCyAbIhpCIH0iIEIFiEIBfEIDgyIfUEUEQANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCAaQiB9IRogAUEgaiEBIAJBIGohAiAfQgF9Ih9CAFINAAsLICBC4ABUDQADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggAiABKQA4NwA4IAIgASkAMDcAMCACIAEpACg3ACggAiABKQAgNwAgIAIgASkAWDcAWCACIAEpAFA3AFAgAiABKQBINwBIIAIgASkAQDcAQCACIAEpAGA3AGAgAiABKQBoNwBoIAIgASkAcDcAcCACIAEpAHg3AHggAUGAAWohASACQYABaiECIBpCgAF9IhpCH1YNAAsLIBpCEFoEQCACIAEpAAA3AAAgAiABKQAINwAIIBpCEH0hGiACQRBqIQIgAUEQaiEBCyAaQghaBEAgAiABKQAANwAAIBpCCH0hGiACQQhqIQIgAUEIaiEBCyAaQgRaBEAgAiABKAAANgAAIBpCBH0hGiACQQRqIQIgAUEEaiEBCyAaQgJaBEAgAiABLwAAOwAAIBpCAn0hGiACQQJqIQIgAUECaiEBCyAcIBt9IRwgGlBFBEAgAiABLQAAOgAAIAJBAWohAiABQQFqIQELIBxCAFINAAsLIAUgBmshAUEAIARrIQUCQCAEQQdLBEAgBCEDDAELIAEgBE0EQCAEIQMMAQsgAiAEayEFA0ACQCACIAUpAAA3AAAgBEEBdCEDIAEgBGshASACIARqIQIgBEEDSw0AIAMhBCABIANLDQELC0EAIANrIQULIAIgBWohBAJAIAUgDyACa6wiGiABrSIbIBogG1QbIhqnIgFIIAVBf0pxDQAgBUEBSCABIARqIAJLcQ0AIAIgBCABEAcgAWohAgwDCyACIAQgAyADQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANAiABIARqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAILAkAgASADTSABIA8gAWusIhogBa0iGyAaIBtUGyIapyIEaiICIANLcQ0AIAMgBGogAUsgASADT3ENACABIAMgBBAHGgwCCyABIAMgAyABayIBIAFBH3UiAWogAXMiARAHIAFqIQIgGiABrSIefSIcUA0BIAEgA2ohAQNAAkAgHCAeIBwgHlQbIhtCIFQEQCAbIRoMAQsgGyIaQiB9IiBCBYhCAXxCA4MiH1BFBEADQCACIAEpAAA3AAAgAiABKQAYNwAYIAIgASkAEDcAECACIAEpAAg3AAggGkIgfSEaIAFBIGohASACQSBqIQIgH0IBfSIfQgBSDQALCyAgQuAAVA0AA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIAIgASkAODcAOCACIAEpADA3ADAgAiABKQAoNwAoIAIgASkAIDcAICACIAEpAFg3AFggAiABKQBQNwBQIAIgASkASDcASCACIAEpAEA3AEAgAiABKQBgNwBgIAIgASkAaDcAaCACIAEpAHA3AHAgAiABKQB4NwB4IAFBgAFqIQEgAkGAAWohAiAaQoABfSIaQh9WDQALCyAaQhBaBEAgAiABKQAANwAAIAIgASkACDcACCAaQhB9IRogAkEQaiECIAFBEGohAQsgGkIIWgRAIAIgASkAADcAACAaQgh9IRogAkEIaiECIAFBCGohAQsgGkIEWgRAIAIgASgAADYAACAaQgR9IRogAkEEaiECIAFBBGohAQsgGkICWgRAIAIgAS8AADsAACAaQgJ9IRogAkECaiECIAFBAmohAQsgHCAbfSEcIBpQRQRAIAIgAS0AADoAACACQQFqIQIgAUEBaiEBCyAcUEUNAAsMAQsCQAJAIBYEQAJAIAQgBUkEQCAHKAKYRyAESw0BCyABIARrIQMCQEEAIARrIgVBf0ogDyABa6wiGiAbIBogG1QbIhqnIgIgBUpxDQAgBUEBSCACIANqIAFLcQ0AIAEgAyACEAcgAmohAgwFCyABIAMgBCAEQR91IgFqIAFzIgEQByABaiECIBogAa0iHn0iHFANBCABIANqIQEDQAJAIBwgHiAcIB5UGyIbQiBUBEAgGyEaDAELIBsiGkIgfSIgQgWIQgF8QgODIh9QRQRAA0AgAiABKQAANwAAIAIgASkAGDcAGCACIAEpABA3ABAgAiABKQAINwAIIBpCIH0hGiABQSBqIQEgAkEgaiECIB9CAX0iH0IAUg0ACwsgIELgAFQNAANAIAIgASkAADcAACACIAEpABg3ABggAiABKQAQNwAQIAIgASkACDcACCACIAEpADg3ADggAiABKQAwNwAwIAIgASkAKDcAKCACIAEpACA3ACAgAiABKQBYNwBYIAIgASkAUDcAUCACIAEpAEg3AEggAiABKQBANwBAIAIgASkAYDcAYCACIAEpAGg3AGggAiABKQBwNwBwIAIgASkAeDcAeCABQYABaiEBIAJBgAFqIQIgGkKAAX0iGkIfVg0ACwsgGkIQWgRAIAIgASkAADcAACACIAEpAAg3AAggGkIQfSEaIAJBEGohAiABQRBqIQELIBpCCFoEQCACIAEpAAA3AAAgGkIIfSEaIAJBCGohAiABQQhqIQELIBpCBFoEQCACIAEoAAA2AAAgGkIEfSEaIAJBBGohAiABQQRqIQELIBpCAloEQCACIAEvAAA7AAAgGkICfSEaIAJBAmohAiABQQJqIQELIBwgG30hHCAaUEUEQCACIAEtAAA6AAAgAkEBaiECIAFBAWohAQsgHFBFDQALDAQLIBAgAWsiCUEBaiIGIAUgBSAGSxshAyABIARrIQIgAUEHcUUNAiADRQ0CIAEgAi0AADoAACACQQFqIQIgAUEBaiIGQQdxQQAgA0EBayIFGw0BIAYhASAFIQMgCSEGDAILAkAgBCAFSQRAIAcoAphHIARLDQELIAEgASAEayIGKQAANwAAIAEgBUEBa0EHcUEBaiIDaiECIAUgA2siBEUNAyADIAZqIQEDQCACIAEpAAA3AAAgAUEIaiEBIAJBCGohAiAEQQhrIgQNAAsMAwsgASAEIAUQPyECDAILIAEgAi0AADoAASAJQQFrIQYgA0ECayEFIAJBAWohAgJAIAFBAmoiCkEHcUUNACAFRQ0AIAEgAi0AADoAAiAJQQJrIQYgA0EDayEFIAJBAWohAgJAIAFBA2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAAyAJQQNrIQYgA0EEayEFIAJBAWohAgJAIAFBBGoiCkEHcUUNACAFRQ0AIAEgAi0AADoABCAJQQRrIQYgA0EFayEFIAJBAWohAgJAIAFBBWoiCkEHcUUNACAFRQ0AIAEgAi0AADoABSAJQQVrIQYgA0EGayEFIAJBAWohAgJAIAFBBmoiCkEHcUUNACAFRQ0AIAEgAi0AADoABiAJQQZrIQYgA0EHayEFIAJBAWohAgJAIAFBB2oiCkEHcUUNACAFRQ0AIAEgAi0AADoAByAJQQdrIQYgA0EIayEDIAFBCGohASACQQFqIQIMBgsgCiEBIAUhAwwFCyAKIQEgBSEDDAQLIAohASAFIQMMAwsgCiEBIAUhAwwCCyAKIQEgBSEDDAELIAohASAFIQMLAkACQCAGQRdNBEAgA0UNASADQQFrIQUgA0EHcSIEBEADQCABIAItAAA6AAAgA0EBayEDIAFBAWohASACQQFqIQIgBEEBayIEDQALCyAFQQdJDQEDQCABIAItAAA6AAAgASACLQABOgABIAEgAi0AAjoAAiABIAItAAM6AAMgASACLQAEOgAEIAEgAi0ABToABSABIAItAAY6AAYgASACLQAHOgAHIAFBCGohASACQQhqIQIgA0EIayIDDQALDAELIAMNAQsgASECDAELIAEgBCADED8hAgsgCyEFDAELIAEgAy0AAjoAACABQQFqIQILIAUgFE8NACACIBNJDQELCyAAIAI2AgwgACAFIAhBA3ZrIgE2AgAgACATIAJrQYMCajYCECAAIBQgAWtBDmo2AgQgByAIQQdxIgA2AogBIAcgHUJ/IACthkJ/hYM+AoQBC+cFAQR/IAMgAiACIANLGyEEIAAgAWshAgJAIABBB3FFDQAgBEUNACAAIAItAAA6AAAgA0EBayEGIAJBAWohAiAAQQFqIgdBB3FBACAEQQFrIgUbRQRAIAchACAFIQQgBiEDDAELIAAgAi0AADoAASADQQJrIQYgBEECayEFIAJBAWohAgJAIABBAmoiB0EHcUUNACAFRQ0AIAAgAi0AADoAAiADQQNrIQYgBEEDayEFIAJBAWohAgJAIABBA2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAAyADQQRrIQYgBEEEayEFIAJBAWohAgJAIABBBGoiB0EHcUUNACAFRQ0AIAAgAi0AADoABCADQQVrIQYgBEEFayEFIAJBAWohAgJAIABBBWoiB0EHcUUNACAFRQ0AIAAgAi0AADoABSADQQZrIQYgBEEGayEFIAJBAWohAgJAIABBBmoiB0EHcUUNACAFRQ0AIAAgAi0AADoABiADQQdrIQYgBEEHayEFIAJBAWohAgJAIABBB2oiB0EHcUUNACAFRQ0AIAAgAi0AADoAByADQQhrIQMgBEEIayEEIABBCGohACACQQFqIQIMBgsgByEAIAUhBCAGIQMMBQsgByEAIAUhBCAGIQMMBAsgByEAIAUhBCAGIQMMAwsgByEAIAUhBCAGIQMMAgsgByEAIAUhBCAGIQMMAQsgByEAIAUhBCAGIQMLAkAgA0EXTQRAIARFDQEgBEEBayEBIARBB3EiAwRAA0AgACACLQAAOgAAIARBAWshBCAAQQFqIQAgAkEBaiECIANBAWsi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CyAAIAMtAAAEfiADKQMQBUIAC6dB//8DcSADKAIEEEcLIQUgAxAICyAEQRBqJAAgBQvgAQICfwF+QTAQCSICRQRAIAEEQCABQQA2AgQgAUEONgIAC0EADwsgAkIANwMIIAJBADYCACACQgA3AxAgAkIANwMYIAJCADcDICACQgA3ACUgAFAEQCACDwsCQCAAQv////8AVg0AIACnQQR0EAkiA0UNACACIAM2AgBBACEBQgEhBANAIAMgAUEEdGoiAUIANwIAIAFCADcABSAAIARSBEAgBKchASAEQgF8IQQMAQsLIAIgADcDCCACIAA3AxAgAg8LIAEEQCABQQA2AgQgAUEONgIAC0EAEBAgAhAGQQAL7gECA38BfiMAQRBrIgQkAAJAIARBDGpCBBAXIgNFBEBBfyECDAELAkAgAQRAIAJBgAZxIQUDQAJAIAUgASgCBHFFDQACQCADKQMIQgBUBEAgA0EAOgAADAELIANCADcDECADQQE6AAALIAMgAS8BCBANIAMgAS8BChANIAMtAABFBEAgAEEIaiIABEAgAEEANgIEIABBFDYCAAtBfyECDAQLQX8hAiAAIARBDGpCBBAbQQBIDQMgATMBCiIGUA0AIAAgASgCDCAGEBtBAEgNAwsgASgCACIBDQALC0EAIQILIAMQCAsgBEEQaiQAIAILPAEBfyAABEAgAUGABnEhAQNAIAEgACgCBHEEQCACIAAvAQpqQQRqIQILIAAoAgAiAA0ACwsgAkH//wNxC5wBAQN/IABFBEBBAA8LIAAhAwNAAn8CQAJAIAAvAQgiAUH04AFNBEAgAUEBRg0BIAFB9cYBRg0BDAILIAFBgbICRg0AIAFB9eABRw0BCyAAKAIAIQEgAEEANgIAIAAoAgwQBiAAEAYgASADIAAgA0YbIQMCQCACRQRAQQAhAgwBCyACIAE2AgALIAEMAQsgACICKAIACyIADQALIAMLsgQCBX8BfgJAAkACQCAAIAGtEBciAQRAIAEtAAANAUEAIQAMAgsgBARAIARBADYCBCAEQQ42AgALQQAPC0EAIQADQCABLQAABH4gASkDCCABKQMQfQVCAAtCBFQNASABEAwhByABIAEQDCIGrRATIghFBEBBACECIAQEQCAEQQA2AgQgBEEVNgIACyABEAggAEUNAwNAIAAoAgAhASAAKAIMEAYg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DCAAQRg2AggLDAMLIAAgBiAFLwFqQQAgBCABEQYAIQEgBhALIAFFDQILAkAgDUUEQCABIQMMAQsgACABIAUvAWgQgQEhAyABEAsgA0UNAQsCQCAJRSAMckUEQCADIQEMAQsgACADQQEQgAEhASADEAsgAUUNAQsgASEDDAELQQAhAwsgBUHwAGokACADC4UBAQF/IAFFBEAgAEEIaiIABEAgAEEANgIEIABBEjYCAAtBAA8LQTgQCSIDRQRAIABBCGoiAARAIABBADYCBCAAQQ42AgALQQAPCyADQQA2AhAgA0IANwIIIANCADcDKCADQQA2AgQgAyACNgIAIANCADcDGCADQQA2AjAgACABQTsgAxBCCw8AIAAgASACQQBBABCCAQusAgECfyABRQRAIABBCGoiAARAIABBADYCBCAAQRI2AgALQQAPCwJAIAJBfUsNACACQf//A3FBCEYNACAAQQhqIgAEQCAAQQA2AgQgAEEQNgIAC0EADwsCQEGwwAAQCSIFBEAgBUEANgIIIAVCADcCACAFQYiBAUGogQEgAxs2AqhAIAUgAjYCFCAFIAM6ABAgBUEAOgAPIAVBADsBDCAFIAMgAkF9SyIGcToADiAFQQggAiAGG0H//wNxIAQgBUGIgQFBqIEBIAMbKAIAEQAAIgI2AqxAIAINASAFEDEgBRAGCyAAQQhqIgAEQCAAQQA2AgQgAEEONgIAC0EADwsgACABQTogBRBCIgAEfyAABSAFKAKsQCAFKAKoQCgCBBEDACAFEDEgBRAGQQALC6ABAQF/IAIgACgCBCIDIAIgA0kbIgIEQCAAIAMgAms2AgQCQAJAAkACQCAAKAIcIgMoAhRBAWsOAgEAAgsgA0GgAWogASAAKAIAIAJB3IABKAIAEQgADAILIAAgACgCMCABIAAoAgAgAkHEgAEoAgARBAA2AjAMAQsgASAAKAIAIAIQBxoLIAAgACgCACACajYCACAAIAAoAgggAmo2AggLC7cCAQR/QX4hAgJAIABFDQAgACgCIEUNACAAKAIkIgRFDQAgACgCHCIBRQ0AIAEoAgAgAEcNAAJAAkAgASgCICIDQTlrDjkBAgICAgICAgICAgIBAgICAQICAgICAgICAgICAgICAgICAQICAgICAgICAgICAQICAgICAgICAgEACyADQZoFRg0AIANBKkcN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DCABajYCDCAGIAYoAgggAWo2AgggBSAFKAIUIAFqNgIUIAUgBSgCECABazYCECAGIAYoAhAgAWsiATYCECABDQAgBiAGKAIENgIIC0EAIQRBACEJIAMoAhBFDQAMCgsgAygCHCgCJCEGIAMgAygCGCIBQQFqNgIYIAEgBmotAAAhASADIARBAWo2AhAgAygCBCAEaiABOgAAIAEEQCADKAIQIQQMAQsLIAMoAhwoAixFDQAgAygCECIGIAlNDQAgBQJ/IAUoAjAhBEEAIAMoAgQgCWoiAUUNABogBCABIAYgCWtB1IABKAIAEQAACzYCMAsgA0HnADYCIAsCQCADKAIcKAIsBEAgAygCDCADKAIQIgFBAmpJBH8gBRAKIAMoAhANAkEABSABCyADKAIEaiAFKAIwOwAAIAMgAygCEEECajYCECADQaABakHkgAEoAgARAQAaCyADQfEANgIgIAUQCiADKAIQRQ0BDAcLDAYLIAUoAgQNAQsgAygCPA0AIApFDQEgAygCIEGaBUYNAQsCfyADKAKIASIBRQRAIAMgChCFAQwBCwJAAkACQCADKAKMAUECaw4CAAECCwJ/AkADQAJAAkAgAygCPA0AIAMQLyADKAI8DQAgCg0BQQAMBAsgAygCSCADKAJoai0AACEEIAMgAygC8C0iAUEBajYC8C0gASADKALsLWpBADoAACADIAMoAvAtIgFBAWo2AvAtIAEgAygC7C1qQQA6AAAgAyADKALwLSIBQQFqNgLwLSABIAMoAuwtaiAEOgAAIAMgBEECdGoiASABLwHkAUEBajsB5AEgAyADKAI8QQFrNgI8IAMgAygCaEEBaiIBNgJoIAMoAvAtIAMoAvQtRw0BQQAhBCADIAMoAlgiBkEATgR/IAMoAkggBmoFQQALIAEgBmtBABAPIAMgAygCaDYCWCADKAIAEAogAygCACgCEA0BDAILCyADQQA2AoQuIApBBEYEQCADIAMoAlgiAUEATgR/IAMoAkggAWoFQQALIAMoAmggAWtBARAPIAMgAygCaDYCWCADKAIAEApBA0ECIAMoAgAoAhAbDAILIAMoAvAtBEBBACEEIAMgAygCWCIBQQBOBH8gAygCSCABagVBAAsgAygCaCABa0EAEA8gAyADKAJoNgJYIAMoAgAQCiADKAIAKAIQRQ0BC0EBIQQLIAQL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bGl0ZXJhbC9sZW5ndGhzIHNldABpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQAdW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0AGludmFsaWQgZGlzdGFuY2VzIHNldABpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0AEZpbGUgYWxyZWFkeSBleGlzdHMAdG9vIG1hbnkgbGVuZ3RoIG9yIGRpc3RhbmNlIHN5bWJvbHMAaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocwAlcyVzJXMAYnVmZmVyIGVycm9yAE5vIGVycm9yAHN0cmVhbSBlcnJvcgBUZWxsIGVycm9yAEludGVybmFsIGVycm9yAFNlZWsgZXJyb3IAV3JpdGUgZXJyb3IAZmlsZSBlcnJvcgBSZWFkIGVycm9yAFpsaWIgZXJyb3IAZGF0YSBlcnJvcgBDUkMgZXJyb3IAaW5jb21wYXRpYmxlIHZlcnNpb24AaW52YWxpZCBjb2RlIC0tIG1pc3NpbmcgZW5kLW9mLWJsb2NrAGluY29ycmVjdCBoZWFkZXIgY2hlY2sAaW5jb3JyZWN0IGxlbmd0aCBjaGVjawBpbmNvcnJlY3QgZGF0YSBjaGVjawBpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjawBoZWFkZXIgY3JjIG1pc21hdGNoADEuMi4xMy56bGliLW5nAGludmFsaWQgd2luZG93IHNpemUAUmVhZC1vbmx5IGFyY2hpdmUATm90IGEgemlwIGFyY2hpdmUAUmVzb3VyY2Ugc3RpbGwgaW4gdXNlAE1hbGxvYyBmYWlsdXJlAGludmFsaWQgYmxvY2sgdHlwZQBGYWlsdXJlIHRvIGNyZWF0ZSB0ZW1wb3JhcnkgZmlsZQBDYW4ndCBvcGVuIGZpbGUATm8gc3VjaCBmaWxlAFByZW1hdHVyZSBlbmQgb2YgZmlsZQBDYW4ndCByZW1vdmUgZmlsZQBpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUAaW52YWxpZCBkaXN0YW5jZSBjb2RlAHVua25vd24gY29tcHJlc3Npb24gbWV0aG9kAHN0cmVhbSBlbmQAQ29tcHJlc3NlZCBkYXRhIGludmFsaWQATXVsdGktZGlzayB6aXAgYXJjaGl2ZXMgbm90IHN1cHBvcnRl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UgAIANIACAAyAAgAsgAIAHIACADyAAgACgAIAIoACABKAAgAygAIACoACACqAAgAagAIAOoACAAaAAgAmgAIAFoACADaAAgAOgAIALoACAB6AAgA+gAIAAYACACGAAgARgAIAMYACAAmAAgApgAIAGYACADmAAgAFgAIAJYACABWAAgA1gAIADYACAC2AAgAdgAIAPYACAAOAAgAjgAIAE4ACADOAAgALgAIAK4ACABuAAgA7gAIAB4ACACeAAgAXgAIAN4ACAA+AAgAvgAIAH4ACAD+AAgAAQAIAIEACABBAAgAwQAIACEACAChAAgAYQAIAOEACAARAAgAkQAIAFEACADRAAgAMQAIALEACABxAAgA8QAIAAkACACJAAgASQAIAMkACAApAAgAqQAIAGkACADpAAgAGQAIAJkACABZAAgA2QAIADkACAC5AAgAeQAIAPkACAAFAAgAhQAIAEUACADFAAgAJQAIAKUACABlAAgA5QAIABUACACVAAgAVQAIANUACAA1AAgAtQAIAHUACAD1AAgADQAIAI0ACABNAAgAzQAIAC0ACACtAAgAbQAIAO0ACAAdAAgAnQAIAF0ACADdAAgAPQAIAL0ACAB9AAgA/QAIABMACQATAQkAkwAJAJMBCQBTAAkAUwEJANMACQDTAQkAMwAJADMBCQCzAAkAswEJAHMACQBzAQkA8wAJAPMBCQALAAkACwEJAIsACQCLAQkASwAJAEsBCQDLAAkAywEJACsACQArAQkAqwAJAKsBCQBrAAkAawEJAOsACQDrAQkAGwAJABsBCQCbAAkAmwEJAFsACQBbAQkA2wAJANsBCQA7AAkAOwEJALsACQC7AQkAewAJAHsBCQD7AAkA+wEJAAcACQAHAQkAhwAJAIcBCQBHAAkARwEJAMcACQDHAQkAJwAJACcBCQCnAAkApwEJAGcACQBnAQkA5wAJAOcBCQAXAAkAFwEJAJcACQCXAQkAVwAJAFcBCQDXAAkA1wEJADcACQA3AQkAtwAJALcBCQB3AAkAdwEJAPcACQD3AQkADwAJAA8BCQCPAAkAjwEJAE8ACQBPAQkAzwAJAM8BCQAvAAkALwEJAK8ACQCvAQkAbwAJAG8BCQDvAAkA7wEJAB8ACQAfAQkAnwAJAJ8BCQBfAAkAXwEJAN8ACQDfAQkAPwAJAD8BCQC/AAkA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SXMgYSBkaXJlY3RvcnkAVGV4dCBmaWxlIGJ1c3kARXhlYyBmb3JtYXQgZXJyb3IASW52YWxpZCBhcmd1bWVudABBcmd1bWVudCBsaXN0IHRvbyBsb25nAFN5bWJvbGljIGxpbmsgbG9vcABGaWxlbmFtZSB0b28gbG9uZwBUb28gbWFueSBvcGVuIGZpbGVzIGluIHN5c3RlbQBObyBmaWxlIGRlc2NyaXB0b3JzIGF2YWlsYWJsZQBCYWQgZmlsZSBkZXNjcmlwdG9yAE5vIGNoaWxkIHByb2Nlc3MAQmFkIGFkZHJlc3MARmlsZSB0b28gbGFyZ2UAVG9vIG1hbnkgbGlua3MATm8gbG9ja3MgYXZhaWxhYmxlAFJlc291cmNlIGRlYWRsb2NrIHdvdWxkIG9jY3VyAFN0YXRlIG5vdCByZWNvdmVyYWJsZQBQcmV2aW91cyBvd25lciBkaWVkAE9wZXJhdGlvbiBjYW5jZWxlZABGdW5jdGlvbiBub3QgaW1wbGVtZW50ZWQATm8gbWVzc2FnZSBvZiBkZXNpcmVkIHR5cGUASWRlbnRpZmllciByZW1vdmVkAERldmljZSBub3QgYSBzdHJlYW0ATm8gZGF0YSBhdmFpbGFibGUARGV2aWNlIHRpbWVvdXQAT3V0IG9mIHN0cmVhbXMgcmVzb3VyY2VzAExpbmsgaGFzIGJlZW4gc2V2ZXJlZABQcm90b2NvbCBlcnJvcgBCYWQgbWVzc2FnZQBGaWxlIGRlc2NyaXB0b3IgaW4gYmFkIHN0YXRlAE5vdCBhIHNvY2tldABEZXN0aW5hdGlvbiBhZGRyZXNzIHJlcXVpcmVkAE1lc3NhZ2UgdG9vIGxhcmdlAFByb3RvY29sIHdyb25nIHR5cGUgZm9yIHNvY2tldABQcm90b2NvbCBub3QgYXZhaWxhYmxlAFByb3RvY29sIG5vdCBzdXBwb3J0ZWQAU29ja2V0IHR5cGUgbm90IHN1cHBvcnRlZABOb3Qgc3VwcG9ydGVkAFByb3RvY29sIGZhbWlseSBub3Qgc3VwcG9ydGVkAEFkZHJlc3MgZmFtaWx5IG5vdCBzdXBwb3J0ZWQgYnkgcHJvdG9jb2wAQWRkcmVzcyBub3QgYXZhaWxhYmxlAE5ldHdvcmsgaXMgZG93bgBOZXR3b3JrIHVucmVhY2hhYmxlAENvbm5lY3Rpb24gcmVzZXQgYnkgbmV0d29yawBDb25uZWN0aW9uIGFib3J0ZWQATm8gYnVmZmVyIHNwYWNlIGF2YWlsYWJsZQBTb2NrZXQgaXMgY29ubmVjdGVkAFNvY2tldCBub3QgY29ubmVjdGVkAENhbm5vdCBzZW5kIGFmdGVyIHNvY2tldCBzaHV0ZG93bgBPcGVyYXRpb24gYWxyZWFkeSBpbiBwcm9ncmVzcwBPcGVyYXRpb24gaW4gcHJvZ3Jlc3MAU3RhbGUgZmlsZSBoYW5kbGUAUmVtb3RlIEkvTyBlcnJvcgBRdW90YSBleGNlZWRlZABObyBtZWRpdW0gZm91bmQAV3JvbmcgbWVkaXVtIHR5cGUATm8gZXJyb3IgaW5mb3JtYXRpb24AQcCAAQuFARMAAAAUAAAAFQAAABYAAAAXAAAAGAAAABkAAAAaAAAAGwAAABwAAAAdAAAAHgAAAB8AAAAgAAAAIQAAACIAAAAjAAAAgERQADEAAAAyAAAAMwAAADQAAAA1AAAANgAAADcAAAA4AAAAOQAAADIAAAAzAAAANAAAADUAAAA2AAAANwAAADgAQfSCAQsCXEQAQbCDAQsQ/////////////////////w=="; - if (!isDataURI(wasmBinaryFile)) { - wasmBinaryFile = locateFile(wasmBinaryFile); - } - function getBinary(file) { - try { - if (file == wasmBinaryFile && wasmBinary) { - return new Uint8Array(wasmBinary); - } - var binary = tryParseAsDataURI(file); - if (binary) { - return binary; - } - if (readBinary) { - return readBinary(file); - } else { - throw "sync fetching of the wasm failed: you can preload it to Module['wasmBinary'] manually, or emcc.py will do that for you when generating HTML (but not JS)"; - } - } catch (err2) { - abort(err2); - } - } - function instantiateSync(file, info) { - var instance; - var module2; - var binary; - try { - binary = getBinary(file); - module2 = new WebAssembly.Module(binary); - instance = new WebAssembly.Instance(module2, info); - } catch (e) { - var str = e.toString(); - err("failed to compile wasm module: " + str); - if (str.includes("imported Memory") || str.includes("memory import")) { - err( - "Memory size incompatibility issues may be due to changing INITIAL_MEMORY at runtime to something too large. Use ALLOW_MEMORY_GROWTH to allow any size memory (and also make sure not to set INITIAL_MEMORY at runtime to something smaller than it was at compile time)." - ); - } - throw e; - } - return [instance, module2]; - } - function createWasm() { - var info = { a: asmLibraryArg }; - function receiveInstance(instance, module2) { - var exports3 = instance.exports; - Module["asm"] = exports3; - wasmMemory = Module["asm"]["g"]; - updateGlobalBufferAndViews(wasmMemory.buffer); - wasmTable = Module["asm"]["W"]; - addOnInit(Module["asm"]["h"]); - removeRunDependency(); - } - addRunDependency(); - if (Module["instantiateWasm"]) { - try { - var exports2 = Module["instantiateWasm"](info, receiveInstance); - return exports2; - } catch (e) { - err("Module.instantiateWasm callback failed with error: " + e); - return false; - } - } - var result = instantiateSync(wasmBinaryFile, info); - receiveInstance(result[0]); - return Module["asm"]; - } - function LE_HEAP_LOAD_F32(byteOffset) { - return HEAP_DATA_VIEW.getFloat32(byteOffset, true); - } - function LE_HEAP_LOAD_F64(byteOffset) { - return HEAP_DATA_VIEW.getFloat64(byteOffset, true); - } - function LE_HEAP_LOAD_I16(byteOffset) { - return HEAP_DATA_VIEW.getInt16(byteOffset, true); - } - function LE_HEAP_LOAD_I32(byteOffset) { - return HEAP_DATA_VIEW.getInt32(byteOffset, true); - } - function LE_HEAP_STORE_I32(byteOffset, value) { - HEAP_DATA_VIEW.setInt32(byteOffset, value, true); - } - function callRuntimeCallbacks(callbacks) { - while (callbacks.length > 0) { - var callback = callbacks.shift(); - if (typeof callback == "function") { - callback(Module); - continue; - } - var func = callback.func; - if (typeof func === "number") { - if (callback.arg === void 0) { - wasmTable.get(func)(); - } else { - wasmTable.get(func)(callback.arg); - } - } else { - func(callback.arg === void 0 ? null : callback.arg); - } - } - } - function _gmtime_r(time, tmPtr) { - var date = new Date(LE_HEAP_LOAD_I32((time >> 2) * 4) * 1e3); - LE_HEAP_STORE_I32((tmPtr >> 2) * 4, date.getUTCSeconds()); - LE_HEAP_STORE_I32((tmPtr + 4 >> 2) * 4, date.getUTCMinutes()); - LE_HEAP_STORE_I32((tmPtr + 8 >> 2) * 4, date.getUTCHours()); - LE_HEAP_STORE_I32((tmPtr + 12 >> 2) * 4, date.getUTCDate()); - LE_HEAP_STORE_I32((tmPtr + 16 >> 2) * 4, date.getUTCMonth()); - LE_HEAP_STORE_I32((tmPtr + 20 >> 2) * 4, date.getUTCFullYear() - 1900); - LE_HEAP_STORE_I32((tmPtr + 24 >> 2) * 4, date.getUTCDay()); - LE_HEAP_STORE_I32((tmPtr + 36 >> 2) * 4, 0); - LE_HEAP_STORE_I32((tmPtr + 32 >> 2) * 4, 0); - var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); - var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0; - LE_HEAP_STORE_I32((tmPtr + 28 >> 2) * 4, yday); - if (!_gmtime_r.GMTString) _gmtime_r.GMTString = allocateUTF8("GMT"); - LE_HEAP_STORE_I32((tmPtr + 40 >> 2) * 4, _gmtime_r.GMTString); - return tmPtr; - } - function ___gmtime_r(a0, a1) { - return _gmtime_r(a0, a1); - } - function _emscripten_memcpy_big(dest, src, num) { - HEAPU8.copyWithin(dest, src, src + num); - } - function emscripten_realloc_buffer(size) { - try { - wasmMemory.grow(size - buffer.byteLength + 65535 >>> 16); - updateGlobalBufferAndViews(wasmMemory.buffer); - return 1; - } catch (e) { - } - } - function _emscripten_resize_heap(requestedSize) { - var oldSize = HEAPU8.length; - requestedSize = requestedSize >>> 0; - var maxHeapSize = 2147483648; - if (requestedSize > maxHeapSize) { - return false; - } - for (var cutDown = 1; cutDown <= 4; cutDown *= 2) { - var overGrownHeapSize = oldSize * (1 + 0.2 / cutDown); - overGrownHeapSize = Math.min( - overGrownHeapSize, - requestedSize + 100663296 - ); - var newSize = Math.min( - maxHeapSize, - alignUp(Math.max(requestedSize, overGrownHeapSize), 65536) - ); - var replacement = emscripten_realloc_buffer(newSize); - if (replacement) { - return true; - } - } - return false; - } - function _setTempRet0(val) { - } - function _time(ptr) { - var ret = Date.now() / 1e3 | 0; - if (ptr) { - LE_HEAP_STORE_I32((ptr >> 2) * 4, ret); - } - return ret; - } - function _tzset() { - if (_tzset.called) return; - _tzset.called = true; - var currentYear = (/* @__PURE__ */ new Date()).getFullYear(); - var winter = new Date(currentYear, 0, 1); - var summer = new Date(currentYear, 6, 1); - var winterOffset = winter.getTimezoneOffset(); - var summerOffset = summer.getTimezoneOffset(); - var stdTimezoneOffset = Math.max(winterOffset, summerOffset); - LE_HEAP_STORE_I32((__get_timezone() >> 2) * 4, stdTimezoneOffset * 60); - LE_HEAP_STORE_I32( - (__get_daylight() >> 2) * 4, - Number(winterOffset != summerOffset) - ); - function extractZone(date) { - var match = date.toTimeString().match(/\(([A-Za-z ]+)\)$/); - return match ? match[1] : "GMT"; - } - var winterName = extractZone(winter); - var summerName = extractZone(summer); - var winterNamePtr = allocateUTF8(winterName); - var summerNamePtr = allocateUTF8(summerName); - if (summerOffset < winterOffset) { - LE_HEAP_STORE_I32((__get_tzname() >> 2) * 4, winterNamePtr); - LE_HEAP_STORE_I32((__get_tzname() + 4 >> 2) * 4, summerNamePtr); - } else { - LE_HEAP_STORE_I32((__get_tzname() >> 2) * 4, summerNamePtr); - LE_HEAP_STORE_I32((__get_tzname() + 4 >> 2) * 4, winterNamePtr); - } - } - function _timegm(tmPtr) { - _tzset(); - var time = Date.UTC( - LE_HEAP_LOAD_I32((tmPtr + 20 >> 2) * 4) + 1900, - LE_HEAP_LOAD_I32((tmPtr + 16 >> 2) * 4), - LE_HEAP_LOAD_I32((tmPtr + 12 >> 2) * 4), - LE_HEAP_LOAD_I32((tmPtr + 8 >> 2) * 4), - LE_HEAP_LOAD_I32((tmPtr + 4 >> 2) * 4), - LE_HEAP_LOAD_I32((tmPtr >> 2) * 4), - 0 - ); - var date = new Date(time); - LE_HEAP_STORE_I32((tmPtr + 24 >> 2) * 4, date.getUTCDay()); - var start = Date.UTC(date.getUTCFullYear(), 0, 1, 0, 0, 0, 0); - var yday = (date.getTime() - start) / (1e3 * 60 * 60 * 24) | 0; - LE_HEAP_STORE_I32((tmPtr + 28 >> 2) * 4, yday); - return date.getTime() / 1e3 | 0; - } - function intArrayFromBase64(s) { - { - var buf; - try { - buf = Buffer.from(s, "base64"); - } catch (_) { - buf = new Buffer(s, "base64"); - } - return new Uint8Array( - buf["buffer"], - buf["byteOffset"], - buf["byteLength"] - ); - } - } - function tryParseAsDataURI(filename) { - if (!isDataURI(filename)) { - return; - } - return intArrayFromBase64(filename.slice(dataURIPrefix.length)); - } - var asmLibraryArg = { - e: ___gmtime_r, - c: _emscripten_memcpy_big, - d: _emscripten_resize_heap, - a: _setTempRet0, - b: _time, - f: _timegm - }; - var asm = createWasm(); - Module["___wasm_call_ctors"] = asm["h"]; - Module["_zip_ext_count_symlinks"] = asm["i"]; - Module["_zip_file_get_external_attributes"] = asm["j"]; - Module["_zipstruct_statS"] = asm["k"]; - Module["_zipstruct_stat_size"] = asm["l"]; - Module["_zipstruct_stat_mtime"] = asm["m"]; - Module["_zipstruct_stat_crc"] = asm["n"]; - Module["_zipstruct_errorS"] = asm["o"]; - Module["_zipstruct_error_code_zip"] = asm["p"]; - Module["_zipstruct_stat_comp_size"] = asm["q"]; - Module["_zipstruct_stat_comp_method"] = asm["r"]; - Module["_zip_close"] = asm["s"]; - Module["_zip_delete"] = asm["t"]; - Module["_zip_dir_add"] = asm["u"]; - Module["_zip_discard"] = asm["v"]; - Module["_zip_error_init_with_code"] = asm["w"]; - Module["_zip_get_error"] = asm["x"]; - Module["_zip_file_get_error"] = asm["y"]; - Module["_zip_error_strerror"] = asm["z"]; - Module["_zip_fclose"] = asm["A"]; - Module["_zip_file_add"] = asm["B"]; - Module["_free"] = asm["C"]; - var _malloc = Module["_malloc"] = asm["D"]; - Module["_zip_source_error"] = asm["E"]; - Module["_zip_source_seek"] = asm["F"]; - Module["_zip_file_set_external_attributes"] = asm["G"]; - Module["_zip_file_set_mtime"] = asm["H"]; - Module["_zip_fopen_index"] = asm["I"]; - Module["_zip_fread"] = asm["J"]; - Module["_zip_get_name"] = asm["K"]; - Module["_zip_get_num_entries"] = asm["L"]; - Module["_zip_source_read"] = asm["M"]; - Module["_zip_name_locate"] = asm["N"]; - Module["_zip_open_from_source"] = asm["O"]; - Module["_zip_set_file_compression"] = asm["P"]; - Module["_zip_source_buffer"] = asm["Q"]; - Module["_zip_source_buffer_create"] = asm["R"]; - Module["_zip_source_close"] = asm["S"]; - Module["_zip_source_free"] = asm["T"]; - Module["_zip_source_keep"] = asm["U"]; - Module["_zip_source_open"] = asm["V"]; - Module["_zip_source_tell"] = asm["X"]; - Module["_zip_stat_index"] = asm["Y"]; - var __get_tzname = Module["__get_tzname"] = asm["Z"]; - var __get_daylight = Module["__get_daylight"] = asm["_"]; - var __get_timezone = Module["__get_timezone"] = asm["$"]; - var stackSave = Module["stackSave"] = asm["aa"]; - var stackRestore = Module["stackRestore"] = asm["ba"]; - var stackAlloc = Module["stackAlloc"] = asm["ca"]; - Module["cwrap"] = cwrap; - Module["getValue"] = getValue; - var calledRun; - dependenciesFulfilled = function runCaller() { - if (!calledRun) run(); - if (!calledRun) dependenciesFulfilled = runCaller; - }; - function run(args) { - if (runDependencies > 0) { - return; - } - preRun(); - if (runDependencies > 0) { - return; - } - function doRun() { - if (calledRun) return; - calledRun = true; - Module["calledRun"] = true; - if (ABORT) return; - initRuntime(); - readyPromiseResolve(Module); - if (Module["onRuntimeInitialized"]) Module["onRuntimeInitialized"](); - postRun(); - } - if (Module["setStatus"]) { - Module["setStatus"]("Running..."); - setTimeout(function() { - setTimeout(function() { - Module["setStatus"](""); - }, 1); - doRun(); - }, 1); - } else { - doRun(); - } - } - Module["run"] = run; - if (Module["preInit"]) { - if (typeof Module["preInit"] == "function") - Module["preInit"] = [Module["preInit"]]; - while (Module["preInit"].length > 0) { - Module["preInit"].pop()(); - } - } - run(); - return createModule2; - }; -}(); -module.exports = createModule; -}(libzipSync)); - -const createModule = libzipSync.exports; - -const number64 = [ - `number`, - // low - `number` - // high -]; -var Errors = /* @__PURE__ */ ((Errors2) => { - Errors2[Errors2["ZIP_ER_OK"] = 0] = "ZIP_ER_OK"; - Errors2[Errors2["ZIP_ER_MULTIDISK"] = 1] = "ZIP_ER_MULTIDISK"; - Errors2[Errors2["ZIP_ER_RENAME"] = 2] = "ZIP_ER_RENAME"; - Errors2[Errors2["ZIP_ER_CLOSE"] = 3] = "ZIP_ER_CLOSE"; - Errors2[Errors2["ZIP_ER_SEEK"] = 4] = "ZIP_ER_SEEK"; - Errors2[Errors2["ZIP_ER_READ"] = 5] = "ZIP_ER_READ"; - Errors2[Errors2["ZIP_ER_WRITE"] = 6] = "ZIP_ER_WRITE"; - Errors2[Errors2["ZIP_ER_CRC"] = 7] = "ZIP_ER_CRC"; - Errors2[Errors2["ZIP_ER_ZIPCLOSED"] = 8] = "ZIP_ER_ZIPCLOSED"; - Errors2[Errors2["ZIP_ER_NOENT"] = 9] = "ZIP_ER_NOENT"; - Errors2[Errors2["ZIP_ER_EXISTS"] = 10] = "ZIP_ER_EXISTS"; - Errors2[Errors2["ZIP_ER_OPEN"] = 11] = "ZIP_ER_OPEN"; - Errors2[Errors2["ZIP_ER_TMPOPEN"] = 12] = "ZIP_ER_TMPOPEN"; - Errors2[Errors2["ZIP_ER_ZLIB"] = 13] = "ZIP_ER_ZLIB"; - Errors2[Errors2["ZIP_ER_MEMORY"] = 14] = "ZIP_ER_MEMORY"; - Errors2[Errors2["ZIP_ER_CHANGED"] = 15] = "ZIP_ER_CHANGED"; - Errors2[Errors2["ZIP_ER_COMPNOTSUPP"] = 16] = "ZIP_ER_COMPNOTSUPP"; - Errors2[Errors2["ZIP_ER_EOF"] = 17] = "ZIP_ER_EOF"; - Errors2[Errors2["ZIP_ER_INVAL"] = 18] = "ZIP_ER_INVAL"; - Errors2[Errors2["ZIP_ER_NOZIP"] = 19] = "ZIP_ER_NOZIP"; - Errors2[Errors2["ZIP_ER_INTERNAL"] = 20] = "ZIP_ER_INTERNAL"; - Errors2[Errors2["ZIP_ER_INCONS"] = 21] = "ZIP_ER_INCONS"; - Errors2[Errors2["ZIP_ER_REMOVE"] = 22] = "ZIP_ER_REMOVE"; - Errors2[Errors2["ZIP_ER_DELETED"] = 23] = "ZIP_ER_DELETED"; - Errors2[Errors2["ZIP_ER_ENCRNOTSUPP"] = 24] = "ZIP_ER_ENCRNOTSUPP"; - Errors2[Errors2["ZIP_ER_RDONLY"] = 25] = "ZIP_ER_RDONLY"; - Errors2[Errors2["ZIP_ER_NOPASSWD"] = 26] = "ZIP_ER_NOPASSWD"; - Errors2[Errors2["ZIP_ER_WRONGPASSWD"] = 27] = "ZIP_ER_WRONGPASSWD"; - Errors2[Errors2["ZIP_ER_OPNOTSUPP"] = 28] = "ZIP_ER_OPNOTSUPP"; - Errors2[Errors2["ZIP_ER_INUSE"] = 29] = "ZIP_ER_INUSE"; - Errors2[Errors2["ZIP_ER_TELL"] = 30] = "ZIP_ER_TELL"; - Errors2[Errors2["ZIP_ER_COMPRESSED_DATA"] = 31] = "ZIP_ER_COMPRESSED_DATA"; - return Errors2; -})(Errors || {}); -const makeInterface = (emZip) => ({ - // Those are getters because they can change after memory growth - get HEAPU8() { - return emZip.HEAPU8; - }, - errors: Errors, - SEEK_SET: 0, - SEEK_CUR: 1, - SEEK_END: 2, - ZIP_CHECKCONS: 4, - ZIP_EXCL: 2, - ZIP_RDONLY: 16, - ZIP_FL_OVERWRITE: 8192, - ZIP_FL_COMPRESSED: 4, - ZIP_OPSYS_DOS: 0, - ZIP_OPSYS_AMIGA: 1, - ZIP_OPSYS_OPENVMS: 2, - ZIP_OPSYS_UNIX: 3, - ZIP_OPSYS_VM_CMS: 4, - ZIP_OPSYS_ATARI_ST: 5, - ZIP_OPSYS_OS_2: 6, - ZIP_OPSYS_MACINTOSH: 7, - ZIP_OPSYS_Z_SYSTEM: 8, - ZIP_OPSYS_CPM: 9, - ZIP_OPSYS_WINDOWS_NTFS: 10, - ZIP_OPSYS_MVS: 11, - ZIP_OPSYS_VSE: 12, - ZIP_OPSYS_ACORN_RISC: 13, - ZIP_OPSYS_VFAT: 14, - ZIP_OPSYS_ALTERNATE_MVS: 15, - ZIP_OPSYS_BEOS: 16, - ZIP_OPSYS_TANDEM: 17, - ZIP_OPSYS_OS_400: 18, - ZIP_OPSYS_OS_X: 19, - ZIP_CM_DEFAULT: -1, - ZIP_CM_STORE: 0, - ZIP_CM_DEFLATE: 8, - uint08S: emZip._malloc(1), - uint32S: emZip._malloc(4), - malloc: emZip._malloc, - free: emZip._free, - getValue: emZip.getValue, - openFromSource: emZip.cwrap(`zip_open_from_source`, `number`, [`number`, `number`, `number`]), - close: emZip.cwrap(`zip_close`, `number`, [`number`]), - discard: emZip.cwrap(`zip_discard`, null, [`number`]), - getError: emZip.cwrap(`zip_get_error`, `number`, [`number`]), - getName: emZip.cwrap(`zip_get_name`, `string`, [`number`, `number`, `number`]), - getNumEntries: emZip.cwrap(`zip_get_num_entries`, `number`, [`number`, `number`]), - delete: emZip.cwrap(`zip_delete`, `number`, [`number`, `number`]), - statIndex: emZip.cwrap(`zip_stat_index`, `number`, [`number`, ...number64, `number`, `number`]), - fopenIndex: emZip.cwrap(`zip_fopen_index`, `number`, [`number`, ...number64, `number`]), - fread: emZip.cwrap(`zip_fread`, `number`, [`number`, `number`, `number`, `number`]), - fclose: emZip.cwrap(`zip_fclose`, `number`, [`number`]), - dir: { - add: emZip.cwrap(`zip_dir_add`, `number`, [`number`, `string`]) - }, - file: { - add: emZip.cwrap(`zip_file_add`, `number`, [`number`, `string`, `number`, `number`]), - getError: emZip.cwrap(`zip_file_get_error`, `number`, [`number`]), - getExternalAttributes: emZip.cwrap(`zip_file_get_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]), - setExternalAttributes: emZip.cwrap(`zip_file_set_external_attributes`, `number`, [`number`, ...number64, `number`, `number`, `number`]), - setMtime: emZip.cwrap(`zip_file_set_mtime`, `number`, [`number`, ...number64, `number`, `number`]), - setCompression: emZip.cwrap(`zip_set_file_compression`, `number`, [`number`, ...number64, `number`, `number`]) - }, - ext: { - countSymlinks: emZip.cwrap(`zip_ext_count_symlinks`, `number`, [`number`]) - }, - error: { - initWithCode: emZip.cwrap(`zip_error_init_with_code`, null, [`number`, `number`]), - strerror: emZip.cwrap(`zip_error_strerror`, `string`, [`number`]) - }, - name: { - locate: emZip.cwrap(`zip_name_locate`, `number`, [`number`, `string`, `number`]) - }, - source: { - fromUnattachedBuffer: emZip.cwrap(`zip_source_buffer_create`, `number`, [`number`, ...number64, `number`, `number`]), - fromBuffer: emZip.cwrap(`zip_source_buffer`, `number`, [`number`, `number`, ...number64, `number`]), - free: emZip.cwrap(`zip_source_free`, null, [`number`]), - keep: emZip.cwrap(`zip_source_keep`, null, [`number`]), - open: emZip.cwrap(`zip_source_open`, `number`, [`number`]), - close: emZip.cwrap(`zip_source_close`, `number`, [`number`]), - seek: emZip.cwrap(`zip_source_seek`, `number`, [`number`, ...number64, `number`]), - tell: emZip.cwrap(`zip_source_tell`, `number`, [`number`]), - read: emZip.cwrap(`zip_source_read`, `number`, [`number`, `number`, `number`]), - error: emZip.cwrap(`zip_source_error`, `number`, [`number`]) - }, - struct: { - statS: emZip.cwrap(`zipstruct_statS`, `number`, []), - statSize: emZip.cwrap(`zipstruct_stat_size`, `number`, [`number`]), - statCompSize: emZip.cwrap(`zipstruct_stat_comp_size`, `number`, [`number`]), - statCompMethod: emZip.cwrap(`zipstruct_stat_comp_method`, `number`, [`number`]), - statMtime: emZip.cwrap(`zipstruct_stat_mtime`, `number`, [`number`]), - statCrc: emZip.cwrap(`zipstruct_stat_crc`, `number`, [`number`]), - errorS: emZip.cwrap(`zipstruct_errorS`, `number`, []), - errorCodeZip: emZip.cwrap(`zipstruct_error_code_zip`, `number`, [`number`]) - } -}); - -function getArchivePart(path, extension) { - let idx = path.indexOf(extension); - if (idx <= 0) - return null; - let nextCharIdx = idx; - while (idx >= 0) { - nextCharIdx = idx + extension.length; - if (path[nextCharIdx] === ppath.sep) - break; - if (path[idx - 1] === ppath.sep) - return null; - idx = path.indexOf(extension, nextCharIdx); - } - if (path.length > nextCharIdx && path[nextCharIdx] !== ppath.sep) - return null; - return path.slice(0, nextCharIdx); -} -class ZipOpenFS extends MountFS { - static async openPromise(fn, opts) { - const zipOpenFs = new ZipOpenFS(opts); - try { - return await fn(zipOpenFs); - } finally { - zipOpenFs.saveAndClose(); - } - } - constructor(opts = {}) { - const fileExtensions = opts.fileExtensions; - const readOnlyArchives = opts.readOnlyArchives; - const getMountPoint = typeof fileExtensions === `undefined` ? (path) => getArchivePart(path, `.zip`) : (path) => { - for (const extension of fileExtensions) { - const result = getArchivePart(path, extension); - if (result) { - return result; - } - } - return null; - }; - const factorySync = (baseFs, p) => { - return new ZipFS(p, { - baseFs, - readOnly: readOnlyArchives, - stats: baseFs.statSync(p), - customZipImplementation: opts.customZipImplementation - }); - }; - const factoryPromise = async (baseFs, p) => { - const zipOptions = { - baseFs, - readOnly: readOnlyArchives, - stats: await baseFs.statPromise(p), - customZipImplementation: opts.customZipImplementation - }; - return () => { - return new ZipFS(p, zipOptions); - }; - }; - super({ - ...opts, - factorySync, - factoryPromise, - getMountPoint - }); - } -} - -class LibzipError extends Error { - code; - constructor(message, code) { - super(message); - this.name = `Libzip Error`; - this.code = code; - } -} -class LibZipImpl { - libzip; - lzSource; - zip; - listings; - symlinkCount; - filesShouldBeCached = true; - constructor(opts) { - const buffer = `buffer` in opts ? opts.buffer : opts.baseFs.readFileSync(opts.path); - this.libzip = getInstance(); - const errPtr = this.libzip.malloc(4); - try { - let flags = 0; - if (opts.readOnly) - flags |= this.libzip.ZIP_RDONLY; - const lzSource = this.allocateUnattachedSource(buffer); - try { - this.zip = this.libzip.openFromSource(lzSource, flags, errPtr); - this.lzSource = lzSource; - } catch (error) { - this.libzip.source.free(lzSource); - throw error; - } - if (this.zip === 0) { - const error = this.libzip.struct.errorS(); - this.libzip.error.initWithCode(error, this.libzip.getValue(errPtr, `i32`)); - throw this.makeLibzipError(error); - } - } finally { - this.libzip.free(errPtr); - } - const entryCount = this.libzip.getNumEntries(this.zip, 0); - const listings = new Array(entryCount); - for (let t = 0; t < entryCount; ++t) - listings[t] = this.libzip.getName(this.zip, t, 0); - this.listings = listings; - this.symlinkCount = this.libzip.ext.countSymlinks(this.zip); - if (this.symlinkCount === -1) { - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - } - getSymlinkCount() { - return this.symlinkCount; - } - getListings() { - return this.listings; - } - stat(entry) { - const stat = this.libzip.struct.statS(); - const rc = this.libzip.statIndex(this.zip, entry, 0, 0, stat); - if (rc === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - const size = this.libzip.struct.statSize(stat) >>> 0; - const mtime = this.libzip.struct.statMtime(stat) >>> 0; - const crc = this.libzip.struct.statCrc(stat) >>> 0; - return { size, mtime, crc }; - } - makeLibzipError(error) { - const errorCode = this.libzip.struct.errorCodeZip(error); - const strerror = this.libzip.error.strerror(error); - const libzipError = new LibzipError(strerror, this.libzip.errors[errorCode]); - if (errorCode === this.libzip.errors.ZIP_ER_CHANGED) - throw new Error(`Assertion failed: Unexpected libzip error: ${libzipError.message}`); - return libzipError; - } - setFileSource(target, compression, buffer) { - const lzSource = this.allocateSource(buffer); - try { - const newIndex = this.libzip.file.add(this.zip, target, lzSource, this.libzip.ZIP_FL_OVERWRITE); - if (newIndex === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - if (compression !== null) { - const rc = this.libzip.file.setCompression(this.zip, newIndex, 0, compression[0], compression[1]); - if (rc === -1) { - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - } - return newIndex; - } catch (error) { - this.libzip.source.free(lzSource); - throw error; - } - } - setMtime(entry, mtime) { - const rc = this.libzip.file.setMtime(this.zip, entry, 0, mtime, 0); - if (rc === -1) { - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - } - getExternalAttributes(index) { - const attrs = this.libzip.file.getExternalAttributes(this.zip, index, 0, 0, this.libzip.uint08S, this.libzip.uint32S); - if (attrs === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - const opsys = this.libzip.getValue(this.libzip.uint08S, `i8`) >>> 0; - const attributes = this.libzip.getValue(this.libzip.uint32S, `i32`) >>> 0; - return [opsys, attributes]; - } - setExternalAttributes(index, opsys, attributes) { - const rc = this.libzip.file.setExternalAttributes(this.zip, index, 0, 0, opsys, attributes); - if (rc === -1) { - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - } - locate(name) { - return this.libzip.name.locate(this.zip, name, 0); - } - getFileSource(index) { - const stat = this.libzip.struct.statS(); - const rc = this.libzip.statIndex(this.zip, index, 0, 0, stat); - if (rc === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - const size = this.libzip.struct.statCompSize(stat); - const compressionMethod = this.libzip.struct.statCompMethod(stat); - const buffer = this.libzip.malloc(size); - try { - const file = this.libzip.fopenIndex(this.zip, index, 0, this.libzip.ZIP_FL_COMPRESSED); - if (file === 0) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - try { - const rc2 = this.libzip.fread(file, buffer, size, 0); - if (rc2 === -1) - throw this.makeLibzipError(this.libzip.file.getError(file)); - else if (rc2 < size) - throw new Error(`Incomplete read`); - else if (rc2 > size) - throw new Error(`Overread`); - const memory = this.libzip.HEAPU8.subarray(buffer, buffer + size); - const data = Buffer.from(memory); - return { data, compressionMethod }; - } finally { - this.libzip.fclose(file); - } - } finally { - this.libzip.free(buffer); - } - } - deleteEntry(index) { - const rc = this.libzip.delete(this.zip, index); - if (rc === -1) { - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - } - addDirectory(path) { - const index = this.libzip.dir.add(this.zip, path); - if (index === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - return index; - } - getBufferAndClose() { - try { - this.libzip.source.keep(this.lzSource); - if (this.libzip.close(this.zip) === -1) - throw this.makeLibzipError(this.libzip.getError(this.zip)); - if (this.libzip.source.open(this.lzSource) === -1) - throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); - if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_END) === -1) - throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); - const size = this.libzip.source.tell(this.lzSource); - if (size === -1) - throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); - if (this.libzip.source.seek(this.lzSource, 0, 0, this.libzip.SEEK_SET) === -1) - throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); - const buffer = this.libzip.malloc(size); - if (!buffer) - throw new Error(`Couldn't allocate enough memory`); - try { - const rc = this.libzip.source.read(this.lzSource, buffer, size); - if (rc === -1) - throw this.makeLibzipError(this.libzip.source.error(this.lzSource)); - else if (rc < size) - throw new Error(`Incomplete read`); - else if (rc > size) - throw new Error(`Overread`); - let result = Buffer.from(this.libzip.HEAPU8.subarray(buffer, buffer + size)); - if (process.env.YARN_IS_TEST_ENV && process.env.YARN_ZIP_DATA_EPILOGUE) - result = Buffer.concat([result, Buffer.from(process.env.YARN_ZIP_DATA_EPILOGUE)]); - return result; - } finally { - this.libzip.free(buffer); - } - } finally { - this.libzip.source.close(this.lzSource); - this.libzip.source.free(this.lzSource); - } - } - allocateBuffer(content) { - if (!Buffer.isBuffer(content)) - content = Buffer.from(content); - const buffer = this.libzip.malloc(content.byteLength); - if (!buffer) - throw new Error(`Couldn't allocate enough memory`); - const heap = new Uint8Array(this.libzip.HEAPU8.buffer, buffer, content.byteLength); - heap.set(content); - return { buffer, byteLength: content.byteLength }; - } - allocateUnattachedSource(content) { - const error = this.libzip.struct.errorS(); - const { buffer, byteLength } = this.allocateBuffer(content); - const source = this.libzip.source.fromUnattachedBuffer(buffer, byteLength, 0, 1, error); - if (source === 0) { - this.libzip.free(error); - throw this.makeLibzipError(error); - } - return source; - } - allocateSource(content) { - const { buffer, byteLength } = this.allocateBuffer(content); - const source = this.libzip.source.fromBuffer(this.zip, buffer, byteLength, 0, 1); - if (source === 0) { - this.libzip.free(buffer); - throw this.makeLibzipError(this.libzip.getError(this.zip)); - } - return source; - } - discard() { - this.libzip.discard(this.zip); - } -} - -const ZIP_UNIX = 3; -const STORE = 0; -const DEFLATE = 8; -const DEFAULT_COMPRESSION_LEVEL = `mixed`; -function toUnixTimestamp(time) { - if (typeof time === `string` && String(+time) === time) - return +time; - if (typeof time === `number` && Number.isFinite(time)) { - if (time < 0) { - return Date.now() / 1e3; - } else { - return time; - } - } - if (nodeUtils.types.isDate(time)) - return time.getTime() / 1e3; - throw new Error(`Invalid time`); -} -function makeEmptyArchive() { - return Buffer.from([ - 80, - 75, - 5, - 6, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0, - 0 - ]); -} -class ZipFS extends BasePortableFakeFS { - baseFs; - path; - stats; - level; - zipImpl; - listings = /* @__PURE__ */ new Map(); - entries = /* @__PURE__ */ new Map(); - /** - * A cache of indices mapped to file sources. - * Populated by `setFileSource` calls. - * Required for supporting read after write. - */ - fileSources = /* @__PURE__ */ new Map(); - symlinkCount; - fds = /* @__PURE__ */ new Map(); - nextFd = 0; - ready = false; - readOnly = false; - constructor(source, opts = {}) { - super(); - if (opts.readOnly) - this.readOnly = true; - const pathOptions = opts; - this.level = typeof pathOptions.level !== `undefined` ? pathOptions.level : DEFAULT_COMPRESSION_LEVEL; - const ZipImplCls = opts.customZipImplementation ?? LibZipImpl; - if (typeof source === `string`) { - const { baseFs = new NodeFS() } = pathOptions; - this.baseFs = baseFs; - this.path = source; - } else { - this.path = null; - this.baseFs = null; - } - if (opts.stats) { - this.stats = opts.stats; - } else { - if (typeof source === `string`) { - try { - this.stats = this.baseFs.statSync(source); - } catch (error) { - if (error.code === `ENOENT` && pathOptions.create) { - this.stats = makeDefaultStats(); - } else { - throw error; - } - } - } else { - this.stats = makeDefaultStats(); - } - } - if (typeof source === `string`) { - if (opts.create) { - this.zipImpl = new ZipImplCls({ buffer: makeEmptyArchive(), readOnly: this.readOnly }); - } else { - this.zipImpl = new ZipImplCls({ path: source, baseFs: this.baseFs, readOnly: this.readOnly, size: this.stats.size }); - } - } else { - this.zipImpl = new ZipImplCls({ buffer: source ?? makeEmptyArchive(), readOnly: this.readOnly }); - } - this.listings.set(PortablePath.root, /* @__PURE__ */ new Set()); - const listings = this.zipImpl.getListings(); - for (let t = 0; t < listings.length; t++) { - const raw = listings[t]; - if (ppath.isAbsolute(raw)) - continue; - const p = ppath.resolve(PortablePath.root, raw); - this.registerEntry(p, t); - if (raw.endsWith(`/`)) { - this.registerListing(p); - } - } - this.symlinkCount = this.zipImpl.getSymlinkCount(); - this.ready = true; - } - getExtractHint(hints) { - for (const fileName of this.entries.keys()) { - const ext = this.pathUtils.extname(fileName); - if (hints.relevantExtensions.has(ext)) { - return true; - } - } - return false; - } - getAllFiles() { - return Array.from(this.entries.keys()); - } - getRealPath() { - if (!this.path) - throw new Error(`ZipFS don't have real paths when loaded from a buffer`); - return this.path; - } - prepareClose() { - if (!this.ready) - throw EBUSY(`archive closed, close`); - unwatchAllFiles(this); - } - getBufferAndClose() { - this.prepareClose(); - if (this.entries.size === 0) { - this.discardAndClose(); - return makeEmptyArchive(); - } - try { - return this.zipImpl.getBufferAndClose(); - } finally { - this.ready = false; - } - } - discardAndClose() { - this.prepareClose(); - this.zipImpl.discard(); - this.ready = false; - } - saveAndClose() { - if (!this.path || !this.baseFs) - throw new Error(`ZipFS cannot be saved and must be discarded when loaded from a buffer`); - if (this.readOnly) { - this.discardAndClose(); - return; - } - const newMode = this.baseFs.existsSync(this.path) || this.stats.mode === DEFAULT_MODE ? void 0 : this.stats.mode; - this.baseFs.writeFileSync(this.path, this.getBufferAndClose(), { mode: newMode }); - this.ready = false; - } - resolve(p) { - return ppath.resolve(PortablePath.root, p); - } - async openPromise(p, flags, mode) { - return this.openSync(p, flags, mode); - } - openSync(p, flags, mode) { - const fd = this.nextFd++; - this.fds.set(fd, { cursor: 0, p }); - return fd; - } - hasOpenFileHandles() { - return !!this.fds.size; - } - async opendirPromise(p, opts) { - return this.opendirSync(p, opts); - } - opendirSync(p, opts = {}) { - const resolvedP = this.resolveFilename(`opendir '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) - throw ENOENT(`opendir '${p}'`); - const directoryListing = this.listings.get(resolvedP); - if (!directoryListing) - throw ENOTDIR(`opendir '${p}'`); - const entries = [...directoryListing]; - const fd = this.openSync(resolvedP, `r`); - const onClose = () => { - this.closeSync(fd); - }; - return opendir(this, resolvedP, entries, { onClose }); - } - async readPromise(fd, buffer, offset, length, position) { - return this.readSync(fd, buffer, offset, length, position); - } - readSync(fd, buffer, offset = 0, length = buffer.byteLength, position = -1) { - const entry = this.fds.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`read`); - const realPosition = position === -1 || position === null ? entry.cursor : position; - const source = this.readFileSync(entry.p); - source.copy(buffer, offset, realPosition, realPosition + length); - const bytesRead = Math.max(0, Math.min(source.length - realPosition, length)); - if (position === -1 || position === null) - entry.cursor += bytesRead; - return bytesRead; - } - async writePromise(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return this.writeSync(fd, buffer, position); - } else { - return this.writeSync(fd, buffer, offset, length, position); - } - } - writeSync(fd, buffer, offset, length, position) { - const entry = this.fds.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`read`); - throw new Error(`Unimplemented`); - } - async closePromise(fd) { - return this.closeSync(fd); - } - closeSync(fd) { - const entry = this.fds.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`read`); - this.fds.delete(fd); - } - createReadStream(p, { encoding } = {}) { - if (p === null) - throw new Error(`Unimplemented`); - const fd = this.openSync(p, `r`); - const stream$1 = Object.assign( - new stream.PassThrough({ - emitClose: true, - autoDestroy: true, - destroy: (error, callback) => { - clearImmediate(immediate); - this.closeSync(fd); - callback(error); - } - }), - { - close() { - stream$1.destroy(); - }, - bytesRead: 0, - path: p, - // "This property is `true` if the underlying file has not been opened yet" - pending: false - } - ); - const immediate = setImmediate(async () => { - try { - const data = await this.readFilePromise(p, encoding); - stream$1.bytesRead = data.length; - stream$1.end(data); - } catch (error) { - stream$1.destroy(error); - } - }); - return stream$1; - } - createWriteStream(p, { encoding } = {}) { - if (this.readOnly) - throw EROFS(`open '${p}'`); - if (p === null) - throw new Error(`Unimplemented`); - const chunks = []; - const fd = this.openSync(p, `w`); - const stream$1 = Object.assign( - new stream.PassThrough({ - autoDestroy: true, - emitClose: true, - destroy: (error, callback) => { - try { - if (error) { - callback(error); - } else { - this.writeFileSync(p, Buffer.concat(chunks), encoding); - callback(null); - } - } catch (err) { - callback(err); - } finally { - this.closeSync(fd); - } - } - }), - { - close() { - stream$1.destroy(); - }, - bytesWritten: 0, - path: p, - // "This property is `true` if the underlying file has not been opened yet" - pending: false - } - ); - stream$1.on(`data`, (chunk) => { - const chunkBuffer = Buffer.from(chunk); - stream$1.bytesWritten += chunkBuffer.length; - chunks.push(chunkBuffer); - }); - return stream$1; - } - async realpathPromise(p) { - return this.realpathSync(p); - } - realpathSync(p) { - const resolvedP = this.resolveFilename(`lstat '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) - throw ENOENT(`lstat '${p}'`); - return resolvedP; - } - async existsPromise(p) { - return this.existsSync(p); - } - existsSync(p) { - if (!this.ready) - throw EBUSY(`archive closed, existsSync '${p}'`); - if (this.symlinkCount === 0) { - const resolvedP2 = ppath.resolve(PortablePath.root, p); - return this.entries.has(resolvedP2) || this.listings.has(resolvedP2); - } - let resolvedP; - try { - resolvedP = this.resolveFilename(`stat '${p}'`, p, void 0, false); - } catch { - return false; - } - if (resolvedP === void 0) - return false; - return this.entries.has(resolvedP) || this.listings.has(resolvedP); - } - async accessPromise(p, mode) { - return this.accessSync(p, mode); - } - accessSync(p, mode = fs.constants.F_OK) { - const resolvedP = this.resolveFilename(`access '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) - throw ENOENT(`access '${p}'`); - if (this.readOnly && mode & fs.constants.W_OK) { - throw EROFS(`access '${p}'`); - } - } - async statPromise(p, opts = { bigint: false }) { - if (opts.bigint) - return this.statSync(p, { bigint: true }); - return this.statSync(p); - } - statSync(p, opts = { bigint: false, throwIfNoEntry: true }) { - const resolvedP = this.resolveFilename(`stat '${p}'`, p, void 0, opts.throwIfNoEntry); - if (resolvedP === void 0) - return void 0; - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) { - if (opts.throwIfNoEntry === false) - return void 0; - throw ENOENT(`stat '${p}'`); - } - if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) - throw ENOTDIR(`stat '${p}'`); - return this.statImpl(`stat '${p}'`, resolvedP, opts); - } - async fstatPromise(fd, opts) { - return this.fstatSync(fd, opts); - } - fstatSync(fd, opts) { - const entry = this.fds.get(fd); - if (typeof entry === `undefined`) - throw EBADF(`fstatSync`); - const { p } = entry; - const resolvedP = this.resolveFilename(`stat '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) - throw ENOENT(`stat '${p}'`); - if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) - throw ENOTDIR(`stat '${p}'`); - return this.statImpl(`fstat '${p}'`, resolvedP, opts); - } - async lstatPromise(p, opts = { bigint: false }) { - if (opts.bigint) - return this.lstatSync(p, { bigint: true }); - return this.lstatSync(p); - } - lstatSync(p, opts = { bigint: false, throwIfNoEntry: true }) { - const resolvedP = this.resolveFilename(`lstat '${p}'`, p, false, opts.throwIfNoEntry); - if (resolvedP === void 0) - return void 0; - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) { - if (opts.throwIfNoEntry === false) - return void 0; - throw ENOENT(`lstat '${p}'`); - } - if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) - throw ENOTDIR(`lstat '${p}'`); - return this.statImpl(`lstat '${p}'`, resolvedP, opts); - } - statImpl(reason, p, opts = {}) { - const entry = this.entries.get(p); - if (typeof entry !== `undefined`) { - const stat = this.zipImpl.stat(entry); - const crc = stat.crc; - const size = stat.size; - const mtimeMs = stat.mtime * 1e3; - const uid = this.stats.uid; - const gid = this.stats.gid; - const blksize = 512; - const blocks = Math.ceil(stat.size / blksize); - const atimeMs = mtimeMs; - const birthtimeMs = mtimeMs; - const ctimeMs = mtimeMs; - const atime = new Date(atimeMs); - const birthtime = new Date(birthtimeMs); - const ctime = new Date(ctimeMs); - const mtime = new Date(mtimeMs); - const type = this.listings.has(p) ? fs.constants.S_IFDIR : this.isSymbolicLink(entry) ? fs.constants.S_IFLNK : fs.constants.S_IFREG; - const defaultMode = type === fs.constants.S_IFDIR ? 493 : 420; - const mode = type | this.getUnixMode(entry, defaultMode) & 511; - const statInstance = Object.assign(new StatEntry(), { uid, gid, size, blksize, blocks, atime, birthtime, ctime, mtime, atimeMs, birthtimeMs, ctimeMs, mtimeMs, mode, crc }); - return opts.bigint === true ? convertToBigIntStats(statInstance) : statInstance; - } - if (this.listings.has(p)) { - const uid = this.stats.uid; - const gid = this.stats.gid; - const size = 0; - const blksize = 512; - const blocks = 0; - const atimeMs = this.stats.mtimeMs; - const birthtimeMs = this.stats.mtimeMs; - const ctimeMs = this.stats.mtimeMs; - const mtimeMs = this.stats.mtimeMs; - const atime = new Date(atimeMs); - const birthtime = new Date(birthtimeMs); - const ctime = new Date(ctimeMs); - const mtime = new Date(mtimeMs); - const mode = fs.constants.S_IFDIR | 493; - const crc = 0; - const statInstance = Object.assign(new StatEntry(), { uid, gid, size, blksize, blocks, atime, birthtime, ctime, mtime, atimeMs, birthtimeMs, ctimeMs, mtimeMs, mode, crc }); - return opts.bigint === true ? convertToBigIntStats(statInstance) : statInstance; - } - throw new Error(`Unreachable`); - } - getUnixMode(index, defaultMode) { - const [opsys, attributes] = this.zipImpl.getExternalAttributes(index); - if (opsys !== ZIP_UNIX) - return defaultMode; - return attributes >>> 16; - } - registerListing(p) { - const existingListing = this.listings.get(p); - if (existingListing) - return existingListing; - const parentListing = this.registerListing(ppath.dirname(p)); - parentListing.add(ppath.basename(p)); - const newListing = /* @__PURE__ */ new Set(); - this.listings.set(p, newListing); - return newListing; - } - registerEntry(p, index) { - const parentListing = this.registerListing(ppath.dirname(p)); - parentListing.add(ppath.basename(p)); - this.entries.set(p, index); - } - unregisterListing(p) { - this.listings.delete(p); - const parentListing = this.listings.get(ppath.dirname(p)); - parentListing?.delete(ppath.basename(p)); - } - unregisterEntry(p) { - this.unregisterListing(p); - const entry = this.entries.get(p); - this.entries.delete(p); - if (typeof entry === `undefined`) - return; - this.fileSources.delete(entry); - if (this.isSymbolicLink(entry)) { - this.symlinkCount--; - } - } - deleteEntry(p, index) { - this.unregisterEntry(p); - this.zipImpl.deleteEntry(index); - } - resolveFilename(reason, p, resolveLastComponent = true, throwIfNoEntry = true) { - if (!this.ready) - throw EBUSY(`archive closed, ${reason}`); - let resolvedP = ppath.resolve(PortablePath.root, p); - if (resolvedP === `/`) - return PortablePath.root; - const fileIndex = this.entries.get(resolvedP); - if (resolveLastComponent && fileIndex !== void 0) { - if (this.symlinkCount !== 0 && this.isSymbolicLink(fileIndex)) { - const target = this.getFileSource(fileIndex).toString(); - return this.resolveFilename(reason, ppath.resolve(ppath.dirname(resolvedP), target), true, throwIfNoEntry); - } else { - return resolvedP; - } - } - while (true) { - const parentP = this.resolveFilename(reason, ppath.dirname(resolvedP), true, throwIfNoEntry); - if (parentP === void 0) - return parentP; - const isDir = this.listings.has(parentP); - const doesExist = this.entries.has(parentP); - if (!isDir && !doesExist) { - if (throwIfNoEntry === false) - return void 0; - throw ENOENT(reason); - } - if (!isDir) - throw ENOTDIR(reason); - resolvedP = ppath.resolve(parentP, ppath.basename(resolvedP)); - if (!resolveLastComponent || this.symlinkCount === 0) - break; - const index = this.zipImpl.locate(resolvedP.slice(1)); - if (index === -1) - break; - if (this.isSymbolicLink(index)) { - const target = this.getFileSource(index).toString(); - resolvedP = ppath.resolve(ppath.dirname(resolvedP), target); - } else { - break; - } - } - return resolvedP; - } - setFileSource(p, content) { - const buffer = Buffer.isBuffer(content) ? content : Buffer.from(content); - const target = ppath.relative(PortablePath.root, p); - let compression = null; - if (this.level !== `mixed`) { - const method = this.level === 0 ? STORE : DEFLATE; - compression = [method, this.level]; - } - const newIndex = this.zipImpl.setFileSource(target, compression, buffer); - this.fileSources.set(newIndex, buffer); - return newIndex; - } - isSymbolicLink(index) { - if (this.symlinkCount === 0) - return false; - const [opsys, attrs] = this.zipImpl.getExternalAttributes(index); - if (opsys !== ZIP_UNIX) - return false; - const attributes = attrs >>> 16; - return (attributes & fs.constants.S_IFMT) === fs.constants.S_IFLNK; - } - getFileSource(index, opts = { asyncDecompress: false }) { - const cachedFileSource = this.fileSources.get(index); - if (typeof cachedFileSource !== `undefined`) - return cachedFileSource; - const { data, compressionMethod } = this.zipImpl.getFileSource(index); - if (compressionMethod === STORE) { - if (this.zipImpl.filesShouldBeCached) - this.fileSources.set(index, data); - return data; - } else if (compressionMethod === DEFLATE) { - if (opts.asyncDecompress) { - return new Promise((resolve, reject) => { - zlib__default.default.inflateRaw(data, (error, result) => { - if (error) { - reject(error); - } else { - if (this.zipImpl.filesShouldBeCached) - this.fileSources.set(index, result); - resolve(result); - } - }); - }); - } else { - const decompressedData = zlib__default.default.inflateRawSync(data); - if (this.zipImpl.filesShouldBeCached) - this.fileSources.set(index, decompressedData); - return decompressedData; - } - } else { - throw new Error(`Unsupported compression method: ${compressionMethod}`); - } - } - async fchmodPromise(fd, mask) { - return this.chmodPromise(this.fdToPath(fd, `fchmod`), mask); - } - fchmodSync(fd, mask) { - return this.chmodSync(this.fdToPath(fd, `fchmodSync`), mask); - } - async chmodPromise(p, mask) { - return this.chmodSync(p, mask); - } - chmodSync(p, mask) { - if (this.readOnly) - throw EROFS(`chmod '${p}'`); - mask &= 493; - const resolvedP = this.resolveFilename(`chmod '${p}'`, p, false); - const entry = this.entries.get(resolvedP); - if (typeof entry === `undefined`) - throw new Error(`Assertion failed: The entry should have been registered (${resolvedP})`); - const oldMod = this.getUnixMode(entry, fs.constants.S_IFREG | 0); - const newMod = oldMod & ~511 | mask; - this.zipImpl.setExternalAttributes(entry, ZIP_UNIX, newMod << 16); - } - async fchownPromise(fd, uid, gid) { - return this.chownPromise(this.fdToPath(fd, `fchown`), uid, gid); - } - fchownSync(fd, uid, gid) { - return this.chownSync(this.fdToPath(fd, `fchownSync`), uid, gid); - } - async chownPromise(p, uid, gid) { - return this.chownSync(p, uid, gid); - } - chownSync(p, uid, gid) { - throw new Error(`Unimplemented`); - } - async renamePromise(oldP, newP) { - return this.renameSync(oldP, newP); - } - renameSync(oldP, newP) { - throw new Error(`Unimplemented`); - } - async copyFilePromise(sourceP, destP, flags) { - const { indexSource, indexDest, resolvedDestP } = this.prepareCopyFile(sourceP, destP, flags); - const source = await this.getFileSource(indexSource, { asyncDecompress: true }); - const newIndex = this.setFileSource(resolvedDestP, source); - if (newIndex !== indexDest) { - this.registerEntry(resolvedDestP, newIndex); - } - } - copyFileSync(sourceP, destP, flags = 0) { - const { indexSource, indexDest, resolvedDestP } = this.prepareCopyFile(sourceP, destP, flags); - const source = this.getFileSource(indexSource); - const newIndex = this.setFileSource(resolvedDestP, source); - if (newIndex !== indexDest) { - this.registerEntry(resolvedDestP, newIndex); - } - } - prepareCopyFile(sourceP, destP, flags = 0) { - if (this.readOnly) - throw EROFS(`copyfile '${sourceP} -> '${destP}'`); - if ((flags & fs.constants.COPYFILE_FICLONE_FORCE) !== 0) - throw ENOSYS(`unsupported clone operation`, `copyfile '${sourceP}' -> ${destP}'`); - const resolvedSourceP = this.resolveFilename(`copyfile '${sourceP} -> ${destP}'`, sourceP); - const indexSource = this.entries.get(resolvedSourceP); - if (typeof indexSource === `undefined`) - throw EINVAL(`copyfile '${sourceP}' -> '${destP}'`); - const resolvedDestP = this.resolveFilename(`copyfile '${sourceP}' -> ${destP}'`, destP); - const indexDest = this.entries.get(resolvedDestP); - if ((flags & (fs.constants.COPYFILE_EXCL | fs.constants.COPYFILE_FICLONE_FORCE)) !== 0 && typeof indexDest !== `undefined`) - throw EEXIST(`copyfile '${sourceP}' -> '${destP}'`); - return { - indexSource, - resolvedDestP, - indexDest - }; - } - async appendFilePromise(p, content, opts) { - if (this.readOnly) - throw EROFS(`open '${p}'`); - if (typeof opts === `undefined`) - opts = { flag: `a` }; - else if (typeof opts === `string`) - opts = { flag: `a`, encoding: opts }; - else if (typeof opts.flag === `undefined`) - opts = { flag: `a`, ...opts }; - return this.writeFilePromise(p, content, opts); - } - appendFileSync(p, content, opts = {}) { - if (this.readOnly) - throw EROFS(`open '${p}'`); - if (typeof opts === `undefined`) - opts = { flag: `a` }; - else if (typeof opts === `string`) - opts = { flag: `a`, encoding: opts }; - else if (typeof opts.flag === `undefined`) - opts = { flag: `a`, ...opts }; - return this.writeFileSync(p, content, opts); - } - fdToPath(fd, reason) { - const path = this.fds.get(fd)?.p; - if (typeof path === `undefined`) - throw EBADF(reason); - return path; - } - async writeFilePromise(p, content, opts) { - const { encoding, mode, index, resolvedP } = this.prepareWriteFile(p, opts); - if (index !== void 0 && typeof opts === `object` && opts.flag && opts.flag.includes(`a`)) - content = Buffer.concat([await this.getFileSource(index, { asyncDecompress: true }), Buffer.from(content)]); - if (encoding !== null) - content = content.toString(encoding); - const newIndex = this.setFileSource(resolvedP, content); - if (newIndex !== index) - this.registerEntry(resolvedP, newIndex); - if (mode !== null) { - await this.chmodPromise(resolvedP, mode); - } - } - writeFileSync(p, content, opts) { - const { encoding, mode, index, resolvedP } = this.prepareWriteFile(p, opts); - if (index !== void 0 && typeof opts === `object` && opts.flag && opts.flag.includes(`a`)) - content = Buffer.concat([this.getFileSource(index), Buffer.from(content)]); - if (encoding !== null) - content = content.toString(encoding); - const newIndex = this.setFileSource(resolvedP, content); - if (newIndex !== index) - this.registerEntry(resolvedP, newIndex); - if (mode !== null) { - this.chmodSync(resolvedP, mode); - } - } - prepareWriteFile(p, opts) { - if (typeof p === `number`) - p = this.fdToPath(p, `read`); - if (this.readOnly) - throw EROFS(`open '${p}'`); - const resolvedP = this.resolveFilename(`open '${p}'`, p); - if (this.listings.has(resolvedP)) - throw EISDIR(`open '${p}'`); - let encoding = null, mode = null; - if (typeof opts === `string`) { - encoding = opts; - } else if (typeof opts === `object`) { - ({ - encoding = null, - mode = null - } = opts); - } - const index = this.entries.get(resolvedP); - return { - encoding, - mode, - resolvedP, - index - }; - } - async unlinkPromise(p) { - return this.unlinkSync(p); - } - unlinkSync(p) { - if (this.readOnly) - throw EROFS(`unlink '${p}'`); - const resolvedP = this.resolveFilename(`unlink '${p}'`, p); - if (this.listings.has(resolvedP)) - throw EISDIR(`unlink '${p}'`); - const index = this.entries.get(resolvedP); - if (typeof index === `undefined`) - throw EINVAL(`unlink '${p}'`); - this.deleteEntry(resolvedP, index); - } - async utimesPromise(p, atime, mtime) { - return this.utimesSync(p, atime, mtime); - } - utimesSync(p, atime, mtime) { - if (this.readOnly) - throw EROFS(`utimes '${p}'`); - const resolvedP = this.resolveFilename(`utimes '${p}'`, p); - this.utimesImpl(resolvedP, mtime); - } - async lutimesPromise(p, atime, mtime) { - return this.lutimesSync(p, atime, mtime); - } - lutimesSync(p, atime, mtime) { - if (this.readOnly) - throw EROFS(`lutimes '${p}'`); - const resolvedP = this.resolveFilename(`utimes '${p}'`, p, false); - this.utimesImpl(resolvedP, mtime); - } - utimesImpl(resolvedP, mtime) { - if (this.listings.has(resolvedP)) { - if (!this.entries.has(resolvedP)) - this.hydrateDirectory(resolvedP); - } - const entry = this.entries.get(resolvedP); - if (entry === void 0) - throw new Error(`Unreachable`); - this.zipImpl.setMtime(entry, toUnixTimestamp(mtime)); - } - async mkdirPromise(p, opts) { - return this.mkdirSync(p, opts); - } - mkdirSync(p, { mode = 493, recursive = false } = {}) { - if (recursive) - return this.mkdirpSync(p, { chmod: mode }); - if (this.readOnly) - throw EROFS(`mkdir '${p}'`); - const resolvedP = this.resolveFilename(`mkdir '${p}'`, p); - if (this.entries.has(resolvedP) || this.listings.has(resolvedP)) - throw EEXIST(`mkdir '${p}'`); - this.hydrateDirectory(resolvedP); - this.chmodSync(resolvedP, mode); - return void 0; - } - async rmdirPromise(p, opts) { - return this.rmdirSync(p, opts); - } - rmdirSync(p, { recursive = false } = {}) { - if (this.readOnly) - throw EROFS(`rmdir '${p}'`); - if (recursive) { - this.removeSync(p); - return; - } - const resolvedP = this.resolveFilename(`rmdir '${p}'`, p); - const directoryListing = this.listings.get(resolvedP); - if (!directoryListing) - throw ENOTDIR(`rmdir '${p}'`); - if (directoryListing.size > 0) - throw ENOTEMPTY(`rmdir '${p}'`); - const index = this.entries.get(resolvedP); - if (typeof index === `undefined`) - throw EINVAL(`rmdir '${p}'`); - this.deleteEntry(p, index); - } - async rmPromise(p, opts) { - return this.rmSync(p, opts); - } - rmSync(p, { recursive = false } = {}) { - if (this.readOnly) - throw EROFS(`rm '${p}'`); - if (recursive) { - this.removeSync(p); - return; - } - const resolvedP = this.resolveFilename(`rm '${p}'`, p); - const directoryListing = this.listings.get(resolvedP); - if (!directoryListing) - throw ENOTDIR(`rm '${p}'`); - if (directoryListing.size > 0) - throw ENOTEMPTY(`rm '${p}'`); - const index = this.entries.get(resolvedP); - if (typeof index === `undefined`) - throw EINVAL(`rm '${p}'`); - this.deleteEntry(p, index); - } - hydrateDirectory(resolvedP) { - const index = this.zipImpl.addDirectory(ppath.relative(PortablePath.root, resolvedP)); - this.registerListing(resolvedP); - this.registerEntry(resolvedP, index); - return index; - } - async linkPromise(existingP, newP) { - return this.linkSync(existingP, newP); - } - linkSync(existingP, newP) { - throw EOPNOTSUPP(`link '${existingP}' -> '${newP}'`); - } - async symlinkPromise(target, p) { - return this.symlinkSync(target, p); - } - symlinkSync(target, p) { - if (this.readOnly) - throw EROFS(`symlink '${target}' -> '${p}'`); - const resolvedP = this.resolveFilename(`symlink '${target}' -> '${p}'`, p); - if (this.listings.has(resolvedP)) - throw EISDIR(`symlink '${target}' -> '${p}'`); - if (this.entries.has(resolvedP)) - throw EEXIST(`symlink '${target}' -> '${p}'`); - const index = this.setFileSource(resolvedP, target); - this.registerEntry(resolvedP, index); - this.zipImpl.setExternalAttributes(index, ZIP_UNIX, (fs.constants.S_IFLNK | 511) << 16); - this.symlinkCount += 1; - } - async readFilePromise(p, encoding) { - if (typeof encoding === `object`) - encoding = encoding ? encoding.encoding : void 0; - const data = await this.readFileBuffer(p, { asyncDecompress: true }); - return encoding ? data.toString(encoding) : data; - } - readFileSync(p, encoding) { - if (typeof encoding === `object`) - encoding = encoding ? encoding.encoding : void 0; - const data = this.readFileBuffer(p); - return encoding ? data.toString(encoding) : data; - } - readFileBuffer(p, opts = { asyncDecompress: false }) { - if (typeof p === `number`) - p = this.fdToPath(p, `read`); - const resolvedP = this.resolveFilename(`open '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) - throw ENOENT(`open '${p}'`); - if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) - throw ENOTDIR(`open '${p}'`); - if (this.listings.has(resolvedP)) - throw EISDIR(`read`); - const entry = this.entries.get(resolvedP); - if (entry === void 0) - throw new Error(`Unreachable`); - return this.getFileSource(entry, opts); - } - async readdirPromise(p, opts) { - return this.readdirSync(p, opts); - } - readdirSync(p, opts) { - const resolvedP = this.resolveFilename(`scandir '${p}'`, p); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) - throw ENOENT(`scandir '${p}'`); - const directoryListing = this.listings.get(resolvedP); - if (!directoryListing) - throw ENOTDIR(`scandir '${p}'`); - if (opts?.recursive) { - if (opts?.withFileTypes) { - const entries = Array.from(directoryListing, (name) => { - return Object.assign(this.statImpl(`lstat`, ppath.join(p, name)), { - name, - path: PortablePath.dot - }); - }); - for (const entry of entries) { - if (!entry.isDirectory()) - continue; - const subPath = ppath.join(entry.path, entry.name); - const subListing = this.listings.get(ppath.join(resolvedP, subPath)); - for (const child of subListing) { - entries.push(Object.assign(this.statImpl(`lstat`, ppath.join(p, subPath, child)), { - name: child, - path: subPath - })); - } - } - return entries; - } else { - const entries = [...directoryListing]; - for (const subPath of entries) { - const subListing = this.listings.get(ppath.join(resolvedP, subPath)); - if (typeof subListing === `undefined`) - continue; - for (const child of subListing) { - entries.push(ppath.join(subPath, child)); - } - } - return entries; - } - } else if (opts?.withFileTypes) { - return Array.from(directoryListing, (name) => { - return Object.assign(this.statImpl(`lstat`, ppath.join(p, name)), { - name, - path: void 0 - }); - }); - } else { - return [...directoryListing]; - } - } - async readlinkPromise(p) { - const entry = this.prepareReadlink(p); - return (await this.getFileSource(entry, { asyncDecompress: true })).toString(); - } - readlinkSync(p) { - const entry = this.prepareReadlink(p); - return this.getFileSource(entry).toString(); - } - prepareReadlink(p) { - const resolvedP = this.resolveFilename(`readlink '${p}'`, p, false); - if (!this.entries.has(resolvedP) && !this.listings.has(resolvedP)) - throw ENOENT(`readlink '${p}'`); - if (p[p.length - 1] === `/` && !this.listings.has(resolvedP)) - throw ENOTDIR(`open '${p}'`); - if (this.listings.has(resolvedP)) - throw EINVAL(`readlink '${p}'`); - const entry = this.entries.get(resolvedP); - if (entry === void 0) - throw new Error(`Unreachable`); - if (!this.isSymbolicLink(entry)) - throw EINVAL(`readlink '${p}'`); - return entry; - } - async truncatePromise(p, len = 0) { - const resolvedP = this.resolveFilename(`open '${p}'`, p); - const index = this.entries.get(resolvedP); - if (typeof index === `undefined`) - throw EINVAL(`open '${p}'`); - const source = await this.getFileSource(index, { asyncDecompress: true }); - const truncated = Buffer.alloc(len, 0); - source.copy(truncated); - return await this.writeFilePromise(p, truncated); - } - truncateSync(p, len = 0) { - const resolvedP = this.resolveFilename(`open '${p}'`, p); - const index = this.entries.get(resolvedP); - if (typeof index === `undefined`) - throw EINVAL(`open '${p}'`); - const source = this.getFileSource(index); - const truncated = Buffer.alloc(len, 0); - source.copy(truncated); - return this.writeFileSync(p, truncated); - } - async ftruncatePromise(fd, len) { - return this.truncatePromise(this.fdToPath(fd, `ftruncate`), len); - } - ftruncateSync(fd, len) { - return this.truncateSync(this.fdToPath(fd, `ftruncateSync`), len); - } - watch(p, a, b) { - let persistent; - switch (typeof a) { - case `function`: - case `string`: - case `undefined`: - { - persistent = true; - } - break; - default: - { - ({ persistent = true } = a); - } - break; - } - if (!persistent) - return { on: () => { - }, close: () => { - } }; - const interval = setInterval(() => { - }, 24 * 60 * 60 * 1e3); - return { - on: () => { - }, - close: () => { - clearInterval(interval); - } - }; - } - watchFile(p, a, b) { - const resolvedP = ppath.resolve(PortablePath.root, p); - return watchFile(this, resolvedP, a, b); - } - unwatchFile(p, cb) { - const resolvedP = ppath.resolve(PortablePath.root, p); - return unwatchFile(this, resolvedP, cb); - } -} - -const SIGNATURE = { - CENTRAL_DIRECTORY: 33639248, - END_OF_CENTRAL_DIRECTORY: 101010256 -}; -const noCommentCDSize = 22; -class JsZipImpl { - fd; - baseFs; - entries; - filesShouldBeCached = false; - constructor(opts) { - if (`buffer` in opts) - throw new Error(`Buffer based zip archives are not supported`); - if (!opts.readOnly) - throw new Error(`Writable zip archives are not supported`); - this.baseFs = opts.baseFs; - this.fd = this.baseFs.openSync(opts.path, `r`); - try { - this.entries = JsZipImpl.readZipSync(this.fd, this.baseFs, opts.size); - } catch (error) { - this.baseFs.closeSync(this.fd); - this.fd = `closed`; - throw error; - } - } - static readZipSync(fd, baseFs, fileSize) { - if (fileSize < noCommentCDSize) - throw new Error(`Invalid ZIP file: EOCD not found`); - let eocdOffset = -1; - let eocdBuffer = Buffer.alloc(noCommentCDSize); - baseFs.readSync( - fd, - eocdBuffer, - 0, - noCommentCDSize, - fileSize - noCommentCDSize - ); - if (eocdBuffer.readUInt32LE(0) === SIGNATURE.END_OF_CENTRAL_DIRECTORY) { - eocdOffset = 0; - } else { - const bufferSize = Math.min(65557, fileSize); - eocdBuffer = Buffer.alloc(bufferSize); - baseFs.readSync( - fd, - eocdBuffer, - 0, - bufferSize, - Math.max(0, fileSize - bufferSize) - ); - for (let i = eocdBuffer.length - 4; i >= 0; i--) { - if (eocdBuffer.readUInt32LE(i) === SIGNATURE.END_OF_CENTRAL_DIRECTORY) { - eocdOffset = i; - break; - } - } - if (eocdOffset === -1) { - throw new Error(`Not a zip archive`); - } - } - const totalEntries = eocdBuffer.readUInt16LE(eocdOffset + 10); - const centralDirSize = eocdBuffer.readUInt32LE(eocdOffset + 12); - const centralDirOffset = eocdBuffer.readUInt32LE(eocdOffset + 16); - const commentLength = eocdBuffer.readUInt16LE(eocdOffset + 20); - if (eocdOffset + commentLength + noCommentCDSize > eocdBuffer.length) - throw new Error(`Zip archive inconsistent`); - if (totalEntries == 65535 || centralDirSize == 4294967295 || centralDirOffset == 4294967295) - throw new Error(`Zip 64 is not supported`); - if (centralDirSize > fileSize) - throw new Error(`Zip archive inconsistent`); - if (totalEntries > centralDirSize / 46) - throw new Error(`Zip archive inconsistent`); - const cdBuffer = Buffer.alloc(centralDirSize); - if (baseFs.readSync(fd, cdBuffer, 0, cdBuffer.length, centralDirOffset) !== cdBuffer.length) - throw new Error(`Zip archive inconsistent`); - const entries = []; - let offset = 0; - let index = 0; - let sumCompressedSize = 0; - while (index < totalEntries) { - if (offset + 46 > cdBuffer.length) - throw new Error(`Zip archive inconsistent`); - if (cdBuffer.readUInt32LE(offset) !== SIGNATURE.CENTRAL_DIRECTORY) - throw new Error(`Zip archive inconsistent`); - const versionMadeBy = cdBuffer.readUInt16LE(offset + 4); - const os = versionMadeBy >>> 8; - const flags = cdBuffer.readUInt16LE(offset + 8); - if ((flags & 1) !== 0) - throw new Error(`Encrypted zip files are not supported`); - const compressionMethod = cdBuffer.readUInt16LE(offset + 10); - const crc = cdBuffer.readUInt32LE(offset + 16); - const nameLength = cdBuffer.readUInt16LE(offset + 28); - const extraLength = cdBuffer.readUInt16LE(offset + 30); - const commentLength2 = cdBuffer.readUInt16LE(offset + 32); - const localHeaderOffset = cdBuffer.readUInt32LE(offset + 42); - const name = cdBuffer.toString(`utf8`, offset + 46, offset + 46 + nameLength).replaceAll(`\0`, ` `); - if (name.includes(`\0`)) - throw new Error(`Invalid ZIP file`); - const compressedSize = cdBuffer.readUInt32LE(offset + 20); - const externalAttributes = cdBuffer.readUInt32LE(offset + 38); - entries.push({ - name, - os, - mtime: SAFE_TIME, - //we dont care, - crc, - compressionMethod, - isSymbolicLink: os === ZIP_UNIX && (externalAttributes >>> 16 & S_IFMT) === S_IFLNK, - size: cdBuffer.readUInt32LE(offset + 24), - compressedSize, - externalAttributes, - localHeaderOffset - }); - sumCompressedSize += compressedSize; - index += 1; - offset += 46 + nameLength + extraLength + commentLength2; - } - if (sumCompressedSize > fileSize) - throw new Error(`Zip archive inconsistent`); - if (offset !== cdBuffer.length) - throw new Error(`Zip archive inconsistent`); - return entries; - } - getExternalAttributes(index) { - const entry = this.entries[index]; - return [entry.os, entry.externalAttributes]; - } - getListings() { - return this.entries.map((e) => e.name); - } - getSymlinkCount() { - let count = 0; - for (const entry of this.entries) - if (entry.isSymbolicLink) - count += 1; - return count; - } - stat(index) { - const entry = this.entries[index]; - return { - crc: entry.crc, - mtime: entry.mtime, - size: entry.size - }; - } - locate(name) { - for (let ind = 0; ind < this.entries.length; ind++) - if (this.entries[ind].name === name) - return ind; - return -1; - } - getFileSource(index) { - if (this.fd === `closed`) - throw new Error(`ZIP file is closed`); - const entry = this.entries[index]; - const localHeaderBuf = Buffer.alloc(30); - this.baseFs.readSync( - this.fd, - localHeaderBuf, - 0, - localHeaderBuf.length, - entry.localHeaderOffset - ); - const nameLength = localHeaderBuf.readUInt16LE(26); - const extraLength = localHeaderBuf.readUInt16LE(28); - const buffer = Buffer.alloc(entry.compressedSize); - if (this.baseFs.readSync(this.fd, buffer, 0, entry.compressedSize, entry.localHeaderOffset + 30 + nameLength + extraLength) !== entry.compressedSize) - throw new Error(`Invalid ZIP file`); - return { data: buffer, compressionMethod: entry.compressionMethod }; - } - discard() { - if (this.fd !== `closed`) { - this.baseFs.closeSync(this.fd); - this.fd = `closed`; - } - } - addDirectory(path) { - throw new Error(`Not implemented`); - } - deleteEntry(index) { - throw new Error(`Not implemented`); - } - setMtime(index, mtime) { - throw new Error(`Not implemented`); - } - getBufferAndClose() { - throw new Error(`Not implemented`); - } - setFileSource(target, compression, buffer) { - throw new Error(`Not implemented`); - } - setExternalAttributes(index, opsys, attributes) { - throw new Error(`Not implemented`); - } -} - -setFactory(() => { - const emZip = createModule(); - return makeInterface(emZip); -}); - -var ErrorCode = /* @__PURE__ */ ((ErrorCode2) => { - ErrorCode2["API_ERROR"] = `API_ERROR`; - ErrorCode2["BUILTIN_NODE_RESOLUTION_FAILED"] = `BUILTIN_NODE_RESOLUTION_FAILED`; - ErrorCode2["EXPORTS_RESOLUTION_FAILED"] = `EXPORTS_RESOLUTION_FAILED`; - ErrorCode2["MISSING_DEPENDENCY"] = `MISSING_DEPENDENCY`; - ErrorCode2["MISSING_PEER_DEPENDENCY"] = `MISSING_PEER_DEPENDENCY`; - ErrorCode2["QUALIFIED_PATH_RESOLUTION_FAILED"] = `QUALIFIED_PATH_RESOLUTION_FAILED`; - ErrorCode2["INTERNAL"] = `INTERNAL`; - ErrorCode2["UNDECLARED_DEPENDENCY"] = `UNDECLARED_DEPENDENCY`; - ErrorCode2["UNSUPPORTED"] = `UNSUPPORTED`; - return ErrorCode2; -})(ErrorCode || {}); -const MODULE_NOT_FOUND_ERRORS = /* @__PURE__ */ new Set([ - "BUILTIN_NODE_RESOLUTION_FAILED" /* BUILTIN_NODE_RESOLUTION_FAILED */, - "MISSING_DEPENDENCY" /* MISSING_DEPENDENCY */, - "MISSING_PEER_DEPENDENCY" /* MISSING_PEER_DEPENDENCY */, - "QUALIFIED_PATH_RESOLUTION_FAILED" /* QUALIFIED_PATH_RESOLUTION_FAILED */, - "UNDECLARED_DEPENDENCY" /* UNDECLARED_DEPENDENCY */ -]); -function makeError(pnpCode, message, data = {}, code) { - code ??= MODULE_NOT_FOUND_ERRORS.has(pnpCode) ? `MODULE_NOT_FOUND` : pnpCode; - const propertySpec = { - configurable: true, - writable: true, - enumerable: false - }; - return Object.defineProperties(new Error(message), { - code: { - ...propertySpec, - value: code - }, - pnpCode: { - ...propertySpec, - value: pnpCode - }, - data: { - ...propertySpec, - value: data - } - }); -} -function getIssuerModule(parent) { - let issuer = parent; - while (issuer && (issuer.id === `[eval]` || issuer.id === `` || !issuer.filename)) - issuer = issuer.parent; - return issuer || null; -} -function getPathForDisplay(p) { - return npath.normalize(npath.fromPortablePath(p)); -} - -const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); -const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13; - -function readPackageScope(checkPath) { - const rootSeparatorIndex = checkPath.indexOf(npath.sep); - let separatorIndex; - do { - separatorIndex = checkPath.lastIndexOf(npath.sep); - checkPath = checkPath.slice(0, separatorIndex); - if (checkPath.endsWith(`${npath.sep}node_modules`)) - return false; - const pjson = readPackage(checkPath + npath.sep); - if (pjson) { - return { - data: pjson, - path: checkPath - }; - } - } while (separatorIndex > rootSeparatorIndex); - return false; -} -function readPackage(requestPath) { - const jsonPath = npath.resolve(requestPath, `package.json`); - if (!fs__default.default.existsSync(jsonPath)) - return null; - return JSON.parse(fs__default.default.readFileSync(jsonPath, `utf8`)); -} -function ERR_REQUIRE_ESM(filename, parentPath = null) { - const basename = parentPath && path__default.default.basename(filename) === path__default.default.basename(parentPath) ? filename : path__default.default.basename(filename); - const msg = `require() of ES Module ${filename}${parentPath ? ` from ${parentPath}` : ``} not supported. -Instead change the require of ${basename} in ${parentPath} to a dynamic import() which is available in all CommonJS modules.`; - const err = new Error(msg); - err.code = `ERR_REQUIRE_ESM`; - return err; -} -function reportRequiredFilesToWatchMode(files) { - if (process.env.WATCH_REPORT_DEPENDENCIES && process.send) { - files = files.map((filename) => npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename)))); - if (WATCH_MODE_MESSAGE_USES_ARRAYS) { - process.send({ "watch:require": files }); - } else { - for (const filename of files) { - process.send({ "watch:require": filename }); - } - } - } -} - -function applyPatch(pnpapi, opts) { - let enableNativeHooks = true; - process.versions.pnp = String(pnpapi.VERSIONS.std); - const moduleExports = require$$0__default.default; - moduleExports.findPnpApi = (lookupSource) => { - const lookupPath = lookupSource instanceof URL ? url.fileURLToPath(lookupSource) : lookupSource; - const apiPath = opts.manager.findApiPathFor(lookupPath); - if (apiPath === null) - return null; - const apiEntry = opts.manager.getApiEntry(apiPath, true); - return apiEntry.instance.findPackageLocator(lookupPath) ? apiEntry.instance : null; - }; - function getRequireStack(parent) { - const requireStack = []; - for (let cursor = parent; cursor; cursor = cursor.parent) - requireStack.push(cursor.filename || cursor.id); - return requireStack; - } - const originalModuleLoad = require$$0.Module._load; - require$$0.Module._load = function(request, parent, isMain) { - if (request === `pnpapi`) { - const parentApiPath = opts.manager.getApiPathFromParent(parent); - if (parentApiPath) { - return opts.manager.getApiEntry(parentApiPath, true).instance; - } - } - return originalModuleLoad.call(require$$0.Module, request, parent, isMain); - }; - function getIssuerSpecsFromPaths(paths) { - return paths.map((path) => ({ - apiPath: opts.manager.findApiPathFor(path), - path, - module: null - })); - } - function getIssuerSpecsFromModule(module) { - if (module && module.id !== `` && module.id !== `internal/preload` && !module.parent && !module.filename && module.paths.length > 0) { - return [{ - apiPath: opts.manager.findApiPathFor(module.paths[0]), - path: module.paths[0], - module - }]; - } - const issuer = getIssuerModule(module); - if (issuer !== null) { - const path = npath.dirname(issuer.filename); - const apiPath = opts.manager.getApiPathFromParent(issuer); - return [{ apiPath, path, module }]; - } else { - const path = process.cwd(); - const apiPath = opts.manager.findApiPathFor(npath.join(path, `[file]`)) ?? opts.manager.getApiPathFromParent(null); - return [{ apiPath, path, module }]; - } - } - function makeFakeParent(path) { - const fakeParent = new require$$0.Module(``); - const fakeFilePath = npath.join(path, `[file]`); - fakeParent.paths = require$$0.Module._nodeModulePaths(fakeFilePath); - return fakeParent; - } - const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:@[^/]+\/)?[^/]+)\/*(.*|)$/; - const originalModuleResolveFilename = require$$0.Module._resolveFilename; - require$$0.Module._resolveFilename = function(request, parent, isMain, options) { - if (require$$0.isBuiltin(request)) - return request; - if (!enableNativeHooks) - return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, options); - if (options && options.plugnplay === false) { - const { plugnplay, ...forwardedOptions } = options; - try { - enableNativeHooks = false; - return originalModuleResolveFilename.call(require$$0.Module, request, parent, isMain, forwardedOptions); - } finally { - enableNativeHooks = true; - } - } - if (options) { - const optionNames = new Set(Object.keys(options)); - optionNames.delete(`paths`); - optionNames.delete(`plugnplay`); - if (optionNames.size > 0) { - throw makeError( - ErrorCode.UNSUPPORTED, - `Some options passed to require() aren't supported by PnP yet (${Array.from(optionNames).join(`, `)})` - ); - } - } - const issuerSpecs = options && options.paths ? getIssuerSpecsFromPaths(options.paths) : getIssuerSpecsFromModule(parent); - if (request.match(pathRegExp) === null) { - const parentDirectory = parent?.filename != null ? npath.dirname(parent.filename) : null; - const absoluteRequest = npath.isAbsolute(request) ? request : parentDirectory !== null ? npath.resolve(parentDirectory, request) : null; - if (absoluteRequest !== null) { - const apiPath = parent && parentDirectory === npath.dirname(absoluteRequest) ? opts.manager.getApiPathFromParent(parent) : opts.manager.findApiPathFor(absoluteRequest); - if (apiPath !== null) { - issuerSpecs.unshift({ - apiPath, - path: parentDirectory, - module: null - }); - } - } - } - let firstError; - for (const { apiPath, path, module } of issuerSpecs) { - let resolution; - const issuerApi = apiPath !== null ? opts.manager.getApiEntry(apiPath, true).instance : null; - try { - if (issuerApi !== null) { - resolution = issuerApi.resolveRequest(request, path !== null ? `${path}/` : null); - } else { - if (path === null) - throw new Error(`Assertion failed: Expected the path to be set`); - resolution = originalModuleResolveFilename.call(require$$0.Module, request, module || makeFakeParent(path), isMain); - } - } catch (error) { - firstError = firstError || error; - continue; - } - if (resolution !== null) { - return resolution; - } - } - const requireStack = getRequireStack(parent); - Object.defineProperty(firstError, `requireStack`, { - configurable: true, - writable: true, - enumerable: false, - value: requireStack - }); - if (requireStack.length > 0) - firstError.message += ` -Require stack: -- ${requireStack.join(` -- `)}`; - if (typeof firstError.pnpCode === `string`) - Error.captureStackTrace(firstError); - throw firstError; - }; - const originalFindPath = require$$0.Module._findPath; - require$$0.Module._findPath = function(request, paths, isMain) { - if (request === `pnpapi`) - return false; - if (!enableNativeHooks) - return originalFindPath.call(require$$0.Module, request, paths, isMain); - const isAbsolute = npath.isAbsolute(request); - if (isAbsolute) - paths = [``]; - else if (!paths || paths.length === 0) - return false; - for (const path of paths) { - let resolution; - try { - const pnpApiPath = opts.manager.findApiPathFor(isAbsolute ? request : path); - if (pnpApiPath !== null) { - const api = opts.manager.getApiEntry(pnpApiPath, true).instance; - resolution = api.resolveRequest(request, path) || false; - } else { - resolution = originalFindPath.call(require$$0.Module, request, [path], isMain); - } - } catch { - continue; - } - if (resolution) { - return resolution; - } - } - return false; - }; - if (!process.features.require_module) { - const originalExtensionJSFunction = require$$0.Module._extensions[`.js`]; - require$$0.Module._extensions[`.js`] = function(module, filename) { - if (filename.endsWith(`.js`)) { - const pkg = readPackageScope(filename); - if (pkg && pkg.data?.type === `module`) { - const err = ERR_REQUIRE_ESM(filename, module.parent?.filename); - Error.captureStackTrace(err); - throw err; - } - } - originalExtensionJSFunction.call(this, module, filename); - }; - } - const originalDlopen = process.dlopen; - process.dlopen = function(...args) { - const [module, filename, ...rest] = args; - return originalDlopen.call( - this, - module, - npath.fromPortablePath(VirtualFS.resolveVirtual(npath.toPortablePath(filename))), - ...rest - ); - }; - const originalEmit = process.emit; - process.emit = function(name, data, ...args) { - if (name === `warning` && typeof data === `object` && data.name === `ExperimentalWarning` && (data.message.includes(`--experimental-loader`) || data.message.includes(`Custom ESM Loaders is an experimental feature`))) - return false; - return originalEmit.apply(process, arguments); - }; - patchFs(fs__default.default, new PosixFS(opts.fakeFs)); -} - -function hydrateRuntimeState(data, { basePath }) { - const portablePath = npath.toPortablePath(basePath); - const absolutePortablePath = ppath.resolve(portablePath); - const ignorePattern = data.ignorePatternData !== null ? new RegExp(data.ignorePatternData) : null; - const packageLocatorsByLocations = /* @__PURE__ */ new Map(); - const packageRegistry = new Map(data.packageRegistryData.map(([packageName, packageStoreData]) => { - return [packageName, new Map(packageStoreData.map(([packageReference, packageInformationData]) => { - if (packageName === null !== (packageReference === null)) - throw new Error(`Assertion failed: The name and reference should be null, or neither should`); - const discardFromLookup = packageInformationData.discardFromLookup ?? false; - const packageLocator = { name: packageName, reference: packageReference }; - const entry = packageLocatorsByLocations.get(packageInformationData.packageLocation); - if (!entry) { - packageLocatorsByLocations.set(packageInformationData.packageLocation, { locator: packageLocator, discardFromLookup }); - } else { - entry.discardFromLookup = entry.discardFromLookup && discardFromLookup; - if (!discardFromLookup) { - entry.locator = packageLocator; - } - } - let resolvedPackageLocation = null; - return [packageReference, { - packageDependencies: new Map(packageInformationData.packageDependencies), - packagePeers: new Set(packageInformationData.packagePeers), - linkType: packageInformationData.linkType, - discardFromLookup, - // we only need this for packages that are used by the currently running script - // this is a lazy getter because `ppath.join` has some overhead - get packageLocation() { - return resolvedPackageLocation || (resolvedPackageLocation = ppath.join(absolutePortablePath, packageInformationData.packageLocation)); - } - }]; - }))]; - })); - const fallbackExclusionList = new Map(data.fallbackExclusionList.map(([packageName, packageReferences]) => { - return [packageName, new Set(packageReferences)]; - })); - const fallbackPool = new Map(data.fallbackPool); - const dependencyTreeRoots = data.dependencyTreeRoots; - const enableTopLevelFallback = data.enableTopLevelFallback; - return { - basePath: portablePath, - dependencyTreeRoots, - enableTopLevelFallback, - fallbackExclusionList, - pnpZipBackend: data.pnpZipBackend, - fallbackPool, - ignorePattern, - packageLocatorsByLocations, - packageRegistry - }; -} - -const ArrayIsArray = Array.isArray; -const JSONStringify = JSON.stringify; -const ObjectGetOwnPropertyNames = Object.getOwnPropertyNames; -const ObjectPrototypeHasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); -const RegExpPrototypeExec = (obj, string) => RegExp.prototype.exec.call(obj, string); -const RegExpPrototypeSymbolReplace = (obj, ...rest) => RegExp.prototype[Symbol.replace].apply(obj, rest); -const StringPrototypeEndsWith = (str, ...rest) => String.prototype.endsWith.apply(str, rest); -const StringPrototypeIncludes = (str, ...rest) => String.prototype.includes.apply(str, rest); -const StringPrototypeLastIndexOf = (str, ...rest) => String.prototype.lastIndexOf.apply(str, rest); -const StringPrototypeIndexOf = (str, ...rest) => String.prototype.indexOf.apply(str, rest); -const StringPrototypeReplace = (str, ...rest) => String.prototype.replace.apply(str, rest); -const StringPrototypeSlice = (str, ...rest) => String.prototype.slice.apply(str, rest); -const StringPrototypeStartsWith = (str, ...rest) => String.prototype.startsWith.apply(str, rest); -const SafeMap = Map; -const JSONParse = JSON.parse; - -function createErrorType(code, messageCreator, errorType) { - return class extends errorType { - constructor(...args) { - super(messageCreator(...args)); - this.code = code; - this.name = `${errorType.name} [${code}]`; - } - }; -} -const ERR_PACKAGE_IMPORT_NOT_DEFINED = createErrorType( - `ERR_PACKAGE_IMPORT_NOT_DEFINED`, - (specifier, packagePath, base) => { - return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ``} imported from ${base}`; - }, - TypeError -); -const ERR_INVALID_MODULE_SPECIFIER = createErrorType( - `ERR_INVALID_MODULE_SPECIFIER`, - (request, reason, base = void 0) => { - return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ``}`; - }, - TypeError -); -const ERR_INVALID_PACKAGE_TARGET = createErrorType( - `ERR_INVALID_PACKAGE_TARGET`, - (pkgPath, key, target, isImport = false, base = void 0) => { - const relError = typeof target === `string` && !isImport && target.length && !StringPrototypeStartsWith(target, `./`); - if (key === `.`) { - assert__default.default(isImport === false); - return `Invalid "exports" main target ${JSONStringify(target)} defined in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; - } - return `Invalid "${isImport ? `imports` : `exports`}" target ${JSONStringify( - target - )} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; - }, - Error -); -const ERR_INVALID_PACKAGE_CONFIG = createErrorType( - `ERR_INVALID_PACKAGE_CONFIG`, - (path, base, message) => { - return `Invalid package config ${path}${base ? ` while importing ${base}` : ``}${message ? `. ${message}` : ``}`; - }, - Error -); -const ERR_PACKAGE_PATH_NOT_EXPORTED = createErrorType( - "ERR_PACKAGE_PATH_NOT_EXPORTED", - (pkgPath, subpath, base = void 0) => { - if (subpath === ".") - return `No "exports" main defined in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`; - return `Package subpath '${subpath}' is not defined by "exports" in ${pkgPath}package.json${base ? ` imported from ${base}` : ""}`; - }, - Error -); - -function filterOwnProperties(source, keys) { - const filtered = /* @__PURE__ */ Object.create(null); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (ObjectPrototypeHasOwnProperty(source, key)) { - filtered[key] = source[key]; - } - } - return filtered; -} - -const packageJSONCache = new SafeMap(); -function getPackageConfig(path, specifier, base, readFileSyncFn) { - const existing = packageJSONCache.get(path); - if (existing !== void 0) { - return existing; - } - const source = readFileSyncFn(path); - if (source === void 0) { - const packageConfig2 = { - pjsonPath: path, - exists: false, - main: void 0, - name: void 0, - type: "none", - exports: void 0, - imports: void 0 - }; - packageJSONCache.set(path, packageConfig2); - return packageConfig2; - } - let packageJSON; - try { - packageJSON = JSONParse(source); - } catch (error) { - throw new ERR_INVALID_PACKAGE_CONFIG( - path, - (base ? `"${specifier}" from ` : "") + url.fileURLToPath(base || specifier), - error.message - ); - } - let { imports, main, name, type } = filterOwnProperties(packageJSON, [ - "imports", - "main", - "name", - "type" - ]); - const exports = ObjectPrototypeHasOwnProperty(packageJSON, "exports") ? packageJSON.exports : void 0; - if (typeof imports !== "object" || imports === null) { - imports = void 0; - } - if (typeof main !== "string") { - main = void 0; - } - if (typeof name !== "string") { - name = void 0; - } - if (type !== "module" && type !== "commonjs") { - type = "none"; - } - const packageConfig = { - pjsonPath: path, - exists: true, - main, - name, - type, - exports, - imports - }; - packageJSONCache.set(path, packageConfig); - return packageConfig; -} -function getPackageScopeConfig(resolved, readFileSyncFn) { - let packageJSONUrl = new URL("./package.json", resolved); - while (true) { - const packageJSONPath2 = packageJSONUrl.pathname; - if (StringPrototypeEndsWith(packageJSONPath2, "node_modules/package.json")) { - break; - } - const packageConfig2 = getPackageConfig( - url.fileURLToPath(packageJSONUrl), - resolved, - void 0, - readFileSyncFn - ); - if (packageConfig2.exists) { - return packageConfig2; - } - const lastPackageJSONUrl = packageJSONUrl; - packageJSONUrl = new URL("../package.json", packageJSONUrl); - if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) { - break; - } - } - const packageJSONPath = url.fileURLToPath(packageJSONUrl); - const packageConfig = { - pjsonPath: packageJSONPath, - exists: false, - main: void 0, - name: void 0, - type: "none", - exports: void 0, - imports: void 0 - }; - packageJSONCache.set(packageJSONPath, packageConfig); - return packageConfig; -} - -function throwImportNotDefined(specifier, packageJSONUrl, base) { - throw new ERR_PACKAGE_IMPORT_NOT_DEFINED( - specifier, - packageJSONUrl && url.fileURLToPath(new URL(".", packageJSONUrl)), - url.fileURLToPath(base) - ); -} -function throwInvalidSubpath(subpath, packageJSONUrl, internal, base) { - const reason = `request is not a valid subpath for the "${internal ? "imports" : "exports"}" resolution of ${url.fileURLToPath(packageJSONUrl)}`; - throw new ERR_INVALID_MODULE_SPECIFIER( - subpath, - reason, - base && url.fileURLToPath(base) - ); -} -function throwInvalidPackageTarget(subpath, target, packageJSONUrl, internal, base) { - if (typeof target === "object" && target !== null) { - target = JSONStringify(target, null, ""); - } else { - target = `${target}`; - } - throw new ERR_INVALID_PACKAGE_TARGET( - url.fileURLToPath(new URL(".", packageJSONUrl)), - subpath, - target, - internal, - base && url.fileURLToPath(base) - ); -} -const invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i; -const patternRegEx = /\*/g; -function resolvePackageTargetString(target, subpath, match, packageJSONUrl, base, pattern, internal, conditions) { - if (subpath !== "" && !pattern && target[target.length - 1] !== "/") - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - if (!StringPrototypeStartsWith(target, "./")) { - if (internal && !StringPrototypeStartsWith(target, "../") && !StringPrototypeStartsWith(target, "/")) { - let isURL = false; - try { - new URL(target); - isURL = true; - } catch { - } - if (!isURL) { - const exportTarget = pattern ? RegExpPrototypeSymbolReplace(patternRegEx, target, () => subpath) : target + subpath; - return exportTarget; - } - } - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - } - if (RegExpPrototypeExec( - invalidSegmentRegEx, - StringPrototypeSlice(target, 2) - ) !== null) - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - const resolved = new URL(target, packageJSONUrl); - const resolvedPath = resolved.pathname; - const packagePath = new URL(".", packageJSONUrl).pathname; - if (!StringPrototypeStartsWith(resolvedPath, packagePath)) - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - if (subpath === "") return resolved; - if (RegExpPrototypeExec(invalidSegmentRegEx, subpath) !== null) { - const request = pattern ? StringPrototypeReplace(match, "*", () => subpath) : match + subpath; - throwInvalidSubpath(request, packageJSONUrl, internal, base); - } - if (pattern) { - return new URL( - RegExpPrototypeSymbolReplace(patternRegEx, resolved.href, () => subpath) - ); - } - return new URL(subpath, resolved); -} -function isArrayIndex(key) { - const keyNum = +key; - if (`${keyNum}` !== key) return false; - return keyNum >= 0 && keyNum < 4294967295; -} -function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, base, pattern, internal, conditions) { - if (typeof target === "string") { - return resolvePackageTargetString( - target, - subpath, - packageSubpath, - packageJSONUrl, - base, - pattern, - internal); - } else if (ArrayIsArray(target)) { - if (target.length === 0) { - return null; - } - let lastException; - for (let i = 0; i < target.length; i++) { - const targetItem = target[i]; - let resolveResult; - try { - resolveResult = resolvePackageTarget( - packageJSONUrl, - targetItem, - subpath, - packageSubpath, - base, - pattern, - internal, - conditions - ); - } catch (e) { - lastException = e; - if (e.code === "ERR_INVALID_PACKAGE_TARGET") { - continue; - } - throw e; - } - if (resolveResult === void 0) { - continue; - } - if (resolveResult === null) { - lastException = null; - continue; - } - return resolveResult; - } - if (lastException === void 0 || lastException === null) - return lastException; - throw lastException; - } else if (typeof target === "object" && target !== null) { - const keys = ObjectGetOwnPropertyNames(target); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (isArrayIndex(key)) { - throw new ERR_INVALID_PACKAGE_CONFIG( - url.fileURLToPath(packageJSONUrl), - base, - '"exports" cannot contain numeric property keys.' - ); - } - } - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (key === "default" || conditions.has(key)) { - const conditionalTarget = target[key]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - conditionalTarget, - subpath, - packageSubpath, - base, - pattern, - internal, - conditions - ); - if (resolveResult === void 0) continue; - return resolveResult; - } - } - return void 0; - } else if (target === null) { - return null; - } - throwInvalidPackageTarget( - packageSubpath, - target, - packageJSONUrl, - internal, - base - ); -} -function patternKeyCompare(a, b) { - const aPatternIndex = StringPrototypeIndexOf(a, "*"); - const bPatternIndex = StringPrototypeIndexOf(b, "*"); - const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; - const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1; - if (baseLenA > baseLenB) return -1; - if (baseLenB > baseLenA) return 1; - if (aPatternIndex === -1) return 1; - if (bPatternIndex === -1) return -1; - if (a.length > b.length) return -1; - if (b.length > a.length) return 1; - return 0; -} -function isConditionalExportsMainSugar(exports, packageJSONUrl, base) { - if (typeof exports === "string" || ArrayIsArray(exports)) return true; - if (typeof exports !== "object" || exports === null) return false; - const keys = ObjectGetOwnPropertyNames(exports); - let isConditionalSugar = false; - let i = 0; - for (let j = 0; j < keys.length; j++) { - const key = keys[j]; - const curIsConditionalSugar = key === "" || key[0] !== "."; - if (i++ === 0) { - isConditionalSugar = curIsConditionalSugar; - } else if (isConditionalSugar !== curIsConditionalSugar) { - throw new ERR_INVALID_PACKAGE_CONFIG( - url.fileURLToPath(packageJSONUrl), - base, - `"exports" cannot contain some keys starting with '.' and some not. The exports object must either be an object of package subpath keys or an object of main entry condition name keys only.` - ); - } - } - return isConditionalSugar; -} -function throwExportsNotFound(subpath, packageJSONUrl, base) { - throw new ERR_PACKAGE_PATH_NOT_EXPORTED( - url.fileURLToPath(new URL(".", packageJSONUrl)), - subpath, - base && url.fileURLToPath(base) - ); -} -const emittedPackageWarnings = /* @__PURE__ */ new Set(); -function emitTrailingSlashPatternDeprecation(match, pjsonUrl, base) { - const pjsonPath = url.fileURLToPath(pjsonUrl); - if (emittedPackageWarnings.has(pjsonPath + "|" + match)) return; - emittedPackageWarnings.add(pjsonPath + "|" + match); - process.emitWarning( - `Use of deprecated trailing slash pattern mapping "${match}" in the "exports" field module resolution of the package at ${pjsonPath}${base ? ` imported from ${url.fileURLToPath(base)}` : ""}. Mapping specifiers ending in "/" is no longer supported.`, - "DeprecationWarning", - "DEP0155" - ); -} -function packageExportsResolve({ - packageJSONUrl, - packageSubpath, - exports, - base, - conditions -}) { - if (isConditionalExportsMainSugar(exports, packageJSONUrl, base)) - exports = { ".": exports }; - if (ObjectPrototypeHasOwnProperty(exports, packageSubpath) && !StringPrototypeIncludes(packageSubpath, "*") && !StringPrototypeEndsWith(packageSubpath, "/")) { - const target = exports[packageSubpath]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - target, - "", - packageSubpath, - base, - false, - false, - conditions - ); - if (resolveResult == null) { - throwExportsNotFound(packageSubpath, packageJSONUrl, base); - } - return resolveResult; - } - let bestMatch = ""; - let bestMatchSubpath; - const keys = ObjectGetOwnPropertyNames(exports); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const patternIndex = StringPrototypeIndexOf(key, "*"); - if (patternIndex !== -1 && StringPrototypeStartsWith( - packageSubpath, - StringPrototypeSlice(key, 0, patternIndex) - )) { - if (StringPrototypeEndsWith(packageSubpath, "/")) - emitTrailingSlashPatternDeprecation( - packageSubpath, - packageJSONUrl, - base - ); - const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); - if (packageSubpath.length >= key.length && StringPrototypeEndsWith(packageSubpath, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { - bestMatch = key; - bestMatchSubpath = StringPrototypeSlice( - packageSubpath, - patternIndex, - packageSubpath.length - patternTrailer.length - ); - } - } - } - if (bestMatch) { - const target = exports[bestMatch]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - target, - bestMatchSubpath, - bestMatch, - base, - true, - false, - conditions - ); - if (resolveResult == null) { - throwExportsNotFound(packageSubpath, packageJSONUrl, base); - } - return resolveResult; - } - throwExportsNotFound(packageSubpath, packageJSONUrl, base); -} -function packageImportsResolve({ name, base, conditions, readFileSyncFn }) { - if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) { - const reason = "is not a valid internal imports specifier name"; - throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, url.fileURLToPath(base)); - } - let packageJSONUrl; - const packageConfig = getPackageScopeConfig(base, readFileSyncFn); - if (packageConfig.exists) { - packageJSONUrl = url.pathToFileURL(packageConfig.pjsonPath); - const imports = packageConfig.imports; - if (imports) { - if (ObjectPrototypeHasOwnProperty(imports, name) && !StringPrototypeIncludes(name, "*")) { - const resolveResult = resolvePackageTarget( - packageJSONUrl, - imports[name], - "", - name, - base, - false, - true, - conditions - ); - if (resolveResult != null) { - return resolveResult; - } - } else { - let bestMatch = ""; - let bestMatchSubpath; - const keys = ObjectGetOwnPropertyNames(imports); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const patternIndex = StringPrototypeIndexOf(key, "*"); - if (patternIndex !== -1 && StringPrototypeStartsWith( - name, - StringPrototypeSlice(key, 0, patternIndex) - )) { - const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); - if (name.length >= key.length && StringPrototypeEndsWith(name, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { - bestMatch = key; - bestMatchSubpath = StringPrototypeSlice( - name, - patternIndex, - name.length - patternTrailer.length - ); - } - } - } - if (bestMatch) { - const target = imports[bestMatch]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - target, - bestMatchSubpath, - bestMatch, - base, - true, - true, - conditions - ); - if (resolveResult != null) { - return resolveResult; - } - } - } - } - } - throwImportNotDefined(name, packageJSONUrl, base); -} - -const flagSymbol = Symbol('arg flag'); - -class ArgError extends Error { - constructor(msg, code) { - super(msg); - this.name = 'ArgError'; - this.code = code; - - Object.setPrototypeOf(this, ArgError.prototype); - } -} - -function arg( - opts, - { - argv = process.argv.slice(2), - permissive = false, - stopAtPositional = false - } = {} -) { - if (!opts) { - throw new ArgError( - 'argument specification object is required', - 'ARG_CONFIG_NO_SPEC' - ); - } - - const result = { _: [] }; - - const aliases = {}; - const handlers = {}; - - for (const key of Object.keys(opts)) { - if (!key) { - throw new ArgError( - 'argument key cannot be an empty string', - 'ARG_CONFIG_EMPTY_KEY' - ); - } - - if (key[0] !== '-') { - throw new ArgError( - `argument key must start with '-' but found: '${key}'`, - 'ARG_CONFIG_NONOPT_KEY' - ); - } - - if (key.length === 1) { - throw new ArgError( - `argument key must have a name; singular '-' keys are not allowed: ${key}`, - 'ARG_CONFIG_NONAME_KEY' - ); - } - - if (typeof opts[key] === 'string') { - aliases[key] = opts[key]; - continue; - } - - let type = opts[key]; - let isFlag = false; - - if ( - Array.isArray(type) && - type.length === 1 && - typeof type[0] === 'function' - ) { - const [fn] = type; - type = (value, name, prev = []) => { - prev.push(fn(value, name, prev[prev.length - 1])); - return prev; - }; - isFlag = fn === Boolean || fn[flagSymbol] === true; - } else if (typeof type === 'function') { - isFlag = type === Boolean || type[flagSymbol] === true; - } else { - throw new ArgError( - `type missing or not a function or valid array type: ${key}`, - 'ARG_CONFIG_VAD_TYPE' - ); - } - - if (key[1] !== '-' && key.length > 2) { - throw new ArgError( - `short argument keys (with a single hyphen) must have only one character: ${key}`, - 'ARG_CONFIG_SHORTOPT_TOOLONG' - ); - } - - handlers[key] = [type, isFlag]; - } - - for (let i = 0, len = argv.length; i < len; i++) { - const wholeArg = argv[i]; - - if (stopAtPositional && result._.length > 0) { - result._ = result._.concat(argv.slice(i)); - break; - } - - if (wholeArg === '--') { - result._ = result._.concat(argv.slice(i + 1)); - break; - } - - if (wholeArg.length > 1 && wholeArg[0] === '-') { - /* eslint-disable operator-linebreak */ - const separatedArguments = - wholeArg[1] === '-' || wholeArg.length === 2 - ? [wholeArg] - : wholeArg - .slice(1) - .split('') - .map((a) => `-${a}`); - /* eslint-enable operator-linebreak */ - - for (let j = 0; j < separatedArguments.length; j++) { - const arg = separatedArguments[j]; - const [originalArgName, argStr] = - arg[1] === '-' ? arg.split(/=(.*)/, 2) : [arg, undefined]; - - let argName = originalArgName; - while (argName in aliases) { - argName = aliases[argName]; - } - - if (!(argName in handlers)) { - if (permissive) { - result._.push(arg); - continue; - } else { - throw new ArgError( - `unknown or unexpected option: ${originalArgName}`, - 'ARG_UNKNOWN_OPTION' - ); - } - } - - const [type, isFlag] = handlers[argName]; - - if (!isFlag && j + 1 < separatedArguments.length) { - throw new ArgError( - `option requires argument (but was followed by another short argument): ${originalArgName}`, - 'ARG_MISSING_REQUIRED_SHORTARG' - ); - } - - if (isFlag) { - result[argName] = type(true, argName, result[argName]); - } else if (argStr === undefined) { - if ( - argv.length < i + 2 || - (argv[i + 1].length > 1 && - argv[i + 1][0] === '-' && - !( - argv[i + 1].match(/^-?\d*(\.(?=\d))?\d*$/) && - (type === Number || - // eslint-disable-next-line no-undef - (typeof BigInt !== 'undefined' && type === BigInt)) - )) - ) { - const extended = - originalArgName === argName ? '' : ` (alias for ${argName})`; - throw new ArgError( - `option requires argument: ${originalArgName}${extended}`, - 'ARG_MISSING_REQUIRED_LONGARG' - ); - } - - result[argName] = type(argv[i + 1], argName, result[argName]); - ++i; - } else { - result[argName] = type(argStr, argName, result[argName]); - } - } - } else { - result._.push(wholeArg); - } - } - - return result; -} - -arg.flag = (fn) => { - fn[flagSymbol] = true; - return fn; -}; - -// Utility types -arg.COUNT = arg.flag((v, name, existingCount) => (existingCount || 0) + 1); - -// Expose error class -arg.ArgError = ArgError; - -var arg_1 = arg; - -/** - @license - The MIT License (MIT) - - Copyright (c) 2014 Blake Embrey (hello@blakeembrey.com) - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -*/ -function getOptionValue(opt) { - parseOptions(); - return options[opt]; -} -let options; -function parseOptions() { - if (!options) { - options = { - "--conditions": [], - ...parseArgv(getNodeOptionsEnvArgv()), - ...parseArgv(process.execArgv) - }; - } -} -function parseArgv(argv) { - return arg_1( - { - "--conditions": [String], - "-C": "--conditions" - }, - { - argv, - permissive: true - } - ); -} -function getNodeOptionsEnvArgv() { - const errors = []; - const envArgv = ParseNodeOptionsEnvVar(process.env.NODE_OPTIONS || "", errors); - if (errors.length !== 0) ; - return envArgv; -} -function ParseNodeOptionsEnvVar(node_options, errors) { - const env_argv = []; - let is_in_string = false; - let will_start_new_arg = true; - for (let index = 0; index < node_options.length; ++index) { - let c = node_options[index]; - if (c === "\\" && is_in_string) { - if (index + 1 === node_options.length) { - errors.push("invalid value for NODE_OPTIONS (invalid escape)\n"); - return env_argv; - } else { - c = node_options[++index]; - } - } else if (c === " " && !is_in_string) { - will_start_new_arg = true; - continue; - } else if (c === '"') { - is_in_string = !is_in_string; - continue; - } - if (will_start_new_arg) { - env_argv.push(c); - will_start_new_arg = false; - } else { - env_argv[env_argv.length - 1] += c; - } - } - if (is_in_string) { - errors.push("invalid value for NODE_OPTIONS (unterminated string)\n"); - } - return env_argv; -} - -function makeApi(runtimeState, opts) { - const alwaysWarnOnFallback = Number(process.env.PNP_ALWAYS_WARN_ON_FALLBACK) > 0; - const debugLevel = Number(process.env.PNP_DEBUG_LEVEL); - const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/; - const isStrictRegExp = /^(\/|\.{1,2}(\/|$))/; - const isDirRegExp = /\/$/; - const isRelativeRegexp = /^\.{0,2}\//; - const topLevelLocator = { name: null, reference: null }; - const fallbackLocators = []; - const emittedWarnings = /* @__PURE__ */ new Set(); - if (runtimeState.enableTopLevelFallback === true) - fallbackLocators.push(topLevelLocator); - if (opts.compatibilityMode !== false) { - for (const name of [`react-scripts`, `gatsby`]) { - const packageStore = runtimeState.packageRegistry.get(name); - if (packageStore) { - for (const reference of packageStore.keys()) { - if (reference === null) { - throw new Error(`Assertion failed: This reference shouldn't be null`); - } else { - fallbackLocators.push({ name, reference }); - } - } - } - } - } - const { - ignorePattern, - packageRegistry, - packageLocatorsByLocations - } = runtimeState; - function makeLogEntry(name, args) { - return { - fn: name, - args, - error: null, - result: null - }; - } - function trace(entry) { - const colors = process.stderr?.hasColors?.() ?? process.stdout.isTTY; - const c = (n, str) => `\x1B[${n}m${str}\x1B[0m`; - const error = entry.error; - if (error) - console.error(c(`31;1`, `\u2716 ${entry.error?.message.replace(/\n.*/s, ``)}`)); - else - console.error(c(`33;1`, `\u203C Resolution`)); - if (entry.args.length > 0) - console.error(); - for (const arg of entry.args) - console.error(` ${c(`37;1`, `In \u2190`)} ${nodeUtils.inspect(arg, { colors, compact: true })}`); - if (entry.result) { - console.error(); - console.error(` ${c(`37;1`, `Out \u2192`)} ${nodeUtils.inspect(entry.result, { colors, compact: true })}`); - } - const stack = new Error().stack.match(/(?<=^ +)at.*/gm)?.slice(2) ?? []; - if (stack.length > 0) { - console.error(); - for (const line of stack) { - console.error(` ${c(`38;5;244`, line)}`); - } - } - console.error(); - } - function maybeLog(name, fn) { - if (opts.allowDebug === false) - return fn; - if (Number.isFinite(debugLevel)) { - if (debugLevel >= 2) { - return (...args) => { - const logEntry = makeLogEntry(name, args); - try { - return logEntry.result = fn(...args); - } catch (error) { - throw logEntry.error = error; - } finally { - trace(logEntry); - } - }; - } else if (debugLevel >= 1) { - return (...args) => { - try { - return fn(...args); - } catch (error) { - const logEntry = makeLogEntry(name, args); - logEntry.error = error; - trace(logEntry); - throw error; - } - }; - } - } - return fn; - } - function getPackageInformationSafe(packageLocator) { - const packageInformation = getPackageInformation(packageLocator); - if (!packageInformation) { - throw makeError( - ErrorCode.INTERNAL, - `Couldn't find a matching entry in the dependency tree for the specified parent (this is probably an internal error)` - ); - } - return packageInformation; - } - function isDependencyTreeRoot(packageLocator) { - if (packageLocator.name === null) - return true; - for (const dependencyTreeRoot of runtimeState.dependencyTreeRoots) - if (dependencyTreeRoot.name === packageLocator.name && dependencyTreeRoot.reference === packageLocator.reference) - return true; - return false; - } - const defaultExportsConditions = /* @__PURE__ */ new Set([ - `node`, - `require`, - ...getOptionValue(`--conditions`) - ]); - function applyNodeExportsResolution(unqualifiedPath, conditions = defaultExportsConditions, issuer) { - const locator = findPackageLocator(ppath.join(unqualifiedPath, `internal.js`), { - resolveIgnored: true, - includeDiscardFromLookup: true - }); - if (locator === null) { - throw makeError( - ErrorCode.INTERNAL, - `The locator that owns the "${unqualifiedPath}" path can't be found inside the dependency tree (this is probably an internal error)` - ); - } - const { packageLocation } = getPackageInformationSafe(locator); - const manifestPath = ppath.join(packageLocation, Filename.manifest); - if (!opts.fakeFs.existsSync(manifestPath)) - return null; - const pkgJson = JSON.parse(opts.fakeFs.readFileSync(manifestPath, `utf8`)); - if (pkgJson.exports == null) - return null; - let subpath = ppath.contains(packageLocation, unqualifiedPath); - if (subpath === null) { - throw makeError( - ErrorCode.INTERNAL, - `unqualifiedPath doesn't contain the packageLocation (this is probably an internal error)` - ); - } - if (subpath !== `.` && !isRelativeRegexp.test(subpath)) - subpath = `./${subpath}`; - try { - const resolvedExport = packageExportsResolve({ - packageJSONUrl: url.pathToFileURL(npath.fromPortablePath(manifestPath)), - packageSubpath: subpath, - exports: pkgJson.exports, - base: issuer ? url.pathToFileURL(npath.fromPortablePath(issuer)) : null, - conditions - }); - return npath.toPortablePath(url.fileURLToPath(resolvedExport)); - } catch (error) { - throw makeError( - ErrorCode.EXPORTS_RESOLUTION_FAILED, - error.message, - { unqualifiedPath: getPathForDisplay(unqualifiedPath), locator, pkgJson, subpath: getPathForDisplay(subpath), conditions }, - error.code - ); - } - } - function applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions }) { - let stat; - try { - candidates.push(unqualifiedPath); - stat = opts.fakeFs.statSync(unqualifiedPath); - } catch { - } - if (stat && !stat.isDirectory()) - return opts.fakeFs.realpathSync(unqualifiedPath); - if (stat && stat.isDirectory()) { - let pkgJson; - try { - pkgJson = JSON.parse(opts.fakeFs.readFileSync(ppath.join(unqualifiedPath, Filename.manifest), `utf8`)); - } catch { - } - let nextUnqualifiedPath; - if (pkgJson && pkgJson.main) - nextUnqualifiedPath = ppath.resolve(unqualifiedPath, pkgJson.main); - if (nextUnqualifiedPath && nextUnqualifiedPath !== unqualifiedPath) { - const resolution = applyNodeExtensionResolution(nextUnqualifiedPath, candidates, { extensions }); - if (resolution !== null) { - return resolution; - } - } - } - for (let i = 0, length = extensions.length; i < length; i++) { - const candidateFile = `${unqualifiedPath}${extensions[i]}`; - candidates.push(candidateFile); - if (opts.fakeFs.existsSync(candidateFile)) { - return candidateFile; - } - } - if (stat && stat.isDirectory()) { - for (let i = 0, length = extensions.length; i < length; i++) { - const candidateFile = ppath.format({ dir: unqualifiedPath, name: `index`, ext: extensions[i] }); - candidates.push(candidateFile); - if (opts.fakeFs.existsSync(candidateFile)) { - return candidateFile; - } - } - } - return null; - } - function makeFakeModule(path) { - const fakeModule = new require$$0.Module(path, null); - fakeModule.filename = path; - fakeModule.paths = require$$0.Module._nodeModulePaths(path); - return fakeModule; - } - function callNativeResolution(request, issuer) { - if (issuer.endsWith(`/`)) - issuer = ppath.join(issuer, `internal.js`); - return require$$0.Module._resolveFilename(npath.fromPortablePath(request), makeFakeModule(npath.fromPortablePath(issuer)), false, { plugnplay: false }); - } - function isPathIgnored(path) { - if (ignorePattern === null) - return false; - const subPath = ppath.contains(runtimeState.basePath, path); - if (subPath === null) - return false; - if (ignorePattern.test(subPath.replace(/\/$/, ``))) { - return true; - } else { - return false; - } - } - const VERSIONS = { std: 3, resolveVirtual: 1, getAllLocators: 1 }; - const topLevel = topLevelLocator; - function getPackageInformation({ name, reference }) { - const packageInformationStore = packageRegistry.get(name); - if (!packageInformationStore) - return null; - const packageInformation = packageInformationStore.get(reference); - if (!packageInformation) - return null; - return packageInformation; - } - function findPackageDependents({ name, reference }) { - const dependents = []; - for (const [dependentName, packageInformationStore] of packageRegistry) { - if (dependentName === null) - continue; - for (const [dependentReference, packageInformation] of packageInformationStore) { - if (dependentReference === null) - continue; - const dependencyReference = packageInformation.packageDependencies.get(name); - if (dependencyReference !== reference) - continue; - if (dependentName === name && dependentReference === reference) - continue; - dependents.push({ - name: dependentName, - reference: dependentReference - }); - } - } - return dependents; - } - function findBrokenPeerDependencies(dependency, initialPackage) { - const brokenPackages = /* @__PURE__ */ new Map(); - const alreadyVisited = /* @__PURE__ */ new Set(); - const traversal = (currentPackage) => { - const identifier = JSON.stringify(currentPackage.name); - if (alreadyVisited.has(identifier)) - return; - alreadyVisited.add(identifier); - const dependents = findPackageDependents(currentPackage); - for (const dependent of dependents) { - const dependentInformation = getPackageInformationSafe(dependent); - if (dependentInformation.packagePeers.has(dependency)) { - traversal(dependent); - } else { - let brokenSet = brokenPackages.get(dependent.name); - if (typeof brokenSet === `undefined`) - brokenPackages.set(dependent.name, brokenSet = /* @__PURE__ */ new Set()); - brokenSet.add(dependent.reference); - } - } - }; - traversal(initialPackage); - const brokenList = []; - for (const name of [...brokenPackages.keys()].sort()) - for (const reference of [...brokenPackages.get(name)].sort()) - brokenList.push({ name, reference }); - return brokenList; - } - function findPackageLocator(location, { resolveIgnored = false, includeDiscardFromLookup = false } = {}) { - if (isPathIgnored(location) && !resolveIgnored) - return null; - let relativeLocation = ppath.relative(runtimeState.basePath, location); - if (!relativeLocation.match(isStrictRegExp)) - relativeLocation = `./${relativeLocation}`; - if (!relativeLocation.endsWith(`/`)) - relativeLocation = `${relativeLocation}/`; - do { - const entry = packageLocatorsByLocations.get(relativeLocation); - if (typeof entry === `undefined` || entry.discardFromLookup && !includeDiscardFromLookup) { - relativeLocation = relativeLocation.substring(0, relativeLocation.lastIndexOf(`/`, relativeLocation.length - 2) + 1); - continue; - } - return entry.locator; - } while (relativeLocation !== ``); - return null; - } - function tryReadFile(filePath) { - try { - return opts.fakeFs.readFileSync(npath.toPortablePath(filePath), `utf8`); - } catch (err) { - if (err.code === `ENOENT`) - return void 0; - throw err; - } - } - function resolveToUnqualified(request, issuer, { considerBuiltins = true } = {}) { - if (request.startsWith(`#`)) - throw new Error(`resolveToUnqualified can not handle private import mappings`); - if (request === `pnpapi`) - return npath.toPortablePath(opts.pnpapiResolution); - if (considerBuiltins && require$$0.isBuiltin(request)) - return null; - const requestForDisplay = getPathForDisplay(request); - const issuerForDisplay = issuer && getPathForDisplay(issuer); - if (issuer && isPathIgnored(issuer)) { - if (!ppath.isAbsolute(request) || findPackageLocator(request) === null) { - const result = callNativeResolution(request, issuer); - if (result === false) { - throw makeError( - ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, - `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer was explicitely ignored by the regexp) - -Require request: "${requestForDisplay}" -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay } - ); - } - return npath.toPortablePath(result); - } - } - let unqualifiedPath; - const dependencyNameMatch = request.match(pathRegExp); - if (!dependencyNameMatch) { - if (ppath.isAbsolute(request)) { - unqualifiedPath = ppath.normalize(request); - } else { - if (!issuer) { - throw makeError( - ErrorCode.API_ERROR, - `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, - { request: requestForDisplay, issuer: issuerForDisplay } - ); - } - const absoluteIssuer = ppath.resolve(issuer); - if (issuer.match(isDirRegExp)) { - unqualifiedPath = ppath.normalize(ppath.join(absoluteIssuer, request)); - } else { - unqualifiedPath = ppath.normalize(ppath.join(ppath.dirname(absoluteIssuer), request)); - } - } - } else { - if (!issuer) { - throw makeError( - ErrorCode.API_ERROR, - `The resolveToUnqualified function must be called with a valid issuer when the path isn't a builtin nor absolute`, - { request: requestForDisplay, issuer: issuerForDisplay } - ); - } - const [, dependencyName, subPath] = dependencyNameMatch; - const issuerLocator = findPackageLocator(issuer); - if (!issuerLocator) { - const result = callNativeResolution(request, issuer); - if (result === false) { - throw makeError( - ErrorCode.BUILTIN_NODE_RESOLUTION_FAILED, - `The builtin node resolution algorithm was unable to resolve the requested module (it didn't go through the pnp resolver because the issuer doesn't seem to be part of the Yarn-managed dependency tree). - -Require path: "${requestForDisplay}" -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay } - ); - } - return npath.toPortablePath(result); - } - const issuerInformation = getPackageInformationSafe(issuerLocator); - let dependencyReference = issuerInformation.packageDependencies.get(dependencyName); - let fallbackReference = null; - if (dependencyReference == null) { - if (issuerLocator.name !== null) { - const exclusionEntry = runtimeState.fallbackExclusionList.get(issuerLocator.name); - const canUseFallbacks = !exclusionEntry || !exclusionEntry.has(issuerLocator.reference); - if (canUseFallbacks) { - for (let t = 0, T = fallbackLocators.length; t < T; ++t) { - const fallbackInformation = getPackageInformationSafe(fallbackLocators[t]); - const reference = fallbackInformation.packageDependencies.get(dependencyName); - if (reference == null) - continue; - if (alwaysWarnOnFallback) - fallbackReference = reference; - else - dependencyReference = reference; - break; - } - if (runtimeState.enableTopLevelFallback) { - if (dependencyReference == null && fallbackReference === null) { - const reference = runtimeState.fallbackPool.get(dependencyName); - if (reference != null) { - fallbackReference = reference; - } - } - } - } - } - } - let error = null; - if (dependencyReference === null) { - if (isDependencyTreeRoot(issuerLocator)) { - error = makeError( - ErrorCode.MISSING_PEER_DEPENDENCY, - `Your application tried to access ${dependencyName} (a peer dependency); this isn't allowed as there is no ancestor to satisfy the requirement. Use a devDependency if needed. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } - ); - } else { - const brokenAncestors = findBrokenPeerDependencies(dependencyName, issuerLocator); - if (brokenAncestors.every((ancestor) => isDependencyTreeRoot(ancestor))) { - error = makeError( - ErrorCode.MISSING_PEER_DEPENDENCY, - `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by your application; this makes the require call ambiguous and unsound. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) -${brokenAncestors.map((ancestorLocator) => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference} -`).join(``)} -`, - { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName, brokenAncestors } - ); - } else { - error = makeError( - ErrorCode.MISSING_PEER_DEPENDENCY, - `${issuerLocator.name} tried to access ${dependencyName} (a peer dependency) but it isn't provided by its ancestors; this makes the require call ambiguous and unsound. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) - -${brokenAncestors.map((ancestorLocator) => `Ancestor breaking the chain: ${ancestorLocator.name}@${ancestorLocator.reference} -`).join(``)} -`, - { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName, brokenAncestors } - ); - } - } - } else if (dependencyReference === void 0) { - if (!considerBuiltins && require$$0.isBuiltin(request)) { - if (isDependencyTreeRoot(issuerLocator)) { - error = makeError( - ErrorCode.UNDECLARED_DEPENDENCY, - `Your application tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in your dependencies, this makes the require call ambiguous and unsound. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } - ); - } else { - error = makeError( - ErrorCode.UNDECLARED_DEPENDENCY, - `${issuerLocator.name} tried to access ${dependencyName}. While this module is usually interpreted as a Node builtin, your resolver is running inside a non-Node resolution context where such builtins are ignored. Since ${dependencyName} isn't otherwise declared in ${issuerLocator.name}'s dependencies, this makes the require call ambiguous and unsound. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName } - ); - } - } else { - if (isDependencyTreeRoot(issuerLocator)) { - error = makeError( - ErrorCode.UNDECLARED_DEPENDENCY, - `Your application tried to access ${dependencyName}, but it isn't declared in your dependencies; this makes the require call ambiguous and unsound. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerForDisplay} -`, - { request: requestForDisplay, issuer: issuerForDisplay, dependencyName } - ); - } else { - error = makeError( - ErrorCode.UNDECLARED_DEPENDENCY, - `${issuerLocator.name} tried to access ${dependencyName}, but it isn't declared in its dependencies; this makes the require call ambiguous and unsound. - -Required package: ${dependencyName}${dependencyName !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) -`, - { request: requestForDisplay, issuer: issuerForDisplay, issuerLocator: Object.assign({}, issuerLocator), dependencyName } - ); - } - } - } - if (dependencyReference == null) { - if (fallbackReference === null || error === null) - throw error || new Error(`Assertion failed: Expected an error to have been set`); - dependencyReference = fallbackReference; - const message = error.message.replace(/\n.*/g, ``); - error.message = message; - if (!emittedWarnings.has(message) && debugLevel !== 0) { - emittedWarnings.add(message); - process.emitWarning(error); - } - } - const dependencyLocator = Array.isArray(dependencyReference) ? { name: dependencyReference[0], reference: dependencyReference[1] } : { name: dependencyName, reference: dependencyReference }; - const dependencyInformation = getPackageInformationSafe(dependencyLocator); - if (!dependencyInformation.packageLocation) { - throw makeError( - ErrorCode.MISSING_DEPENDENCY, - `A dependency seems valid but didn't get installed for some reason. This might be caused by a partial install, such as dev vs prod. - -Required package: ${dependencyLocator.name}@${dependencyLocator.reference}${dependencyLocator.name !== requestForDisplay ? ` (via "${requestForDisplay}")` : ``} -Required by: ${issuerLocator.name}@${issuerLocator.reference} (via ${issuerForDisplay}) -`, - { request: requestForDisplay, issuer: issuerForDisplay, dependencyLocator: Object.assign({}, dependencyLocator) } - ); - } - const dependencyLocation = dependencyInformation.packageLocation; - if (subPath) { - unqualifiedPath = ppath.join(dependencyLocation, subPath); - } else { - unqualifiedPath = dependencyLocation; - } - } - return ppath.normalize(unqualifiedPath); - } - function resolveUnqualifiedExport(request, unqualifiedPath, conditions = defaultExportsConditions, issuer) { - if (isStrictRegExp.test(request)) - return unqualifiedPath; - const unqualifiedExportPath = applyNodeExportsResolution(unqualifiedPath, conditions, issuer); - if (unqualifiedExportPath) { - return ppath.normalize(unqualifiedExportPath); - } else { - return unqualifiedPath; - } - } - function resolveUnqualified(unqualifiedPath, { extensions = Object.keys(require$$0.Module._extensions) } = {}) { - const candidates = []; - const qualifiedPath = applyNodeExtensionResolution(unqualifiedPath, candidates, { extensions }); - if (qualifiedPath) { - return ppath.normalize(qualifiedPath); - } else { - reportRequiredFilesToWatchMode(candidates.map((candidate) => npath.fromPortablePath(candidate))); - const unqualifiedPathForDisplay = getPathForDisplay(unqualifiedPath); - const containingPackage = findPackageLocator(unqualifiedPath); - if (containingPackage) { - const { packageLocation } = getPackageInformationSafe(containingPackage); - let exists = true; - try { - opts.fakeFs.accessSync(packageLocation); - } catch (err) { - if (err?.code === `ENOENT`) { - exists = false; - } else { - const readableError = (err?.message ?? err ?? `empty exception thrown`).replace(/^[A-Z]/, ($0) => $0.toLowerCase()); - throw makeError(ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, `Required package exists but could not be accessed (${readableError}). - -Missing package: ${containingPackage.name}@${containingPackage.reference} -Expected package location: ${getPathForDisplay(packageLocation)} -`, { unqualifiedPath: unqualifiedPathForDisplay, extensions }); - } - } - if (!exists) { - const errorMessage = packageLocation.includes(`/unplugged/`) ? `Required unplugged package missing from disk. This may happen when switching branches without running installs (unplugged packages must be fully materialized on disk to work).` : `Required package missing from disk. If you keep your packages inside your repository then restarting the Node process may be enough. Otherwise, try to run an install first.`; - throw makeError( - ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, - `${errorMessage} - -Missing package: ${containingPackage.name}@${containingPackage.reference} -Expected package location: ${getPathForDisplay(packageLocation)} -`, - { unqualifiedPath: unqualifiedPathForDisplay, extensions } - ); - } - } - throw makeError( - ErrorCode.QUALIFIED_PATH_RESOLUTION_FAILED, - `Qualified path resolution failed: we looked for the following paths, but none could be accessed. - -Source path: ${unqualifiedPathForDisplay} -${candidates.map((candidate) => `Not found: ${getPathForDisplay(candidate)} -`).join(``)}`, - { unqualifiedPath: unqualifiedPathForDisplay, extensions } - ); - } - } - function resolvePrivateRequest(request, issuer, opts2) { - if (!issuer) - throw new Error(`Assertion failed: An issuer is required to resolve private import mappings`); - const resolved = packageImportsResolve({ - name: request, - base: url.pathToFileURL(npath.fromPortablePath(issuer)), - conditions: opts2.conditions ?? defaultExportsConditions, - readFileSyncFn: tryReadFile - }); - if (resolved instanceof URL) { - return resolveUnqualified(npath.toPortablePath(url.fileURLToPath(resolved)), { extensions: opts2.extensions }); - } else { - if (resolved.startsWith(`#`)) - throw new Error(`Mapping from one private import to another isn't allowed`); - return resolveRequest(resolved, issuer, opts2); - } - } - function resolveRequest(request, issuer, opts2 = {}) { - try { - if (request.startsWith(`#`)) - return resolvePrivateRequest(request, issuer, opts2); - const { considerBuiltins, extensions, conditions } = opts2; - const unqualifiedPath = resolveToUnqualified(request, issuer, { considerBuiltins }); - if (request === `pnpapi`) - return unqualifiedPath; - if (unqualifiedPath === null) - return null; - const isIssuerIgnored = () => issuer !== null ? isPathIgnored(issuer) : false; - const remappedPath = (!considerBuiltins || !require$$0.isBuiltin(request)) && !isIssuerIgnored() ? resolveUnqualifiedExport(request, unqualifiedPath, conditions, issuer) : unqualifiedPath; - return resolveUnqualified(remappedPath, { extensions }); - } catch (error) { - if (Object.hasOwn(error, `pnpCode`)) - Object.assign(error.data, { request: getPathForDisplay(request), issuer: issuer && getPathForDisplay(issuer) }); - throw error; - } - } - function resolveVirtual(request) { - const normalized = ppath.normalize(request); - const resolved = VirtualFS.resolveVirtual(normalized); - return resolved !== normalized ? resolved : null; - } - return { - VERSIONS, - topLevel, - getLocator: (name, referencish) => { - if (Array.isArray(referencish)) { - return { name: referencish[0], reference: referencish[1] }; - } else { - return { name, reference: referencish }; - } - }, - getDependencyTreeRoots: () => { - return [...runtimeState.dependencyTreeRoots]; - }, - getAllLocators() { - const locators = []; - for (const [name, entry] of packageRegistry) - for (const reference of entry.keys()) - if (name !== null && reference !== null) - locators.push({ name, reference }); - return locators; - }, - getPackageInformation: (locator) => { - const info = getPackageInformation(locator); - if (info === null) - return null; - const packageLocation = npath.fromPortablePath(info.packageLocation); - const nativeInfo = { ...info, packageLocation }; - return nativeInfo; - }, - findPackageLocator: (path) => { - return findPackageLocator(npath.toPortablePath(path)); - }, - resolveToUnqualified: maybeLog(`resolveToUnqualified`, (request, issuer, opts2) => { - const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null; - const resolution = resolveToUnqualified(npath.toPortablePath(request), portableIssuer, opts2); - if (resolution === null) - return null; - return npath.fromPortablePath(resolution); - }), - resolveUnqualified: maybeLog(`resolveUnqualified`, (unqualifiedPath, opts2) => { - return npath.fromPortablePath(resolveUnqualified(npath.toPortablePath(unqualifiedPath), opts2)); - }), - resolveRequest: maybeLog(`resolveRequest`, (request, issuer, opts2) => { - const portableIssuer = issuer !== null ? npath.toPortablePath(issuer) : null; - const resolution = resolveRequest(npath.toPortablePath(request), portableIssuer, opts2); - if (resolution === null) - return null; - return npath.fromPortablePath(resolution); - }), - resolveVirtual: maybeLog(`resolveVirtual`, (path) => { - const result = resolveVirtual(npath.toPortablePath(path)); - if (result !== null) { - return npath.fromPortablePath(result); - } else { - return null; - } - }) - }; -} - -function makeManager(pnpapi, opts) { - const initialApiPath = npath.toPortablePath(pnpapi.resolveToUnqualified(`pnpapi`, null)); - const initialApiStats = opts.fakeFs.statSync(npath.toPortablePath(initialApiPath)); - const apiMetadata = /* @__PURE__ */ new Map([ - [initialApiPath, { - instance: pnpapi, - stats: initialApiStats, - lastRefreshCheck: Date.now() - }] - ]); - function loadApiInstance(pnpApiPath) { - const nativePath = npath.fromPortablePath(pnpApiPath); - const module = new require$$0.Module(nativePath, null); - module.load(nativePath); - return module.exports; - } - function refreshApiEntry(pnpApiPath, apiEntry) { - const timeNow = Date.now(); - if (timeNow - apiEntry.lastRefreshCheck < 500) - return; - apiEntry.lastRefreshCheck = timeNow; - const stats = opts.fakeFs.statSync(pnpApiPath); - if (stats.mtime > apiEntry.stats.mtime) { - process.emitWarning(`[Warning] The runtime detected new information in a PnP file; reloading the API instance (${npath.fromPortablePath(pnpApiPath)})`); - apiEntry.stats = stats; - apiEntry.instance = loadApiInstance(pnpApiPath); - } - } - function getApiEntry(pnpApiPath, refresh = false) { - let apiEntry = apiMetadata.get(pnpApiPath); - if (typeof apiEntry !== `undefined`) { - if (refresh) { - refreshApiEntry(pnpApiPath, apiEntry); - } - } else { - apiMetadata.set(pnpApiPath, apiEntry = { - instance: loadApiInstance(pnpApiPath), - stats: opts.fakeFs.statSync(pnpApiPath), - lastRefreshCheck: Date.now() - }); - } - return apiEntry; - } - const findApiPathCache = /* @__PURE__ */ new Map(); - function addToCacheAndReturn(start, end, target) { - if (target !== null) { - target = VirtualFS.resolveVirtual(target); - target = opts.fakeFs.realpathSync(target); - } - let curr; - let next = start; - do { - curr = next; - findApiPathCache.set(curr, target); - next = ppath.dirname(curr); - } while (curr !== end); - return target; - } - function findApiPathFor(modulePath) { - let bestCandidate = null; - for (const [apiPath, apiEntry] of apiMetadata) { - const locator = apiEntry.instance.findPackageLocator(modulePath); - if (!locator) - continue; - if (apiMetadata.size === 1) - return apiPath; - const packageInformation = apiEntry.instance.getPackageInformation(locator); - if (!packageInformation) - throw new Error(`Assertion failed: Couldn't get package information for '${modulePath}'`); - if (!bestCandidate) - bestCandidate = { packageLocation: packageInformation.packageLocation, apiPaths: [] }; - if (packageInformation.packageLocation === bestCandidate.packageLocation) { - bestCandidate.apiPaths.push(apiPath); - } else if (packageInformation.packageLocation.length > bestCandidate.packageLocation.length) { - bestCandidate = { packageLocation: packageInformation.packageLocation, apiPaths: [apiPath] }; - } - } - if (bestCandidate) { - if (bestCandidate.apiPaths.length === 1) - return bestCandidate.apiPaths[0]; - const controlSegment = bestCandidate.apiPaths.map((apiPath) => ` ${npath.fromPortablePath(apiPath)}`).join(` -`); - throw new Error(`Unable to locate pnpapi, the module '${modulePath}' is controlled by multiple pnpapi instances. -This is usually caused by using the global cache (enableGlobalCache: true) - -Controlled by: -${controlSegment} -`); - } - const start = ppath.resolve(npath.toPortablePath(modulePath)); - let curr; - let next = start; - do { - curr = next; - const cached = findApiPathCache.get(curr); - if (cached !== void 0) - return addToCacheAndReturn(start, curr, cached); - const cjsCandidate = ppath.join(curr, Filename.pnpCjs); - if (opts.fakeFs.existsSync(cjsCandidate) && opts.fakeFs.statSync(cjsCandidate).isFile()) - return addToCacheAndReturn(start, curr, cjsCandidate); - const legacyCjsCandidate = ppath.join(curr, Filename.pnpJs); - if (opts.fakeFs.existsSync(legacyCjsCandidate) && opts.fakeFs.statSync(legacyCjsCandidate).isFile()) - return addToCacheAndReturn(start, curr, legacyCjsCandidate); - next = ppath.dirname(curr); - } while (curr !== PortablePath.root); - return addToCacheAndReturn(start, curr, null); - } - const moduleToApiPathCache = /* @__PURE__ */ new WeakMap(); - function getApiPathFromParent(parent) { - if (parent == null) - return initialApiPath; - let apiPath = moduleToApiPathCache.get(parent); - if (typeof apiPath !== `undefined`) - return apiPath; - apiPath = parent.filename ? findApiPathFor(parent.filename) : null; - moduleToApiPathCache.set(parent, apiPath); - return apiPath; - } - return { - getApiPathFromParent, - findApiPathFor, - getApiEntry - }; -} - -const localFs = { ...fs__default.default }; -const nodeFs = new NodeFS(localFs); -const defaultRuntimeState = $$SETUP_STATE(hydrateRuntimeState); -const defaultPnpapiResolution = __filename; -const customZipImplementation = defaultRuntimeState.pnpZipBackend === `js` ? JsZipImpl : void 0; -const defaultFsLayer = new VirtualFS({ - baseFs: new ZipOpenFS({ - customZipImplementation, - baseFs: nodeFs, - maxOpenFiles: 80, - readOnlyArchives: true - }) -}); -class DynamicFS extends ProxiedFS { - baseFs = defaultFsLayer; - constructor() { - super(ppath); - } - mapToBase(p) { - return p; - } - mapFromBase(p) { - return p; - } -} -const dynamicFsLayer = new DynamicFS(); -let manager; -const defaultApi = Object.assign(makeApi(defaultRuntimeState, { - fakeFs: dynamicFsLayer, - pnpapiResolution: defaultPnpapiResolution -}), { - /** - * Can be used to generate a different API than the default one (for example - * to map it on `/` rather than the local directory path, or to use a - * different FS layer than the default one). - */ - makeApi: ({ - basePath = void 0, - fakeFs = dynamicFsLayer, - pnpapiResolution = defaultPnpapiResolution, - ...rest - }) => { - const apiRuntimeState = typeof basePath !== `undefined` ? $$SETUP_STATE(hydrateRuntimeState, basePath) : defaultRuntimeState; - return makeApi(apiRuntimeState, { - fakeFs, - pnpapiResolution, - ...rest - }); - }, - /** - * Will inject the specified API into the environment, monkey-patching FS. Is - * automatically called when the hook is loaded through `--require`. - */ - setup: (api) => { - applyPatch(api || defaultApi, { - fakeFs: defaultFsLayer, - manager - }); - dynamicFsLayer.baseFs = new NodeFS(fs__default.default); - } -}); -manager = makeManager(defaultApi, { - fakeFs: dynamicFsLayer -}); -if (module.parent && module.parent.id === `internal/preload`) { - defaultApi.setup(); - if (module.filename) { - delete require$$0__default.default._cache[module.filename]; - } -} -if (process.mainModule === module) { - const reportError = (code, message, data) => { - process.stdout.write(`${JSON.stringify([{ code, message, data }, null])} -`); - }; - const reportSuccess = (resolution) => { - process.stdout.write(`${JSON.stringify([null, resolution])} -`); - }; - const processResolution = (request, issuer) => { - try { - reportSuccess(defaultApi.resolveRequest(request, issuer)); - } catch (error) { - reportError(error.code, error.message, error.data); - } - }; - const processRequest = (data) => { - try { - const [request, issuer] = JSON.parse(data); - processResolution(request, issuer); - } catch (error) { - reportError(`INVALID_JSON`, error.message, error.data); - } - }; - if (process.argv.length > 2) { - if (process.argv.length !== 4) { - process.stderr.write(`Usage: ${process.argv[0]} ${process.argv[1]} -`); - process.exitCode = 64; - } else { - processResolution(process.argv[2], process.argv[3]); - } - } else { - let buffer = ``; - const decoder = new StringDecoder__default.default.StringDecoder(); - process.stdin.on(`data`, (chunk) => { - buffer += decoder.write(chunk); - do { - const index = buffer.indexOf(` -`); - if (index === -1) - break; - const line = buffer.slice(0, index); - buffer = buffer.slice(index + 1); - processRequest(line); - } while (true); - }); - } -} - -module.exports = defaultApi; From 37b02e39075678b3cf6bdba09be56d19c9d953b2 Mon Sep 17 00:00:00 2001 From: tree Date: Thu, 2 Oct 2025 14:20:06 +0530 Subject: [PATCH 5/6] Delete .pnp.loader.mjs --- .pnp.loader.mjs | 2126 ----------------------------------------------- 1 file changed, 2126 deletions(-) delete mode 100644 .pnp.loader.mjs diff --git a/.pnp.loader.mjs b/.pnp.loader.mjs deleted file mode 100644 index 9896cc716f..0000000000 --- a/.pnp.loader.mjs +++ /dev/null @@ -1,2126 +0,0 @@ -/* eslint-disable */ -// @ts-nocheck - -import fs from 'fs'; -import { URL as URL$1, fileURLToPath, pathToFileURL } from 'url'; -import path from 'path'; -import { createHash } from 'crypto'; -import { EOL } from 'os'; -import esmModule, { createRequire, isBuiltin } from 'module'; -import assert from 'assert'; - -const SAFE_TIME = 456789e3; - -const PortablePath = { - root: `/`, - dot: `.`, - parent: `..` -}; -const npath = Object.create(path); -const ppath = Object.create(path.posix); -npath.cwd = () => process.cwd(); -ppath.cwd = process.platform === `win32` ? () => toPortablePath(process.cwd()) : process.cwd; -if (process.platform === `win32`) { - ppath.resolve = (...segments) => { - if (segments.length > 0 && ppath.isAbsolute(segments[0])) { - return path.posix.resolve(...segments); - } else { - return path.posix.resolve(ppath.cwd(), ...segments); - } - }; -} -const contains = function(pathUtils, from, to) { - from = pathUtils.normalize(from); - to = pathUtils.normalize(to); - if (from === to) - return `.`; - if (!from.endsWith(pathUtils.sep)) - from = from + pathUtils.sep; - if (to.startsWith(from)) { - return to.slice(from.length); - } else { - return null; - } -}; -npath.contains = (from, to) => contains(npath, from, to); -ppath.contains = (from, to) => contains(ppath, from, to); -const WINDOWS_PATH_REGEXP = /^([a-zA-Z]:.*)$/; -const UNC_WINDOWS_PATH_REGEXP = /^\/\/(\.\/)?(.*)$/; -const PORTABLE_PATH_REGEXP = /^\/([a-zA-Z]:.*)$/; -const UNC_PORTABLE_PATH_REGEXP = /^\/unc\/(\.dot\/)?(.*)$/; -function fromPortablePathWin32(p) { - let portablePathMatch, uncPortablePathMatch; - if (portablePathMatch = p.match(PORTABLE_PATH_REGEXP)) - p = portablePathMatch[1]; - else if (uncPortablePathMatch = p.match(UNC_PORTABLE_PATH_REGEXP)) - p = `\\\\${uncPortablePathMatch[1] ? `.\\` : ``}${uncPortablePathMatch[2]}`; - else - return p; - return p.replace(/\//g, `\\`); -} -function toPortablePathWin32(p) { - p = p.replace(/\\/g, `/`); - let windowsPathMatch, uncWindowsPathMatch; - if (windowsPathMatch = p.match(WINDOWS_PATH_REGEXP)) - p = `/${windowsPathMatch[1]}`; - else if (uncWindowsPathMatch = p.match(UNC_WINDOWS_PATH_REGEXP)) - p = `/unc/${uncWindowsPathMatch[1] ? `.dot/` : ``}${uncWindowsPathMatch[2]}`; - return p; -} -const toPortablePath = process.platform === `win32` ? toPortablePathWin32 : (p) => p; -const fromPortablePath = process.platform === `win32` ? fromPortablePathWin32 : (p) => p; -npath.fromPortablePath = fromPortablePath; -npath.toPortablePath = toPortablePath; -function convertPath(targetPathUtils, sourcePath) { - return targetPathUtils === npath ? fromPortablePath(sourcePath) : toPortablePath(sourcePath); -} - -const defaultTime = new Date(SAFE_TIME * 1e3); -const defaultTimeMs = defaultTime.getTime(); -async function copyPromise(destinationFs, destination, sourceFs, source, opts) { - const normalizedDestination = destinationFs.pathUtils.normalize(destination); - const normalizedSource = sourceFs.pathUtils.normalize(source); - const prelayout = []; - const postlayout = []; - const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : await sourceFs.lstatPromise(normalizedSource); - await destinationFs.mkdirpPromise(destinationFs.pathUtils.dirname(destination), { utimes: [atime, mtime] }); - await copyImpl(prelayout, postlayout, destinationFs, normalizedDestination, sourceFs, normalizedSource, { ...opts, didParentExist: true }); - for (const operation of prelayout) - await operation(); - await Promise.all(postlayout.map((operation) => { - return operation(); - })); -} -async function copyImpl(prelayout, postlayout, destinationFs, destination, sourceFs, source, opts) { - const destinationStat = opts.didParentExist ? await maybeLStat(destinationFs, destination) : null; - const sourceStat = await sourceFs.lstatPromise(source); - const { atime, mtime } = opts.stableTime ? { atime: defaultTime, mtime: defaultTime } : sourceStat; - let updated; - switch (true) { - case sourceStat.isDirectory(): - { - updated = await copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - case sourceStat.isFile(): - { - updated = await copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - case sourceStat.isSymbolicLink(): - { - updated = await copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } - break; - default: { - throw new Error(`Unsupported file type (${sourceStat.mode})`); - } - } - if (opts.linkStrategy?.type !== `HardlinkFromIndex` || !sourceStat.isFile()) { - if (updated || destinationStat?.mtime?.getTime() !== mtime.getTime() || destinationStat?.atime?.getTime() !== atime.getTime()) { - postlayout.push(() => destinationFs.lutimesPromise(destination, atime, mtime)); - updated = true; - } - if (destinationStat === null || (destinationStat.mode & 511) !== (sourceStat.mode & 511)) { - postlayout.push(() => destinationFs.chmodPromise(destination, sourceStat.mode & 511)); - updated = true; - } - } - return updated; -} -async function maybeLStat(baseFs, p) { - try { - return await baseFs.lstatPromise(p); - } catch { - return null; - } -} -async function copyFolder(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null && !destinationStat.isDirectory()) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - let updated = false; - if (destinationStat === null) { - prelayout.push(async () => { - try { - await destinationFs.mkdirPromise(destination, { mode: sourceStat.mode }); - } catch (err) { - if (err.code !== `EEXIST`) { - throw err; - } - } - }); - updated = true; - } - const entries = await sourceFs.readdirPromise(source); - const nextOpts = opts.didParentExist && !destinationStat ? { ...opts, didParentExist: false } : opts; - if (opts.stableSort) { - for (const entry of entries.sort()) { - if (await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts)) { - updated = true; - } - } - } else { - const entriesUpdateStatus = await Promise.all(entries.map(async (entry) => { - await copyImpl(prelayout, postlayout, destinationFs, destinationFs.pathUtils.join(destination, entry), sourceFs, sourceFs.pathUtils.join(source, entry), nextOpts); - })); - if (entriesUpdateStatus.some((status) => status)) { - updated = true; - } - } - return updated; -} -async function copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, linkStrategy) { - const sourceHash = await sourceFs.checksumFilePromise(source, { algorithm: `sha1` }); - const defaultMode = 420; - const sourceMode = sourceStat.mode & 511; - const indexFileName = `${sourceHash}${sourceMode !== defaultMode ? sourceMode.toString(8) : ``}`; - const indexPath = destinationFs.pathUtils.join(linkStrategy.indexPath, sourceHash.slice(0, 2), `${indexFileName}.dat`); - let AtomicBehavior; - ((AtomicBehavior2) => { - AtomicBehavior2[AtomicBehavior2["Lock"] = 0] = "Lock"; - AtomicBehavior2[AtomicBehavior2["Rename"] = 1] = "Rename"; - })(AtomicBehavior || (AtomicBehavior = {})); - let atomicBehavior = 1 /* Rename */; - let indexStat = await maybeLStat(destinationFs, indexPath); - if (destinationStat) { - const isDestinationHardlinkedFromIndex = indexStat && destinationStat.dev === indexStat.dev && destinationStat.ino === indexStat.ino; - const isIndexModified = indexStat?.mtimeMs !== defaultTimeMs; - if (isDestinationHardlinkedFromIndex) { - if (isIndexModified && linkStrategy.autoRepair) { - atomicBehavior = 0 /* Lock */; - indexStat = null; - } - } - if (!isDestinationHardlinkedFromIndex) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - } - const tempPath = !indexStat && atomicBehavior === 1 /* Rename */ ? `${indexPath}.${Math.floor(Math.random() * 4294967296).toString(16).padStart(8, `0`)}` : null; - let tempPathCleaned = false; - prelayout.push(async () => { - if (!indexStat) { - if (atomicBehavior === 0 /* Lock */) { - await destinationFs.lockPromise(indexPath, async () => { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(indexPath, content); - }); - } - if (atomicBehavior === 1 /* Rename */ && tempPath) { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(tempPath, content); - try { - await destinationFs.linkPromise(tempPath, indexPath); - } catch (err) { - if (err.code === `EEXIST`) { - tempPathCleaned = true; - await destinationFs.unlinkPromise(tempPath); - } else { - throw err; - } - } - } - } - if (!destinationStat) { - await destinationFs.linkPromise(indexPath, destination); - } - }); - postlayout.push(async () => { - if (!indexStat) { - await destinationFs.lutimesPromise(indexPath, defaultTime, defaultTime); - if (sourceMode !== defaultMode) { - await destinationFs.chmodPromise(indexPath, sourceMode); - } - } - if (tempPath && !tempPathCleaned) { - await destinationFs.unlinkPromise(tempPath); - } - }); - return false; -} -async function copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - prelayout.push(async () => { - const content = await sourceFs.readFilePromise(source); - await destinationFs.writeFilePromise(destination, content); - }); - return true; -} -async function copyFile(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (opts.linkStrategy?.type === `HardlinkFromIndex`) { - return copyFileViaIndex(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts, opts.linkStrategy); - } else { - return copyFileDirect(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts); - } -} -async function copySymlink(prelayout, postlayout, destinationFs, destination, destinationStat, sourceFs, source, sourceStat, opts) { - if (destinationStat !== null) { - if (opts.overwrite) { - prelayout.push(async () => destinationFs.removePromise(destination)); - destinationStat = null; - } else { - return false; - } - } - prelayout.push(async () => { - await destinationFs.symlinkPromise(convertPath(destinationFs.pathUtils, await sourceFs.readlinkPromise(source)), destination); - }); - return true; -} - -class FakeFS { - pathUtils; - constructor(pathUtils) { - this.pathUtils = pathUtils; - } - async *genTraversePromise(init, { stableSort = false } = {}) { - const stack = [init]; - while (stack.length > 0) { - const p = stack.shift(); - const entry = await this.lstatPromise(p); - if (entry.isDirectory()) { - const entries = await this.readdirPromise(p); - if (stableSort) { - for (const entry2 of entries.sort()) { - stack.push(this.pathUtils.join(p, entry2)); - } - } else { - throw new Error(`Not supported`); - } - } else { - yield p; - } - } - } - async checksumFilePromise(path, { algorithm = `sha512` } = {}) { - const fd = await this.openPromise(path, `r`); - try { - const CHUNK_SIZE = 65536; - const chunk = Buffer.allocUnsafeSlow(CHUNK_SIZE); - const hash = createHash(algorithm); - let bytesRead = 0; - while ((bytesRead = await this.readPromise(fd, chunk, 0, CHUNK_SIZE)) !== 0) - hash.update(bytesRead === CHUNK_SIZE ? chunk : chunk.slice(0, bytesRead)); - return hash.digest(`hex`); - } finally { - await this.closePromise(fd); - } - } - async removePromise(p, { recursive = true, maxRetries = 5 } = {}) { - let stat; - try { - stat = await this.lstatPromise(p); - } catch (error) { - if (error.code === `ENOENT`) { - return; - } else { - throw error; - } - } - if (stat.isDirectory()) { - if (recursive) { - const entries = await this.readdirPromise(p); - await Promise.all(entries.map((entry) => { - return this.removePromise(this.pathUtils.resolve(p, entry)); - })); - } - for (let t = 0; t <= maxRetries; t++) { - try { - await this.rmdirPromise(p); - break; - } catch (error) { - if (error.code !== `EBUSY` && error.code !== `ENOTEMPTY`) { - throw error; - } else if (t < maxRetries) { - await new Promise((resolve) => setTimeout(resolve, t * 100)); - } - } - } - } else { - await this.unlinkPromise(p); - } - } - removeSync(p, { recursive = true } = {}) { - let stat; - try { - stat = this.lstatSync(p); - } catch (error) { - if (error.code === `ENOENT`) { - return; - } else { - throw error; - } - } - if (stat.isDirectory()) { - if (recursive) - for (const entry of this.readdirSync(p)) - this.removeSync(this.pathUtils.resolve(p, entry)); - this.rmdirSync(p); - } else { - this.unlinkSync(p); - } - } - async mkdirpPromise(p, { chmod, utimes } = {}) { - p = this.resolve(p); - if (p === this.pathUtils.dirname(p)) - return void 0; - const parts = p.split(this.pathUtils.sep); - let createdDirectory; - for (let u = 2; u <= parts.length; ++u) { - const subPath = parts.slice(0, u).join(this.pathUtils.sep); - if (!this.existsSync(subPath)) { - try { - await this.mkdirPromise(subPath); - } catch (error) { - if (error.code === `EEXIST`) { - continue; - } else { - throw error; - } - } - createdDirectory ??= subPath; - if (chmod != null) - await this.chmodPromise(subPath, chmod); - if (utimes != null) { - await this.utimesPromise(subPath, utimes[0], utimes[1]); - } else { - const parentStat = await this.statPromise(this.pathUtils.dirname(subPath)); - await this.utimesPromise(subPath, parentStat.atime, parentStat.mtime); - } - } - } - return createdDirectory; - } - mkdirpSync(p, { chmod, utimes } = {}) { - p = this.resolve(p); - if (p === this.pathUtils.dirname(p)) - return void 0; - const parts = p.split(this.pathUtils.sep); - let createdDirectory; - for (let u = 2; u <= parts.length; ++u) { - const subPath = parts.slice(0, u).join(this.pathUtils.sep); - if (!this.existsSync(subPath)) { - try { - this.mkdirSync(subPath); - } catch (error) { - if (error.code === `EEXIST`) { - continue; - } else { - throw error; - } - } - createdDirectory ??= subPath; - if (chmod != null) - this.chmodSync(subPath, chmod); - if (utimes != null) { - this.utimesSync(subPath, utimes[0], utimes[1]); - } else { - const parentStat = this.statSync(this.pathUtils.dirname(subPath)); - this.utimesSync(subPath, parentStat.atime, parentStat.mtime); - } - } - } - return createdDirectory; - } - async copyPromise(destination, source, { baseFs = this, overwrite = true, stableSort = false, stableTime = false, linkStrategy = null } = {}) { - return await copyPromise(this, destination, baseFs, source, { overwrite, stableSort, stableTime, linkStrategy }); - } - copySync(destination, source, { baseFs = this, overwrite = true } = {}) { - const stat = baseFs.lstatSync(source); - const exists = this.existsSync(destination); - if (stat.isDirectory()) { - this.mkdirpSync(destination); - const directoryListing = baseFs.readdirSync(source); - for (const entry of directoryListing) { - this.copySync(this.pathUtils.join(destination, entry), baseFs.pathUtils.join(source, entry), { baseFs, overwrite }); - } - } else if (stat.isFile()) { - if (!exists || overwrite) { - if (exists) - this.removeSync(destination); - const content = baseFs.readFileSync(source); - this.writeFileSync(destination, content); - } - } else if (stat.isSymbolicLink()) { - if (!exists || overwrite) { - if (exists) - this.removeSync(destination); - const target = baseFs.readlinkSync(source); - this.symlinkSync(convertPath(this.pathUtils, target), destination); - } - } else { - throw new Error(`Unsupported file type (file: ${source}, mode: 0o${stat.mode.toString(8).padStart(6, `0`)})`); - } - const mode = stat.mode & 511; - this.chmodSync(destination, mode); - } - async changeFilePromise(p, content, opts = {}) { - if (Buffer.isBuffer(content)) { - return this.changeFileBufferPromise(p, content, opts); - } else { - return this.changeFileTextPromise(p, content, opts); - } - } - async changeFileBufferPromise(p, content, { mode } = {}) { - let current = Buffer.alloc(0); - try { - current = await this.readFilePromise(p); - } catch { - } - if (Buffer.compare(current, content) === 0) - return; - await this.writeFilePromise(p, content, { mode }); - } - async changeFileTextPromise(p, content, { automaticNewlines, mode } = {}) { - let current = ``; - try { - current = await this.readFilePromise(p, `utf8`); - } catch { - } - const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; - if (current === normalizedContent) - return; - await this.writeFilePromise(p, normalizedContent, { mode }); - } - changeFileSync(p, content, opts = {}) { - if (Buffer.isBuffer(content)) { - return this.changeFileBufferSync(p, content, opts); - } else { - return this.changeFileTextSync(p, content, opts); - } - } - changeFileBufferSync(p, content, { mode } = {}) { - let current = Buffer.alloc(0); - try { - current = this.readFileSync(p); - } catch { - } - if (Buffer.compare(current, content) === 0) - return; - this.writeFileSync(p, content, { mode }); - } - changeFileTextSync(p, content, { automaticNewlines = false, mode } = {}) { - let current = ``; - try { - current = this.readFileSync(p, `utf8`); - } catch { - } - const normalizedContent = automaticNewlines ? normalizeLineEndings(current, content) : content; - if (current === normalizedContent) - return; - this.writeFileSync(p, normalizedContent, { mode }); - } - async movePromise(fromP, toP) { - try { - await this.renamePromise(fromP, toP); - } catch (error) { - if (error.code === `EXDEV`) { - await this.copyPromise(toP, fromP); - await this.removePromise(fromP); - } else { - throw error; - } - } - } - moveSync(fromP, toP) { - try { - this.renameSync(fromP, toP); - } catch (error) { - if (error.code === `EXDEV`) { - this.copySync(toP, fromP); - this.removeSync(fromP); - } else { - throw error; - } - } - } - async lockPromise(affectedPath, callback) { - const lockPath = `${affectedPath}.flock`; - const interval = 1e3 / 60; - const startTime = Date.now(); - let fd = null; - const isAlive = async () => { - let pid; - try { - [pid] = await this.readJsonPromise(lockPath); - } catch { - return Date.now() - startTime < 500; - } - try { - process.kill(pid, 0); - return true; - } catch { - return false; - } - }; - while (fd === null) { - try { - fd = await this.openPromise(lockPath, `wx`); - } catch (error) { - if (error.code === `EEXIST`) { - if (!await isAlive()) { - try { - await this.unlinkPromise(lockPath); - continue; - } catch { - } - } - if (Date.now() - startTime < 60 * 1e3) { - await new Promise((resolve) => setTimeout(resolve, interval)); - } else { - throw new Error(`Couldn't acquire a lock in a reasonable time (via ${lockPath})`); - } - } else { - throw error; - } - } - } - await this.writePromise(fd, JSON.stringify([process.pid])); - try { - return await callback(); - } finally { - try { - await this.closePromise(fd); - await this.unlinkPromise(lockPath); - } catch { - } - } - } - async readJsonPromise(p) { - const content = await this.readFilePromise(p, `utf8`); - try { - return JSON.parse(content); - } catch (error) { - error.message += ` (in ${p})`; - throw error; - } - } - readJsonSync(p) { - const content = this.readFileSync(p, `utf8`); - try { - return JSON.parse(content); - } catch (error) { - error.message += ` (in ${p})`; - throw error; - } - } - async writeJsonPromise(p, data, { compact = false } = {}) { - const space = compact ? 0 : 2; - return await this.writeFilePromise(p, `${JSON.stringify(data, null, space)} -`); - } - writeJsonSync(p, data, { compact = false } = {}) { - const space = compact ? 0 : 2; - return this.writeFileSync(p, `${JSON.stringify(data, null, space)} -`); - } - async preserveTimePromise(p, cb) { - const stat = await this.lstatPromise(p); - const result = await cb(); - if (typeof result !== `undefined`) - p = result; - await this.lutimesPromise(p, stat.atime, stat.mtime); - } - async preserveTimeSync(p, cb) { - const stat = this.lstatSync(p); - const result = cb(); - if (typeof result !== `undefined`) - p = result; - this.lutimesSync(p, stat.atime, stat.mtime); - } -} -class BasePortableFakeFS extends FakeFS { - constructor() { - super(ppath); - } -} -function getEndOfLine(content) { - const matches = content.match(/\r?\n/g); - if (matches === null) - return EOL; - const crlf = matches.filter((nl) => nl === `\r -`).length; - const lf = matches.length - crlf; - return crlf > lf ? `\r -` : ` -`; -} -function normalizeLineEndings(originalContent, newContent) { - return newContent.replace(/\r?\n/g, getEndOfLine(originalContent)); -} - -class ProxiedFS extends FakeFS { - getExtractHint(hints) { - return this.baseFs.getExtractHint(hints); - } - resolve(path) { - return this.mapFromBase(this.baseFs.resolve(this.mapToBase(path))); - } - getRealPath() { - return this.mapFromBase(this.baseFs.getRealPath()); - } - async openPromise(p, flags, mode) { - return this.baseFs.openPromise(this.mapToBase(p), flags, mode); - } - openSync(p, flags, mode) { - return this.baseFs.openSync(this.mapToBase(p), flags, mode); - } - async opendirPromise(p, opts) { - return Object.assign(await this.baseFs.opendirPromise(this.mapToBase(p), opts), { path: p }); - } - opendirSync(p, opts) { - return Object.assign(this.baseFs.opendirSync(this.mapToBase(p), opts), { path: p }); - } - async readPromise(fd, buffer, offset, length, position) { - return await this.baseFs.readPromise(fd, buffer, offset, length, position); - } - readSync(fd, buffer, offset, length, position) { - return this.baseFs.readSync(fd, buffer, offset, length, position); - } - async writePromise(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return await this.baseFs.writePromise(fd, buffer, offset); - } else { - return await this.baseFs.writePromise(fd, buffer, offset, length, position); - } - } - writeSync(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return this.baseFs.writeSync(fd, buffer, offset); - } else { - return this.baseFs.writeSync(fd, buffer, offset, length, position); - } - } - async closePromise(fd) { - return this.baseFs.closePromise(fd); - } - closeSync(fd) { - this.baseFs.closeSync(fd); - } - createReadStream(p, opts) { - return this.baseFs.createReadStream(p !== null ? this.mapToBase(p) : p, opts); - } - createWriteStream(p, opts) { - return this.baseFs.createWriteStream(p !== null ? this.mapToBase(p) : p, opts); - } - async realpathPromise(p) { - return this.mapFromBase(await this.baseFs.realpathPromise(this.mapToBase(p))); - } - realpathSync(p) { - return this.mapFromBase(this.baseFs.realpathSync(this.mapToBase(p))); - } - async existsPromise(p) { - return this.baseFs.existsPromise(this.mapToBase(p)); - } - existsSync(p) { - return this.baseFs.existsSync(this.mapToBase(p)); - } - accessSync(p, mode) { - return this.baseFs.accessSync(this.mapToBase(p), mode); - } - async accessPromise(p, mode) { - return this.baseFs.accessPromise(this.mapToBase(p), mode); - } - async statPromise(p, opts) { - return this.baseFs.statPromise(this.mapToBase(p), opts); - } - statSync(p, opts) { - return this.baseFs.statSync(this.mapToBase(p), opts); - } - async fstatPromise(fd, opts) { - return this.baseFs.fstatPromise(fd, opts); - } - fstatSync(fd, opts) { - return this.baseFs.fstatSync(fd, opts); - } - lstatPromise(p, opts) { - return this.baseFs.lstatPromise(this.mapToBase(p), opts); - } - lstatSync(p, opts) { - return this.baseFs.lstatSync(this.mapToBase(p), opts); - } - async fchmodPromise(fd, mask) { - return this.baseFs.fchmodPromise(fd, mask); - } - fchmodSync(fd, mask) { - return this.baseFs.fchmodSync(fd, mask); - } - async chmodPromise(p, mask) { - return this.baseFs.chmodPromise(this.mapToBase(p), mask); - } - chmodSync(p, mask) { - return this.baseFs.chmodSync(this.mapToBase(p), mask); - } - async fchownPromise(fd, uid, gid) { - return this.baseFs.fchownPromise(fd, uid, gid); - } - fchownSync(fd, uid, gid) { - return this.baseFs.fchownSync(fd, uid, gid); - } - async chownPromise(p, uid, gid) { - return this.baseFs.chownPromise(this.mapToBase(p), uid, gid); - } - chownSync(p, uid, gid) { - return this.baseFs.chownSync(this.mapToBase(p), uid, gid); - } - async renamePromise(oldP, newP) { - return this.baseFs.renamePromise(this.mapToBase(oldP), this.mapToBase(newP)); - } - renameSync(oldP, newP) { - return this.baseFs.renameSync(this.mapToBase(oldP), this.mapToBase(newP)); - } - async copyFilePromise(sourceP, destP, flags = 0) { - return this.baseFs.copyFilePromise(this.mapToBase(sourceP), this.mapToBase(destP), flags); - } - copyFileSync(sourceP, destP, flags = 0) { - return this.baseFs.copyFileSync(this.mapToBase(sourceP), this.mapToBase(destP), flags); - } - async appendFilePromise(p, content, opts) { - return this.baseFs.appendFilePromise(this.fsMapToBase(p), content, opts); - } - appendFileSync(p, content, opts) { - return this.baseFs.appendFileSync(this.fsMapToBase(p), content, opts); - } - async writeFilePromise(p, content, opts) { - return this.baseFs.writeFilePromise(this.fsMapToBase(p), content, opts); - } - writeFileSync(p, content, opts) { - return this.baseFs.writeFileSync(this.fsMapToBase(p), content, opts); - } - async unlinkPromise(p) { - return this.baseFs.unlinkPromise(this.mapToBase(p)); - } - unlinkSync(p) { - return this.baseFs.unlinkSync(this.mapToBase(p)); - } - async utimesPromise(p, atime, mtime) { - return this.baseFs.utimesPromise(this.mapToBase(p), atime, mtime); - } - utimesSync(p, atime, mtime) { - return this.baseFs.utimesSync(this.mapToBase(p), atime, mtime); - } - async lutimesPromise(p, atime, mtime) { - return this.baseFs.lutimesPromise(this.mapToBase(p), atime, mtime); - } - lutimesSync(p, atime, mtime) { - return this.baseFs.lutimesSync(this.mapToBase(p), atime, mtime); - } - async mkdirPromise(p, opts) { - return this.baseFs.mkdirPromise(this.mapToBase(p), opts); - } - mkdirSync(p, opts) { - return this.baseFs.mkdirSync(this.mapToBase(p), opts); - } - async rmdirPromise(p, opts) { - return this.baseFs.rmdirPromise(this.mapToBase(p), opts); - } - rmdirSync(p, opts) { - return this.baseFs.rmdirSync(this.mapToBase(p), opts); - } - async rmPromise(p, opts) { - return this.baseFs.rmPromise(this.mapToBase(p), opts); - } - rmSync(p, opts) { - return this.baseFs.rmSync(this.mapToBase(p), opts); - } - async linkPromise(existingP, newP) { - return this.baseFs.linkPromise(this.mapToBase(existingP), this.mapToBase(newP)); - } - linkSync(existingP, newP) { - return this.baseFs.linkSync(this.mapToBase(existingP), this.mapToBase(newP)); - } - async symlinkPromise(target, p, type) { - const mappedP = this.mapToBase(p); - if (this.pathUtils.isAbsolute(target)) - return this.baseFs.symlinkPromise(this.mapToBase(target), mappedP, type); - const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); - const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); - return this.baseFs.symlinkPromise(mappedTarget, mappedP, type); - } - symlinkSync(target, p, type) { - const mappedP = this.mapToBase(p); - if (this.pathUtils.isAbsolute(target)) - return this.baseFs.symlinkSync(this.mapToBase(target), mappedP, type); - const mappedAbsoluteTarget = this.mapToBase(this.pathUtils.join(this.pathUtils.dirname(p), target)); - const mappedTarget = this.baseFs.pathUtils.relative(this.baseFs.pathUtils.dirname(mappedP), mappedAbsoluteTarget); - return this.baseFs.symlinkSync(mappedTarget, mappedP, type); - } - async readFilePromise(p, encoding) { - return this.baseFs.readFilePromise(this.fsMapToBase(p), encoding); - } - readFileSync(p, encoding) { - return this.baseFs.readFileSync(this.fsMapToBase(p), encoding); - } - readdirPromise(p, opts) { - return this.baseFs.readdirPromise(this.mapToBase(p), opts); - } - readdirSync(p, opts) { - return this.baseFs.readdirSync(this.mapToBase(p), opts); - } - async readlinkPromise(p) { - return this.mapFromBase(await this.baseFs.readlinkPromise(this.mapToBase(p))); - } - readlinkSync(p) { - return this.mapFromBase(this.baseFs.readlinkSync(this.mapToBase(p))); - } - async truncatePromise(p, len) { - return this.baseFs.truncatePromise(this.mapToBase(p), len); - } - truncateSync(p, len) { - return this.baseFs.truncateSync(this.mapToBase(p), len); - } - async ftruncatePromise(fd, len) { - return this.baseFs.ftruncatePromise(fd, len); - } - ftruncateSync(fd, len) { - return this.baseFs.ftruncateSync(fd, len); - } - watch(p, a, b) { - return this.baseFs.watch( - this.mapToBase(p), - // @ts-expect-error - reason TBS - a, - b - ); - } - watchFile(p, a, b) { - return this.baseFs.watchFile( - this.mapToBase(p), - // @ts-expect-error - reason TBS - a, - b - ); - } - unwatchFile(p, cb) { - return this.baseFs.unwatchFile(this.mapToBase(p), cb); - } - fsMapToBase(p) { - if (typeof p === `number`) { - return p; - } else { - return this.mapToBase(p); - } - } -} - -function direntToPortable(dirent) { - const portableDirent = dirent; - if (typeof dirent.path === `string`) - portableDirent.path = npath.toPortablePath(dirent.path); - return portableDirent; -} -class NodeFS extends BasePortableFakeFS { - realFs; - constructor(realFs = fs) { - super(); - this.realFs = realFs; - } - getExtractHint() { - return false; - } - getRealPath() { - return PortablePath.root; - } - resolve(p) { - return ppath.resolve(p); - } - async openPromise(p, flags, mode) { - return await new Promise((resolve, reject) => { - this.realFs.open(npath.fromPortablePath(p), flags, mode, this.makeCallback(resolve, reject)); - }); - } - openSync(p, flags, mode) { - return this.realFs.openSync(npath.fromPortablePath(p), flags, mode); - } - async opendirPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (typeof opts !== `undefined`) { - this.realFs.opendir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.opendir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }).then((dir) => { - const dirWithFixedPath = dir; - Object.defineProperty(dirWithFixedPath, `path`, { - value: p, - configurable: true, - writable: true - }); - return dirWithFixedPath; - }); - } - opendirSync(p, opts) { - const dir = typeof opts !== `undefined` ? this.realFs.opendirSync(npath.fromPortablePath(p), opts) : this.realFs.opendirSync(npath.fromPortablePath(p)); - const dirWithFixedPath = dir; - Object.defineProperty(dirWithFixedPath, `path`, { - value: p, - configurable: true, - writable: true - }); - return dirWithFixedPath; - } - async readPromise(fd, buffer, offset = 0, length = 0, position = -1) { - return await new Promise((resolve, reject) => { - this.realFs.read(fd, buffer, offset, length, position, (error, bytesRead) => { - if (error) { - reject(error); - } else { - resolve(bytesRead); - } - }); - }); - } - readSync(fd, buffer, offset, length, position) { - return this.realFs.readSync(fd, buffer, offset, length, position); - } - async writePromise(fd, buffer, offset, length, position) { - return await new Promise((resolve, reject) => { - if (typeof buffer === `string`) { - return this.realFs.write(fd, buffer, offset, this.makeCallback(resolve, reject)); - } else { - return this.realFs.write(fd, buffer, offset, length, position, this.makeCallback(resolve, reject)); - } - }); - } - writeSync(fd, buffer, offset, length, position) { - if (typeof buffer === `string`) { - return this.realFs.writeSync(fd, buffer, offset); - } else { - return this.realFs.writeSync(fd, buffer, offset, length, position); - } - } - async closePromise(fd) { - await new Promise((resolve, reject) => { - this.realFs.close(fd, this.makeCallback(resolve, reject)); - }); - } - closeSync(fd) { - this.realFs.closeSync(fd); - } - createReadStream(p, opts) { - const realPath = p !== null ? npath.fromPortablePath(p) : p; - return this.realFs.createReadStream(realPath, opts); - } - createWriteStream(p, opts) { - const realPath = p !== null ? npath.fromPortablePath(p) : p; - return this.realFs.createWriteStream(realPath, opts); - } - async realpathPromise(p) { - return await new Promise((resolve, reject) => { - this.realFs.realpath(npath.fromPortablePath(p), {}, this.makeCallback(resolve, reject)); - }).then((path) => { - return npath.toPortablePath(path); - }); - } - realpathSync(p) { - return npath.toPortablePath(this.realFs.realpathSync(npath.fromPortablePath(p), {})); - } - async existsPromise(p) { - return await new Promise((resolve) => { - this.realFs.exists(npath.fromPortablePath(p), resolve); - }); - } - accessSync(p, mode) { - return this.realFs.accessSync(npath.fromPortablePath(p), mode); - } - async accessPromise(p, mode) { - return await new Promise((resolve, reject) => { - this.realFs.access(npath.fromPortablePath(p), mode, this.makeCallback(resolve, reject)); - }); - } - existsSync(p) { - return this.realFs.existsSync(npath.fromPortablePath(p)); - } - async statPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.stat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.stat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - statSync(p, opts) { - if (opts) { - return this.realFs.statSync(npath.fromPortablePath(p), opts); - } else { - return this.realFs.statSync(npath.fromPortablePath(p)); - } - } - async fstatPromise(fd, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.fstat(fd, opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.fstat(fd, this.makeCallback(resolve, reject)); - } - }); - } - fstatSync(fd, opts) { - if (opts) { - return this.realFs.fstatSync(fd, opts); - } else { - return this.realFs.fstatSync(fd); - } - } - async lstatPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.lstat(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.lstat(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - lstatSync(p, opts) { - if (opts) { - return this.realFs.lstatSync(npath.fromPortablePath(p), opts); - } else { - return this.realFs.lstatSync(npath.fromPortablePath(p)); - } - } - async fchmodPromise(fd, mask) { - return await new Promise((resolve, reject) => { - this.realFs.fchmod(fd, mask, this.makeCallback(resolve, reject)); - }); - } - fchmodSync(fd, mask) { - return this.realFs.fchmodSync(fd, mask); - } - async chmodPromise(p, mask) { - return await new Promise((resolve, reject) => { - this.realFs.chmod(npath.fromPortablePath(p), mask, this.makeCallback(resolve, reject)); - }); - } - chmodSync(p, mask) { - return this.realFs.chmodSync(npath.fromPortablePath(p), mask); - } - async fchownPromise(fd, uid, gid) { - return await new Promise((resolve, reject) => { - this.realFs.fchown(fd, uid, gid, this.makeCallback(resolve, reject)); - }); - } - fchownSync(fd, uid, gid) { - return this.realFs.fchownSync(fd, uid, gid); - } - async chownPromise(p, uid, gid) { - return await new Promise((resolve, reject) => { - this.realFs.chown(npath.fromPortablePath(p), uid, gid, this.makeCallback(resolve, reject)); - }); - } - chownSync(p, uid, gid) { - return this.realFs.chownSync(npath.fromPortablePath(p), uid, gid); - } - async renamePromise(oldP, newP) { - return await new Promise((resolve, reject) => { - this.realFs.rename(npath.fromPortablePath(oldP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); - }); - } - renameSync(oldP, newP) { - return this.realFs.renameSync(npath.fromPortablePath(oldP), npath.fromPortablePath(newP)); - } - async copyFilePromise(sourceP, destP, flags = 0) { - return await new Promise((resolve, reject) => { - this.realFs.copyFile(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags, this.makeCallback(resolve, reject)); - }); - } - copyFileSync(sourceP, destP, flags = 0) { - return this.realFs.copyFileSync(npath.fromPortablePath(sourceP), npath.fromPortablePath(destP), flags); - } - async appendFilePromise(p, content, opts) { - return await new Promise((resolve, reject) => { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.appendFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.appendFile(fsNativePath, content, this.makeCallback(resolve, reject)); - } - }); - } - appendFileSync(p, content, opts) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.appendFileSync(fsNativePath, content, opts); - } else { - this.realFs.appendFileSync(fsNativePath, content); - } - } - async writeFilePromise(p, content, opts) { - return await new Promise((resolve, reject) => { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.writeFile(fsNativePath, content, opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.writeFile(fsNativePath, content, this.makeCallback(resolve, reject)); - } - }); - } - writeFileSync(p, content, opts) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - if (opts) { - this.realFs.writeFileSync(fsNativePath, content, opts); - } else { - this.realFs.writeFileSync(fsNativePath, content); - } - } - async unlinkPromise(p) { - return await new Promise((resolve, reject) => { - this.realFs.unlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - }); - } - unlinkSync(p) { - return this.realFs.unlinkSync(npath.fromPortablePath(p)); - } - async utimesPromise(p, atime, mtime) { - return await new Promise((resolve, reject) => { - this.realFs.utimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); - }); - } - utimesSync(p, atime, mtime) { - this.realFs.utimesSync(npath.fromPortablePath(p), atime, mtime); - } - async lutimesPromise(p, atime, mtime) { - return await new Promise((resolve, reject) => { - this.realFs.lutimes(npath.fromPortablePath(p), atime, mtime, this.makeCallback(resolve, reject)); - }); - } - lutimesSync(p, atime, mtime) { - this.realFs.lutimesSync(npath.fromPortablePath(p), atime, mtime); - } - async mkdirPromise(p, opts) { - return await new Promise((resolve, reject) => { - this.realFs.mkdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - }); - } - mkdirSync(p, opts) { - return this.realFs.mkdirSync(npath.fromPortablePath(p), opts); - } - async rmdirPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.rmdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.rmdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - rmdirSync(p, opts) { - return this.realFs.rmdirSync(npath.fromPortablePath(p), opts); - } - async rmPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - this.realFs.rm(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } else { - this.realFs.rm(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - rmSync(p, opts) { - return this.realFs.rmSync(npath.fromPortablePath(p), opts); - } - async linkPromise(existingP, newP) { - return await new Promise((resolve, reject) => { - this.realFs.link(npath.fromPortablePath(existingP), npath.fromPortablePath(newP), this.makeCallback(resolve, reject)); - }); - } - linkSync(existingP, newP) { - return this.realFs.linkSync(npath.fromPortablePath(existingP), npath.fromPortablePath(newP)); - } - async symlinkPromise(target, p, type) { - return await new Promise((resolve, reject) => { - this.realFs.symlink(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type, this.makeCallback(resolve, reject)); - }); - } - symlinkSync(target, p, type) { - return this.realFs.symlinkSync(npath.fromPortablePath(target.replace(/\/+$/, ``)), npath.fromPortablePath(p), type); - } - async readFilePromise(p, encoding) { - return await new Promise((resolve, reject) => { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - this.realFs.readFile(fsNativePath, encoding, this.makeCallback(resolve, reject)); - }); - } - readFileSync(p, encoding) { - const fsNativePath = typeof p === `string` ? npath.fromPortablePath(p) : p; - return this.realFs.readFileSync(fsNativePath, encoding); - } - async readdirPromise(p, opts) { - return await new Promise((resolve, reject) => { - if (opts) { - if (opts.recursive && process.platform === `win32`) { - if (opts.withFileTypes) { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(direntToPortable)), reject)); - } else { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback((results) => resolve(results.map(npath.toPortablePath)), reject)); - } - } else { - this.realFs.readdir(npath.fromPortablePath(p), opts, this.makeCallback(resolve, reject)); - } - } else { - this.realFs.readdir(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - } - }); - } - readdirSync(p, opts) { - if (opts) { - if (opts.recursive && process.platform === `win32`) { - if (opts.withFileTypes) { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(direntToPortable); - } else { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts).map(npath.toPortablePath); - } - } else { - return this.realFs.readdirSync(npath.fromPortablePath(p), opts); - } - } else { - return this.realFs.readdirSync(npath.fromPortablePath(p)); - } - } - async readlinkPromise(p) { - return await new Promise((resolve, reject) => { - this.realFs.readlink(npath.fromPortablePath(p), this.makeCallback(resolve, reject)); - }).then((path) => { - return npath.toPortablePath(path); - }); - } - readlinkSync(p) { - return npath.toPortablePath(this.realFs.readlinkSync(npath.fromPortablePath(p))); - } - async truncatePromise(p, len) { - return await new Promise((resolve, reject) => { - this.realFs.truncate(npath.fromPortablePath(p), len, this.makeCallback(resolve, reject)); - }); - } - truncateSync(p, len) { - return this.realFs.truncateSync(npath.fromPortablePath(p), len); - } - async ftruncatePromise(fd, len) { - return await new Promise((resolve, reject) => { - this.realFs.ftruncate(fd, len, this.makeCallback(resolve, reject)); - }); - } - ftruncateSync(fd, len) { - return this.realFs.ftruncateSync(fd, len); - } - watch(p, a, b) { - return this.realFs.watch( - npath.fromPortablePath(p), - // @ts-expect-error - reason TBS - a, - b - ); - } - watchFile(p, a, b) { - return this.realFs.watchFile( - npath.fromPortablePath(p), - // @ts-expect-error - reason TBS - a, - b - ); - } - unwatchFile(p, cb) { - return this.realFs.unwatchFile(npath.fromPortablePath(p), cb); - } - makeCallback(resolve, reject) { - return (err, result) => { - if (err) { - reject(err); - } else { - resolve(result); - } - }; - } -} - -const NUMBER_REGEXP = /^[0-9]+$/; -const VIRTUAL_REGEXP = /^(\/(?:[^/]+\/)*?(?:\$\$virtual|__virtual__))((?:\/((?:[^/]+-)?[a-f0-9]+)(?:\/([^/]+))?)?((?:\/.*)?))$/; -const VALID_COMPONENT = /^([^/]+-)?[a-f0-9]+$/; -class VirtualFS extends ProxiedFS { - baseFs; - static makeVirtualPath(base, component, to) { - if (ppath.basename(base) !== `__virtual__`) - throw new Error(`Assertion failed: Virtual folders must be named "__virtual__"`); - if (!ppath.basename(component).match(VALID_COMPONENT)) - throw new Error(`Assertion failed: Virtual components must be ended by an hexadecimal hash`); - const target = ppath.relative(ppath.dirname(base), to); - const segments = target.split(`/`); - let depth = 0; - while (depth < segments.length && segments[depth] === `..`) - depth += 1; - const finalSegments = segments.slice(depth); - const fullVirtualPath = ppath.join(base, component, String(depth), ...finalSegments); - return fullVirtualPath; - } - static resolveVirtual(p) { - const match = p.match(VIRTUAL_REGEXP); - if (!match || !match[3] && match[5]) - return p; - const target = ppath.dirname(match[1]); - if (!match[3] || !match[4]) - return target; - const isnum = NUMBER_REGEXP.test(match[4]); - if (!isnum) - return p; - const depth = Number(match[4]); - const backstep = `../`.repeat(depth); - const subpath = match[5] || `.`; - return VirtualFS.resolveVirtual(ppath.join(target, backstep, subpath)); - } - constructor({ baseFs = new NodeFS() } = {}) { - super(ppath); - this.baseFs = baseFs; - } - getExtractHint(hints) { - return this.baseFs.getExtractHint(hints); - } - getRealPath() { - return this.baseFs.getRealPath(); - } - realpathSync(p) { - const match = p.match(VIRTUAL_REGEXP); - if (!match) - return this.baseFs.realpathSync(p); - if (!match[5]) - return p; - const realpath = this.baseFs.realpathSync(this.mapToBase(p)); - return VirtualFS.makeVirtualPath(match[1], match[3], realpath); - } - async realpathPromise(p) { - const match = p.match(VIRTUAL_REGEXP); - if (!match) - return await this.baseFs.realpathPromise(p); - if (!match[5]) - return p; - const realpath = await this.baseFs.realpathPromise(this.mapToBase(p)); - return VirtualFS.makeVirtualPath(match[1], match[3], realpath); - } - mapToBase(p) { - if (p === ``) - return p; - if (this.pathUtils.isAbsolute(p)) - return VirtualFS.resolveVirtual(p); - const resolvedRoot = VirtualFS.resolveVirtual(this.baseFs.resolve(PortablePath.dot)); - const resolvedP = VirtualFS.resolveVirtual(this.baseFs.resolve(p)); - return ppath.relative(resolvedRoot, resolvedP) || PortablePath.dot; - } - mapFromBase(p) { - return p; - } -} - -const URL = Number(process.versions.node.split('.', 1)[0]) < 20 ? URL$1 : globalThis.URL; - -const [major, minor] = process.versions.node.split(`.`).map((value) => parseInt(value, 10)); -const WATCH_MODE_MESSAGE_USES_ARRAYS = major > 19 || major === 19 && minor >= 2 || major === 18 && minor >= 13; -const HAS_LAZY_LOADED_TRANSLATORS = major === 20 && minor < 6 || major === 19 && minor >= 3; -const SUPPORTS_IMPORT_ATTRIBUTES = major >= 21 || major === 20 && minor >= 10 || major === 18 && minor >= 20; -const SUPPORTS_IMPORT_ATTRIBUTES_ONLY = major >= 22; - -function readPackageScope(checkPath) { - const rootSeparatorIndex = checkPath.indexOf(npath.sep); - let separatorIndex; - do { - separatorIndex = checkPath.lastIndexOf(npath.sep); - checkPath = checkPath.slice(0, separatorIndex); - if (checkPath.endsWith(`${npath.sep}node_modules`)) - return false; - const pjson = readPackage(checkPath + npath.sep); - if (pjson) { - return { - data: pjson, - path: checkPath - }; - } - } while (separatorIndex > rootSeparatorIndex); - return false; -} -function readPackage(requestPath) { - const jsonPath = npath.resolve(requestPath, `package.json`); - if (!fs.existsSync(jsonPath)) - return null; - return JSON.parse(fs.readFileSync(jsonPath, `utf8`)); -} - -async function tryReadFile$1(path2) { - try { - return await fs.promises.readFile(path2, `utf8`); - } catch (error) { - if (error.code === `ENOENT`) - return null; - throw error; - } -} -function tryParseURL(str, base) { - try { - return new URL(str, base); - } catch { - return null; - } -} -let entrypointPath = null; -function setEntrypointPath(file) { - entrypointPath = file; -} -function getFileFormat(filepath) { - const ext = path.extname(filepath); - switch (ext) { - case `.mjs`: { - return `module`; - } - case `.cjs`: { - return `commonjs`; - } - case `.wasm`: { - throw new Error( - `Unknown file extension ".wasm" for ${filepath}` - ); - } - case `.json`: { - return `json`; - } - case `.js`: { - const pkg = readPackageScope(filepath); - if (!pkg) - return `commonjs`; - return pkg.data.type ?? `commonjs`; - } - default: { - if (entrypointPath !== filepath) - return null; - const pkg = readPackageScope(filepath); - if (!pkg) - return `commonjs`; - if (pkg.data.type === `module`) - return null; - return pkg.data.type ?? `commonjs`; - } - } -} - -async function load$1(urlString, context, nextLoad) { - const url = tryParseURL(urlString); - if (url?.protocol !== `file:`) - return nextLoad(urlString, context, nextLoad); - const filePath = fileURLToPath(url); - const format = getFileFormat(filePath); - if (!format) - return nextLoad(urlString, context, nextLoad); - if (format === `json`) { - if (SUPPORTS_IMPORT_ATTRIBUTES_ONLY) { - if (context.importAttributes?.type !== `json`) { - const err = new TypeError(`[ERR_IMPORT_ATTRIBUTE_MISSING]: Module "${urlString}" needs an import attribute of "type: json"`); - err.code = `ERR_IMPORT_ATTRIBUTE_MISSING`; - throw err; - } - } else { - const type = `importAttributes` in context ? context.importAttributes?.type : context.importAssertions?.type; - if (type !== `json`) { - const err = new TypeError(`[ERR_IMPORT_ASSERTION_TYPE_MISSING]: Module "${urlString}" needs an import ${SUPPORTS_IMPORT_ATTRIBUTES ? `attribute` : `assertion`} of type "json"`); - err.code = `ERR_IMPORT_ASSERTION_TYPE_MISSING`; - throw err; - } - } - } - if (process.env.WATCH_REPORT_DEPENDENCIES && process.send) { - const pathToSend = pathToFileURL( - npath.fromPortablePath( - VirtualFS.resolveVirtual(npath.toPortablePath(filePath)) - ) - ).href; - process.send({ - "watch:import": WATCH_MODE_MESSAGE_USES_ARRAYS ? [pathToSend] : pathToSend - }); - } - return { - format, - source: format === `commonjs` ? void 0 : await fs.promises.readFile(filePath, `utf8`), - shortCircuit: true - }; -} - -const ArrayIsArray = Array.isArray; -const JSONStringify = JSON.stringify; -const ObjectGetOwnPropertyNames = Object.getOwnPropertyNames; -const ObjectPrototypeHasOwnProperty = (obj, prop) => Object.prototype.hasOwnProperty.call(obj, prop); -const RegExpPrototypeExec = (obj, string) => RegExp.prototype.exec.call(obj, string); -const RegExpPrototypeSymbolReplace = (obj, ...rest) => RegExp.prototype[Symbol.replace].apply(obj, rest); -const StringPrototypeEndsWith = (str, ...rest) => String.prototype.endsWith.apply(str, rest); -const StringPrototypeIncludes = (str, ...rest) => String.prototype.includes.apply(str, rest); -const StringPrototypeLastIndexOf = (str, ...rest) => String.prototype.lastIndexOf.apply(str, rest); -const StringPrototypeIndexOf = (str, ...rest) => String.prototype.indexOf.apply(str, rest); -const StringPrototypeReplace = (str, ...rest) => String.prototype.replace.apply(str, rest); -const StringPrototypeSlice = (str, ...rest) => String.prototype.slice.apply(str, rest); -const StringPrototypeStartsWith = (str, ...rest) => String.prototype.startsWith.apply(str, rest); -const SafeMap = Map; -const JSONParse = JSON.parse; - -function createErrorType(code, messageCreator, errorType) { - return class extends errorType { - constructor(...args) { - super(messageCreator(...args)); - this.code = code; - this.name = `${errorType.name} [${code}]`; - } - }; -} -const ERR_PACKAGE_IMPORT_NOT_DEFINED = createErrorType( - `ERR_PACKAGE_IMPORT_NOT_DEFINED`, - (specifier, packagePath, base) => { - return `Package import specifier "${specifier}" is not defined${packagePath ? ` in package ${packagePath}package.json` : ``} imported from ${base}`; - }, - TypeError -); -const ERR_INVALID_MODULE_SPECIFIER = createErrorType( - `ERR_INVALID_MODULE_SPECIFIER`, - (request, reason, base = void 0) => { - return `Invalid module "${request}" ${reason}${base ? ` imported from ${base}` : ``}`; - }, - TypeError -); -const ERR_INVALID_PACKAGE_TARGET = createErrorType( - `ERR_INVALID_PACKAGE_TARGET`, - (pkgPath, key, target, isImport = false, base = void 0) => { - const relError = typeof target === `string` && !isImport && target.length && !StringPrototypeStartsWith(target, `./`); - if (key === `.`) { - assert(isImport === false); - return `Invalid "exports" main target ${JSONStringify(target)} defined in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; - } - return `Invalid "${isImport ? `imports` : `exports`}" target ${JSONStringify( - target - )} defined for '${key}' in the package config ${pkgPath}package.json${base ? ` imported from ${base}` : ``}${relError ? `; targets must start with "./"` : ``}`; - }, - Error -); -const ERR_INVALID_PACKAGE_CONFIG = createErrorType( - `ERR_INVALID_PACKAGE_CONFIG`, - (path, base, message) => { - return `Invalid package config ${path}${base ? ` while importing ${base}` : ``}${message ? `. ${message}` : ``}`; - }, - Error -); - -function filterOwnProperties(source, keys) { - const filtered = /* @__PURE__ */ Object.create(null); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (ObjectPrototypeHasOwnProperty(source, key)) { - filtered[key] = source[key]; - } - } - return filtered; -} - -const packageJSONCache = new SafeMap(); -function getPackageConfig(path, specifier, base, readFileSyncFn) { - const existing = packageJSONCache.get(path); - if (existing !== void 0) { - return existing; - } - const source = readFileSyncFn(path); - if (source === void 0) { - const packageConfig2 = { - pjsonPath: path, - exists: false, - main: void 0, - name: void 0, - type: "none", - exports: void 0, - imports: void 0 - }; - packageJSONCache.set(path, packageConfig2); - return packageConfig2; - } - let packageJSON; - try { - packageJSON = JSONParse(source); - } catch (error) { - throw new ERR_INVALID_PACKAGE_CONFIG( - path, - (base ? `"${specifier}" from ` : "") + fileURLToPath(base || specifier), - error.message - ); - } - let { imports, main, name, type } = filterOwnProperties(packageJSON, [ - "imports", - "main", - "name", - "type" - ]); - const exports = ObjectPrototypeHasOwnProperty(packageJSON, "exports") ? packageJSON.exports : void 0; - if (typeof imports !== "object" || imports === null) { - imports = void 0; - } - if (typeof main !== "string") { - main = void 0; - } - if (typeof name !== "string") { - name = void 0; - } - if (type !== "module" && type !== "commonjs") { - type = "none"; - } - const packageConfig = { - pjsonPath: path, - exists: true, - main, - name, - type, - exports, - imports - }; - packageJSONCache.set(path, packageConfig); - return packageConfig; -} -function getPackageScopeConfig(resolved, readFileSyncFn) { - let packageJSONUrl = new URL("./package.json", resolved); - while (true) { - const packageJSONPath2 = packageJSONUrl.pathname; - if (StringPrototypeEndsWith(packageJSONPath2, "node_modules/package.json")) { - break; - } - const packageConfig2 = getPackageConfig( - fileURLToPath(packageJSONUrl), - resolved, - void 0, - readFileSyncFn - ); - if (packageConfig2.exists) { - return packageConfig2; - } - const lastPackageJSONUrl = packageJSONUrl; - packageJSONUrl = new URL("../package.json", packageJSONUrl); - if (packageJSONUrl.pathname === lastPackageJSONUrl.pathname) { - break; - } - } - const packageJSONPath = fileURLToPath(packageJSONUrl); - const packageConfig = { - pjsonPath: packageJSONPath, - exists: false, - main: void 0, - name: void 0, - type: "none", - exports: void 0, - imports: void 0 - }; - packageJSONCache.set(packageJSONPath, packageConfig); - return packageConfig; -} - -function throwImportNotDefined(specifier, packageJSONUrl, base) { - throw new ERR_PACKAGE_IMPORT_NOT_DEFINED( - specifier, - packageJSONUrl && fileURLToPath(new URL(".", packageJSONUrl)), - fileURLToPath(base) - ); -} -function throwInvalidSubpath(subpath, packageJSONUrl, internal, base) { - const reason = `request is not a valid subpath for the "${internal ? "imports" : "exports"}" resolution of ${fileURLToPath(packageJSONUrl)}`; - throw new ERR_INVALID_MODULE_SPECIFIER( - subpath, - reason, - base && fileURLToPath(base) - ); -} -function throwInvalidPackageTarget(subpath, target, packageJSONUrl, internal, base) { - if (typeof target === "object" && target !== null) { - target = JSONStringify(target, null, ""); - } else { - target = `${target}`; - } - throw new ERR_INVALID_PACKAGE_TARGET( - fileURLToPath(new URL(".", packageJSONUrl)), - subpath, - target, - internal, - base && fileURLToPath(base) - ); -} -const invalidSegmentRegEx = /(^|\\|\/)((\.|%2e)(\.|%2e)?|(n|%6e|%4e)(o|%6f|%4f)(d|%64|%44)(e|%65|%45)(_|%5f)(m|%6d|%4d)(o|%6f|%4f)(d|%64|%44)(u|%75|%55)(l|%6c|%4c)(e|%65|%45)(s|%73|%53))(\\|\/|$)/i; -const patternRegEx = /\*/g; -function resolvePackageTargetString(target, subpath, match, packageJSONUrl, base, pattern, internal, conditions) { - if (subpath !== "" && !pattern && target[target.length - 1] !== "/") - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - if (!StringPrototypeStartsWith(target, "./")) { - if (internal && !StringPrototypeStartsWith(target, "../") && !StringPrototypeStartsWith(target, "/")) { - let isURL = false; - try { - new URL(target); - isURL = true; - } catch { - } - if (!isURL) { - const exportTarget = pattern ? RegExpPrototypeSymbolReplace(patternRegEx, target, () => subpath) : target + subpath; - return exportTarget; - } - } - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - } - if (RegExpPrototypeExec( - invalidSegmentRegEx, - StringPrototypeSlice(target, 2) - ) !== null) - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - const resolved = new URL(target, packageJSONUrl); - const resolvedPath = resolved.pathname; - const packagePath = new URL(".", packageJSONUrl).pathname; - if (!StringPrototypeStartsWith(resolvedPath, packagePath)) - throwInvalidPackageTarget(match, target, packageJSONUrl, internal, base); - if (subpath === "") return resolved; - if (RegExpPrototypeExec(invalidSegmentRegEx, subpath) !== null) { - const request = pattern ? StringPrototypeReplace(match, "*", () => subpath) : match + subpath; - throwInvalidSubpath(request, packageJSONUrl, internal, base); - } - if (pattern) { - return new URL( - RegExpPrototypeSymbolReplace(patternRegEx, resolved.href, () => subpath) - ); - } - return new URL(subpath, resolved); -} -function isArrayIndex(key) { - const keyNum = +key; - if (`${keyNum}` !== key) return false; - return keyNum >= 0 && keyNum < 4294967295; -} -function resolvePackageTarget(packageJSONUrl, target, subpath, packageSubpath, base, pattern, internal, conditions) { - if (typeof target === "string") { - return resolvePackageTargetString( - target, - subpath, - packageSubpath, - packageJSONUrl, - base, - pattern, - internal); - } else if (ArrayIsArray(target)) { - if (target.length === 0) { - return null; - } - let lastException; - for (let i = 0; i < target.length; i++) { - const targetItem = target[i]; - let resolveResult; - try { - resolveResult = resolvePackageTarget( - packageJSONUrl, - targetItem, - subpath, - packageSubpath, - base, - pattern, - internal, - conditions - ); - } catch (e) { - lastException = e; - if (e.code === "ERR_INVALID_PACKAGE_TARGET") { - continue; - } - throw e; - } - if (resolveResult === void 0) { - continue; - } - if (resolveResult === null) { - lastException = null; - continue; - } - return resolveResult; - } - if (lastException === void 0 || lastException === null) - return lastException; - throw lastException; - } else if (typeof target === "object" && target !== null) { - const keys = ObjectGetOwnPropertyNames(target); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (isArrayIndex(key)) { - throw new ERR_INVALID_PACKAGE_CONFIG( - fileURLToPath(packageJSONUrl), - base, - '"exports" cannot contain numeric property keys.' - ); - } - } - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - if (key === "default" || conditions.has(key)) { - const conditionalTarget = target[key]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - conditionalTarget, - subpath, - packageSubpath, - base, - pattern, - internal, - conditions - ); - if (resolveResult === void 0) continue; - return resolveResult; - } - } - return void 0; - } else if (target === null) { - return null; - } - throwInvalidPackageTarget( - packageSubpath, - target, - packageJSONUrl, - internal, - base - ); -} -function patternKeyCompare(a, b) { - const aPatternIndex = StringPrototypeIndexOf(a, "*"); - const bPatternIndex = StringPrototypeIndexOf(b, "*"); - const baseLenA = aPatternIndex === -1 ? a.length : aPatternIndex + 1; - const baseLenB = bPatternIndex === -1 ? b.length : bPatternIndex + 1; - if (baseLenA > baseLenB) return -1; - if (baseLenB > baseLenA) return 1; - if (aPatternIndex === -1) return 1; - if (bPatternIndex === -1) return -1; - if (a.length > b.length) return -1; - if (b.length > a.length) return 1; - return 0; -} -function packageImportsResolve({ name, base, conditions, readFileSyncFn }) { - if (name === "#" || StringPrototypeStartsWith(name, "#/") || StringPrototypeEndsWith(name, "/")) { - const reason = "is not a valid internal imports specifier name"; - throw new ERR_INVALID_MODULE_SPECIFIER(name, reason, fileURLToPath(base)); - } - let packageJSONUrl; - const packageConfig = getPackageScopeConfig(base, readFileSyncFn); - if (packageConfig.exists) { - packageJSONUrl = pathToFileURL(packageConfig.pjsonPath); - const imports = packageConfig.imports; - if (imports) { - if (ObjectPrototypeHasOwnProperty(imports, name) && !StringPrototypeIncludes(name, "*")) { - const resolveResult = resolvePackageTarget( - packageJSONUrl, - imports[name], - "", - name, - base, - false, - true, - conditions - ); - if (resolveResult != null) { - return resolveResult; - } - } else { - let bestMatch = ""; - let bestMatchSubpath; - const keys = ObjectGetOwnPropertyNames(imports); - for (let i = 0; i < keys.length; i++) { - const key = keys[i]; - const patternIndex = StringPrototypeIndexOf(key, "*"); - if (patternIndex !== -1 && StringPrototypeStartsWith( - name, - StringPrototypeSlice(key, 0, patternIndex) - )) { - const patternTrailer = StringPrototypeSlice(key, patternIndex + 1); - if (name.length >= key.length && StringPrototypeEndsWith(name, patternTrailer) && patternKeyCompare(bestMatch, key) === 1 && StringPrototypeLastIndexOf(key, "*") === patternIndex) { - bestMatch = key; - bestMatchSubpath = StringPrototypeSlice( - name, - patternIndex, - name.length - patternTrailer.length - ); - } - } - } - if (bestMatch) { - const target = imports[bestMatch]; - const resolveResult = resolvePackageTarget( - packageJSONUrl, - target, - bestMatchSubpath, - bestMatch, - base, - true, - true, - conditions - ); - if (resolveResult != null) { - return resolveResult; - } - } - } - } - } - throwImportNotDefined(name, packageJSONUrl, base); -} - -let findPnpApi = esmModule.findPnpApi; -if (!findPnpApi) { - const require = createRequire(import.meta.url); - const pnpApi = require(`./.pnp.cjs`); - pnpApi.setup(); - findPnpApi = esmModule.findPnpApi; -} -const pathRegExp = /^(?![a-zA-Z]:[\\/]|\\\\|\.{0,2}(?:\/|$))((?:node:)?(?:@[^/]+\/)?[^/]+)\/*(.*|)$/; -const isRelativeRegexp = /^\.{0,2}\//; -function tryReadFile(filePath) { - try { - return fs.readFileSync(filePath, `utf8`); - } catch (err) { - if (err.code === `ENOENT`) - return void 0; - throw err; - } -} -async function resolvePrivateRequest(specifier, issuer, context, nextResolve) { - const resolved = packageImportsResolve({ - name: specifier, - base: pathToFileURL(issuer), - conditions: new Set(context.conditions), - readFileSyncFn: tryReadFile - }); - if (resolved instanceof URL) { - return { url: resolved.href, shortCircuit: true }; - } else { - if (resolved.startsWith(`#`)) - throw new Error(`Mapping from one private import to another isn't allowed`); - return resolve$1(resolved, context, nextResolve); - } -} -async function resolve$1(originalSpecifier, context, nextResolve) { - if (!findPnpApi || isBuiltin(originalSpecifier)) - return nextResolve(originalSpecifier, context, nextResolve); - let specifier = originalSpecifier; - const url = tryParseURL(specifier, isRelativeRegexp.test(specifier) ? context.parentURL : void 0); - if (url) { - if (url.protocol !== `file:`) - return nextResolve(originalSpecifier, context, nextResolve); - specifier = fileURLToPath(url); - } - const { parentURL, conditions = [] } = context; - const issuer = parentURL && tryParseURL(parentURL)?.protocol === `file:` ? fileURLToPath(parentURL) : process.cwd(); - const pnpapi = findPnpApi(issuer) ?? (url ? findPnpApi(specifier) : null); - if (!pnpapi) - return nextResolve(originalSpecifier, context, nextResolve); - if (specifier.startsWith(`#`)) - return resolvePrivateRequest(specifier, issuer, context, nextResolve); - const dependencyNameMatch = specifier.match(pathRegExp); - let allowLegacyResolve = false; - if (dependencyNameMatch) { - const [, dependencyName, subPath] = dependencyNameMatch; - if (subPath === `` && dependencyName !== `pnpapi`) { - const resolved = pnpapi.resolveToUnqualified(`${dependencyName}/package.json`, issuer); - if (resolved) { - const content = await tryReadFile$1(resolved); - if (content) { - const pkg = JSON.parse(content); - allowLegacyResolve = pkg.exports == null; - } - } - } - } - let result; - try { - result = pnpapi.resolveRequest(specifier, issuer, { - conditions: new Set(conditions), - // TODO: Handle --experimental-specifier-resolution=node - extensions: allowLegacyResolve ? void 0 : [] - }); - } catch (err) { - if (err instanceof Error && `code` in err && err.code === `MODULE_NOT_FOUND`) - err.code = `ERR_MODULE_NOT_FOUND`; - throw err; - } - if (!result) - throw new Error(`Resolving '${specifier}' from '${issuer}' failed`); - const resultURL = pathToFileURL(result); - if (url) { - resultURL.search = url.search; - resultURL.hash = url.hash; - } - if (!parentURL) - setEntrypointPath(fileURLToPath(resultURL)); - return { - url: resultURL.href, - shortCircuit: true - }; -} - -if (!HAS_LAZY_LOADED_TRANSLATORS) { - const binding = process.binding(`fs`); - const originalReadFile = binding.readFileUtf8 || binding.readFileSync; - if (originalReadFile) { - binding[originalReadFile.name] = function(...args) { - try { - return fs.readFileSync(args[0], { - encoding: `utf8`, - // @ts-expect-error - The docs says it needs to be a string but - // links to https://nodejs.org/dist/latest-v20.x/docs/api/fs.html#file-system-flags - // which says it can be a number which matches the implementation. - flag: args[1] - }); - } catch { - } - return originalReadFile.apply(this, args); - }; - } else { - const binding2 = process.binding(`fs`); - const originalfstat = binding2.fstat; - const ZIP_MASK = 4278190080; - const ZIP_MAGIC = 704643072; - binding2.fstat = function(...args) { - const [fd, useBigint, req] = args; - if ((fd & ZIP_MASK) === ZIP_MAGIC && useBigint === false && req === void 0) { - try { - const stats = fs.fstatSync(fd); - return new Float64Array([ - stats.dev, - stats.mode, - stats.nlink, - stats.uid, - stats.gid, - stats.rdev, - stats.blksize, - stats.ino, - stats.size, - stats.blocks - // atime sec - // atime ns - // mtime sec - // mtime ns - // ctime sec - // ctime ns - // birthtime sec - // birthtime ns - ]); - } catch { - } - } - return originalfstat.apply(this, args); - }; - } -} - -const resolve = resolve$1; -const load = load$1; - -export { load, resolve }; From cc3d2696d68ad2ae916ec5a6eb8878a29d7bed2e Mon Sep 17 00:00:00 2001 From: treeoflife2 Date: Thu, 2 Oct 2025 14:29:02 +0530 Subject: [PATCH 6/6] refactor adapter --- .yarn/install-state.gz | Bin 285357 -> 0 bytes fees/moneyfi/index.ts | 43 +++++++++++++++++++++-------------------- 2 files changed, 22 insertions(+), 21 deletions(-) delete mode 100644 .yarn/install-state.gz diff --git a/.yarn/install-state.gz b/.yarn/install-state.gz deleted file mode 100644 index 8694e741181cef908478be87fb882eba03879823..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 285357 zcmV)2K+L}%iwFP!000006TH34&TUDOCPX(4w1iNLH$Z31z}#-`Ry70EFksM=egHE! z^CF=#B9#$^XqAxq%|YMJCpaPP%9}DzT=J}cukCL3UH`v-_v?@U{vZGJ%l|ch{q2AL zr{8}6_0RuH{+@sT|czy1E}kN@Vk``17H z<@ewI{_p;aAOG$zf1Njf{g1!=BVe&LgM8UnJw4loZLsEXdAK6ncBJhzPD*p=o9wI&Np+M zxQkqPSzFq3y&Ci7$6K+bbLFN>ygk*Ki+L!_db{P8yB^DVuVvAiCXUPv+<_dx`l1dgtos*nkTY*R`9ov7QO84JN@b8u@hch z<~Mrx+Lc2)_cPZ#9D!(Cn8f`JSn<63acY;$~i=`{l=rzLnHs@1F7I>vnr2SKEH6&upyEkZ|}NGvwXIoIh)ceKB~zy0aWvpBKX z7N19F9*ys2kKl7}tUa{sm`gn|N(y(Pitw}E^JKAYlGXfb)gEe>W!I0&-E$>1H077_xz5uVU>rL6QO}8c>2he* zI>URFtIV3{$M^`l^*)hrKi;dM7q6bZ_%heN%4Nr%rFYB=dDo)1|QYjvfB?P{y)F4=3g(4DzHa)~a>f zw&;zWcfSS}JS)z|4Vc^aq2J$Kooyi9N3mAb{8 z=d2qPzIjQ$Rp}Ym?$OZ4we+uC;P`xXw*JWSqD=_cd%w|1wYMy83qZ*cGaM-z&$EeErU`OB2_*1XCQ}r+#@8 z@u_E099zXU?bE9&`T16pb(P6h)2*^-H>ED!v^=G5ng&l4XV#nf_5}LQAtS3p8$WZt za~{q=N!QzndCg__Jx@}UF6$G_YNIUCudOJm%=@&dGi`tBZ=}y#IJ%BR6GiLZyo276 z9*f>vdvmjW`SEVc+AeIaWw&oPxoln&Ikv^?$lH8hZQ19n=d2R6-_@7lvZ>#~k$Xno zxpEd$E4z$x)H-Y2O1tY~g{tdwv$ksJF^SvXh9*wXOw-axu61wRSMN02+&yYbw4TkA zw#9MZ3KfdAakHDyRXJ|8YHhmb#+7_~^3faHT6J*gEwh)iN@VCeW3#lp-dALe@xng~5xifdU%_;Vy}-RL7v&tPglmid#0Y#$!Di$yPvyrG?rD#urK^9 zubrR11%LAKii&+^J(4Bm=aG@>9CJN5)oHDiNRudgwjPt&BE7}$jusI`yrOy`@073z zXSr-Vo69abXZglfIVFc{i_{%$?Z+D~e^pp+eePbl?8;i=Q+LZy0y!JIn@`bZ z$)%^)s^ei6QMd}Xug47#SfA&FKDy1aFbeV9;AvJn%l1>=rzm^Q;pI%<-XB!bI~Td@ z-JHo3y8J!c+AE26#yc!d8FWOWB<*Zb0#cJ|+k(h5c?H|8r$gSMb^Lmnn%ii}v{>&8 zcr9Z!ovp%>{Pq2z6sNXy@X^^fwmgk+W+rL7xV!b#sD-Fuj@~=UZP9(PnHzg6>CmS3 z=ewNLBOkGBJ9^&ROYY>^(!F!v^z7Ix?<;AZZ$lGlopIm0Q61*Yxui&ACRl10ws%=F zOuAXKkI0@E!E1l6z)rV#v`^*L-MQ0t2J%Olh^_)HrR=>TBTE`A5-W~}Z$ z!5y#P%5(RAey!ij)$jJ+jz_k4bA5YbNIH){$6#7K@kL|2d!IJhT$)bPbyudzyFIqk*9&8<-4vlet*)yro0K=2q-AH*A{E`u4`a$E+S}J`;KM zI%GY*NBSJ;13qnzDZV1I8jB-M(t*j*CUdM zGt}#C?z|QFz%rgUzQDkBq(oJ+ulMw$@bzunY%_k)k?(Pe7JJ@$cO73dyRNcL)f$sL ze&cYi?64$XX2VNC;jXHydjh|7I)r-fd(U~TYZmGD8NGqex_Q6TUfNr*<{TMMen6yK&ZEoz*#xGa;9@^s#CGn7C5^MDo0^G0 z_vtE?v+%{m_!*V-?Z)c{edBS%(u-KiuRnI9cA=}C41Sr36znq%TX5_Qpa^DRxzm#-hRm94FLA5G6|2Pix7wvo$PceOK>PnRFlSU~``y=ezm1%6%;cGem!Qu``9Q+Iy* zTIU-_?>XZ>nZ9)lfoZ#4agkB_y7L8`{ zF*==U~k(A;S+?gk#%&=Ml%f{JG~pfPGX<-O7CdRga$QRj;O#UQ@O4%xcNY z1t4zndepZ+y}b_J#KatNy*vBt%Z~ttvFYK31$Bc!=G0;eKG-kUyY_7`f=+KwUK(uFwOH2Rs}~#ag9Eob&nYM5 z_MPpuJZ}IS62CYs;<;~{b8lJ6TNPXJo-a_m%b%3t+MwJ(^$mlL4R{LKkG}nKro`Bt zqOdFX#p{!kZZ>8OzTJh+Axf;)()38J%etpZcyEZ&*exG$-$g8W?nnSA^$^`Bk0#|YEsUqT=IGo| z0-|^U{Y4!y+FN-k^a>7%*KT#6Z(r+>im^oP8yA2q8y%?{k-0I=8x+Vudz6O_?=HS) zE5QKG>jdO?x>#wqbwPpzUfst5Y1{P5Zh_7#x-FmzXbgP_ItKpPOO%{95UR1>sWd}Yd4;NRRI40p*f zelA)o>Ol0n%{BxhOnUp#qu9RE(s$B5qW9bPo?+&Uf{bB6VUFIOEOUDiPg+$vu7}pf zSB60N8Q7I~lf-UldXif<>ph#U#g37CL)Au?h>v<4*Z2DD-EW*g%nDcD^KB5GP0d!e z^iviEHI*AUM902E*EH|FGLrB3F!XONv+v>o^K9+qQ&oDis29JvR)lMQ*_(YUa^w*2 z#7;RL*U!a{gt^r9+v_Yu@y8;U`GcavIXgnc7%=i|EzR4rgU-!EP5KI=z-x&vyGd z7?IkS0PtYWz};M3lKr&F`O@kx4hC9jv+6uC<&UgEkLV%k28SzBV@q~Fx3&{;gxu`` z0ftE1yNs|etiE$sLimsI?&~Kf27A5%a5^$@WdZxwSG1Zj@k2ePoqdh_0WDfbNLKFk z>YU#9Em_Yl&%wt=Znti{fQlE+6F623JA~|d__`ffB5cHs<=gk(DbC?D5T^`V$Z@~S zukSv#&qs2tXUbJA*>D8jb9Z;06{a08>72rucq?;nSz^AfsqhOZJZ5OgqIVdN>aWNv zOJRXo{B0Q5Y}F0XnRMSrWx0(NzF*a}%_r@}3)Y8TbV=8YLp;yhAda{qJJMe(N%_Wj!))h8)90x9HUY-9aon@2 zI@Kji`r1*NnzXD{N<_J24a{DWu{Lo6?tOCBlIv$Lp_+sPMPqAQ&6-p3Y+v5@(Wzyh zvu7tJ91`1t0cm|*-Kp<}f_ePNZMf(9M-6v-Rtjy`>gjMSZPL6T7aeu8_7v`Bz}adtycmN?G$MI|cM97PsW^bL-#VK`wsOU)Cm@2)o)qy*{Oy_Z z&^;^zwERHfV!U?ZG+nYOB>}HIE}91*8VUkQQ#~9hyxxKqJoR2Eae&g-9nJz9kNdD5 zbjna86vu_g;wnAO-MxoE<$fDVs(qJYhif@Wo9K80hzV-Y1{;hU~zJP!W`Mh9>z%g_969GIz@g?L1hNi0>T5O*tPr|o33@D zL_*{&NDA|~!skhgMXHa9?K0bYo|Vpe-(HCJ^wHC8OcnG@95c0GNhm;Dc!f?{Le?OQ zmn?ZQ4s+2GU=~V~%`B!@%l4rrUQvmWlwnhaY(Dy&g!@f#FRb+8-FnW~-F%t%2I;ue zvE?d&Nx*X?G262j7=vZy6>l@g+;NL0p@KiB?wr~uUc5ce-y(TJ1_Y7!24Oun`knOx z_z{&l5H*$SE9bzY-J8F5@@ksW>Y1s#Z z4}5(h3wlkSxeEO?yqco3v(&R9sV^Dmi6TSrGQ|! zSB^V@j+-28Qm3#Ap6&U_OTG=`?yhCsWxH8Q!qTex?JIAJ%1)oy&T;09+r$TNdIm%~ zmv%E$f-pLpO4&#rUE`pp}d*X5N`sW|BkU5y+?l6 z9M~aT8Yv>J#0VJq_NN!_$uX*&Zi{tG>rSCoUs>*R?z59=C5tXjn3JJFiv35_kNhnF zgMp2nWvgbx!M-WiG{0oJou8k@RnML9WF7TQpXL7BIA`rnY}i{R@I&9$WBZ1LM8k}b z1E&-WvIkKuOgdMTSE?5cFF73h2|qv1pQp-JiGaSq+T%TTJALakeEA~9$;zRdo$j|^ z&OD-|^t=m%V(;N18ir;6ylmGcfSm0lTz(3*^cqQJ*N7O`mv%Z@-#dKm`EYJ~>=!&C zuaW}K84L32>yQRU&DgAE$Mx$861n%?w0PfwP>(ktX>q5&0h>gc6MUV7Ge#cyf-G## z#&7yS8aML>nkxAi7V8AB=P*OxJCST9?k^pyh~SJ}!`-Sl#=d>D)blfE>1LuU@U1~F zE=Con!}Li)5zreN)~Pd|wES*;Pd!9N?wnzN!RZOwAdIU{%v6o`M?j#oqwCC5f=H$Y zkX4+m-`>`HkB(Nv-i_0miPz!YIfrLil*Q#se#JfTTa?wq93Q%2O+|iSe4XJvSkgU1 z_J_}t>4{uB03r&UfseyVLT$*pYL|Zf(_3_=bsJXj9R~;(es?vCW?8Mx8o|)o=2@{s z--*q4-PR6+`y11?4%<_KVKIuFXH^NbWr7Hp2b0e9=s{u4{5T6p{*5lNXCaV|gY<0N z8*gEl^&Me>z47bb*?EUy(l4F9Got!7T{g(PMY`bU>f9d#*A!hpwO4V1bmgTOwbxAT zI?Zyu6zXe`?9I0DV(X^Q+em9B^32k{OnZ8^eqFB03J@1po^EAA0t+zQbJsjE2zD6u zn~S&W!myXT{OEFGms~DSkAvY2>1%}h@Ey3t4f05R`}m3;h&_E);%|SiK(@x(`|A#{ z?I$R`7tV#122JpantO$0zypbJcNIOuwU42>Wf^YD*?uofT>@?9%}kq{n&S1sR_p4| zNn;&1-tu`Snj=imQpWEc+hPX{;z)utJjR1nz%GUycU4xIV3;x-JZu6XF z7m6(W&%vR(ufYm2ZzZmhl6x0UEYiZul3&l9lU>m5z;n+>AiFwoB9wK4QZupY(%wR| zaHz1gyR4uoy$$10a&FRqeH|KJeBPhjq&IGF&uQE(W4L{M)kUpWWbaWVlr z$rsxUHt#3PA#PoK{KPaA5()|>_`D5ZW9EEJNLS6*TK;V)iJM+BM6%VSuVo zGGXHzF*gOc+YuN(V1RnAe&XzR$Igm+m+;r)Ts6G9o^S#mz3uBW%eVrQm&Yb;hJ27{ z`npsc5;;tiKK8#>ZZ-lr(et1s+l1#3)=^3n`B8%qK`xY)l$n zy{jsrAp3R`1X?6F?K(0q&X(QqmzIzCido$cv3kDAA(46Rz5U{BcK`OLxBBt`+k$=c z<=qjD*cg~8Jxg`>yeI_K?2|2bLom+gNhMgi*DsJsbHLMfoT3sfk~nAAMT$uHhlBB! zz2KDd`VbEAU!D8yeQ!6JQ^U{GT@RW-Q@%-ju5AbMb&F^5nd9L${Rto?gj^-lW`g$w zK*cs;S$k>g`S_^jBlBd*gQdZ*E=s=3V(-V@8?@5b^B&)ZzDpn6ta((P&RWk9iIGsZ zGjgsTjLNFHZh0W6KvZ_jf_=@lv9XzG?}mrlWnd!%eHUP)BMHewezfdC7^x2vHOxd` zkHkQ%q1=}jKlRZzWxoW%|Gt!@^&o^(wxePey^tkv?QJKETbs?C;b*>fS6BQks+0_S zKdsvkX^}`N-`AXbY1j>3CpV?7ZyznTuT&yYX790xNleX5HqM`Hqz%60QJia77^DTi ztEfep?}j6RApk062zSmcXIM@Roc!^9Skh$bGG#d(O;8#4*5EOJnw|aeZ||>v{`0TD z{GY%5tVg&5L>PjSu7Tlj@1W+p-?ph>MhMsDv+g7C@k+4c5!85IrNeK}T({=n%>rni=LRF{Xj5P& z@f^>A9MHGJcY5AgleCT_E$__S{v@;d6WTYiEzw-tlyNpLo`-l^y)eCfdph$gD!~ZL zK4VV}JNg!8C#M-4iwN2|FN`?@!*t)H@0dP)*W`TkRu7O_!kykb5I%7r_JOYMr~t)j zWQ65iwnAu#X>u*0Z*N8)?=FIql0A_0fZI&tVQ4&)X|(etN%h(b(9+Jjh(i&IcWfiV z(QMr5G`AeqHbd6Q?1my{YQw?;91XB(au7iA$9wG-{yNd8Wl9wFhQhhzmlUT?o^@aD;lgzByqkd#79GRq=Bix7J>w6KUJ2)S0CW*3IcmnJTv z`=8WHQn_XmVis5UAf0tZ^58fPZi#;IO08C>U%L(goM`x#Iq_6 zpzIA@EH+{dh_|6ZMxg-yfAiaNr9&pn2WR`dtLwcp?{XhGk?yBAqSPR>+K8{Zm|Z8# zoDc?I+k4dkU|1Bg>ak!az9tv$eqHC2F-+Rn;H6Swu^SFPXXF3l+uX{7if)qoZEr=W z;VAF63KY&@Khbc&ri#3W&>po^=0XC(MBo1f?J=3zwjugLrk}1Jv`B zRFXc|Iga>}^1J!XLntluxa(M4UwQMh7DG*a5vaem`a$sUJq!Up8b>VrfMXP7Vlf9# zt)B)8|JYOZPSS`gZ~;LJ&~lM3i@1o#0htcLL3+VazP;xnPU&i4?US{w$jSG9e~XB| zUJUtRrqbHLO+Dnm!P|nxVoF186&wcUe;_&Ik3A(cWWEzsFY2&@ZSq^vXLP+uf}U>n z5?*ZtgeBjubjH~@DzXBO9=K@FD#RKj!uRJ~c1|ifKcm_HdAmv&CkocM)x~mjqnjm@#cb+Ma3D70D8%?2k zUC--ac?v{Iz+X03ummG%Qonu~La0jv)5=EF6~bUAws6j|H(ZDe30U{nw$>rDsP;k!&^ZhWe?W3G@*9Yq_%W$JMx{lH@Y(e3%a9nEY!Kt_dmfmC z+trY%T1{9i#FWJ=0r|J*_QE0yGb)-^>VzQy^1*pT^VWtf5-#vlN{7g4E%=k*_+N%y zX|GuVY)bRJucy1fbN=pwCYKS9YDiXk%#5&H#CsqP&^8(Y?CM>7FwwwF3a|bclW%17 zb&$S78Z=!>n4*;!a?+D`>ncRqLOHRKnT1$+p@FpR+k^|}i$^97DN`};`?1>Yi#`UZ zI&db=L*VL#oA`cME_=yYyAT}sprfuvzs5P#j)Vqm#UX1xV0|=LG#KMK6qQcxq^G5J ze_j1)B#}W|ml>jVR4!g2ZIwQa4hmTP`f-r!RKq$Jg7iSY*>u39&BwcFnu55xY}J_b z3gp75^n39AguK|Wge-e`FA$*VpWmAP(EWgXF4RplDMIQ3Sv}yN_uEJ~_^9~&<`;gjhdM2LAgsL8U2+&%GhLLfIYZN!Gz8st$`gZj-w zjRKtoosZc=*_Kb`KK&5yGx75(`akxRkRw;Wn^>A40D?GczoHjeebK#zU%B|RETHc? z4Odz4@GAChBnd)ENQ#b~-8W!ey?5^owLI(-10%v53I-h_qMkgv|}N$1G5Ky$sp-@#fy8gpP0N!rvpp@WnWw)e#dFeW3XnQnz*8kTQ8ui7Y7#J z4-|IM3dbOG8tPf(qo~2AYzT?_{K+VG7)(iLCuA5%e$oDUB>0cbqmTWJ)cf=k1n?(h zL8f0=k*uM7891wAX{RC`Itl(hJtY^1ZFIGUN&{R%jHi6$8FxWVq|R`FBD`Z`-%@=B zrP#$hYJI;RL)*dP$JepagWqR^J=flEor&A)!)D9WUV|YLo(RhaTXm|TT#Un(mAMM==k#LVICvt%J)`UZ5^DHYXcYd3RVm~u8 z0#){^FLaZzEX}>B61(efQFcm+E>PHXP*iARP&R9xteML7Hiouy;lxEGl^v8}g@XAn zkz@N7EqjGUo4)RD`S79XK!8W*0xCQUY;>cmL$S15J?No0g|v8};lgDIc<}}TMz9)f zG~QifesEKt^A2_dkzy|8$&p>eYMEDz)OOE;uyA&R9Y5 ziROuh@spWguwBn|7--b=LJlpVTWvpk&6<#jaDEyuaQIloPUM^JyRgn*(gp$^?-~SD z@9T-lIw+xlrWf+G15=ShfwvEwsDj!XMJBuP1^o>P@1yr!yi`!+eJ%y0>xLBmZ^NXWgwZjNbz{>_q?mLBIz!$ZXr1PsMq2QL z_Ll;#@FeUG-DzOP7&%k~yE#xcKEVaAWW9sI`|>9r`E3Nl3{tELA^pia{M)Duzb*Qd z1|Cvq@&+}boRA>fLyDF{3BT8N==2hq4E-Qii+iJ$2F6XX>>eh%LVG>ySNjfJ{-`<}kpL%b*gP(?KQtLWsP8RqD;eI?uZx(G z8INGoi`QtacaS{z$|q7NUlTHh?@+dY73G71-lls|sxuohQ+$}|51C5!{&pSAQNO6M zB7Z14WLgp+gUR@+w^yJF@B5GE-0&8|UzO>z{P^4LtRL8~(Mh4E8-wWCkAe&tTagd_ zcq)8>{2e6KpNo=uU>3d+9&_LjDPPFC&a+hXb#7o#>(imMkPY)~z!&jnbXXmI){>Eq zn)W1T^}Bp4tQ>nyL-skcs2<(iiiRfceiC^Env+dvN@KHIp*x<;pi7kStsT7O7aF43 zX!l)P(F)u9+t<3bQ04Wd3eQUS+*h|xJcIzWTtqAN>&6qSI2FEfarPoQ{4k_U?X2k1 zwH=85>y52Wlr{7&7=0UE0+(VZwBNg+M1cz=z74>@2;hgK>tlr2*@Gr_Lh>;xWbE$Q z5X2NsWf7`T4y?l$65xjrfT1mx_u57z!qFh4Gd^^oej@N@ZB(K69Mu2q-HWr|<8^|* zJ+<^Z@g6Ev)?!Ak+k-=lc=x*t(WSTv9mNzZCVFo;77Fs^{xw4)QLKAj)k{9UX2&`qA`; zaSo~l2;1C;!?9r%Oq4D9DM_7s6=RK}AwH|ztQ|4w-=11D^$>}}+<$1vsKbf0bs;Ai z`B{4U`3)R~f-JLCG@5^sw`9}W;2Y8yF-t1Mq7NBWP_)S@e=J}CQIdxrL7rQwVl{Nh zzwVFdj!9fnY$tqVe-ca(MX(Yp-cvX>Z6Sv+?a^7ad<$XQzJn7U^>`M9TO6Z7yv9$6 zQC910sU(i|f)JV=iqZ!<;(H{GzV1yblf4?pB`@evahhz*UifJ*t_M#2MQ(l546B$I z*Euz`5zEjpU$G-%_CgqocXlZ%q|Xzq!zLyzaaNr|G4neJkb}f`hkv~x=i)rsj~#u| z2eCWrL9-Rl^NDpgs*QZ@2W{Z?CrXri8zcuPvRF?pEUbYxBm{x;71GNvh9KoAYy}c~ z%hp&e6$e-|nwPJb+{5KIU0hj$FAN_IZ65-=*#C(COD0*l(SC-qZMc^r6i zmVZ(m3Mt(brF%UX?v|q&>fz_7h%$OUr{u z-T55aaTYCqR|6{5-AmPxNIyt3yN3RE>d4u;FI4PSdr)&&Rs_@(wGcRup~=I3uJl&T zJ%RYlZ{K^L?C^^)5a)2DU8Cl#KSu)c+oB-dc8Jm+3MuqtLvYQ6!Z-j)apY)T8s)^M zSm?Y(mLa-xP=|N6jUv@F;M?Z27OZ-(RqFos<3%aWEEcrzeoFeJ6U_Nu9b0$r!EO8& z%T1}bKjZX6Hx81Q&RGy#;h&y`zt#~sBD2lTCNTMjk;p+sxNV-@UMNr1eIEiEzaFLU zD_(RW{;&zI|Bu3DJBqZ#WWpyEn$AUO0rMXv>@X-wL9Mnja(q~A!ShIl8r0qw5tJ8- zjKzZfAm&mCF`>G9=&X50@%1DTQZ&U-9>lQXH-o+{d9PqXDHLL&qGKzV2VY!R<9lW5 zUhE|h&CodMMp)X=O)s|94XgE5w23{~tafs$kpnYbe88u~N#?JQ)Ne5#tDWq=o_^x5 zN?b9G#UUhUz>hP0VVJLlpwo;?S3L9tsCN!YN-l#E&tcY#i4K*MjFclJ8+INL*dLGR z-=gv6z+w1xhKSJFYPvU)C(`eVDT~A9Sj68gY<3OnnF-%_E`m+bGR}PFn%yP^m2sxJ>;Qn#*>+BbRTF9 zGTkC`A-x`7yLJTEUd6C!v*@8mRFyDisVnn07y+MPH<8>~3 zNDqOWJ?kS_xVJ8pu;2FyJh`)wA^71Q2|6T{+Pb2RscW;_I$Hxi)qUavYM;9#tFA#$ z7_^@d`8z5ily!1HMK>Yph5XeDa4-l$lbxt^*FAF48Tx169i$q!?;UH7MMHxR^RvT2 zC-U*kfw1QE=KElhxrtnhf|IMv*T#4C+egb=0oc+L^CQ%(_y?C%BRFYEcp_{O*^j*_ z@*r+pIXrWTG@=w?oVTvgZHghzp!B^ign}wUjC8(fRMBLg5EfaNEY$((e?1^f-zjuH zqd@w?SuA_=z?9SqPEIKHhFnRI*@-k4wuWAX&I7sC$g*{rSdH=(BRI}$qtI%@LYIa# zgHYJW4^Kdbw+_jnbNkyzOOHZ`Q3V%&#hv>9d3$@E?RwV1+=&whEEbC_ z%GtydOyCo!B8!-@N77&<7#IjXIUkv^_NUar*YMqtf>x`4p7(w3dvCJpy4FI}p(vR1 z0n^a7`;5R|WL^oeX30AHz3NslC8lzDEnOYqUv!!(C#o-46S^WubwE6;AnPF3qyq?jWwfC}1@CUxr@Jz+@9JTE2b?g_Kxp0aZf_=ZJmEMzyNM`--U8CK9slJueg14;Sb7JzCL+xZK;e zVd}V-A7^?U21)Cnh+$1Wl?7He%89Qy6n|bWd+dGYr&GXXUSlod^c!S$qYT=BfF9_d zybw@8*(XB$Mi~3o*V#sSq`Mb*&U@PF0k2?;;iC~Nt}GRQm)xdr!BwR0*{QZam2=J< zGa`MZ>E7ROt;U9PQ$DEH+fx)6{RPP-Fud)#Lv8e*vnc%FoV3?$J*+>Ecl5NzAVm-Y zVPj}KWWFh3^?*!@`~3UFxxmzA=fy97jwFwb=zv?|$?frMJ~8wa80<51e-KHeIX>)9 zzt;cC1TqVM5=x_+C`w)p>6ce9wpQ(LU#}T7<%1C|VgdTkI zZgYiHXA5f=Zd$r>h}8DYnYz>eCV-&>Zqs71j@QqZ??J2V6$=m1Mn?=|mo(;#T`DE|DeC2mizgBmMKZx$* zBSAA~!txk>J=W7q_;39jFq}-pHl@sAE%HTTVZLB;N88iih^mt`PA=cY$g*pz_x)Ni z`vv>TUjsI%#Te#NlRmf8%x(i05|^KBD>McTZuEX<85WmS?nIzXhkf+_vUt z0H{;0eGsxm1&V)o=Gii9q(u7FHZGqpdAsylUlu7jYL*R>o8+w5?W_QidyN?!!ryHZ z?H^hQWqii}t4rST^Ia{0&PP45wFc!ytY9RyuOcN@Pv3cALncGNR|KZt?qs$$+vnUv zCc8-#m6qLzty*K<31hc=Bl=i=bAt)9y{Z-n+@k;fw|dEQejam97|wKnkDf+E>b|iH zYi-Bacf8R-v=xhq^lB^PtF~Pzn}?EhyZicQH4;CAPS}XidXml6+bKuj(_6cUR<8Y# zf9h{k`0EFP5I?kh=8d;^mo`Aw#%}%Cfb6dEgKdVe;yJvu2d?qWSjeZ( z*oZafVj{rUN#3nVt=9*9`!=|z2+&OVxzbQ{&Cvk-86)|?Ri1J<2AEBRs(3XzuUjr&H2<87{GI* zEl%PXUJ7wgz6+nFmjAqf6ZalWC~XX;eCW7t?*%DrOBZZgP$k-Uo%hEQyfaA@#Lvm7 z{mH;#9GuRzkr|E&=GQLp{9GCJ%)t>5x_kCH#z3BNpo#wakGH1=!v~H{<#8ASHY(gW z7v&w+wrl#uXKVM^=P2Zdez$R$yd?hX!OxB*?bOlm?xPYAIu$DBjWX6A%aac@9bWs= zt+Ic8z|J=z%o2k~+XE_osdCX}^yC$1^{x$|CtN9)I5qLO*4K=Hx{soI`m(5H^lLKT z+^BO3ePgjAW#)24I@*)fcYm z##kad7pa`mAZ9h~Za(%3a7@Ni>RxH>WXfoMo_=dZxLRW$NbVucW=?$zFUDwjb}rr} zvHIWWn-~{g1Nn~8`MqKsW^vBj50x$AA9xF7%dBx8&B8EKugvDIgZ&~HeP2&06l2s> zSrz(ggDA~}iqKD-?R=@l!LfK7GW_Qt9~`Mv9J<@c+Iu3EQ`Qh(tJZMH<`$gkb$;j{)AL9_vTi{;FzaN##NIRMJ+A1HKQUKA^2 zr9bugU95F?vde#7clcMnG;R-lwTBz#zTsW=!L{bB zK{txkEegtY4E-S?8CmG4&+)Yr4yuBk$PKJt7ZB}ME-N{z@0%0{V}7=DzjhM6t{#f2 zqD{KAKYg(IE2qF`JtRMgaTG{VRjpwOwf3QJ0>k_|SwZ91ncMqTLQqJb{;*j&r2W&b zuXPa-M9Y^cyfu+>>zX##8;%d&$4A3!ySQZkc~HZjhKUf3`%Ky}7H`j;34&kWd~A6u zkq9+AZTCByHu{O@6Dd4rLp|ChpF3tBbUfv$=eeiyt^UVtt0q>1H;^RnrM1`nLYX9L ze?4J?=DM!V8++uY*h189OtjhU$>i0ZA@D;zj%5hW!}b^It#O4ATayWZ;QW@%`~A4`G8(auPk(K+jD#lVBu#m?~}&~ z$YqY(Z8f2s3hX;1ceb%;oHi(S_K)g-k$9F=Lv;>-Jeq1k(NFw5I}f)@y`23q>J1mKT80*FWq{bcplUS zZG+!u+qZG|6SQ?*2P^T7k9-<60Z=d()W+RC=aq3*n+$1Rb!bg(_}}Q&=sIi0#cSMO z0rADy$gnTc<-!%+mOZ+h)UM<`R9L$e|rC$F7yR-P-rBi)#7&ip(}-* z+HhJFeUEg|;gD;3!m~k{N{`TGp8e`+3XJsO-nJI6zm0MLuFf^ls3Fy$!t9!1rt9ufwtdlfRP{5jcl${4`cOmIHfTnLi zEqeWE7r@#W>V{X1&5Ei?=ouiTl#>y3Kv-*5-)vas=$Lo*+-LCZ8~$@VTDz~B=LP)D z5|B^TUb0C0t}##V+47`uZ`b1}?W6nZNk4b3HL4*>S-CmLjrj!;=}=ZDN=(B?8E)^f z^Sc_8KwZ?CJo4w!5(b&gPbZmm#H{s(Q=BqfE%4Brp02j?53Y2MTnx#&labP-{c*{9 z1%~l{udM2r_sxdAznZC2L{{ z*|}EX1766q=XPv?eLQdWIy_jmZ8OF>GvoAJH8rcjEf{FVuN3Rnem4X1sL`r@WmiPj zzdmkbw3_#B9KHQxeD?5p0l?i$R;x@1kqcp^ZaqOOw>N5!x7&kc|I|%kPE6@BVBFhd zX*{$+#q-ne4mz+yBJMUDQ(qG{{6FXUXm^Gwt-qW4{ax$MCTWy#N^dP@oNKQ7etWLf z6_bs63c7__T`^lp+$owu`wwSEATeLhV{e}|&a|i0N?4IU?osawL9t)I7}z9$*MVbx z#Ci+wYe6I!SC0TsK(N1AdL2ATG<9}67s9Z1OMxt1o-b4y$|QQYhgSCPvuCWata(!O z?-qi=bwBf>P!gGpy;uM9B=A4`$HS;159*LC>CqP|hxeqBm#INxh4X*k=RUF{y}cUO zJ1(Lr#Wjhp!16i^+UxV`VNZhbu{LC8`PfU*J$niuwb6KudVBre`v{_-@6YA8chHjC zy|(u`f&qLy5wcJ%ratW^oM~?NMHcFA;06NqmR`;j-7sN$&=Fa0hY2Us8-j{ZR`MJh z-RfGK(a^K~y!hXNw$6mWC-#UR=VsNMkc#L}uvqZ#m?Q@w9bro$*0j3a2>}dFls30tN#sd40{6A zH%LQ=Dpjj7>#e9%YT+alfFtgw9X%^@Fu=27qY|07Nr4)($bE>*1k>AD(?Xk zsm8BsJUr2tV+yhjxh?LhIdxsZ0_-~Myae<-7WmT(?(JH`V||Q(qRsnZQhAF3NkEhS zHlzF}E89MHz<++9?}J_U+N*gxf9|t>eJJZ|tKK`$q7Mfiaf<*7T zg1wd1AIG;hjE&L)3Rxzy4dCL?-9V8{1)TQmy|Jvnw^+B>Tn&DMPkLtBe|}p(XtvIr z+l)A`aa%LND6?k_NP!P6EcWV3{yZI)H4q}^eIJEMy+;ZI>Yij2r9V|e)$`iB2UBOt zsfD!^fYa1)5WPT*e(rs|_OGRzu2J>C@Qsf&L9dnk6?#W4PWgeT0xpo?yvsIBjWk?@)g3NrbABbwdv7N~wizz$$>tRHmeA9qllDCiB-^#t8o%LwI zv{@^?%BgXD$7)BWD+d~!FpW5Ggnn$80cuiA8Q2r_LSfSmyqoIWk%49A%$FE_SWncl zUq4!y+h&`-Qy!2SFU}Qf*sD{B@8&uqM2l`nQ}4Y=xnU-okucTd|f?b4$)84QyoE|$O{<5UB*&kf<^NLtm4r^F+X^{JXig)Ufy zci2edpwpZw_R=IP<0xB4%?-A0j2fh7&&>rvto=NA$4U%R?34*y?&^K=ruBLAaVwv4 zR#ZnrCdY8e*@l4=1J`|9(Qg%Dp$peRc%&$v&!soy_B#mwqRo@F$d<>Yvhr zcjkI^Bbed3&rcTZlQdLe4*WT6N?IQrRID6Cog!{f>3ew|x5LeqRHqX6g&;il`x=@s zl9%N3Dmo)R!1apnTFpnT&jHQo22y_mVm^yI)eEsN^7@XA8u|0z-eJsMrjHyQNB@w% zN}PG?J^OBC0nfe8ZMhut8s1bMHQ;P;TMID~+a5>{3OKLV>Z9wEQ;@a%P?&?@t843| zkXW1{elG~Lww`_HsAgk~yiss>Flq;0CyRYXy!^VI%-X+OP9LITd(N#wyvcF5+!Y}s z>Rxd)T}{NnsX#0brCcASib!z0vA^BmpU?UH*?#A^1?5Y|J$H3`q;!1r=Y+TPUER{J zAkfi1Hr3-g|YJJq8NtU=->ixk)9qft+;(BrHd|N0 z)O#h4Uvn-UB`8;wxc;U}_D1t+rO@u%{`G~3wkDJ?nZU>Eg1Lmq*7wvi51qOb??LFJ z@NwT~U@Wd}HuT{X^?AN30EP};Z-q$*?rD?UGGsRMy6_~ekq7yqoULbhCJ#h^B71D(kW$6Ni3h%#tP;xvxU_#Sbn$7-h9BS^8xF1w%tZpuehi{ z&?8$?`?=(M-#c%Ah1Op`TI_vd-}yLFXR+frQy(Bw$ej%#B?is4*YyU~yJPs76MjW; z5C__^V8FHU!nrNzv|@V>Vr?-Cm7tJ4uB+&x3F~)lBCh%KVT4_!>SfkBZAs_S6ZN9& zEZCV6yvFjz)0kAC$IN647?(T1oMVzTqltD0E3!1u%ZFo*(>)t9Q+JG;88cN#RPK*r zxAy&gANPiDx{b#=Oz)`YNp)^~aw4AJn29%ko-6&OoEaXYBLey++aLj2ycHbLBHDYf z6!Q)d=OS^kwomn#%!}39^wu%2ivB!0@E9(S3DcBIDkwxU)+4HKC;X=}+dZuEptby)vwIoluj zkfE=kB<$Xw-NY-|UpJTQTMpf50F$uHHVDFP59qmYQRkl2Ih2<_kvC{zPaEBKA9cN* z9Ilf1ki3s;{hm4W*WW#*1m%wpTb8%a3f2^P2tkz=J9e+u!Y2N#bs?0p9GNG+nZz(1 zp*FlpoU@hNJ#v+ua`zlH?|c^MypLanT`VvY6mIOQpHIrh%Yy!tW9is+Cs*hot}%71 zzU(z<--1|wFH7F?1BP}0Xaz(R3^n(S^uGL+k&_9DL!VbIXMJmH-X~*E8^b@H9EJo9l( zPua34as00$j*oF;zT$as#N*(kU}~y_I}6BCI?uS?kNiNF8UPZ z_nIFUbTwKMA!ogx&pCMsoO_%Jj`^>X! zTp36K<2tGYAR})%zgs@lW0pXTw$=vK>AO*_>6}OM=XlyL1MS^*^%hrR45DSkJ=TnE zZNY+(sr2D?>?O@X#;j_Dut`YNE&S4a4_iOn7n<*39|`45Xn5a;|2cnqh(`|;CcMv2 z^w&?$?4Yx3aZ1}d4|A(uI2p=(2ssPDsGf_%}2D$or%>hk(bA`=DPa}+c|w~F;9W2CvkHIl1Ze>L30LBD@pxxHXE^9-s>Rr0Oh&8fi3d2 z8^ecpbt32HFKR{-@tj*e+Dqk}jaedu#tIR{K))UY_R+ft)S$Lrfxq-Nj`(`P>)iQ- zEp&}R`1DP{*cq2&4K9Z!t;^`5>T+J!v_0u}+y#IUwXaZF?s6668wD0{r#E`m0`>aq zQ_FBU9l-qyXtbwh065!6S@SO_UwQ|HOkj9LRcBfeJq zywxQJ12kW7o7Tx{mlFMK_qA#A>r_(dD+%m&P@nCMp-76}(LV4|-Q6*Xj`Y1+$;8q? z4(lw2E=jwOA9jiEU6Be@>t8)IoC!cw5-_MVD5&eJruMSw$P!}x`oo#E5Albp&$kPN zVFq89bl7YY?!?SnlS+Pbuwd=#kgyv(CzD8d8JeHV(>`wNAtGlE9!*u{>aNDS?39wPZ??%5Thl;3t;@xbHT+$9%{vACtI0FSGx%LwHv$K+qX^Ky4d+27%W%4`G`P zu}Jl7IT)q+Wq}!{Y+F9K$gS6yivp2WB&$A6%2P)z4|Gp26EKPc%SQUXh%e2GspHrD z))t_vSwoIHMzjOk%kt*kuJ0zZFP`>3kjc4NL&f+yCL{s|Bc?6n;r5;9*4&LCGTceY ze*5#ovzBi0tPF_ZGtS^8JNo*$j--+5rlUxO7!4(qzVy=}sp~y2W+suxrRNNndg@M8 zGkekff93d}LTN=unt+|s*;%Wl92%c@Zuir~$G1RZ1K+X0qR9F=bzWb_>jtOglS?Zf z)Y>;R))?p(Q(6D7!XH+Whd#pY9q6UpJLr9Lmhq8X5AfRWHg;}}EWKxABz2Sb0rpv) zu$SkXE1o}RCr@e2r{6x=9BHc+x&KXnPnvR64QNmI!k?~G@jnX4<;9Ms}t4rz-;{5OF=Him@H;0nUQ*IdwKZrkGoOP8OIk|51buUN8fy*2H67{qRjPV3q@=(3)O`aETY-jtZG zgp8TKjxLOGtDOPjdtEoYYI-8Y{CG@WJqn~Yv|S#YvJlRY%KOu2&cCigdx0&y_Sz)b zuv`MKV)K3mGdp9OwM<1$r3i2s@e>txdJn9H_}gtnVBCV_mii(3I^lV&D}W00bkn%d z-~On5fLR;o_4VrqC`2|sI;Dkrsl}|+_N~#sgl( zQ=?zEThTJOT;KWo|_#UzO+z40q;$?V7%HK_4`(Wk7UaD zC%2B?ztZo~Gx!3JrjS4|s_`rJHqBTt!3+geF+VJJZ>QthdzEwvu}*%DFXf0^vK`7LloRFKq%XGYtdw){v_x{0NAD_YX9C8S z#Tqb_d{vx;@?9ss>;$TX*>o!)`hx3%>e$#rL6GCX`t$Toywisl>ty+?Xjge*_p@EZ z&Jv&z1nH*OC&sCLDY~y{9Y50Oxl~1M9uMZer3k6PX3o7pdp$>r!eZS-^XPA)Q+y6+zAJ(E-%!{-|aMqMR+jYQk``2hNxhihwj zUr383(~&er&JhjtUf_Y9NJ>$y7AatY$UiTF>Dyy3Q2=|5hofQPD+TjqgF@f4Q#@=e z*MTg^`LXoM0`=L8{6~92wFaPvcPFG9Ac>yXrMu!XfrW(Zp@tQGzPD1*RsQ;q=NTGv zLd2k@{NC4WYuWGX^NAGTho|(KI-e(CW;IS7_H~oe!}o6v>;O&f{Hg+jF2J`ZiY#Q} z$J+$b*!AJ9Zd|5hivPU6-nN~+>cm_!VFl2hX?Vb#$e7X?(n>?+n0#_$x1}vdF;$W0 zEDSi5X&ap`!GaXfbB!U{SX8g$se ztXXzCitm$-c(X9HAaiUt0wf4!xI6;hg}5|bKsO{9t;Vr}p?vDa*7o|5{Sp#`bHzdp z{PS@qk%6}c54YTmy9{b2iI7w8X;(1{D@Hen#k!96M!e;L`n|vH#3IF|?Hw3t#x*gQ zk*n{Eyu{p81v*<1{MlAU_+zeG`Ew)C0JDRAcfzyeT2$nxx#7s_`n0*6HrD{7Gd4jx zZsmz{Ew<+v9xq?FAtzVAIMPOqCeGTLkuB>rIGWY^6GEhIV_MIMH-G)%Y+(J1GnIE` z;McT#uDO-UAw61=wf3`ZjCT9!_py%vkWe3`uQbpf-M(h$7k1RB)3$buB@)4qXbFPd zjOwQ33&6@rB>CsjGJf19yO#AW=z9mRDw)c(A$mPVwazE-4Y+d@#~NJx^Eh&zPT+Xe zZ8wl=OP_0=Qf1aca0q3F;w7!4+ z$IJ7GN(W@W({sEkrs@}zmv4%B>m14ThXH)wedN6L$NKdQ*`NE4oY=$?r{_&?3-8aQ zs;=`4W&5s9?re(X_>JH_WZ?~27EA7OE)O}x^RqkzT+pPSLdn3_=& zyKmc;jXt2P&d-B^KpemsmeDouyCFmAK5uZR-UtX=XqzDmmhb4N@8*3MZQ{*F*ZQ_cNB`IJz%?Gl=5L$)lneG7oymdjy(aI3 z1*DR;9xZ#LS8sXyV;Vc;Wk^bhZDLhX`+A#~MC%t>9y6=aK<;EDa@N{sV78T?Pp`V?xGf@Z&%h$#Z}SiNv*}}{K=I$^u!8ZUyL=hKJZ?QM!Wd1 zG<^Gh*FXQVYqyY;7ir$Lc=Fc%A%$EZ&AtjqXplMRt=mEVK5SXTdB(>SYWH%B1-HmwQt zM^;#e={JtRO5gIg>qQJ!xl!#it+>F2u3Fc6dn2dtDc+m-@>!JW^qb`# zZErvSCN%5*yh0l^+8(U!%^v)d+H@z}S9(NZ2e`lcovArT7G;z(ymdRL@pPE*0lDWH zS>_CAb(nca77>FuxJzYz>i#&cUmq&?-d1!F)R-d;7W7;Ss(XfEDKP?*y_h z>x5b3+VoJK^Td?emq{u6RLNKhKL_ zdQy|7jmm2~FMvZ!dT+!dz#QAH4N0V3z^omqr~tf#Uv~88MKFpC@?vQM<4jOwFmedd zfu-Ui`u6I&&OO{|8Nd+W)A8(wAqXEaYWG$ve7=jb?J*01YjgXmS zVI-&D*wb{O7VQ?JPZqdp$epJ(t(8BQjGUN5#^Mhp#NUb@Y|ce?ZU)O(Z%t%$TYa9{ zA(6kNKomtD|OEu)39eQ6URSv-Xrav1$uM(}-b=lI1 zDXaQj^Pac;Q5fQQSbnDEr51DYf_WaBclwQyE7~MS96FkNf#R`kjgjEml1)YoWZQZ- zHIBQH&0To=vAd-1et(^eU}``@?0R~=oe3p=9k3jM<|T$itybrA{a{jl?o_?kXiGMH ztUDIBR`UMqR`eb$m$#qGAIs$6>LekWPyN39MAJJqvGJcnR%e8|YsSm=j?e1d4UM_g z>mqTN$+`EiVIHIC-S_}9YV%Y1EaOXiii&URG#yruFUS&2bJ||3;+At1DYt`SmtX6-FV@ckR{$> zTdFWC+)zF(8y&GPJTlf~^n0mdGOPOaZ!ekncg@t+8Q|u*WwM*^1-R_AcfSQXZaPBL z>(M^$I{$IXaubYJdrrWb5zYJ4-@U*5_vat~ z{_p?sAO4Sj`m@vcAh)m^5Al2_YRS|OyV~Yx04cvH5B$d_(a=kp&G1=uWGND|Y&-F1 z%pM&W8*yX3etX;cg5?Wgtn|KD?cI7UH&%aJ`|qp5OpZ9r5BYW|yEaHJ->YWAs?MfP zTuM8Hn$Af&C#hT=qQO<1Xnp@I;mnOzf^{MOG1sNlz96E+N}oLDJzm=m^FA$u%u9U$sdbiZgk9Tt^QKYzxwE|}cXx_lhXu5p*= zo`X3Wq5l;g56VP*tD|A>WDkkf$cLC3>y*+0u($aKw@yq#+3&(GG{>x{eZ z-X{?yO&%OqB{$?>AOcYGpaE^f-rj7s%@#S7Ws18T&d?H_(uc^0UKjOKH2$GMPqlKP*bZd^gzgX^kuJ-0>NAA!2d~>z?TyUb$Vc#owrX^wh zb!YSApR4?GLgT*OKw^pd1#UkyMq%JOofLxLBldgFxfm^cN!rfped$P%s0RMJt=TQx zxRdkQukW?>ftSeYXpoYP zD|_@?4iD(9x_c`%M1E8=WT(NfbB$E9Q&omR_jH$eNX?{68u+NyF(x|Hqg6hJa02u#g0}x1*3~U%j2zT47T4LcR%T` zTGum9)1MDK_e7R}h#>kB1`_#M2N6j#lx!ZTyjsg1CxBI1;#TPE%H@$LP8OAS*@H(W zPBJ8&3_Tz4J&^d$V@%IRL?6;$gy z1+p764%-~#Zp=3%m(vEGr#smdGO0&e+kqIyFb(FDTX{HUS95`aW`<|QSZKr2++QwdO-;DE+*RnO!fjjV>pzu0`gQ;4EU# z;4l8(mAR-xk+(hfv@!KIUF*};_q(Wx4T(;7ZxbJTr{>)&R$hyl$JTt;)`Cw9qc!RP z2FokIK9m8RxpJmt&F4!(;=5KqZ5Fl{n&b{;+A0A)T7!O}gSB$4a})SdZz*rmoE4b~ zv~2ZS(&^Q9?GCPQTz}dcEFwD7mzUsdzy9ut>BqRZ-7!>tbI4iJ-dj~L$WA*JAV!k+WU5#w0!j&kFbV_E}(V-+~QvkleX1GIV-8Dx%n0GN-sJM!`U#sc}bTyJ|{k zyLp#wa{(%aM^N*vzd;>k&2io&Gv(tlg1t(ew|ImMW?!SkjISjFi4JCS+yUEjuX&P1 zw97eWA92sg#v4tfhD>>OxcK)eLov>y-w3JVMq@d)@2@9iu?))QA2!ZH%{S_PR=s2A zV4l_W^2;y2nA&HlEgSx2VDwTgUWpo@s#U`My-(ODL9 zZlgGR(be_lyUSW4T6cW`X`FTX7Rs_A-pFneAM3|=Kj2y1a#eavFDFN_!nrBqd|Tk7 zDo#4Lh&v<(ciW$Lgwv5cnOE(d`|OFwjk{<(hzP~aM+j)r)qnTtnHyR$wMFx-1C!@; z@1#b0xA#``qA4U~Aoipn6)pSv>^;?noNoZow*5R@HvB^a)v1oNX5NeYWx~NoIcJG0 zr14#hv8(OKtw(V&Z6C()HwL-)yWh$NfAmJ5=`DQ4cp$+LR{#OE>Gpv&HtB?$e$V*1 zBsnf@F}Uz6iMrpzaFdSjn(=Onmu_Dzn)bHOB5J|d41~xp|9F4*|NM9V@?ZbufBu)h{6qYG{pIie^6&oPKmGl` z{SW`}f7XBg%m4b9|EvD3@bi1C!H0dkw&}}M`E31Wo7%;$g}ph> z*u|T2e_EGV?X*`-99+@1{G7-9j{6HeYwFgts5jcGvjOmT zXHN7MbxV=`ji_t4mu;NaR*Y&}VFHHEu~y<$XboZx!jS9ns7twp;YWMB zeUmti_iR`n4AOkdMsnZU;kj@Ryk50;99iLk*Mh6f zvQ``Og!ftxpNU;39nPqHykL2PWB~+jQzJ{~j+;mC-FLpV_*A}&QX0E&k z!JaO{w~Te|ZLNM+7G`S-Us`RHjCr@Yy-^mEGQttXArjeg^tcPAKs8t(cs8P!>cp}2 zdK=Qz}gMxEK~@}PV$YfRUp*@&``^)*%&KaLX=S3LwOe#%{Z;6})K1nEUn~rg!jO7(Sf|V!qgwAw# zP0zH3#9_nOEH7Kcz=@B?AbkYq`K?pKbIz-om#JU~*z$T61C1YLhz*Si11KIXyiF6m zFvJELXGMVGsqPO0TNFDGwICV`_s3-nhA?Mx_u9K879ynAaX%t-krw)h(~xC^m%7g) z{>5s*j*KZ+Z)cblYmPS%Pt4SacW<#X+4i2BcOKAPmqG#L8JeG=ffsTLE?pgGuK?Dp zlV>o7$Q8tu78I=QVJ=x^{bq~LCBfxIU zQu~#>RAJ0UjNY1|{H^74pn|e4y6r08P8p9cmGH5e!$7Hy<$myv}W;^KHv9nMTRiZh;EsyfLj}k^H*OgVj&j3zATl0;{a?>AI&Tz%Lyb(e4wcB&OWg9=sUHx|Zj;|_f!p9lO z*!5ma16_(L$kLgv53_qNUGDN`#~q99>cyVQHd^@dK*{l=F1_JZR3N@7E}x1JYb`Hy zlsAXs%Am}y``r3KS`A{445Zm|&OVRbd}pD_j!mK8*VAj#_jw>e+Lp!h$P@sYPb${3 z+HqF%EScirpIIZ*c?_U`iXuBz%}>khzF1b?wu9GH&8rs>FxBpJ9*wXs0cm_o_o;{& z-zoJ04##-EdDsKe@Ww^g&jK(52zl3vVx)Qcl6KTS%HvTz@CfO4=Ie1uJ@IzsZl#JpXwEPSTs% zfDf!jlX0~}xOs1~C9&68RTTXh>G}nK;8+{S{`&4;4QhziFx_d-DgM_`(?|w^?7R7uSuhe|Nc*yLg{;bNL^aKaD)=q zI>a%G&3qPm&X>uN<HChF6ozSAh^gkA3(hcY+(z&n5#3v&DEAhF z0`QzOkdnqBVcLs>TYUD}_s-6{ZT5~*uZ>-`yXH#HO)6Twjny%=sjhmPvD){DxPg7I zEzdXuUVZ?wCb?v9HPP&2fgdWAc(&CZjJ?Jt$9R+xCNf*yT2eh5wvzMdS_BU#kL{!H z%-Mo&AXCRRII#p+Zx(i3K-+#~Ec-;G>b$=eKbvBEnr(kad#y$2O;Hgvdov+T?72fe zIre1kSw;_W-8d*`Gu!0k`9fugt8CVQcBUN8f7v*v7Y)9)+MF$Y{-IuZR}kzsX_wX%tZV?gPf zhv=}jvbT=YR%3Z_M&gxV;o9!ke^Ch8w>ZX*oBcWWh5a=Yfb+fku#K3Q_Z5#1rlC47yNkYhdL&G;; z3_=&jb?&PADuRleKN-~uUlF3JIvbU{3vbHqX8HPvXZUp9-72pi*Xyn~dY$^#O{5ik z^mu|uyVicZJQ{_AqdTD%PGY{0%8p{+V>!b81v232?*%z_VR0gp`gX1M$8DSBY zHdA)Bw*wv|@z;qSrFQC&&MedAWR|R@ATX$eHYWn&Y!~wr{lc(!DJ9dfY=rDJ8ixqi z(I+hh&@5XP0v1N^7pWWif%^e5*97Y2m}OJRN^`9W2;`_m+ii6};=7OXgx}f*GjW{g|D#OvZ9A)L(Ld@5&K%?Xb`qcRPie zN0)i)#4K-L+*Vrl7QD~Xs4O?^5#{I#D#INb%rNT<37lDA(b5|yx7*)6V#a`|MsEbF zVy&ABKz&pGLHFqCi@Snb=B}${+{N__S;bFVCJiX%#jTR3jbkoRMskFWR9=ocx0tRj zE%23Ju&GXork2?r7R=@*H{?f&ZA2ebszbd zb&tZz*s;duE_KwmJuG;xah71-;*WDp^a@0C^@XI@g(=;p-gw(et zFve=pd1cEQ+z@F(vVP)WS#D`B59JLWQP#gqhqrayoOzsItVyI;_-SQ14avNCbTY{qfeow)c67$ znzVZrly!at)I%A}7rMo`8C;Jf%kk{H$eK0+1Nk;mM&8Dqe_#D60r$FC;XWZuPauEl19RZ3LnL z3Ks648fVF9kp*SAQm}0@`JdO}vV#;>y@olR0+iA63&P%63o)&7$q&k+rfj{z+m09H zr}{Dw#Hd1vqdU)vZXi}~OG*jmwy81r3b9QF0he<3Dy{FS!1JxI*NHjG?sL#8vZrb% z`2erNrW?>i2U&BhAh5IwS!}*aVC`L2Ht_UKxppsFxiaV22YTOnjpA)x;-sk9i8D+n z%V6kgVJGOP#?gpvcK0YORnqSn8*oSSQpe&y_)y85+8FzT~2V*wVpwL7F_v`xUdZPwovTv#wt8e$7{P@k+E263x~cvFLu}rmZW2 z?z`jT?UdtU*`^hcde6e-bPgDsR%967Txd??;of@|F5J_!Y~@x{dHk*;HXXagv@eb^ zj1avUv$5>($VW+E60=$dj|l;E!KJhQ4sJ`a7D7R8ce1`jLgpr=X>}LLj5;f~0r<)e z8o55XOuZ=txkQU;Eoc!OI8GANsJCMFSe%zJ7X<``ee(4T%3@5&QvcovHnh4Ym#DcW zuQYc(y-_49J01G6=E_Zx87EZW3r*IL8}2#w1wGz36=x_~)_3fAf%GXeS!TJNz4J9_ zo4PaP?5AOmVO{X3>r_98ho|=0+-%nul=nXT4XtR@Hr2jr=h5E2M^b)HFlyda+=FL* z$68}N7&CEopbDsa=M;g8<&_`DZWN0Z`pO1cu z-%UbLx4|-6Yxg^|yvLKveGQx!T2<9b?7|MGIYU7+Nl(!7n7EsqhbjQjQ7AK7`!*M8 z+k8kXaTc>#o$y@aP!Tk5AG;3vSwi}IUdMVU`qoEdA(l6f(7UIiPCUu7=GpcX?wu5C zwX}m48Rgi$jMr;D3=Y@MM!dV_D7CIaTH_D|wAUZAq>o0k*g5NBKxSC(Z8^(}(-*E( z7S@m#8==8BO75PXrJ71a2FXnV)U_Rgp$R*=l~Q*0*M=2aCfbXx$^`VVbIeH)whr=l zPGPBY<+|ddwl)-K6RzA~AwK|YC_sCCD%)#2+`Mo`Gs75*w?x_~t1XU;+(pnIfT}MV%Y*Za*&X$Q-o7wf-`(V~cVI$mXli znYeSDW=55grO70VcIhjjOs*Bb9n|EoCu(_sQI}dJuuvy~+0)w9XKjG~0dSF}Aa#q&bNCZV6l-*YWdx13=6AA;o znU6YVO?f9}*#TSP{`?Dze&?dcaKjUc;@HRCa}`W-{Z6))hA)+BU1NQN^S_wKxlaV?LNC#+ASsx2alx*vyJt~Uz;4zLN1=X z4hpPeZ#vJ_8oQd%b=5kSO%JKaU0kKPD{>C3wGA%}fx&`4%S+-`ilv2#kkB5Yr?xea zakKytdRpMdEn0J+6OS@+ms8DvK!Rq62Od8xt_$3g!2~arl zj@|Bw5}lYG2xLEg2z$IU?kn!1EGV<0&STl>+5&>KtI+)0&!mIltWvH$zh0XrLM28f zdJGh(=&TE%h4yIhj|tE)5`$FM6M#m2jQm?~NBNo4dGHw~97!)zR~C!$)MFdaXQ2v% z6DC8q+4JJ!MAE|eu~l8b$@i_70z;VU+{zZm>qPV~M1E&jSt2m3D+SjC*D7f!r9FfnA=j1Oh${}f zMhz=fKpLVhd#zTzw7OrBSh*;PNsr%(;WDAlFON}aVTzhsT%Jlx1BWtU(7IQ%WB=mDu}I zc-Nyz**ulLrp}`5%}veQXQQKdh6$L&8F-pTS#q-8Rm;xxe%`IN0BcFQ+9>akwO(KY zim~RPCT!EUn{nn1pks5%Y3sGe z%y~>NvGkerF4RpNqmpE(w$UlTd<0s^6vkD+jqaLpPCp{uO`peYjj_jTxDEvJI=DJD zv+`XWN>OOy+rSCV({2H|N1AW&4|e44bM8UkZO=^+c+#(7>)HFvReLm}dW$W%@$Lu_ z9aSFv7s|VM(M1QaNOG-Q|Hz64B;u~OEmW)=%t=o8p@q)&(0kQr9%}pesdi^wMr|G` zfC!)G02Rn5dTALmAxUXL#H3!RB&5;)O2&>J4FIOen^H@CxS>S{u|OD_yY6DUnUO~E zCV6U|?|LaG=6Y8`J*SStVae8PR|S zWcgFjFHJ#WbdThXSinQH=wX^a!IDF)-D^E=;n8Akro9s9oYE%@aC$eH(jBs&Tgqkz zeVJI*dMjRb#wQuA-##1TGK7)joxQ^5V*`W}=Z@!Pp`aaWRgk|qrzt7tU1=>ntz|HW z&o$oQ{Q&IpfB~`)PpT-}mjL<*&)T+yGR;DC%G&Ao-8#zqq zr`F8Fu)+?FiV}M_WbUdt-sFCmgQQ8}S(4S6-^h$Z5(yi3PDcZPGux@$7T&6z-GjU@WEkcoY#IJ#?0X z*%^<4bxlZpm8G|@+?$C-AXG|X-P`3kdSJY-X@&Dh>0>+RbWZ{_*AcASIcPzp(jXD- zrqV(#EBeWMQZZz*MG+h){xt}I^TXnPA!c~OWPeLXjL8-V~pK)%2B ziEpZUn-8Vwb86Ky%hI(t&XfUwLU<5sPcvFLPv}kt-K(xa&k2X}rkBs{IbZLwe#i0T zy*`~cpY~&n$jz}Mj(+Wt_#}G8WF$2KUbRwc<1avDNrb99z+Wt-IC$-9ERYpo#LR|n zjXkf+ox3Y4avOyI@O7L+$M6ohy-RP}V{$uodV?yxY3c8B--RewSE1eU3f%TFL#f_b zi>r)^)ZpMza`e4rbny%Np{`n9QO%vBcPvJ?i7`Nt>PAo+tEjIGOX&2z*$$&FYT__sENl#?bz;V`8kL4gMQUx=)IeI_eL767%h_Bn?@Q-v zvW0ubb*IT&GflbQwOf13-th&_EN?u9?9FT1l)gv`ZjNlE7SurEFp6OT%^UMvV|bi) zunz9i13GddAdg(M52o~NtfqE_Zfl^3$9r6PeS>!V(qf-Fd+X7Aa+R6SBBf=OLpGJ_ z16QV@!AmXp{jZ-FuV|eVJzj-Pp}HbAj4X)7rR|4)I)xbdNW3IL0h&oO!W|+_eWVh6c2mDL!E2e7s10fv;?PFeIy#7A#Z(YA5hrI(iE% z!V*oRkRc>jTxqm@_hQR7NSbepcfn*P@4LU-6gZ<~eoQSHT71{KS0P9^p!HYUfuxeL zo7PXhSVqC_yJ{J=Fr(#AH#&7ogRHE-+4^~7irPrE3l|4~YFqjo)XC-^V0*{rjfiLQc*{&^HN`2+oHZ?*Fxo?D}9J(?>PJ@ z_1S51wx$TPLIp!qGvaE1@<%_AJ}?ZA>auS^mePU?p)df@w{>4iplvm8QJCpYP!wF^_+_DU3UBDAG68PK@a@dy%;aOw3A2Fmcf(twz^UWZ`R6 z@;6s>HK?1D&}exrW^K02JXB>#mVPU2>AQ_tIfLRdkK(MZXe>8*7Hl_dvy!Z$bx=D; zq|s`%V&xp3a(teCXRmcl_NCme*Smto?9HF#dpSWbOiMXvid~LQibU?(IE*H?X8L1f zwsJ}>XNk1(rnTYtZfN#MR@BX^GRHNkhK73Xw8N5moSG|*T_j3RU2Oqk(=21t)IEWX zNy&I7!xxrCh#2rXUsd_OQy8d@(^v*yH%?_~g43p@%($l<676RjTE~^_t4i*Ho=`_~ zIb&SRWz{W+f_E$lZO?^(9>Rez$Qe}#;oip=fqY3zBCorLt=>0&j=OrZ)^xmk1n`bK zh@H()?$dXzThK{6$SC@KR3BUq?h)pqQ3r$In*dfLX@NerZzsPQbF~g&K*Oxu;ojAy zO|qBZQf%y!NC{DhQs+Cq?z`{pMGN?;R+kuO39Y$_Z!r?|IGcU$MuM-E8 zQhmdK-Uyaw*K@bZy?*YlN!)jtc@A9DD7ypq?q*9lvv+9tb;q!jaL)8mW|N>}3KU>( z8zYty8@`FNj001PrMMJMoz;EtdpwFA0{EfVXjoG8pdOv;D6vsZy%le4Gt&C9i4=+_ zS{q}JT@ug(pWh+;*MtKYI3p%N_1F_cffv`1&Lyg^DUHUizK8AaLbrv`wN_-*eWQ3=8QfNDkWPbp$rc{^Gp((_SFce%%U%tJIy0z_8uqj%N97}uDl6u7HFv^mtv+UeM~g*`o*p->gJFBrdoGa{<}RR)w#nM-9c`FC zZDM~iD1}{pZm$gf$h-Dwj)nmlr`I~`33(1+VE=RO#yA;aDjTp;h~skWM8l*-zH9`F zI|ePwW&ne6f5_-jtk@X$OFC_XcBT}k6d7DNY&IVcna@snf)Wo2#*W=Sn_ZAm9E*sq z8bkR}Y=f>iD)+2{>V1Ylp6`V-;JPEg|B*M*)?_ko#;4*E7{V5zz~h^&5d13{Y>MMz z&5Vfgo{G*^Mr(LDTlK`$#-tw*5H(0gMBlnF9;lCT?ZDJal;q6O>N?(`Ibi;q z7^-A+;C{XPV@BMVXDuH>NZNB$?3s2-3?T#UUJdsSR;rbHDb2c-=;vy!67Ob@ zs5q?|v%Ho7BD@*NaHCU{IR#_$ywQ*o#@R^&#>Yx^L0s!(0YJ2BIadZ|3_L|1TD%l1 zBJp4<)Zhl*e?ZfmaCP1L{EoPc?!HW0D#4A8_w`noaeguCVQBAzG-2Pmr8kD1gH0L|H6kZow@DeY8GW0hjOXc&l< ztWupx?qeI2gedF*r=B;Sa?c8Xt=tWRv*4n~G|u%qd0FZ~S|W6j5-VSG)e|#!uZ9eB zh1lj~@*&>s)?S6*{sI`8Kw_pjLG^y|p*LGr2xiq<2Darc2Osa_p~~`-#E}KP^P#UB zf+-Z#i&gZ@H=$$h6A2gbtcn7P$~(Z~&lS0ez4KQ#zp77!Voyf-vz{tZEfd>2@;elo zk|X!TW3u-cgAp9F&BFxpIO`S$r!~kpJ2annh>t=_$eRv4^Ry)0ga}vrp%{BH|K}w= zf*z1Ui;hA}-ZTSOCch!cJq~4aws9ztU4nz@<(1E<@#@53%i&KOt2iAX7+v*QtF~8W zIQ=vwRnai)jsX1SugYk|AvWpsr!{9BmX4Wk1BQ;*IR)f8-Fj8exQR(bS?6#mB=NV! z8E?=}xMOW=0%wq zsZ(2W9wq$Ho>;eEwVhhU|ACEfu(hk+j@G={BYN()Sx2MC0=_B{0LNrhyfsSx2$&(6 zmOUm_VzV`#S>ujW)h}QlBvj;sPU4~}7%BoaWTk24IGe7Z7XTa$)83%IEAao1X7xP_ z8^i7lnwv{SEM+)ZD5@jMzxkO7Tj?&j9gb+O8zVSFq;M4Buane9ikuV@@KZM-3$-U> zsMTTyCCr)lg=tP%3tSNvu!W>CFQcHQp8*{7md1x=k}N0EMmBT{+O+NW(S;~I1HP-aAZ+pKtuDi6p8#D+dwS1TIz zp!>2eaJJtQ10b96fOD`r_w9Dl{R;E2d}W&=Ny9z;sJp}+dvt4PPVY8_i*D=QxQ1kO0Q*H)#ZJJ?eVtPoC5sb1bqNV+)6+ zT{O9B&AU5-?tO_NJp?kD!5}+3!)8PM9*#St5gS%=Y`tzIAx18@jQe=WS#V54!(cM; zcn|gTGj%imUjXoey`%|*Te(Y-jna3SjMX{`K=z1Sg;jld&*Y4{5nlf@BdgmhipVa0t6mRLpg)? zD@U$uDo3#sy&fLgV<%nez2aq`v4d}n%uRxw_IWnIs*(2E7P6u+wn7urXwG@1lal6k z!Pybb{VZ~L)4N0ctw8U$RgU7`C@)@!tPFjGogMJtMe2u+uP@Zc<7LzM6Tbek(QdO% zN<;JlA#=}#cl&4|jGv>e$^ZCQrtSlo*+|;4pv31cTgn?vd~kz!$`Lb+rRf#A$7!%5?VFU4a3|=$GkTpF6d5zLPf?A`3@IWAl-TT*na) z9Ldo>C+{K5o?BZpO`@M?C)i$y8Vi!zAEss4+EVyp9 zw3u)Zz8}GA;+tVMzLp&^w>#3RzJqv@&s4bK3>L;MvvfSdb6pq-+Un*k?j-PhgNWiN zX9G3OnWh4bG^~08c0JeNP%AIXEqEXwe<7jZRW;~6ZOuhp_Flzkb{8AU*mKB9#tWxO ziCZ=t_i+tSXq(F+Yf)V3nYH&FQ^&mR9LOMrr|3a&H?yKMV8_T%SSdMJnly25Z4*^y zu$gDy*y$4FV5pz0Ga?T5VMekhjrm9EwF?=^SO=-Y17o&{Q!uFOq|FtOwz?a7<4j9{);B<_E%n z!$ml5i?m5$B<$t3CIz$#`N7UZ#1^6ks;f@wH`oIB&!O%R3?V)6kV)pI_?I3C<}~%- zg0b~hGh=cy8&FM9(2rU2Jn`kxP9|qeVUPaIg*+2F&g_CEgpls2DQF&{zj5 zoR$8HOG&}Jtg|1*=$AKj!ypMaBcKX}+wh$*jz)I6?P<`&SQ57vsr+#4k8jI9H$z`B zBx}6a?qm+UVY@yKzqKYd_HuGy9(WM9hTr7WY3%-iAtReUNXgk-Sw0o^6RpmjHtPO- zO+%MDRV^5)yhuB0OsIznIU)SNw1OFxWCIi2)unKdo^!a3B7-|5_Zi2$R%+9We;4h# zQJ+{Trla;b_%W9Q2W~x1*~Q+RGN~}cb_ z_3Xpj1tOu(!b-&Q2Gdm$bNa%XrDXWXLjA~#tW)6f;NLY8U4A1Ska?QbWl)>OC=mOGQIB# zK^)00M}%qfRzN9q(Iam#5wP3d=B)Q}Wh4gU(OY|uGNSnD)WTLa{yU<+f?$K-6LHI$ zD4#UPnSq=aukK|`7kHBtozbe3cx_4A9bC=3Lv|`T*BLsthZhj4AS0qj;Z{QYlJ^Xu zoO6CJWR zaz^TjZ?f;8(rC+`T1(28>v$9*o^u-Eg1xHl2j zjF#oytP5O|u4CY6Tef8$DyC`}2co-!lL7co?XB+nszeDcV>Dajx-gv5E7D-S7{jwe zrk8m^K8jW)WiHF*`TFVAp3nlY{XWG_%$)d{=)CT`bAlOuaz$TjR;4Ie`i8`dj9Lnro(Go2XhLh-KptqY0tTNI}PUl#4> zfg5e=%l%@F=s8(g%}(W9T(xc*^cYUvgLkSN`mGRq2ClkFycDf`?`VUf z=R8WwEMjJy2f|?9e}JYF6e}{?d&1@N1=VzEJH%eAv+x+4NwV~85Ff}Sc#n2_=D*yp z9srq6kMq1;Y!!oeGyNf_HghCPu}W z0ak_}E^-Wc);$9@KvD00F!T}nIktI zC$UBJa~mOmJ_(~HctSc5sA=Rwd1nB`!Dk>q9I6X?=Vcna7k;^5JRjX&clbNL0w}aK zY_Z-m2jRae?H3qUrA=EH_3`#6#pTd>Q|mMuYCx-z(eGG5>8Di|^v)b-13OK(Ley#9 zle|wWeZtm~UHVevg7{3xdOcw20Or})XWAI`FvU(q6KG|Qfgan)HsD&UJ<$^jjX`@R z`4({R6z*`6#+4Le3gyrrN-mEg!bRYiib-P#4=&i8V2v=~ zwzgg`O!pJGCx?tZ?>)62ylU2T7^(Hgw_cS2?Ovx2JZx>Og|6PmSZxR{TZwr}BFdEK z0FFJ&?)x12V19|y(?8cSfBVm_eLYkb^LG{$nt2{N>iMdlc+;82aBzPH#i}weW zc*niTk)<#?g(^ynA%T=Gj9jYfTA22nI8B_&7;K(GX1X!8z^imAso!5+r;q3j(D{oR zOgxvz6|YpkZNBE|g+fbwrd)R%|NcB~PPx+PxAbvIHec2m>xF}%5PBx{2&gdL3IEhZ z$^w4U`*eXR62B{a&d0Dl;q4hX$lxVG)Uzwy9ymTrM9dcwAav~7_shzR(UD-ac4=^5 z+LD^AAD~RUc6Pk>5A@J{7-7b0_B@3kt2hG!D;k}xAau<{`#D2p>H(1p z3cQxKPTB3fl+`qnN;^@Zkcz-P>1r-+46*BkuA_Xe`EYjS^g%ZMRr4Z3Uzcefof8jP zo^ba?J%vZ()O@0sBMC&cjREZjPswPWe4GzM3?GPV2Flv$MF!KY65x=uEF~HE4uv~w zh|qhI)p9<3DxFz@W45@VJPkUJ+3&KSRPjshO37JTYki z%!~VKTsu6pqh*?3UFYmz-kLlOD^AZoYMr+nZaf4__)*D<4-S%vV`pc@Bvh0Xb^)x> zm^!uxZs=IYIhH*8t-ZrK2vu>}-lu=&gbCE=;xG3hX7nz%M0Pr3+vP%=78 zNO0W&u|-Q+b;eVrtz9}aXn!A%QT`yuIcz14tx;#29?u7KsG-sA ztG`TH@)=@$;9Ok+Q^nT8x?pl+_F*p*c=qvDmGKH-4+u0Cdx{+hw&B@|QVm<>PE3$> z^c50%>~v+;z@%zqMRXuSueR9AZWaT`K;W`*kmf(C5~)vRVFYopLKL934EhhY)beKH z!o2xz=+j~x(P_=z<<5#?JkfRnA|;9ipo|XCFU@*E1R)Jmy)Xzkp0IfFG>mfwL70QV z=`BrcKWb(~iZH(HwhPKE%{B+nN(G_-Rx4Kav7kC~)}vdA&PzfKpn7k~nf`**;#--} z>(Ww#aZJnCHUK_h%)^9XOwHc+dHe+st%HA}yfo;eM;0ZjvSz8f57J-6(iSuN619(A zyyIggpm`xC0=_e<8wcQ?tyE!{4NhMiXXWNG3^J}{^NO+uQ(!9cegtX5v=H(mr|IC* z@D3M@ITQ>5ZY2rfV{4PO);Vhpy7;`-s$PB4-G0J@q1B?kheq$-lVa?8HwTm|l>O8@ zxBx6fh>=(T9-jQ{tA})9@Dkor@l-zyZl`#R8ZZ9MAAKFkYFPlxtDt6i&=NYdu(xr&J-uj(@G_ zt-P&6$o&RVAGEFotQlwRBHhi=f^%mV2q;zXse9viY7dr4>Mg3NQY?Kp$qIf1SaBT2 zSTv8X%^|&D{DC7OG_=|s<_UYH=kAZ`z(4qAVYyExg7EIkT7ZAS(>wUoAbiH?ocn<2 zm^wW8^03JCHzkqzxj2ku2_rb-$Hd%5YaCcO()yw2skTD60mH4!0;`Pm@J%;K^?~;> zAAP}(@9V~gTR(#cYr#Pp3OzjYNelA|o#Eo!mfqJ6Jx+*WG9o=cUybDDbit^sJFp@t z{?IKXW@s?#3+SN11bJMuZP=}QO2z{OQtFLKKFtK5uHbtB8QVdW8z1?u1b5o2EjUIV z949MysKPwLXbeZE7QA%@e*!`OX_E^!=)Bo0*jWexTxM}OY_G4xaXWpGG${gxtOL_F zq#pRxrL>l|7`>vV_M_`%=oSSBdnY+f(%oCqMs@F~S$fonbtl~@t;b}X zd?P>y<3d`8`Qz-9u2678a%Qj2>C$gU00vyAH+Un zp2GPoDjRv26b!zlRqw8IEX=Q+XE{>}Fmh3x@9l{d*no9zGHpvrx3G2x$xkh@C&0AE z1eRxE<@4-x`WN{`0Lq{Xu@FF5A*+mC3~9L+HV4Xm?E;JMHqR#5xwvtq2bI02A)}x? z_$`WZY52zKUVA!^l{kJzFDmNK^$Bu>iDdPT8)_O1g2pY<&ufEt0slibaT$+4hFD;{ zD89;&Al~9Zj1GpDLBl})gHArDQb51say7#2*yA)Sqh7}pk@i3s%z)75I#GGsUF1w` zu&a0ef9}d4X}H=CX>inW3;1#-haAF+Vio4%3-MU^2#f_^tiFVVB`@MwG5}7wy(3YZ zm3dKnqF>h4?g5$(A_1CJvM`JblLdLJ%texY&K1n#qhQ$|l81up>l9GF3YXFoB1k9J zdS>LBYxQY`RuuI?N;7ug2GyoHcRfJOz6srIIR|F~dKTK<50I-2ywOl@=eE{iL7+lH zV^3TXW5(>ax1&l}2j9jZO~tTa1bZ7LC^)R_A(KD^2Ar3+ag{vNmz1|U?s17A2OJO# zrstfYFaL2bA#DOg7n0@dd>%2q0?5@(wEN4IJNdj_9;S_m;VJ>^n+_A5c{mX5m$U8&)sO#!D)JD6upASSjMCDkAXa0+sN^Vmc!x=(+V@OqH4_!?1n`opO;b%gQzR9 z6h`=~+3eHwA!3AINUt&v9dRLcq%w-&9U+SaoGpsNd>l@c(Q&JSg^C`l(xoOIyPP#FMK`@*?&F?{8@8yI*Pdv{ zRvspu_h9a%P)C$}QtWonakv!8u4i>_hWA`0l^^%gj7ZzXkYM==uIJp%;5q3jK3u2h z!*QGhu0zd;l|}_DXZ!lWk|NuzgzbSGtu?hZulwQ{mH}KDR^f?*vt6K!EaR3xk&`sv zP5MT5ArlhDX%B;YC;0A3cr8ihsMm_vQkV@ED%7b6vhP#a;ld=4if-pN-~d)3cTnJ? zlT)1?p`^x1b77jSft3=V2rdT~+w-2=0_@jT%F5ee377;1v2;=|x(*HD1YREPs!u@? z{IgTgY<_yAm z6i-m2(Q#Tm;^T-%=AeRwp@6Ou`l#3*Bl;tD0t4Ey`Me_WA4>hWih#9s_u{0*Tkr}?fB!j@-(RHi*7w~H?(g}1Oq<7 zIp9U@GH6h#QDO(hao)BAe_GY4W`zYg27LjwLx^YLR(tY1E{s$AxB=CqaebOP;~is| zZ%|5z9P~s#j`+pt5al-2d#ME?5jKD`NFGgGEv+1XR@M!CnwF^vY}JhUXrc<4QoCQ!9&j|8K&B+yP9WAFk+X?ud^=x(o_i{pO zsV~=1A;>wkKZ&Y)0L3ymC-2g05ECj_DXL&*ma%U04q$4S)CKHzJXuXN8qucsz3|^6rF8laR86R|2xbtDcBo(%$*Rs40N(#1S+r5XM zO`4jSFyLE~IIVWD(14 zh~QI5l)^;+Hewt!pwxBfDR@plj9PU*BEp;te*iT^UQKDfk97r7V3uWI-@CAOX7zzS zn-hx{1+!c+uF)Yp#p@!^`7m&F{|Q}EG|UVLYy$v)_F}6L{D0P}N(uxNbQ9^9K~7AR zn80(&^b*CT60TwhWN^S~rJxzEpTmh|vco&c&ozSy_4N+w0wf88i;|D{yPjVjS5;QV8Z%Ng`?#j3Lkl#4iWq+JSA1zSh5fra!oJ_dCI-C zHd3_GE7z7G57t7{pKl7q@SD+b_}?ifpfl-sMmNLna@5Wpkhd@lA%tP4pSRJb1+P(= zjE})T7UxeQ?|RT1bDk_$&#l#SPb%2g4q=wRqhj$(E=KztIc05R)~Fk}l9iam^HwtGVl1Fw zyr}X8``;msu|N~X0z}WcRzW0D54xnGQJ?{H{-NrzmUWL+jEdW zPFRw!4YE`2;kzT^cgvUX;4Q~01_%k(d)_M}3dL)LBi?uU%FD7}`WN}x_F#doV>VF2 zkEy#c)Kf!uG-yMG1w)B&o!E{$E_bkT=Ud9Jb}rTftN-aDvt!YxlnaBPwdbDd_v+~N z-ocHw15XR=hfMF`)V**51)xT05hIw+Zr`av0i37!)-PZam^~->J?TL0*hx8-KhJ9e z>nU88YM|o_9iE+p@}*1|{zkmoW*T1WJw~M-*bg>yz6faWZ@gREI_F|I*XLWqVS;=M zY@!`@w?&Zkj<)e6;d2#KtW9MkQv&Hmy#OxfaaPn273h706|T2u&7D`LbI#|Q-gkR^ z#~mP?FN;sS=RY!cq5O*}%d8`Bj5)r{sj zlSmJ!7;qam_*Ys2Na6Gs>+Vdu`OO|Cs79Y)vT&VrQ4X-O@-^6r?o$pJm+HvWftP3S zWL5Vc<1fF-nlkRmwYbN)+r#g;A=@6n3?DM80L&BV$1!@h+EGU893I>I=5)e5p)s%_ zlVfzrNKnnisE%4rW~{D+Ys6toQeyU~Ivhm_1s0-YcG&OllKuuFcXwEV?^D=Z*-md4 zahok~QIR9ylXTthftu@C>y8!2h)8a1HLOuk?%*`&h4ytcp7aTV8UHY(y&Sb)^h?)z9bLFx*q{%@ z%*jC~GvVFm>Bm$s`%!5Sted*ff1ms;KIn-q;;U0C9F(cTDIVI%u=y@8?pnrsDGNJv z8NQn4yQC_{34fb}2Zk`b#xT~X$D`nFA0wK6_)B!q1Cu*k@+7Z3u*b!bDVRU1uwuquD+!i8!~8xl$FMV%v+uS_xyCn7$2 ztJWa!aKmq8u@f#$-FO4|v@{4I6N3dh$wg#zO+Y}a%l=nM*l5R3`%^~&{& z2W{!Ov>BO;)~IX$gS&=+vZg8&{3s3;$fit1;vL+2Hm2&mS5{uBY{=`}Rhu1B3$l34BiC)OJgBKf zphAF-ay3&!e`e^Pu#U+A>;gTP^c9dpv1qt%BbG%IMhWwI!N<(c%aY3}=d<0Zr`_w& z(BLBaGSR#{0A?t(PFf&BHpok@M4aCZ4AWIvcPy6cwaUG??;{}$vV9- zDh}MBRI~%kwIW=#9=ln$bF*D#ftwq9mzOH-^<|8wUrc@4ZUNj-z21kfbR6y7C4I`q zpF?aw8xx;sWA;n*OgJ#HhgUYb<5#FDEx;7CQp|JG%MSG>K^ogDEqDp@DxTJqqJH^c zRS*LZL$s>CN){K0d_~s+pHNV8@=M|kT;bl^1!oLW6 z(O}(y$ zQ*fSo+m+EJ)mbG7V-S~d2(>5hF+kZsw5;0$U^gST(jyAa&U-fX-}|gdJP7$=rWCl| z+53ISz4G8ffIQe@+uX0yW%ma~p%N0J#SqNpul$Ax!Q@?>z&CxJ@oufkS)RKx&xSz@ zS*>A0Xkandz6Rj{`y?X>N;7;1Rf;(GGB^7Px+>yNpHnjQ9rCj?geg{TpVUoWKE^ z*_L=gl{ZE5N|>pvl%?R6J5t}UHG6@N3e6^tls%5yftSS{QG@brULB=YQ!-BqgyZqNcZ z*bsAdi;ufllAKR-0HpvW4IC$-mnF+5Ny#FmidLaQWrMQo)0nE}z_Jf6M)2uS_J=8( znJ$5iT$N6PGT%HxUAC_^p#>OYGM~zF=`&);YL&2_HX_n@x2mMd^DCKC zdgaOyBLj&hya7H-U|rxJH~=V~1qA-qe=;~;VU#{m>_jKWF`lcWo^HM`skGNUcIJM~ z!V2K0G-ilK~*t=rq{@%#s4G}=8T5L?bQr7jWKraaEGQL@cj zybcdYUve>G>_f3)d_zK7OW4f-(%>pK5}mSbT5a+wQXX@DEQW?S1SH7f%-P7Ag32A=&ddlNmdSV2sT9$a@2kzT!0Wi+zYytn-_8pfdh(f%nfi`jL)Hcy5Ad2a-J_gR8x3&+Pg`p8?0*RXS z`sN+NYy&fkOqi_=&5?32|5TQ{o@D}04L}Us>EXK?rMS88vIxcjlwhj^u%|Z^yehR4 z^&Tf7z8Y4Z6t+?Iu%cn zc)Y|ArKFq3U`KIqCR9<sTA;U@@{jqsLFywOsV9#LVD`Lxo7)i*{tsbO^eB>YDwN+n_o)G zO@W8IJqqKdq8wM8yt_kt`vSI%t6~)KhZ*523@8021#mmaPzI7@*4XJFnEU*#9>3sklf+{gOebFaG za7V(EKZ{fp6redJ>6f1dQpG>>pCZm-7Az7o^+H*>{#t^3yTxUW+RpATi- zJH0GBVATrte3i31U5~49>zknRG#q|BPplU9VY(ko&=T zT%nFWKcgA&@)%Ev-`i+c?%?Xll~bxPo*#kQxn(pfGWjC4&w4=&4?EUH?wAK_?092? z!xU7_@a>ViA2;^UaXG?KA6;=J$8F3)8aSu2NeA#aGK6Ivb};fpd$x~)7(T65lb z!Dl9yB!?{F!CmJ@58s4Lg3vKfsJ%gIv~47C=qaO5jj8T@qK4D(m!~MvYEc(oRB9e z4df0I3Lf3veZ z>2uM$MoX9z-6A2;SZ!!s7wLNlwl-9816W#&?E?qYSfz$57tPULIq3GqrROxbKBO3I zjzRlHKD6Q>%z|YQmkD+y=~SydT0Z(xwLsKtW4{HYrLnsv-k7Q5-Y(HV%HR@b!?U?5CvwQtR~~`jsophq3Nayv>;cZ|W7=t4_KYw!kH?;eZp< zy@SH$&wlH%ASz?8!*+A;vkR1{d8=KKgG22$hTN6U4%73|eW*naW19K?=0#YrNZOk( zQt$m>uLwJ^jkW{olTzCS|5MoE#l)YliBj`9&R#aeFk>+SF2H~tZMiX;ZYMgV3dsL# ztAno1!|_nAb2D5Gx(*ZHHuE;BvaUJ0j+9d5Iu%>3;CsBo4)hjehV$j7U{{Wp>;k?? zw=a36Yjl?xcV2qd@csw&-i%-P1Qce%!UKrIAhzI(WbT9s!aMoTa&&j_{V>$lY=!E| zd1*RW&b|+I=G`OEx9-r#1D%|IU+XV2;DamHM$s-gHu8QG=Ppg3^jSc3su0-fO6tDn zT!e#v?7dyjUO9HA2aMge+uh?#GJ~AtAV>v4PDTp37P&}Hf*=#*AP4yk0T#){YK>Kr zEUCtB2gr}jF9|NbQZ?$)TbaYR1JsFO*!7{>``LSwi}!t9W!GGL2IdYcWzlj}&E&3w zsp+UunfO_YcF6;~kn;rWVzdmJfp#MBr)2Fw|EHc;vR24(mQf>tE6Ni*fI}Mwa5|6F z0@+PAgYpt3p)LjKpPiWj?S@ElGN&I2FlCc2QR8Ng);5Q1TE2T5@h} zoH{D|8d+%d_Ufd>;^x=`-N89qnhF2mODnmSgbVxNX3Fkq(pkfYq0l*;j?v`Y=+2<| zN2WZYRT&vFOyN<^hJ1@2>S3RPddE*8{LM*!qL2r4u+1f$3boj2JN%$5&>pa}yHq$! zQ}2SchOpg%NoEUCm&pjf+*eA8r{vt0M#s^b2V?tiO{X&<>gqUZh=dZPAPZ*vH1PRs zCE=xO)`>%$bL)GgNcKSKjb9KbJ>9@6!lC&*hZpIF@KELA!{$1iIXN-)B@@6sTeD5@ zxQ~l8Tr1lnv;Bt^)&}Dl;f(Q(HyZt~V91z0x-;d5+?8 zL8{cA8phk8nI4^W4n_uMIB6k5+ z9FaP~7I-FutjMAy0imT!oipl5^XW@zz`D+1BDSpZo`Gg!1R()GF@I1!rOdYzXOnl5NqdC{#=hD8Z7)FhCWzyx$gZ9czI#Uz| z0kgNe{9LQFxJpD+8yKMpASe^Zq6i6^b*5YEP|cQIa{>0V_he*rD z4Ks%bX~#LPjSqAWNu4{gIm$xkU}+qpV?h0;V-hCB6o^PwLQ!>YIc!BrK1g=5U$E&2 z$W1-jCBoiwrD8J@aUEgkHm@)lXGDA?O`n6KnP#V-qJRjd*Q!ukm6=T`wC|a52DNQ_2Lq>fu8SkP(~08~Fs8VA2wi4!Z5pJ3GvBKh^~nuQbF-13DQ8 z>s}aU%*N+%AF8_zhEbs#J@{a;g3dkn;?N~R)}Bepgo3IPyrSD3J32+@*j9K<0bvdg z$_-~spGY}xx~m9d)N}BN@unM_?c;?NTK9{9We%GTH+KmV-qzTE&AwXT4B2#xAt*wF zLfExul4F@_TQA2(VaW+44%8T@`)lRyHsmnr^etkUL+v%3HZm zJ|^*X`P?&S<(!437)+WLbhrz1gmnt#n2sad!P0Rz$Or5k0#=%!b6PUcP()vo!acR; z12XH7u5jh_rs?LN%G>cqTLBx&;()LQpsbnJ3?w7)bO22?50BcFISD3uTA9j1d82(Q zDg`%RqK()l8P7QxisD@Gi932;Do{+l?5TCZk;}Y29hKspzSP{h_hl7!9~s!v^*wVG z(HRy9r->kR}uHD+p;SXEf2afMbutvXZv|&W%0j-&}M-bdD3|N`P|@Xh~|P zebJrcstz*7K1jrrj@d<+N?nc{?82xdGg-h29#<6CGb`tagMIdbqQQQaJFg|tlBxL0 zM1$!XU!lD?eu0^of&3!)wvKbM0_A3;itm>}j8^zNR+C1Xx7fPy8kfeuI5W!*AV$*~ zgK%?(Dm|r~i-5*ohHqw{$w{??X>E9?b039R01~4%R{*_CGu6D)I`^gH`K;l(k8p%W zHSMzW%RRGhN3_+ZMo~RvL+?MMA5NxuoySGTZO(RKDAzb;@Lt+pX7gkm_PCbRdyoaK zqk`Z1Co(9WK--wb@QtgmaGIZAdv!ja|oVX%z!{`GllCG6*%5>Ia33vf(w&+~I}=-#xD?rm44Bgx zEm@tF5J!A+$we$t+aw0b0DM4$zr@el<{UV0$Dn%&Q*g;Rt_CoU&|yBAmW~26^4mKh z7XXE?^3W*9<6sL{0e=+;VxF<^xJ&Z6lJv$>RhR$^S$ z3b;F#3%IY73?r3Vo@#s((tj;C>yxTgnBfuK=lcodudyE}XcMQ@c3i$Fl2z4i38 zLm1fS5F8HvuMT(P2s=9gnLD;;4nY=1aKu`~&Q)FSXG$d&D{wsD^stQ|+txe>?Hs~c zB+N;QA}1alyDE05>Z(0p&n`Yk*@c7FoNw(dYlr8oEfZ#O2G00j4B^uu;c3J%XWm!j zaj;ud*o~8uEwYK2Hzb{NIuz4X60M{OtajWLq{7Xk(n7fCBDoTWs+9&#$s6_uDkD}B zg-ya(igjU+dn#k6Un?P$tD9f2miFnHL@Al3(VXAvIij`qU3mJJ2;k*s}F z&@1XCD9ZCbB$1OBrLDC#Ez#ccgpDuKw9K46uqvL^Oe$JK>vFMzq$|k=jL>@Pp0p}! zcuQh8lDF%*R`8s0TvXCaqbSyjeF)N8g%sWA+1#{g+(C3z0QKqcI%oYSbl>dXf*U~= zFU79AUH2GxLgXD)YpDa$afgdRPHW}P`F}xm3h9lp74?!hGqXIi&Dz}q&|yf+Rvmr( zHhNZj)>dP+DhZNV8H+h*`8C#Xbba9uG<$x+3WzBMv ze#G_ax=DH%3+0lE;0uzL#B{`S0%{*>l~X#dl@A!Nbj;Z$PlRiQBwar-jN^`#Q$hzx zgrF*rEr`E-x+3*Vs=8Ksx;3+Wt&<5@9sJ;vmO$iGDS*~7P>@-FayBCl+dzn_%yHqP z_iS>9ah9C$%vvhbRz-}0W}Ry8TEge^RKU^2+hJIO7=cw9hn`m&oBP;#3co90xbX6MATH}sfH zTT?Ia^W&yCrs!r;Cn&eIHI6elH-Yov{0FeSosE-mj$7c77So-ywabu_jc9b1?DzLJ zm@+e@*`s-zyMjus%^-C)x-WD~9MT|o+kAhHEvKCqVmd?VKFaYx*w6%y+uy2_Jd3_rZlI9!O_VW06oyltlXllaAdU9a3rmy9H2v4O&RLirK;MCfjGEG14P)tr&XD1XXI$toQF zVfLAOS11qIV2*-|o(a4bXJ4sH9@XH!HF92Ic!uw3ZL_kDF}Cdm(qti2LOMYvJ5Xd5 zxmJEAEZ&4#L)nEc#Q?g=tfyzFXg96iIjXB1cqd>vCj0s^mBljOkGpIQ2TQ*O3Ojy| ztHJzkcc&q5?=?EHF zRIFo_Yg*E*N_|bB88@lqS2pMaNu5n(%bWzYd(H&^0L~m0$=nl14&$=4`;bMP5$rxb zZ|ivNH|R`OL$C>uey#8|J73RT7}GYn1~yPqdz9KE#+c|Q;0>_e@Ix9b_$p`4706ee zeRSE_iFVA*Y-@q`VI3Ct#Ex?~ehLnxGb6QOoRxc;(r(i^QpxKs#L}qk#%cPEjm8S0 zI}9tAB{Nw%Na_vo1!wcYb}Q2GIl#h?TOz4!fV^-F2bFy$IvLx=W>4OmmqUD+GAN~s zYQ5fY-e8cnXWy$_Kn`$K^y7t=g3!%o^FSO1QTR@NX0P`|bk7QQ1g6S{%b-xr0AW)J z;$VrPoAZT4VVbYbg_0dX1T5z%AC)v#V{*rGnyBEv{eS+&cmI05f4AR!e)ImFzx_Yn zFaP}hw9%hI&gRb`ZS-dl_4zYMnEV+e&;ASoPrv4DevN&7jeWgz+UVc@ z%kTcxe)Gxa+t|N;yMFz4{rc_trEk}-AC6x?9KU`z{`BGa{da%&{=?Iz=YRe2&D(uH z8@Z*Ppsi>czSlXs_I|fg6B}*!B-LwQ9Woogt2?s90z0$fuL$E znH!dyYet$q0afn4m~J*Ov#$1};W*j{&($IiMazAjRXY~FnV`nVrd1XVM_avTH%3dgDmD4eV0BlH%y!^aR92zxoJ;YMV#WaGoXo9JfZhowdXDgO)?X{sR{M_ zuBfpqM;5uJOW5Iy4QqeO&3yz2GsZv!e;s+I6-ISzlsVfQTeg89Y#aGSVY&`Kf+4Dm zbj(l!=GCeWCCfL@PW<kdTq(09!@j4c?vy0$>`L#bL^oAuy*%! zxwrh|ls7s^v2;2mRnn&C&e1_N0-ufw!B0j)A0yqiv)mbo&ysVro%Xq(ZwXm-WyNR= z&Y@t08ad~g6Xy2~s4EY&l%S@A@$QmAek{m94EoGfMkVHX!!V?8fIxKow$pLbbAp5J z7(bj{WRywYz2Gj7)KF`+QNUf2;^9%QAX^)t?A&q}ppnWTy$leSbtb?Hx4c!FF>t}M zD`b=}>WIcyCcJK(SQwu-6pH}5h!2A-MBTBu8zWax#gNk#xOi>gQELse)VFNCoDKjz z6~LjlKkh9R{S$y-D}4pXdJU=?6!QsyH^Z#E0E0Ave5LN zoVDAE8YtF*S7wrOv$v%UD>Dfjly=PI@gnQ;nR&CjQG!<3g$ARi!IPJF;KJ#_Ga>?Kz87uPG(_!#PZNsP#zqz zMUwLk!9g@-w6#wUURk%I{Oj)K*WJypyPIDpbH8q|e%)aGxo)s{D7m>fVl0h0Vs|f! zNL>cVk%e$@`8j+faj5MB&!v!M?zQMy=)G-SE0~kPHo79*(w7stu8aQ#LRhznJDE>=%FQ8J z^ytWRB7p&Jpu5q-<^;O8lgRIL@IN`bOE&K}!XX(!h#6Vs@KbJplHd`jt+@ON*%nQ} z=ue`vL~5<_Ia*Zh2)rPuB!5^bfR%F40amjGfR%rJs9^z)?VAJGBVa)ewS>EHgFw>x zae|X5gYeq!Ww(=ij77oD5dlF5D?9RtYL#;40$#2@RJiamo7-aPYh{B;v(-=wRLKk8SHmFz5njFZ+5)<{J;CBKRlhx6N<@cMg$leC$Ha|_#7WUefM|!r|b6RkNVPA?z`W7^mpIKcfb3` z_aFcM(+6Mi?_U33zhQaogpvC(r9+x94h~YVBMn98?wFG+UiqeWBW#_tp9om&JTocE zbqQvpw(S?zL#%cy%jet^*x0ksA$v+pcqL87&D z`u=iDzx(Zu^XBba|G~f9+`ss=|Nfc#`qG#0>wW$GyAMD7yZ^JkPOoz<_r~7Uk#EDn z30RW(nqHx$t zDiu6ik#gb#VwO{jD$xs^&&WMAL8_vs>F2`NN0lP=>y7>0ryoDW$MpyQ_Tz-oB441+(}NM{BXLVpcV)AO`@A7-vYcwBy*AcJ{yEI>p+I5 zUS}jt%op3Bgh*?{d!gaFyMDdHzxn*f5Ao^Cz5Shk`s2Ix>SKKV_{V2%?Mq+6pWoX2 zy1ef9)>>v&gll_Ly7dFnG$3%PiS`RzG$pv)_BD?-OT5kc_EP5niyVRSoG>2FI4sYs zgqS*bV=^H~4i1&@UR%sjFEDL3ZRDRHZY}inge_@eewxbxox@0-;xGl-^q!Sq<90T` zjcE%(vefokW#z_feLWEclb;P!O9KC=lH0UurBc9s>as_w+ChYqLDqHR*<1UU@80it z=AORvwfp%iIrrD?wdlR8EaeIe;Ujdmz0(-TPR}CSN~LJI*;|Ypk%<56nYK2dSpsTP z*G5A#CWOT*Bh6ZyHA!h`hV=~EI#qNwe(OHdW8d=`p1kvLSK*%Hs%wHs@Ld0>PQv`k z%$8?$tH-VLj)Jb&N#eq@ivkbq_$Y;;RfSBK@Dh&0qCd}>CBcf&)Fw++WB=x|ThEP& zuxOeO%cuXuqx#Yp@9|O9*H1SUg)|_KW?NThjzL1x`bIg%h5-uP1-g(e-iGr)K)3b; z!#KA(jv(2o%dh?l*_@1I)`zw~8$yq)&CK0TuqO!b@qL+TjnT8U&6Fo!&t3bm;^n`^GC zkJO0qPO4c_F#>Pt1DZRff5g_ZB4ZNfnyyA2!Eo%1Lugw$F@oY)7fK=@?Qx5^0R)7ZMRjV=nh~FErait(6TtK5NR*awgkU+{d@rZ%nK4DdsLXb7)(_hE zF`QcDp?l)&hla3WUXNRx-_JMSzx(lr86RK&hv)9l!IsiAe zH!;t3V%rF2A0JW{jM=A1qcaC#*bB4})GRpXfNt;8VZPH?T5@X0LG*Q*=wlxcq`qvh zXB z>C0Q!!a4x~{^~PYKZw?3Q+x(I+j%?f()+M{HdOp=r)_3CMe+(dS2gc(x;OsL%z>uG z;FvOqvNs0=8|b~6@=XpPQMnG=Mg{P3fs}mIV`*cy{7!eg=9lX2fW$!QbpkF@iaAJ;lNnI2LGF-5|EB3nvD;(?n7NbscT; zX@`mF0%V%!q^U=4!>!VR$$-+wK!l47?*J*WZj#sIYd3qpucIYwUILQ`#HSsw!#Vi` zKywNw%zf46ixW4B-uz|4dSTC#%WVUK=WhoLN6n{YSq+@ChYdS)tNKX0n+-0&sd;P- zd$^x}`Tg7X^O?K((pT+asheKw>-_Y>ed%z}!~G=xk#j1uTqmBbHp?25JEtwJYe42O zUf7cO;TmwBxQ167D!+CWa2)5HDz z&%XcYAO7$UZ(n_kfA}#zeSYTFzVrqBdTW2nt*t+ONS(z;;XoP}%vmK$S%LkkN@%l@ z@vvP>_hx^5&-V>{h4lpd#&ca3n$qYPaRDoDAbmJ0@pdIfq>T|Y;ZqdHK!LIP zaRS^hPx9tcNv3@u2rw#z23XwCwsc;{;QOME4Jr|XYin@n4`9TTh=`2Di*eLsBOvtW zbdktgd<(P-SOQ9QaTyqc%I0RjRUBM; z>InAC3m+Y9LBEHifZ%K9&ssR}%IBOkyJW@oGLOj?>)I*SH3C4O;$i|`FL947+upgd zA7?;Ry*|Eq;lZ@&q`jKu(iS;98x@g#9*Cf_tuq6)SvrkjO0sGQMZt>1L4SK_Zk-hf z#RebX+R`ztCD#Me#Z|$_!MJJGiUBDBj^57W(&%5mdG`-LzWEp*U!5QS`Jeyz>Vtp& z!*g?_7rux;|E$Vu{c>~rlHe1jH#w9~tl4bgGwb~Pu=AwFSswfp4AG6HW5*(=%eNcb zXfThwM@m|C_tYBsuLS<8n_|!@B*Ugp+zp4+B_^*LyFE_#0a{5b5Q$d4xysp*@94^H z9^yD@;vo$wlSLv+#Dz>IiBMa|Y%W0Jt2@eUa6y!2xjeMj4{N0^nT!z<%mxI2 z>*U$B$Bc5D{Ao65jJQpkp4?y9uB2c_@DFRAo2OwGL9Z zI%>aB;&wKN9=(ms+rLjIIGfJ^RwlJ`4KY?(012K2QP-)4O(Pb*gNQ!Cy=f+j*}r*4 zl_Qf8@R4fk(q)WjC8GdO(5XV^$!0iaN+}6KL`&1Qp^zO5NJdHH6zlkG^6+LvbaVqe zjeKl07j2`>GQ2I=3OaPO*>~2*so-CKc=h(p4{x4ZBE9s5`=xW4v27h-z)eiy@3~H_ zHl%}O4oMMsp7WY#9A5M2RWi0l(-UdPS!oR-KqxdN;ck<$)KvV78$-%$|TRaFXewc+|YmV;rnOqzuy~8V)9_ zY&|BKo011c#Z+VG6h+CmRAxCK*76jOyn%os4A0xfgzv}DL$wH|Uqr$SO5le6R?z{+ zyvg)Qecy_-J@C|e;)58EPbYNC)7jbSeQ&LPQpF$VC3#;J3Rs;s=PpDTWsv3NXzjSH z5nbypjkSN%>3~Ghpl4PdNbPQ-`r2DkLYYgDDb3`#FngTT9-q$Neqsaj_RT*(cM$W^ zm+t5H)L!e?CGTp5ZMd^;pf z)eZ99WwCE&Q^^vZ;bzBFHZy|HC^An~K7J$-9`32H0j6}7whj_YAEphExOJ4+{9p5d zyiUmHMCJ@-%c|u33qf{In~3Gv*@DGUX(i<}S}KiHZQ^)l#@;X;EKWtg#epRr-F52Y zlK1n+_wQbv_aA@o&#!#%kMZf*M9T|b#Gl{Y^g6%J`QBYQVmRsZ^s{9zM%>=%&eYnq zg;;_Coyd?vJ;u>UW^MP~fsvdipiUpFllX(Q*=Ipm)))CNm)&>e=-%}tsMKA_h}RCq zLmp?n*o~LMz&`~=dP!yNZL>}AehLw=k9@XH!J!Hzb36h2I(4RujIW)Zkv3x@Yp7w_ z*gbjB!&hNmY^@ZFHV=#sNjV?X*ki@x_w@6pSHEy@`qCHfVT+nxkJtIjuon<(Tw<&f zv}I`lRH*}ntf~mzx&^=wkX&?kYFCIjIgW=5{AI&Quou}4L0A?iT;>`lg@ZM%tDf3L z*WNpFlbhL`+Dd!4qhrwtId1vT*ReMH$TX6Qz>$SEcdE+cl2-Xq4>R(&klTF_S${DssH|i ze_nt1cYpe`{x9!7{P5rDzrUHK^xuB17ydW%$2V_3zj^mRt@l5C@X!ClpZ@y)`Dso( z5^{j!%E%HJo-Q%p5w#ZT0PSS;0BV_RfFOp-+rvdW0JolGRHS8j5E7o=4)dYIHl+Km z+=)Ha+ZZ$$W<#$Ghg(LUyFAYQ|9|yUc;Yb_H6+bq;8YXri<8~9a*(T1?nmD|!AO?}ZX&L-Q zt$#cFw{h}pWpx&rDKzDjE7U1xGv`;8rVCtZTP48p@l-(nf?MmntYN)1GKURmapsO@BXW=Lt<{~ezo7PAAg8FUiX{E{k1OJ}mXE8)t7gzkn5q(h%G zr&3r~N{zi{pl=);Vk{u5n!0n;RVE^al^~qyUXRDHKHX{$>Lbd)2(@wpHmU<%YqhZp z*jwsGD?z>;yU+&$?U)$Y91!`t&x2rPvTiQ5onzyGStFmaTnF0uF7wQ_j+AQ>skJ^1 zFMhW^zW?;;)rrsRxf$b2U%YQ`>QiDOjtrW+A+hc1R6eIFfuXE7RDYL5hJ&C0ltt_-~ShB&i$pA@- zA(oYTZbG{4fP~eDoBA)~pFV%|_4(C#^ERGaN5AytdyGtceJj^JTj!8tI2(&S>EC$* z>vysuf)s?hLUkN^^U7%xu}^u=1%I=#y|!J9u#xsaN^+APM0AWGrKKWd8fMspNgvr& z2jQZy#|R>c`CZ_>qiTiHZ+s97HFE?=+55mD+Z{6$EZIpFTgYYZSiq(6PewIr>ibqR zbe475g;8sDT=YdOtwC{Q6;j)Fgpy8Lk0*G)WqJ_&{tH$}$SqEFVNh)Pjw_acoKJI(NqO~e#b{f_Q&C9?*fyZ}t97TIcjv~0fR#E9pBe$o600+Bq z#hF6$lB)sMVUgKG9nmNTc!@m5j()-h4+Z&pr6z)I_2HKOtMmS2eE;$NkMH)Y^@lfa z_j4cC7ruhOG;*ZbJ9ayZ?x2^hNf~oil-;|Q`xD`>K*v-g<~lXwf`t!@Q3MQp4B>Q9 zR?ykue)PCj~t3ede(R$vo8I$yJGOU7FzS>y5 z=O~#P#Nfo(g4vz}Sx^OX8`E$WOnfNm^kYZ&0A`_>au6jU_9O3v-6lsdOG8Jju0a!K(>>fLnKY*% zQ5FH+-Gx7)?XwV4kxprSPVf?sxAbqgr62s+VdG0*xu4(B_R~XZ{Y-Q&I~Qybo%4m> zm}H*9SBZ@J#`sM|4^V^EmaX)b+&PxM8cfPR75Y2pD>ybqd{i52+!|on(mHhg?STq8VD4Hg=jZL_Wc7 zcj8EON50|Kt0G-zP(sn21oS(#zEN{sTT&dUkF#W|j7YLj*^p1$me=&qLHc1ONz78I zW>D_#GTp~qi64H6q5TX*PjrBbYDdfvIp8Gt383GV;3=t#6ZQI$IxqAQq6DF2Jl@~m zk%oEoY5n-|*~Z38U%ZETGG}^EV~9Rt=9GNeQ0PZ{rGwb4n0g*bO&u*wp^CZ@Bu&sU z^H>>*2ugu(4Dw6o^kGfuWf5TQ@E zsVH>k+&g1Zp%Z(?V`bx)8aOX~*?#trrq@}&+)l6AcAINWBWwbYowLr;0i1iUYtWk@ z^(QzIXOog+Ekm$Si(DKJX4!i*Nu*lgSyhKR!!|#Bn^V#?x0Y4WhXn6A6#@ zilsFlV$-@jfSr|;Yh_u{jw5`M0;^EbQo;4;xSIeeol-`de%WNbawwd!+M(*jL@XS} zpFj1P|K{_j_5R&?^ZnQ8KjYz?p8LkW@CE$#8{3}V#=c-e4?P|d$v~d*4Bq1uTGX2x?63h zC-fVSXLUOv#Z$3?SZVu!-Ga55!^;!yZM06O3WOC<)lx00G z(1^u$!a>gtn{zC}cnd&FzFi{8l1uMYZ2Pc22S;4Ujl457ae*w>I(*BF{&rKxm35BL zT&jm9B!k??g1YxIr=g#ka$>LsEGy5x)lRXoV=_{2QCQX1MVwj&^ZFufz+xGT+43xU zGms*|)2oS51eC3@O%}+3Ua_KY&z)b2KBd#w<5AAv`g;HI-K&4}x6jQHU;5fT2FAZ` zc0vjqFVZ_^1@9E0KtbXqg~$%lBwC&}g(!0x@J_Al>ANn{ePXjZ1?^`!vNk7> zsZYfB4ZhU4LVDT?DjV;0uq3<=rN_+Q-} zbY`aNl_*}a9 zr7zmgZ)W+^u?i`Q5m4T0$;DQ-Yi3V8!CT3a)ao2K@-b4_{$VvC)LT_;*Pi32l^F4ycA=gEAq z0^C`$yfU2Ewpjw{lyO*gU~e5GdJY&b4poGa`)&wcrKQtp!mxFyLq&*ofS`uaV7N59@z;Sy@8f<7CZ>Tp7zsaUPOYf4E}tgi)p6j^A}Tox|y zGEb^ScT2*-0%3g4v%wI;3~rk;@op_s7&~nsuO#V_j0dQcQUOUn-q%nCR_@ftOImR< z>0%pxL`NMAeD?u^*e9?`)su$|?W^zJFO*AK8O?MerrvXIqd(Bw8de+OLhy!mEx|cq z7_STQ-~ut<@?)EMzd7f*A^!_swa2G4eVs22*f@pW7Sy=By35)bMB9lzl}P2vSpZ)& z-$SG2KF{^PGJKCkt%$&+*aY6U^3ZMFs>4@Z+UFR7U0uy(0lXL!N+m$kGrwUCv|bQi zH_pS$@NSjnTpTm;O)QCRI`pYj!(l|uee&`$b!SVh(DT50oI$UR>}jo>J$W8`SzUV4 zJhCwXO5RD*p7iLFU08O2s+rc~BF!$1ag1~nWiSrv%6Y|b_K$VeQd{dbR!eoSln#=_*kEi2 zkUEr%vU1Ijk>ZxBWpMH_i>F93lUq3ppGT`o9aV{nokin~KL>w2-q7bUCHyb`_}qf`rLWn~fCGPu zjE30;iZX}F)g6pRQbd6KFPY`Q3ARnNpzl#-nU2-r==zc}FCuGPSAvOtb5X?km}edA5|&Bje4u0VlI|ijSSg=#4Uy^cghs>gqqu8h)xSe<4c5 zKYfmm@BHnn*l#{R`zn6vEBQ;)B-g!;=9MLOAE1pi;&9-27TWrZ2V3c0H-c5IUi*m` zaM#9>?wD;)&P1*Gg+P0%NNb{!4J4<6|CSFOGLkOtbJ&z5WAU?m47xPx={{>3#x{+T z)sk&S>bpi|AffxDaipsG0{xh?oz~Va0=?iUv0T|C_krZBRVd;O7Eyc5ocKIVh%D%$ zSDb{eeXimq)?*v%_x|qFn^*B^`G;rYqc45+9v4mWbRmNqyaKb zxyKJ|3=9z^k2bVwmj*}QyPoRw)+DiY>0`r&@KVz$HLaX%rN~LoLCLU+XCk7jtPNhp zVxlvs^;o;!ZXp~LFlxzW+x<4STBWbYlk?xKKRiE0dg;sd?M^j+!9?qdV!d(7Xr@bj z&uJDS9{r?L(5knI^We1U3C=bt$vB*Z)ipcdv2*s5W*~LE)zIoUUkqmClpJ{}rM_#I zf@bNIkz3>6@%Tk8rvvHsF_yJ-b6grh8!d7LG0{$9CBl;>y$>-IU1n5)%x+{r)OWhFMaKPF*I6M z&OO>DxaI7^H}8&I%_8mMJrbnyyzOju@|Y4=SLiXH0NU2`VC3~21su`HnrEGEm1hjC@0ER&(&gX8fa}>M>^7CtQIR# zYLK0X>XDJXI0B&eM(vUmc%Q()YZ|@rSdBJX2B{9N*LPB2>GHS+{w??PAK&a}c`q-0 z>3%8UJwS-hrN?S&tvU3mWU=6-ijl-Dks9*2v$2R}-W0_+rJuqo&!ls-WhLrD3sJRD z2ck^O5=9m~BK8=IR`*VN%0@kfq-oE`E{2qi9&J6@B=R}az_D~Gr%mW;Q*oAzlz;*= zdXb6i280=%n(QmPPR|^1?k$uYY@XIz4oH`ru3Ap}w7f0@NK;y9B6h>M_Lyw>>+|OO zA3r|(8GY#s_e(dlSGyoZ+PC#e>xdjjPmKNX8IYy0bqtE1!JwN6O1$Pdbj`L7ih=y3 zG05$-O%aGln zGx}F=-*5h4&pe)fW^cFu&Uqt*8e5W0BvN-P9eu&AhG{S1L_(xWlEaCXy)!cj#YnUOJ#ZjxD^<;Si*R6SbnWNVT6Wf+ zsdXN28z;=^{!LeEJ19p}ar|FWB=V3L>`Z2oqsAz2Sj=(0iA6_*_fsr7zlJ9r^1CTMdq1 z3$QpTUNYXKgVVrtK+RALXhjre$&G|aTegeWBq+(iI#e25y`T|*I0u4StPcZfr6G0- ze<(Ios542;-%H$QNPHvCs57r#lS|Kg##2X3u_uU!wuWvhFISz?J=*GIJ^Gxb?1mIY zB-IOE*~>wEPPb!@psyN1tI%(n0Fbg5 z4x%j9NgnC!?O{h1jTc(8!Zv=e`(sfxRF7s@4>}NKCEDDotVuJbGXn8RQ+pgS{N=}g zdKTvW(pT-VbWy()jt3o9kl_7nej~2l)&@xv@(jwET{S2IzvSDV_r zPi6=>`Ap6{aGx3V13Fx5?gC(YwZkPf-EjkiNiquwT%62c$^pIvh_1Cf%V`;iz`U>Z z$La3xKYjlA=H2(dxOI8ytM^N1;aL+-dlS?tH|hth#rE6HS`f|b^Byn14$It;mJ-#Jpl^G5q-_Zmfda()`gFFC0!rZT8; zjc`+}R465b5B-Mh!Cn3Eiecb$u;3TIc8^r=ue+B7wbWtS`);-DRae{Fl``F86Ok+D zx@VZrE_OWCogCG0Orop+;V?#@%Hc+DLcW}@-q?)>nSuYGW1Wgl6qfv$U5|2jeNOoX z#Z;FxIjMonx(B3*yOUR)gmFrah#`F+vUm;bl*P`2KbdONtEJXj6KM7xwdKN3pb_O+ zfS8%{bb#U37JcA4&WzTk?xR)4<30WB&wu#%{>Sg1dq`jU!hOq=wI`24&tJB zY!soXXZCC4^!np=bWW-eMD~c_uaOPT9eE8Q3rY|V{Y5_u_h#`iY}SN=mp|?VUxOWz zta_ONFva*DlZsGSW@VcyKCivno_F+sxKmGS)uMmXGycbq{)^A(OJBNgpV2SNU6=x8 zSx<(9PFi19j6F}U*nQX3Vrr>srK?o9n2pVU6O-nHn~mCVatTKewyJmsve zEklpQS=DD?)%7y#NWv)EclU{IWtVq0$myDG|bws$izSC^j1?@eCH zkAtIs!)<;4?p-XfW3Qf;OwTTXU-l|~%MAYV(2g6&0bO)fX0%9CL8}lJDKfQE|2s@* z>L~f(?ly!YG-nASHv`7FTWLL_UavB53*#e4l!|=DvL@kq3{x;k+iVsvukMdSq-v}P z*7j2}5giu41z1?e6h_IQn~Q~%ln{8r^~`jUd0o|$H6H}JJESqj+1^^rDlp_+Z`TH& zU~ML4lE1~vjeKnQQuqDMocF``zvOa!=?nMsPAa;LuYn|k4q~cNt_phsxyMG!#Kxu0 zeQE%G8D;Ly+vW(%a8oaQD`M0^8@|`s@;xzG21#fti_mh1Tydg|W9h7!HTN=o_}ZTI z^v5Q7$(*(z;VbMu(w10&Y%sg9MU`mU1|;3BiC0}eXKJ#uV?S-OJBTin#Nx>MXm~D*H&Tw z;C1=jGedErJ2^a~k){R$9D)5nscqR+PWnJt)^pFA^3EZ}O?Pc%=}0Dw=xf^92@@&a zUjs!}oDtt@Y$TgJ(u3V1Ngi~7Q^lfs4l)H+f`%mwt8rQU#K8$q)4UG8AId64P@7hn zJ<}*b%Uc&*fXK-ij31nE!t-=m?C_ntgxB6^r4&rPkF%t|`SAU#C!^zY2jMS!<$gBl zmDlpMg<44{!bO~&s39zj(@3v}Cm9n!cC-{LM)2l>*4&R1NC8L1xB z^HWAs&bn&LW0bY_QP{)X-SS0BFr z1%Ss(U$>v#PO?W&qofUnXC?0;0UY9ltr7`-jGKVEU9+#!$6Awa!xk%AW_72kRaJUY zz!DSwA+kXZCRZG>V|CHRFS7w!TXXk>M`-5MC7`GP$bXE1R*zcuZ8yx-*XjWRK$Z%1 z2^vE<1_%U39h#yv7DY_qI^KbkiOvR(%*xEtv*{XoQgOaQV>i_~Td53}7?H2yPAf@P z>Fs=DtI6O~j%(Saf z)m`jitJXsTp0BgDl85YXjhw&#@!fv2-u&W=_oc7i&%UMqcYQ7Pg`RYe^_R1rl5w-{ z-cQ~D#}x+VnCU{BDhrmDv~=Gm$CR`O!yAFBhjAxG5nm(0(#s?6%vzuu?cQn>h{)p( zQ9wL7rw<~fePhqXnmfMmw{wolYQLpqCG}q0NPZOkJJp~Tm)9`2_7>Y@_HledgjJDK zGCPz~4%DPAvlR62(eDw?N%bV%QqJk%czVs@7?r;!LI2wKM?dF}Kk+8t0r>v-gZ~1R z|D`YE&z{=+rv)&;|A;I)R^5qHJ>9-omt8MF+r)jcoh-Us=V_#4Ge>~zy>st*$f3wx z%_o1aVTILbwf2_MB42GoHO4~r3w?4j#>lm$p#O5Bv*xl0ZzE?lpa+cgA z4eM#HR2>dnsA(!C6E>1uPiYh5>M0m&c2yyvM7~fuWt0`y0qD6+t1_d)h4&G#?IYXz z%7*>!H}Brhw_gb!f3<%6_#dCoue|Wpd-%S7T`qCZG0wozlw~KfJ=5FT%}U!{tHv%aNiD4Mi!*ISR+cQKX4LViBE#Hm6|f0W7;bAz-9%>DNtGDT0XuSP8s7|n z%b^9any65(9yxWofWmH}v{v`-E3}a8SjTYUO8mdnyD z0fCVX=QSwyP~|;q#2_y&u4QbO+zp5z2KI@!8uRVM@K+_LfA+Qe#od?rhxO$}_!6lJ zw(o1|G!xWMd~Rj9u8__EcTX7})3SV81zlL3lqpAZ<<@xUmh<49u9u7`>r{Jj=HZU~+1Kss z=lM_gJW*L}Z#+NSmrs>RL~8~x5TzP3U9N3Ia#HhYA?bXDrO{b>r(!IYw*7nK^@G zq0?|1!vFm8om$(IFWb%RVSP1qVgwC(b%Zw8Q4JN{8pU=K#zqsEjVxV7YZ9`A*axOo_+!2gw< zQJ;PFetAZfALy&be8!PgJ<&TEyU)a(!dsxfhu~YM2F^D!T2oQIJ1jZj4e7n?V4usQ z^T5He0nfjDGTsjGrXdajF67frS2@Drn+4>?k~rXWyZuVfy0&3h&DEnYkT15kN|K%kG~OL zJjI)9@m=8ID1iTKsRa1K6l#OFKMReRtjmB((!y@nA0 zzO!gnBhI<@7+nM*=iO4)RBMzCai6FN@%|M)3i-q@#4_6QmJ?CbZ7+wcG6Z^0xaQrqs3 zDoF&3bS=!D=c2%azOsR>aEcCs;DsaCgsbQJ3Spg~VZk-9?HqQ7aNkIj1F(TUrjaFl zwnCU>FNxe&P{H6izSGmAo2L`?vZX}8DKk82wOj1)-Lw@25Ek>=x(pr)18LP9?J~vn zp#iz=h|T>JB7R+(x7HiMM_a>~Ix;>RYrIig&e=oJ)*bCuMDw4YtN-b9KFV%C`}+Oz zbNzE(Gwj&Kg!Xg-PT%2!Kf?ulT0(sGv=T&SH4%X{y~0D&mSFfySUb%jtM!Qx7wSs= z3}~JLAcci^4Ynq&Zzd4=CYV8(YtDPaMW{3Q98BxLhNYQRWOz;8H~<8`q_%RYZCt4u zu+z4gNT}IacK901bOi@N@Pg@rDZmEqrgPx*Z%T-4FE4xpstFC6qE6#B==+b~KG$QP zABI_;eEIG_*4NSR2*lq{oWp}$e(=)zlTa1d8Q_O-e|=l+JC6C%sr6FY}8j?m1pdf@b$X5qO{o zT-cKIdc>g>_#-8g@X&NIhulH?JQl5 z0-%`M1ZRt$(-J11)O9smYcVEwN}+ot=u}OOckt+q@&ALF5WZWkxnwVFjK;!&P3&xj zOX+rvMPp9pxPc(6mYj{`6VjUvAj{4}8yhkaYQQ$+?!b)zh-cP#lr?-IJr^j1U|s>26m_I;keP+ENQ1-u8ZytWpn!SP^~ zJ51_A4+!uByf%Asb)W!WIZ`}hQX9Q|&}xXQDxBe6a&Mbdg&6@Sc%8i$6y!^fQY%ux zallIM5S5{@b+*Vv4eUD5TmEWGHSv*niHKH!u15&F2rV>Cn&i zC?NXmYj_(F{dOA;8K={ZhUm@)Q7;!DTVP zOP0jS?ZY1)Vqc$p-EKe6uViMjvy&LIWsLzenxof|vmueEf@m89PaQZwt>b#2?N!Z& zN=oR^i4F-bK~+GOXU8BL!Sumn4~ntt(BcVA?e)SVHtcXL;F0fkZf2;|Lzx7JQcgRw zpMj}4$QBz^sSW>2Ar*}c)b4G!c5u8Ig4Wrr;oYh=3OqxZA{y3L5CMV$afZkoGK8^b z9h--(3KNNa`&j+^pWgnI-%qqW`P%(59g5#*|FWK$BQCNiuXfq9drVeqxeo1xyzHhu z3L;PNE+-CNFeK?lF!g%FhW8HTlsT*mF>V~8bClIaoo_=%a(r6BFbI}^nrzBsR19vb z7k$M%kTD(v3egl+%*So?4jwG4LCI1!5hKJFr;V07w>ry#*U|>^gWj4UV9p&%SoIKh&>Fnhqnfs&|YogVYtQ;BjHD zO(*74qc9$UA`jt-fnN0K=<)0-c63L(m2O6+1}mdIbSU$^?7q^26o$cMU_&zIb0h)W5-p`hUG9M9~4;*k~Z3 zqYHm;MhT>#Jp@Hw9gc<;S`#aybu9`e0OwU8+m+l_b{5mKMAZ0<> zvk?9FLp&I&-G?n zSP4gU_T32!$c~p1P#N0o6E&yB<`V{;gy}*3=o&j{o=q2NRcxVXLUU@e)4C0XHJEAk>!Kwnj-vSzj z@LLw?q8av@`AeT=kzSIc&p>wUG@^yOt1r7paQ}*4f1iEr?q7e2zi>QCLWV20KH%A) zl~X-HbjyxVY#T)iLu4*|57}X2mI(&V5(Gmyx+|()aG&F!RE4Z<-?+(LVDV~b)zTOs z32BZ7na@`I3-8Jo7~#Pc9Jvk7oVlBH+^Kd9+3KjdE#L=h1>T!P+W^K+${db6feG$R zoHFo(WK`$~@3t$l2Iwv3GTXp$<047Qg#Th*pGrJ_RXXWEKN>td`{LctfAx!>1ijUx zT`spS(g2YQ)zGcdU>qKOsy4`uT)5O4k9mxv?J3rd^pOZ8B*O)XzCG5t2}g)h94!5P zA$eTGYaL7gV*qD`V2R(}fyuz)_1WNV*n+T&1J?9<5!^ zF+J>4vcsAp)RF2aB@Dn2eoO+=c21fDm0F`Oqb;i%2yo-X8f*7+#yA+*FzTc2taZ?jI3nGP z>~;(H{a@;nFWc=ewSVi=SS0Qac(CMw#GCu&ZfTpi*p?6`92<{}QUGGw0tJrSrqbSK zM_5%YR@OeLdsr0q6kY*?L=RphC^HP==th8rBhZRs@ZGzT4Vj&AFmFD923-etFkGC= z2+}Sx@*D(a>+nk=Pk0A9U`81fg%Z^l-h2c<8*1k=y5TJ=sSU_6K*ZS;aJ;9^)V(hI z`BAyeK>Y3b@cHxG#|4__Ubp)Z;p=h6X$-Acv?*hZjS48O&EQn;1@@{#rgG{3*4TW3 z{gGSb9_Pp`hrJVT0zA-6Iu0Hj$|Cc?;xzgO#A0~h4rL8`_;EcFf$);s5g|37D3+u- zDI$fsPg3z|DE9@3;@Edu)@A}$?$8Vj8k?SRv5>^rkJ^oG>A!z?g~M~@M`%>jOO zHjvm7`_ix|VyI0)9qnqxNuif1l_3MvRMdu+P@~%&R`ntY8)1<8n zuDQ*SkA{d8>6>Db?8_kUS)#(;t|I|LR=W;f1=%s{8qmjF$+!mIZZ1z-(=bLS6^y_g zJN(COO%q^TE>uJS8Kk!Kz+N)cRH{Tj2Im}m=<8E zq|BBIA5-QAh{Bg#AJAFX_pe$iGeH`7w|z^3DJf_V@9B6p9#ra`{Div!doJ#~7HSoC zv9oor-Bv%Hg#Db$=9dHH$O2E}z-~Z9Q%u)c;WgW8XpZp&ZKtiAc#tY8j<>hp*H8AL zh5WhK?e;js`^!(2x;w3F@H8uFB7lLC7`#XB8ZGec*?qPnds|6k0vd>Gb1 z`DEsajbRwH5HUu(a8x|1BQoizm5PqUE`Pyy#fNXF`M*-)&a;M1DWHo3ss3a4_OJtm~j0Aa)iXYsn+XG$~%8r}gmFXfrLMIO%6+cd)4 z3p5PObC_7S9L(s5+<6x@+jhQTd^;)x*Bf}XY+TK9_RIBcnkVLV(^f>*Cz{VsxbP4wT`3n(o=y?x2^=*8*D zm++P+`gLgNv^&F#*0&~RI(EjYjd3+L`MC)ml^k}6K^UW!+dB~P2k6#XU9lhwop6yB zf!^PE(Ap)iNyCm`Jt%=);0_+W54MW^cq_X!salFIyqLQtvax*}L zq|Q0RawP7az(0liggkU-ppkH#`tCr#OZKfQUB(2B`p(yvcxl8qpzDEyX(8WY!=!O* z9XOV3OVLDxc}Z}y7PXoOJ2$jsoO|vx1-p_4KB*1J9G}&?RVREwCfgwzmcXRw*fr4* zKBKo=IM#1o^8fic0SEXVBkS4M@Ah;3Is|ThbVNfHteOw^3?z4IYlHV>P9@*qlwL?D z$JP)ABSH}#v&MkrM;Pv&gE>qR4zjE7>}OrzLcPv7$b`G`F1*IX zqV61KVqS@bPqht)sr0+N(r-S0`1s-F!>7-0;@x8g&$F-JeGctQ$%aqtSd$z|A1q~& zm_a4&5-Ze&XW~QL9kV+r3XWz-ZW7$Qc#=1`pm*$ZfC1%zBoBxq3p!rd^!FNb;eSPKE0f(s7^#aL!RdLrqMv39mVl)9+#rial zmQ|bcOy>)jY!0W$T7$vO#ZfqWZ#d%z2{5E`-#z~8pMQS)=xO@wt9C1>{z?a+g*56$ zC6^S?@)~O~uy`O^hKXIGjD`>m_J<1(0x8Q)XcI)24L#xl`T)q2(f1fS75OPT#?rE7 z0Easm^y!KJe;=cO5|6q?K49+@n#+`l&lcZ!rz8Xk zLSal8g&E_3YuOL_; z9XC&wX7gMP(o}#LTH@O&4i(~EsJqWKd~37dR)i%Ya@;Ngx@3o#I6$pw@V>9`n5{MC zHa92<8rpc8!$g`p11QMe5utB{pZvx^&hfT;2sb`9I@WOuCmcd_j@vZh|MG|b_~XMl z;d3wAZJv96{V-9s=SDTFU;ZRS)|HsSKBR(xw2wI*cQE8?8O4>}1Uy^3PA~7?ji?t0 zB1qCI!2bi)wOw=cd4S+~}}2qFQ!Y;GA#=7glW zzzc)5V<5OfDAnhPARe$yNNqI`WOw94*GU4AUwSaYO^6ZYIXLA3kACp}R5iXa z3IET(efwe--}Y|t?(NTyFwW1udbhXTuL02u-xP4v0USM!LG(y%(`M7j7?TEg1hz~d zZOY{sRDnQ@Dm!Cw-D(NvG$CqgF{ISH``9}P2W1=JuVVN!7qSM?P%2DE-RV|AQ+>fE zqFqoP3dA1R&>Dld2W8bWkYJJK^HgV^45l@@GO*olHo-!?HPY=23y~tgkap z-zdjKpHqkFIB24X=bc;#72Gv_>#T;2ss^;CvD{~L-x4uTO|S&ACm}%4hPBz*G3ECw z#()o%&8}{~+OXE(cZUvvtu+8Uf$dzi7Z38Gyv)oLMx)zK`QN?!^z*Bu`q2aR$(Qct zf!e-tv2vj;aISgTvM#l~#};)vTOms!&w}E^I#dj_%&&w9*`{rdIo4XPsA)ApwiS`T zv*C>aWn%%p*Sg5+kx=Cz^asK;m+p~#yL&rWD^I?5VYD`WP@8@1Ia+B6CPmy@^mc5J z7$9%8fMGn_FoO_8+cOl6Kc<7HCyJ<0N`Yw?yBK^@JtO5*0NGkH$5MBKj^MT>_0!w; zZ@&W)efE|6`jP%0U#wB>hxXt8$N%_m7f_$C|Fpifkp;(aoRD~XBHh}dpoiZeKOI%GA+FhrPRARC7KSUR7SDk^ z?(J)n<3<&RTqWBztT)xQSSS83SDg_vT%MatP(x`_qN>#y*&qU0X^rD{=EA{&Ft%B2 zdCFvk#<9UCu#;8Z$KW8wE7+Fp=&Ri>%q>2AdbEst_GSC!uU7x_PTULnt-@b#VS_xN zULdZ*n3Zv^% zC?JfMV5hB)Nh$cj!RZZe*|CKxUfcopTz z7?Wy4G$=+i{8s|&JcM7i*GBT^6d(+EC);R43?QyH#;}{QGrM*7{pRK8j~_pL`uy@H zKD>K)Xnpqe``)xL=yC@$I)@;6-*+DLbu4Q1T{80h3$Dd+Zc)iK8fhvQv`XS=`$ z9rmyxIfr4)H|HwgjH*o}zOYo=1^2UAYz#9*XB}#;(!5K|f-VMOgX0Lf$!VTga<}4n zj%}~1*swa@JyierIp04V7e4v2-6!_H4E0yyH-OH&Dg&B#0>JvV4#a31y&TKgY=_S& zjFGd0Ift?*SFM85zO76sg`1^So5$BN=vlyxls&g`qjO252TTWjj>W+`#%;i*0746z z$TzpMWsI#FYmUh6xPPX(nWzQCQshzivRX87dIV4pTG%&N0mabTMugg>CyNq7c`Hy+thGHcWa`-}xL z1?aNbHn@OuHv|7=PFXyFGCGECp)Zv-Ao|tHEeD!CY7O}k^=Y#gG{otF8xP2C1rHkn z13u|C+G04$02K#+@mwA;kxXGAnOp7N&N2>~``}F#`;Fl8m?}76Z2az4_XW7B6?#`q zqHTCCHCiW_<`vzH67r^#r-MFqEevo*`PPB^`+xuR_WYQC$an9)0(m}vvdA|-*~gEM z(-6{S6*H&BRBi(ZK(l8$W#C@$T~rD%m@HEwx);x1-UHZ}qQaE6(+ zHd`TxRDgEEKXaCY^t!|$ua?an-u*t`{QT*m6Yj~^@!mS$zie754-L<@k6#{;8u(dkOxOGvq5QiTE$Ozo z;cUHD!ZO=02$infbL<@(bIuOdkPTG;KFNKUdv_Zx`}Pwx4;Cwq7o^%bd)yveca^I- zyJG*S7}aY(OL4waTh3HHkO(5EPc}2kuA!Q}BDK?i7Y02HXK{J;9oH4noelo;RhRW# zHX@%AV_sg0ph1qdT>t*(``ecfKYxn+$v(b`5Abz8+PXgXTHZ!W#}D*XitIe+>NSA$ zpAk?q=*c5WJVo{FDXh|P$6N5}MAnAI6k$6MNRD`M4=y+bBt5bY`GVK14j_%dGQhR8 zB_(p=u)dIz9w2t#zDOn2K#bHj!o5j&=>;EIhd`kTl_TWfOxot64q0Md33%#0a(Xt$ zP{_d-wq+AbB8;K%hJ{$Q>?J~^8{LhwP=dykk$Rga?q*Q`k}qK&^Gi_e&8Pe^|M>Bt zA?~?X@qVfP$`;Up(EKuBoHm$l4*wWR5^YS{G8uVWDcG816K`c?%3>aj(h8AvG`=t* z*~jJv4-2636UDQ)g*1DOX>C9@4)k?0mW>Mllb!d5xIWPwf;1?l8uW#|r;RZ*u-Iv^ zJ>9+L~*v;yDN}UIv%byn6h5uo(^&R5@|VEXMv8@-?*_jd^BullDqdBKT$4x5m89 ztNrHWJNwgLg7!T7`hAaZIEWCoVx*&Tx?sh>%|iOZ_MY|xvCUWYAcB^{W%L5jfeLp! z!F#Dihr|q|P?hvFk4g+uL?I@WX4|9)GaNpfir6kuUI0jWrOs z7A0v8wF3T`pk!>>GiD?99tZ-p>on;HDvG?&c34J3YjC=lNvUmJy%P1x#Lz>B*;WSD z8~Z*K4{r&F_4E7JfT_QIcno^><-0GqzOL_lA`>rlnCaRMLRi*`bzg`auhtuER%=uq zmRX2}x#Hil$j&&icU`u$71K^6TsuR7KPb3l&b+ScR&uoMCkAQ|lyIxHf%6ZEn8a;QfSUaR|mfZ)VshJS~?u|GdmF~E2|GAQewAZd@XNQC@-iRk&U4)M;5AV z0b*i-%7yLq5HKEeK$~(44!#Pm=Mk&@*%$6cXEVQUc#fCSvl$AMeeHu8ZySa)=$8e)ZKO&`6sGb>Lz`-J80c-lIo=1`*ym$ z|Jp&j5gA$Ai)9%Kt_8T#3Xrf4+@wvt!|{k_1QJR;<*dG0wnhTnBnk@(apv-4u}(WD z!O3r7DKWudhCv08|J4RyFB^1Wxt$gNUB0}@PoF+~dI*eo@};}|jrMPF*+T+Y|5~uB z3BELE??u!Nz(5Zenvn*865hvl!4L$&Mp{6n515=5*1groQVAO2#)r(CpX1#db`qqZ z>5c&)w}{NZF|)?)Z`5HMTGmt*i4qtYC8VudT5`~X8pw-kN40lBJFzivOU-L%ts&qS zBH2Wk&A~2`fCg`b^biMi4a?X{bW(Iq9s}yhbGQ);+Y_EMVrbhd8{f^)1-+&fFV% z9@1Vtku@?%7pJF|Anl%=ad>xfI~^r4p*bf(2lh(!y^X{)$O&KvgDE;trx|GG_?;!{H!q>CbfK$7U~;(4P2pP+t}S4h$>z(E{iTDrk>BGy*o0pIF5QO*ai+5kv_yX-|nB*-4=oU!V(s~^h%>+~>WC9+uYMR$B z84khV$-w(3z==z7u0{$Bh;*nujM~EN`ue-hdB$|2V>za*LY-{0a%Rssc%`^~QHq|Y zcgHiarp0OlvLf8w5I)@16vpc9Hcz2YYH2vMC*;z^m!WANMETNGFN&FWU}g1eFe?2V zSghuz-B$-#L;mt7ihXY71=`{R3i_a^`N5Hb7gi+8^ScujyKgFrh94gS3(_TbaD z;G7WH1PjvA#3)QN*3*sI0R;-R!Q5v9oJ@@e@x`_$wjRjO+jK0JFUo-p+spR2=Jni^ zW37W1^LD!ga4aslUoA(6RUkViH&m-1^@`Rvy657!SiKMQQ#fRrL3My=t?gWEpQ{Fp z7fv+Wm3qJp4!<7$S9q_}sV(xLdL2UT%(&BL{QVz(XP^J@u z1J&y~h%?{~!Gh2AJxsxh3j4R)yRSu$NLav3TJ^r6J)E)e<*tQOj9y?oM*DZ1IylnC z>l$uK*LfM$pb;Cfs%-%yC#ykn6quFAnOl2_h@U2#<=7&W0;IJzZ(o3a>(}Hz|M(H9 ziHDu^XJ5d3&cN%Bb=HpR3hm>8-Xn^+AhBA@>R98#5|e053}RryMDYO6y%a8(VWQjN zIS#`?J$n&d<%@4;5qrh6|wBYlrCVGC?cAdZ9tsl`CnX7=oz z`}meL{d2<0U;Xru#PsAV_W*BLN4vT0ak6)hf;LhFZ3*euKc3d{5mG3!%n@F#K%NO; zzc9{AnE>bU=pai-fzJtka zm=&!dI5)X;yG{20l|Q=UKKq(|FUd4hww&1(rlpPND8(eb4hagkfZyPL()vNxU}B5u ztzz@lDHE}+>8-&%3Ebm`e*~Fzmf(5GCp%ouEoA5DI+mn%AS4Ovq`MzxZgYV@VFBf# zj1C-`cD!C-G}Cr%KtbHBLsnS>cT)VRl3FkH;ov8ytFS)e?32K8u#7!t$!f9pMq|}; z%@Uvlg)cwboUC`C_P>eW*}MOE^s9XGW&7U8xtRu&#B^$7#g%;m=N7#83BcnVgTXJr zJqb5`{LyyX5_3{dDp`tZK3E)R^Ye(X(^+IVIK|+7su>i&f?(%rZHMTA=^M%D+n$Ej zK;znNAY8{VL97G#-5N&@O%g<8qqwo2Yx$x$nAg!A395h#w^iQc08GRf?P9XO4?$R! zGS(bJcJmdkZEWuzRtOI7E8()w_Lqerw;L`M^=Oq+^n7 zwITywk^-VrlQtOtq+vV3eAj`=23kr`6GLS|76MO8r(M^W2By$2&?;!Y+G^^$`&!Dh z1~%B+-6E~|otz#R$2N-xNF0I5=^A=WC#+5coPyw0Z>J@|n=rr0&c55giw=kqd*P4+ z^M$z0U`Tk)=nO&2xeLtTwb+*9$gvSVNSy0;_B-bDZ{B{9*jRji`}>FVr6*s%`(eYE zz09$~%*qkI1yi{UO`)QBY}c>@>a;dEcwq^JHVc=54^QkL%tH*+z3ct0bP)cQYvJQb znEU1&D)^eBW46CVm*!j=%C??H_5cwt!Z~zXBwu^?0u4pq`Cxf85hx5 z19~U0%sO9h+m^KYNeEpg>cRW01>P^Lg_vw%u+m(N)PVT74U;0>T>CV0h>+=YNL*+l zMdsr;R6k5}9zP{8;A|W)lPxD(X>F<)g0_c)?o+YjM8khPZeyA*MYCPH!flYN3?Auq zLJ#Y@W4rvryAMCUdHK^%{^8xDTk*3m-uE7`6g_y5jZG&Au?dbkrhx0I0ZzLpq}9>} zF=eknI$@C-0~D&TB926k*N&k4)KM)M05Ud~0dqk1*oF1wKo}i9_C2Wq)Y;Z;^84bz zk!ON)<8FRbCj0}`fQ1#0)r<-kfiW~y?m#XjnxzIPhR+CF!;4o-69|4B7u7NfE`w7d zC_+JoE#ZJHJGjD~$JDzI^}qZf{_ysEe#G8?_J#W%NT4Pb7-+vom%b3A2$4Y>hP-}) zb1WR(+qi;aTku4negfFOu9y5YkM89;LCjQXa4A|I(ssZi&xUuFW^BCNVt^tf0S!&X zyk+mBM-JxBWf%t%7ByGAYeETlY#b;k$Z4ZIx`?n@=Q9N?BQ?TF|#vp^dPRKgDK9K6jiF^G_8 z2s)pQJTw|Ih~La6@%6N8eV__Lzp2} z9VCDQtQBWk#-2+RU3}GU!ok}Glm%FENIRwL-1xQk+nCb7zI}O9Kfil-{Zy|E+MACb z-aZ7UJ^Mo5hYi03`cHF@(;A$gip9q|ljM4v<2*cME~1gA4M0^G=z3^lWyU_h0two< zVB+XNbMGvNwqwohr1*N(GzAC^VL+%}T2VXZ7!4qCce|!>(Q7Qo+2Q<964`4wLmH*< z3@|7z$kC=iOr;lxw82QbA@YGZG261yb&^GA=qQ>b* zPqTsE#Dd0l9h+%;jiXK-6Lb80Vl+i2|G-A9^I!}|2zIs(sQD=*)cZdDcBjg7T$uzi zfLfsb*{kE11w21ED-k{Lk>&6st{591xGXBe37OKtk^URL4MjpHQaU z6S;{T00MD>F-O2ZjJr|9=a+YHAB9<-ec8Ti6LVuo3I?cTt)ts~@aNbdG05nfd0l|> zGvf-wm2Xj+-5Wds+GzpJ)+)oI7p7stTOl9Cf0uzxa1R5AW^xMo++8P`4g~aXE9knA ze4HAP*U%L`I8|gOr z3uaLP7_hcAunYs4oHqR0QfdzZ^W3{v_22cwO37(S!n3d5F9O~FbAc87MQT3K|Jmp_ zDC{|BVr4M4L>rpr=*;%TVqnI{=sK(LyWi30g4C4;UTC5Si=q{yZOa@BU;YcMx>c^} z>!5DjY=jP)I`J)zskgKIUspZ(*%$A-{kVaQx&rp6pbRf;7iz$g86;z#aZ%)18G+-j znXS)RbK4cuD)htF9)Jwi$f&grDX##c20tb|uXY8~hW%q~jL|MvyBO=5x045aLNmaN zDA-e3HqHuII&Y*=d=yh_viIno4g{ox>S?{>Tu%_g0?O4 z@0fUY4PAzvo}z)a7=5kPfNg_pfdDy?XyUoLAe)8|EDb_=cUY_8 z&{DuF(Pi~H4^8g1lp5!l8;AN!l+-61p8dV7@ZMHxwHveGmtYjL;Il0u>rr&agCHb1 zl>2JfAg-l5oq)j*%t389!90ZCHM#do^QH-WuE`!YAXY_5O8YFtwxIZ%wQ;CNX81(w z2M`=MMh0}s4W#{oo_71t+e-33UJY|Vf`6Z%9v)zxeEGh&5bvuC-mi5W;w9HVt5E%D z+hh&gr_7Ao91Gj22Ik|ax%+TK^Bod^kR2Uycx=gXFBpeGG+5wYun%D2bj-eHjj2=G z;W5Db+w*Spi{mMIj4^YLY$LUinCR33`flwR$D@tnj=`K8f<7*-YE8MS7eiYh2La#_ zHS_EakNs@sr3vsSoOA5+uuxmW1N8jFV;3)xzl6CUKv?e{CI_E=<-T{*)uM^-1#lE7 zZ%~`8T~31vX$fNNwvS`-8s)TLWEq|I!S@fEP#6>!l3cJnIAZ3qK_43nRh6S7+W{I1 z65Q%tu;uJ%1A`vlZ(ooaJkKB`WTZe9OuG9pIGg6`sLGt0s=7p*UMn}c=JEu#S`Wl~ z5fhA6Yuds6w9OFYNdVjMi^V)?5~70Aa%D7Ox|oTkddFt}FCX3~i2IKMW>3Cww_&8O z2be`DJw_mB3Q#FVYZIaM##gK#-|*V4C%|(^{7*w(1D((qMC_Fy-EK@vO|?q6^I8lXxw0?~U#-OUsQx=mP_*jKZL(q6ko?9)}N0)2-sUf5K`@&NSl@ z*6|frIADZjZM~wsWSeUlQryv_mqMM~`0U-rMG#z9bGh#VV3-xRuMM=Ec$*7ru1+2M z^r<`=6@hGTTg7q>xt%cmbH2PeS#RGbbQvG>)8|Jr>}OxY?`>HfxA--ERLp&-L{a6$ zE^8{C(y)NyHqK(loVN4Mh9n0p;#oTg-=dT717l^4#dSydU|-+fv-_SidNHUw^I%og zrXuVxPE5XQmV?@wt4Z)MD90Ca+-;$J+xJNaWe#f*8Qd=?^a|Xq8ax}iq91{#cl2!A zwYm~9tRrKo(Y(FK<5hzh``YW1l}f98Wy^0^WC! zzbtK<7F5j>%mM)U68MwT)l#gctZdji&j1mAjze)FQr2Yv2!}I#n1c024R*o~JGFNX ztbGZHn&Ag$Z9|MXtd10-L@}~a=iBi_oO5Y1pi0Yg7DlV;blSk8sudhtINgs9aDA;c z2c$;Yo8s8+y~`e8g$%=s38-aFHV9qYI(*W2)tQQh1M(K?W3&kZSz9&b+%9eY`Ty4w z_u1F*en#7VcwCVk@xYZ13D9-3IY&gU*>NN5w+pW$GH4bL-$h?SQto zV8m@;$u-5<{5s*Ww}Y5G1TKu$J}74wt7RTXrND=IxB) z@6cWS`02yv5056pPrh{DyAMx5v@xf{u~}N8|ID!s?|fiei3UJy*ePYrGZxnP&`cs_ zQp6dk5Hg&JuNp?}tBl4(m7WX!@G-KZn21UBCGR=#jn7lcd^>jPs2oJqx)8C@C~n~G zG1FhbBOiz#Q3^jByA77*1oT2zK_p^Lxo&;utOkd&PgjmcJGzRa;M5B;>}u9U89P{Y zPy;9GlB;g-!+-tbhmVgEhR?og_bucv2}7%*wegjOUak2xS+kiF+U;qW$h9mUmq15t zL#+v5d}}j@w(hwR{8}LMv0k8cFXn?6g?)r5HtNKy=6-!t@E(v0tN|tIT^KE9VoxKE zFaNQCiAjO~b1L<b0OIG%Hyfs&F;#o7$W|KgyEAf-uJZi`1)XlG=d;K1Mk9k>spPQ$L;{ZJK`8o zdqar2yL65=fK12Gy^;`M-HwE^EU=qxG>`>36(&l^Qc-I%o{$vIk*-3kqe;!TF^Jui zZMfo=$f#oUE!F^Dr3q{@P|ENcC^zh~=B_@^#Pe5lF*=YcS-pzKBt8m2JBk~dOJUiN zY)BX*vWve0QsCH*UH!Pm{kC26+n?<7@BR}R@Nn1qIUO4`L!4lBk`{J3qj!RLpx|%Y2XkXF)I@Fdi*5;C z%kCxSh>*}Jm{FrIZ*}C-1a84CkO|11yd6FL(-&ygmr&ZjKm25$d$virXcC5crMOnc#Lfs#A^N znl7lfoCtxCVZhy=!2^EevLrzm-k8W66VI!HCh!c60_0<0S+EFi)#QNbCvCnDO8og{ zdo-MQ^3}Uv2D}a@x)H?A1pdht4T_0SM(5+v&)id`pJtPB_dx9sH~(^uRzaX=Mh;yW zNbWe0U2Be_R@~cYtX>Jc1yi9>5fiQ4?C@6{7YV-2N$91|U1Em)ISM&oD&s9G+hO0Q z%DdVC=?Hold@vliJ?mVBy%-oN)Msu%Nb|r^g!a;9;p?w$f88=_T(`x6qRiw80m;hy z3eJB94!`r$efIVH`nmpZUw^un{l z`_(|Y<`Wk;%X@CnGQbGL%gZqbP-RGf1p!+HcO;i0#9SW zk0_^%_Yvl@%@+a$58Jw$Q^WQaw1da7&@&uWj8P1$BL?b>9gnR|NL^eW>T#s^Jq6W6 z+}Zrv2Vp+FKry@B3jE!-YxZdD^yEu-Ti*EAoAWbq=72yE{-j{|6)$y~TL-}kY**`Z zuQ$c^M^vd5~ivuzA}c+a_`(D6Ta(U|S( zrPZhSs9xtZgB^3NfuFEpbaVzLy_0*av_4|G4i{E{J!wt@mue5M29`j989bLdXTZv; zK%*x@*lS*RaGW~lPCh!h&D$BpZ_-{q+sj*f|GihJXJ5bDKIAvLVI9XjM3MUmBu~C@ zg#dEGNK+EUmYnHXHkD=w?LeW{JKhRW>387u&(4{7=5aD)1l$z>QNVK8P$TAyhUVIY zg9|{8@H@Kfud8YG?2Gry4|V^*U*3!Ny3R=mNb0nh@OWj#G9^sR#OEkU+1g@`HYIsV z6Y_-f80~|caDvEQ2OfmW5g?NZDPNzMu3^(Xe2fDo<2r&t3>s$K=JdNm?XN07{OpT& z+r;@+-H0|^*D;~p9LYb7QT12NdT_^AjNGOxJVssBb-#YHw;bbVB0a!l?UR= zCzOY3`xf=`>zWon`{La%bYA1(M;TnyIRVYs0&R!RHkkrfX&Ijd>Ja+ymn0R2_4J&y zTOiFdxeuf|xJ~bfHVhIZeX~yh{Ay-+Td_*y3g!WGf`p*T?5p1`bWm18WCR~)Gj+h_ zl=9d{?v7+3~Y1|(k7-hYwuYZCl?Nf8U;Wp zF`P4sL|fy$L$v&VWB^y5UZ^mb8~ z6Uq?>tfp}}vT7F+7N;9W(B(wK4-{;}E7X5RJ8gAiCIk*=0d$0PSPU=(Lugflg#oiW zkul)H0cPV2#rbf{*+ZMtqJ769{p-)4hCCWWJo&2q62RZS{Yo9C4(M`@uI=T3=MH%8 zhV_CuJgHD??>YdkW+G(kV2bA64G>f~fwl%DC03`63ZaAjej$~Y9C*OwUL6ZXO)cwL zN9o9sJ7QW)C};|jX-#;DH{f=GB5+h|(1bL~p$aWrq6OD{4~&*fdyF1Xjv&b>(x{Sq z%>S3Vcipw@II?qp9IIREZg=|}+kG)?qhFwe$jFS$48ZoQ7!er}bX_ENKmEa& zn?;dp??v~&g#rX!AW^lMx#yg58RHvMYxKlG^*sMu49wf=jY_=37ULkb`j|9t^8)|B zKczp#+aFyVARE4_fO+s4-m{`-8eqgoL(+v{5lBh^G3s0^tamk+I1AWQ?U9gHR`mry zA5f2VB`wm#5(0l-CbV`1Okf)5kda=RZWFHFseBH+2$MVXU3@!%2s;Ue&txMwvfMvN23UHKF=@LEIQH2&4D8!lVMCuy0 z=0L*y8L$qI>&KU|3Y*Z|r}ghXew%LZzIk)rfA^ie8kq6u1H30_n&QhgFmW9+_Da{) zTS01dV$cJslusWMQ_QT%Ypn9gvM@A(((HhR4=5cN*V)@;$A|(6 zz$&0 z+XsNx?Xu_AsFphgtnA$t!yb_+SGXji!4YS5+t>W&Pv1VhS|dIB*zS4g;($N~$|Z_u zxcD1OO_~@lZ)ymWkz;@{S|Yd$=Fv77P6I;FPFC&}0EMo;(dbWWZtd9aE@MJPCIgW4 zYrO(j8#$*SeUwvfue0xtK${+Gz`V3JIYAXVkcXg~qm|-)Yw$iufez7EI4aIW5Y;w0 z@Gi|ZAp*iLdYuhkFXAu;xDJNENFbE~bq5$9!8So7g88=g{cU8~=eM6;U8Fzw1(pR0DGHg^H{xEh?mgzY3W)W%~ORHaCA#2#ez zhT&?s1GhXbGut}6xEn%HfvKO~$6z`A*cf^?hK^GhvCV?C%>%C@835siIHB7W+_TyB zOBmJdhV{W`cN;#{em|axX$!^vMur1whO^d1#1rCZJ~8V~+1iesbPhIa{S4^g zW}vYbZ3pB9?Ck3(2%LzM#}=5@LHbg(W)*=qp&uC?*>~i5Tl>xvFpB#=RP724p2z`n zwRL8R=!Gy(Boa9ircLd@reDzi0=~YcEGvA{l*dxw709w#5z=G;eB`<2LCl70%*;8* zhT#>gkrz=Jf8n32^0h4GN1xm680jY%>68OI0YX4k3M;rnB-$d8e;+M%+d#<8sSv+<5+Ag3~@Qq%tPy>oG}M28b@=3 zLc*BW_@4_hFeK6G2rl(mKe(v9+5Ae2;8D9ka297_1iWl%P zNeUU>+;9v+Atg3Xwh+6-K)m@JtdW~Euo#NH<{lIs3xm*;crIcj79Wtx*Cbd74ymAf zxaMWTcA&oj4C7WxI%^m~ws9I#SfRkLb2$V7$#sWgJ5PAu(&-r~Ym%E#dl=6Zy%v_M zBoGRmCaJm7mtWqTi5@k8#pz2A5W|owK^YDjU8vtSGQa)q>AR=%re3pTJo@DBLA78S z7*z%{udR)U6>+dCPz}Pwu#bY=)tn<{1D}fsZwhLCqk7{xDpe6$2jg*vKy%O8WFX`T zOJf5Aw8s&($Kq+Xog?Nq~CiYO8GZ%U-i0z;9TM5Tku=Z}czExAr0OH9z{J z5ANQD4mo*jU4=6G;Rc)vdn~Y(W%{MA-sG8T*HRN(X6n0o%NU5Z8<4A~Gmn{zFc~PEV zx()@6VTx=`2SQ1JLhn!;7d+fXRng#gI6Lv4)Y_A!_h<>kRdE*W7s2LFiRhM(H4 z#Pgs$8(TYlZ~+`@@=n#&9AqQdGyJ> zd{CdKM+ed9n64l!(Kn>*L@{b$P=Qe5HpXR#^%HS~I+E`pg)!oV{co@7v^w-Y+qH_E z!KfxQ$=)URncI1?`8?IrU^W2>eIVZV#d{Zj{aIbN?@UlvuCxoE0&YHbFLMn+Ks20U zh*R^K5yynN6BZdGyN2}A#H*SrLG0Jg-E+s(v!F0EEUSopA*5O$mX^X>fNr&*fBP(3 z`QMQsKEF0`c=Y+*^O%oppjeMHL`QiCQ+i;i)v6r>fKjxNbJ{#c;maUA@e?$NyLuck1%S}97Cv7|K)1Q*vDn+-0lCL}%f zv~@IZ@AdPir?+n+zyFZOUaylLe13PK5cr&g^$l-3w!3%}IVdOA6v(f}#z+U3F6}rL z2M%XLOBETEG;Il0rqtx90DO-z?$TZqG)K`C0Bb zr;nbPjN^@HG_PqYlF-bjw`Lud_hsBj;u!w;H5%~Kr=vQI!omqV6wC?QT6VDY;&V$4 z`1(*Ek3PV=h%K6J8pakURTW`txqWRC=->!JuM4cAIj_)PMz-l-Ao(zyRPEM)9we#~ zY-wY6nXwIX%+_Y<#z?&>GD02bRM!zyfxnX>^VZlH5Fps#<&u=+l$RAm>7hUf>X>@q zB7^kOW?X4BiE%{-Sa}}->c|Nl%jUcw=jiwmWRu_>DSNpcFA1Z8RHy@2znnS%MBZ*s zf9Liw=Xmp~kLJ-w_cERSM;wH;o*Xur6UElJbhO72!`F25z%rKiItS@n;8wKlz7CR{ zAfkZ9XKcNMCLJ+aNL=SZW3PP?=$fdmI%mqZ9_GN88$OmD?!wzE#fbD0T7^J+CE%+g z)sJb>IsrrdFwoF;4X8MUK+VuWOKTycV2_$1JV4n->_9V`dmC7@CTn2)BTEik;K(S* z7M;NB?O3np?d10_pHSP%c(nw6?7{tl=lxtNJ=eex0GBG{`yu_BQw5he;00JHmkV3l z+^?{pXp5!r8d$b?5K^0Z*|G3d?BE!8TM3)2FG(w=LsG-H@LC<;KQ;33K-e$Uysd#v z{a}h$tzg`SR1WFxQM$zfoxs9GKlel(1&@%1HKf;{J}zgU@;-_VVyZXpNHh>PQeO## z|I#)*<7gcXd~r|frxV76C+b#@|C{sn{kvC7qz50{JtkV~S&nc5gBJ@*@N|}1u5g55 z?mW$HO_#Yb)|h>$4$cjvbZY~;_Bh8Umqi?6t8v`9w`qu!(N>PNFrB=}_l~iP#7tnf z$!{n4qR=a^KxR*Nq+7GVSJ0|wTN9CQSAzE{=zo!cu23#7~lKDtA>XwSEYfb{I=+L~yEB(z!tNifh{tETMr}qo{;{W=e|BSIO|MUO& z=RXf2HlKjOq$Rv@OIOEof%8%$(;-wds3P9omt$vJWCyk>5uGWzblB%h393Jizy#-$x(bFC{JVlaukxF^py)HE@g1mqBo1sSo|Cfdb|_ zCT~+~bN8x+8p3WT!aEfaOrq0*N$p_NAZrt~vGCP8YR0prf&Wa|7J)&zHzr2dQU?5{ zDY?$tE;DisWR6JN+XSpvEK?oYCsfWI?GZ<7Rb5Z4+o$%gF4NoHaqxrB?w&geX8_KE zHuf{57J#O;W1$b*s%KzKW5vjglraie1z6uPsGb_I$;w15Fm0UK$=Ad>5ved*vye$C#KhP-&EMkos9G zZQ$HPZYAu!A47np8ry_}%2lZugqxq!i9WKyJU@)@q9 zFNF}lAPt30-|S@bqor+@)ny00g7nsij&~TSmM0sv?Bx-a<>IXqcx<)pg#_X^_4!}_ z^)<7_qmS)nO7e5VN(Qy?8mIs}LR!$j4J4K!&7HuhO@y$}Uap8jLeO{{*Fw-o48n>m zeD=NeAW70QoSO6C$c2fIBhAOUQfG~$zh%TR$=Q$a~P~t*Oor%_GpuoZpd!hwj@kBO&bU=%WP|U%T;ZlGkMF5#VQ3Sv5p?d8?Kk%+Ha?5;t1vw?pCIe!1n>M57NrxtHJ8=Nec$w#VJ! z%ta>Vfjjbda5eL;=SnZ|;kXUWl4D?{Lq;Yd@j0N+b`F9L8t` zL+jb_r364m+lDU_zp3<9)3P3YcK0HTkh^A-3yPRlE=_87?&{G~2T3o4z4oijv^_`g z&<2k;J|FE!WSnh%YA0jtdVD;L20QRTC8zfFMVxUV~;+* z+n29?c~nghm<5|=fp?t@@yBJZQ=M^)Pd6~*kwKldhn*nCYlIfJkt-oMp=-|&P+EJ!ldBj>6I7kHO0}!ojG%)03tQ&Hpu9!YHc2UcK6gvm|-lJ=sKNs=kbGojpG7t zyqpq9Z%1?ln?f;<(B^`SsO283Q_r#Sd%qV9y@midJ=XDI!Q&QnrwrxoKlZIyDxY8JKSmebJAl^80)%)*_znp!TQRHuDH-4!JfO$NER@YS0JH; zr^A6i!<$fUlh9EMe?{9TiPy%$b5!sKMb%Iw08<{FL7pK{zNYe~7vR{oP#&R=1R_)l zX<~=Z;T^M;OWumn{0!84%gIycF}&0g=}}RYG7e$;1$aL4klj-2cCLg4 z<)qPcX_vkk0f?YFl$bjjcP-Ve;RaNV5DaICl{i2wbu6x{pMeBD0L4IcouF$Z+Zg5(umjbqHNhq(|KPS&pYXNK}9nXkN{ zLXmnKtt+DtgNICs1DKtn+sLH0ESsRkfzTz2@niubfQU7?%&@F!y>ZXZZPXc&20{Fw zgI|h`ml#!ybvj7zCpRM#9e<0*9hw?hZnq`UU!Av4Z_eirAK$;$$~^k)?s+hl`W&3( z9_2tGLw4y62t8XT&tB{$Ez)zE#$p+O6mW0O;M2;1+IGvKSgXVH0td@vwYIOY_>=Ih zOl{5A4rG@CSZvXv5ZL&l?1d?N?Tn2)sJ~Df7 z?gS-t?c#-wFlL-)F%g!IU>#|lckqs0W$t`3prYwTr10y;aVS_Z+rjQwP7`PZ`#Lm% zv!bq$_T~W(QV>i!jo|pT+o@6=of1IG_c5q3S(0pcCn`9bX~>>SEnvh|?isZ!1z5N4 z12|RgbHfD{2J#2Bg(V2J*|mi+#_M=fw~Z`43@~I*!_{t#i*K*=@A8LF`Qb|MjHgep zKC6#Dz?XIJbCIOT?Cmkx0v{her@)~amk^`xwx}r*5=Gp2a&k0)=7JD@xhx7F{sDcJ zOK;Z11G~vcX@ud{K;;e_S8tc7uVbEOdWIw@x3?F|Bl0waj_%WyQ zaFhr`->&D<3xgK76wwRKPP6XTww(a=e#!;)MamI&?wSA?QJ|)lsac(%A)6FyA}jY+ zu~bjreE#q{Yx2PdckfBDC{OQ-MRqmFn5qbg|V#R{2=fg+v@_K^-KhH>1ZL7&Wreq-+lP}?#&gk`h{9$w_JKoqJOdnK+OYJ)N+s4#3P63i%2lBrAMkdtuq%oFo!%o{ex`e?i z*UVEWqfjwHCe&fTX#`6uEQDKC@g3IQt2YqLJLq;rTL<+nb0!jRX-;M&4cv|!{@sTk zUe7Uk@TuLdW4@ps(hKi%qc$Dl@4*L=%gbX}bDq7yjk0|U;yw>X(o<|(fL@xwJGM5k zU=mC+BbX>h+h?!+Yzk6jiE=ZSjiir$tg-`e-_P_HO75=>+5F(syVsfOgv!*DWD-(= zbq}LHdCnmQP_8yG64Ts9b>`FY`rq&~00p&1&$freaXY9WTl3kyN9&^(=eS55(tXk7 zwYU)5m0^34>ZZJ{cE7GA+k?;UWs=m713^*m3&M%rLl%Q>6DTIy5JsOHoyX2nR(zGl z5jkiRk^Y*eb(*yse&?XrYJMb78U+olar8hp&laF?7butD42x)6R&lHHj_S(lPk7Sh#|*cC0FxEI9&*%jyUaJ+%@mrk-FYE8wOR=z z(sL;k)xfpb#s(XMDJ-oyGv%}i==zI6@28J%pZqnA{)3P0-qJKWt&YVXUwG%q3;q3c zFehN3M=}nU@sR2*Bs1B_Xf;?G)E=z^h|(c%s{jgqk7#gTlz+E21EF*+v4ftoBI6r?T-nZ?<3!Q|NiOSYf6VlALQM!uj6lV1SXITh&@@c zvpFN{ezc52Xh6Y|FVxzmwTl!cXZ*&mL(R8Z!oQ~p*7QIpc=n);QF+e=eI^APtPTYH z!NlM|5y5!+i*KuX#mSDfHTC9af#xe!vk&Z1p%a~RkLfIpmf+hvPfsibGUz_?q`222b zrvAlxEC^3&z4zKX=8OzTFFHIe!=n%G-h-NFT@=#ZiM+w(hvfHzPaA1lK7|1Ahdvo5ky(h@;Ad&;aXKg5z%v3$ zV>h)8zh&dFb~yG3PLczG)hetJk@qm6pzNJn8|}7OO1y@f1A>(@k_LoyS9gx6N^eUM z<8x>rh)?;r4PWdNWTh*uq*GX z4j+DtESh?2-@KYG^w^WTCrGk2VfcW$4J9}>ie47h4RdlqKEs}yWSL^C1whcU9w!IU z9POx8D>^Ol8{RuY%@P3)n+zppp6BphkZfmdnJDw3!*aV#iElkoUlD8a(I?JTQU{b0*K(#4^L?ex2N%N}_^}HWK>_uqZ~ z`2NS+{inD8I^Mjq@1Ne-yZG?_Dc;zJ@7|>OYjcT5AL}nB{QOhDvlnJHLT#=sa*VR) zA=N<*juqL!Uv7jkYwrmB;A@3l2(x04X!C$@{am$Icl3Ytr4h zG7`XwLW_eT`04Pxj9U#8Tn0cqGYy@qY6fQ?QWTchywu@J6pk^u8H#+YJzAf zVB%IFRu3ebf+Bno;tSdi4zN2n$sm>kAG2cU;fSMPqr>qlSN)%Vy6UhGe|ma%_og3x zr1x%`@z>ArQoPXU*w8>)bEB~gd4gcgWCKh?0Q*#|nh<g{dCXuA=5v`or`|-iQc(rFpZda`aq`II#A(8$Kq2W*jFN#xdi4vPCI+>DX983 z!MS)0LBur&IlVj2wj0k-}1%YT$#LW8bt9#JM2x+KXh7Ik& ze9ACun?+! zMbVQ^BfvSvlwY~%|N7HKzkPc5`G>0_`{vze6lLGmYiorEpX{9rS7h7iYTZl)G~W=i zv9cR=d;q(w5+D$Ch_4fz5nhr#E^NAR^4>(%s@kHlY4gVN!!TE>CXte{L75{3X160$ zx+cWZeYLu6lux&0k+sqJa3LIVaBEo0LfWvgyhlBajH6+r6@Vd52r{aowY<+taEisz zpfyZ~$BYdKB`|D)KsQ>DQn}58%po~sb)th5qrYF4=fIV}YQTH!souNn?bdBh z9laZ9-8E-yCg&*R5421}ko$_6jQ2##nmG{fUH}n7W{SVqWb!0LOdEAS51wq`>X4|)8E{&=h*ih?O3Nq#q#EV^_#?J)0&dR%^2rmdc7wW0jvyU?n zTC%(cR>N>q$Y|wrOH`w>+|ru1#r^1>O9Gm;1DrrWOb2!P`Zsl4KfmnnK7V}s+HF7h zSnqwb>8gA4*p;Lz0ET)eWVG$!CwkV9o-WzAqmBvWfOPVayc@ULV`*5|)WoK-ftIqBhqGoK-!`b{fiW-!T;;as%oT$%%EHV~ z#+HpWjzA%w2+FvK8VN52!O^beiv^KEaQ+Xu{cJ1zBFs5qby|~1vggTG``zSH?SU;J7 zUc2glc;%|^Jl2ms)H`>bv4KGwDDE7-eI)BO8`I@vA)T~Ib`mjXC#cZ|)d1AU28=qT zpoT=-jllR{Fw04k-7s?2(0)X=Adasp02EJ^6rd*O%H_A39i%D`X9?sVBfJ6+-`C?9>ScWyg|Hf>W;_2yY?Vy6X5Y1f6XTLIN_=*mWc z?@*F3$!(5?260|vY%4DojOQ1_EwDxoNaLbLon{~yo&y0n7xXHF@K8cuSo8KJZpudy zvZ`c=o@+>%-=bLrSTUrM4OQ#J%PK^;At;%GP7e!ZLfq6@NIU_NQ4mhlOR*txi`fHL4-ZwFdb)ZBt1j zwq#aA{9zQ)vIS^o_iMEfxkp+{&aS^!pZ&wlW&d#h!G83i-kXOL0v`#8+76P|LEW%M zWY;mr9C~TOjoj9`stK-ZGfu>unx#+3&>Z? zkiMGNd-V3MX;l<9!#RpZ=eh8VuuR>MmO>YcboJT-=Vn%>13RA!$f*^k~{eVX^ z#!}zsg|h1_aoIom*zSRdm;`0zLh^VbVt155QZX@kI{OUPd4)kCY4=Rz=k#0*3C`Z5 zuA~chM(qYv&L1!D^5ID1Wo zSrjSo8@=YxOPQ~3&YiKPJ+tto#s?~<;QQX|>@ngb?XJ>6Q?rH$zF-d}9S~i$*hrGv z2SLZx555yfp>)=fCAapJuf%Nh=u^8j8_gdf7-a&v(Ht!p<5EHP7%-9r;3!?`;_OGq zPNd2BYP#EUC{lY{v;oOqMOz9>x)K=(DX&plnU^K1K;RQ~5Uvh#$~4wd=8gQ0+qdo4 zlS2CFgS(eli5_{7&FXuA8$jUM=R&&3n23|x)^-CF1VLY*uC+Z}8sHjpj!+oER|hPf z0$>$IBWi{8H)#kzt{%t;7~4_4*ltLUTGCY|`z_4xt4bk#^x6F~3WPwad5-l)RogTwK7 zGxr%o8q$@s!8HQSk9Aqi1vswIT5-XZ?Mm5M8 zYId|t*wbSErJk+zu`2^?)Sx(>6c)U?)n|QWNg$6ty)W1LA8wOCp3B_{NR=#$91&2* zz$~Ei_+X1^9f=tlM+bK>ok+2po<ZqUn7pgaWu&cWQ6hX{&+Gz6fRP|8EVs}&P-g&4(8U`ax2b13Gq)k7 zN8Ce$G7Q9j5I3}V2yGsSIXu=V=jeS>Z}45ptuN(w??1lz^xgOI^xDNf`sjWc z5%Fi>@zjMxTCad5ACngVC}ca-|14oP>M+O@k)olHV3(ic<5)VDs+ntAkd6%@^9IBK zSmEWvF}n>mIk3g-lB=6XxKgBJ&?oKo<;#1=5XPu>S>@T{)(Fe{g6VhkeYX=$CZCvX%plchuz;pa?A>A#trctbX4=(H&5>r0P|d3Deb?AD;c6Nbd4_-mK0)j-rpp?IZ%&618N~uwZ*jY)ujJDg zbqSq{Dj~WGOgz~TOc~CUeqd#d4zYMpKc|x3rek{`en1rhPcCy6zu*jKBQW?%%gB)1;ow zyrDZVQtYf(O>7ZoCYbx;M@(`Wa3LMULH1ljW*q?*$O-H+2wiHg4r!Et(-*V3!q>jp zkz74(^;5b@0t(PIG)~YAe!(Q_q+mqAb%39N4YS!%>x^FD1Mjt1lNvhAIdpMTX?^zU zY*&(1>b0Dm10jagsM7`mkX8!k9x?@5HV{=|7$F{ni6cwSWM_VjE<|k5ticzf4?%N2n4*7#!l2;Y;rc4N=*tHlUiR$=saX_ z>Z;)3Q!gT(c)u}(-$p=Y>_J0d!p=fp+d3$@R@Jv=16i6oZLB@!Wp9GjU=9eP4U*Gi zV#qy;cH6=JMSlAB^_Z)7c9z-5%sOENr&2o{A(fCYo?(o8sSE2v=|&yHqDHCe#$ z0k1#WS_m41wUr%-Hp4Lt9f;}-)SCb}>e7P<%z<>sxeW$BMXbo!kb~Ri1VCsR_oY`L z%Q|G>baq|7qjkTXNPPe1?bCNpuLedu_~7o@$)E=eYqo$&ThPigJ2SGLB-Ru>@vXS; zDs%=dgILX$o_5$cW-R5yyL);Jc{bEM2zNEmq9oVt`mM%r z?KR@e^oBKDd9;Ej0jUX%y3U=jNkZ3zuNiOZnOxXoP@cZEna;+F!Z|RH!YkP}sA3{; zW}$95T)t6&^@*G-fhb-{eo{3573!z+;a|T0^!}&L=UZ!U{KNY{eSAFw@xcfAi}mWC zBh)U2FZ+hP2xvWbp}q)@No4K>+;pTUDsFCg;lX=+a^S-i-930$8Vo>@m0(@YB9sZ| z&|w|!Z6~kh6Cf9;vk}#r5#v`sM7cZh~%jyRCxtsCB)6zkmDjTVt8O za>I{4$~!k)o>W?1Q$eAFIT1Z1_c<}5**o=O?0I%B2Kg1x?nc&2Y3rVz9X;o{EFwtO z5umghSRp(Y*_sfLgXZVmtT3H{KvAl;Y`%Sh3AE@LC}Y!T^9tjEGyBp{$C{r$MnKvQu;Vlv5C_T{>2UU`woqOw zciP*3ciw+^ZDjoD)B8o^(|^D9i|A#6`P!Z_B4$*rhKB*=cslF>Dha9!PM2o7pDX!v=?)oNHb_gn2-g2~f5}J2s|9A39qDVz&@1 zsKXC}9Y#z{iRQ+%Q4XYFy9RKnk_a4B5{3#e?p*bM`R*y=ZT`tVAg1>GAwRvzcX1Dk z^XM~uaoJz^DT=%@g|pNyJSBSR1=!n|&3w+p5_y|}Zc9gZ?rl1h2DGw$%-x@hJZ!jS zH))=$9nD47GPsQCgv}NVK(Z~vhI5a(s1bgvZ>z0_G(8lJYXWssHEEfkkwna;vO<7b zZ9pG{*%ae_2rGM?6Z^13yu`J3ODyFVgUIU{ZC0LO7UX=4X5Dg}Hgj8H;Xf87mWcm` z%g!IZ&+`dkPoJLNeSYo9e)O5%y=-3r4_2(v6$JMMJJLFe{xCAVEKiuA%-bQcm)ki`WYB-X;^}~D zU8ZWNKNqSRMZzi&>?D~Z&1{n@ozS@rJtn+c2twL@owLkFr{#pG`>1oE8D0l-ILyvx z?95ISO+-6QluLZO8SLq5?yC#6JO_XRu#S6ch#t2BQ{At8v})CQb^P~;NuyK6Sp>H? zLV>p`qAx&414(yxKx2VCvEa@zazdza#+n_uKiW4SarbJmzyH~NfBXL9r#IhXs{C3% z_2~1w`(Pu5Vduv7g9u~@tTK$ckn0W=1mD4k8d$>YE4Lj4ptDBRm_SVQgMhqQ$~JAU zVJhstHPey&+Q`=$v^0EY4T3HV90>~DYrF{2gq#=y_2t#hh0NUt&&M9g3izjhwZYX( z2*EF7tHC?SCAyX@!YB*?`|`b(@3Dp!mWU;j8|P$5e-Cr!sRqO+P|J-*A(o=V`^~A;p3yZeqfw8RR zTBnsWRzL>`tDy%>L_hP+h5x_5xbSbjd3_A_;G?|%P#@hx-4vDY9G(M_I9PO+YQaX` zL(kOV3+qoH|6Q61rpRbvbs*YuLd^!LARW=A+0RkH%tixCc_0J`zNWoa)TJxs=MfZyC2m;yV>%w{WjBx8xQmV;2|ED6>pdhphlDTBHL9ORY%w;N$0 zY}i)W8YqhV0%{?wh=)IOPpoQZ^nb%c{UN~y##0^nDG#3S*BI0`N5QqD4hj!L0Sp3Z6Xd|)O?~Ae>IT0Ojk5DuF=w1yeJ_XU zKbExy=CdKNO_P*qA+RwIYBh?~Gp5vrM6tDf8ewd)M!)yD{`o`wG5+wnLg3LydAB5! zMjMD^>3hf0Evuum8=e5{BI2HhDq{m=yJ_pAwk|#mi7N5*8MRFdfs>{Ibe$i16?33uKs`xCh73LtcPeGQIbap}5VaPvO zh?^~Jke43pf3V$yT3RwI@iuD=;gsyLw{X@vf?kBWEP#g<$s>495N!-lq5*dQ>J9(r zpWX21k4UlqCSNVV9(|m5pX7!y8y^MbTusy0R76jg6Exg0u^508J&tfx6M@tpAH3Dd z@k@)+wLM1{7AS91U==BKpa%sAJMDsrUSD1|$A(57UgjzMLKz*5U>{}mRRFO>TMa84 zW$E5#U@9iysC215hjDnUvyjOaC~#L=4ba`YSpuQ6JEG*K?1jZWQcWE!+8E4ZcL3}X z>m|C1@}c*ds}K3jk7af}ee>o+etiG-kFVEZ4?fSk540U;%o8#bv1MB%J>-~amxKm# zcCfd#$qsFzx=M41k&x!B(N3cSol;F2#tc)RcDO^ryC99!wIMvhk!mW{ko$}v6Hz@* zx3o(g90`52$Be3$qH_YTu@3hUcDi7C&}R=49Sd8zOE@wolJwvp+Huap)~jziu*Xj; zyd$-+=p!4D(04jyqtR}3`WEc@WzFVyF8ZH7K7I4fK7Ia>Z~h1{!`n|61^)FC?9oSh z_o2>lc*a~dYor0tG(BAKf4rhCH)ND7{K8*|^2`A%Jc4KtAB$0gN9v@!l1*awYnczD zbf;*u(`?khed-wg@4ls}?n%h$gCsGew8fgRd8`U0TXSUuWU>G|Vu+TWa=UWgn$!12>~30*EC-`Pz2!WEy0SASS1}I| zLj-;;wz&9k>6lv)KaG5gxcKX>=DyBqFDAu06OTnPo+oF5D3Ge{om6Z0G4kG+`)@yg zdV2fQ8soJKe)KuMxM2BGR|~}5edHCczDI8p9%=mH9)wmDzx{H~>KYrADi9dqYTH2C z+mK-rEY|uGH1mkZz(3&d>(v79SG{Je6DRlrR;Ou7ar@T zpqBy3aIfn6hwFm>TyOoFcI3eadcVGg&$eSr4kagSw{{$4%qxCzC2wScb1NJB*pk)d z;NQfEzNcf87Qr1s*rc0wUK;NtLoV5o^0{O+g8y-&z}T+%=QXXMBYq+1JJ!#DAf!OJ z!v{G46xY3%vjCU0k!a*|PEFN@Ujjrn14+6Vz&pisfj7XjNIqzQ0Joh%D-2$g0VQAc zEI8<$SA?gDOF{&8=cfPD?M>g=LO=R6f2C38+P$J?UKSIFEp-lIGisgI7B&hPFQLx| zKr_xH5TH%ihMs+z6xm_eOPXPZher)oSDmPPVWhK(G0@pV2m0Nqjk$x-e;e2V61NxF zSBR-#y!3#B-XMQgVi2?w`X9rKnmxB2Yo6K0VAv2_V%ygz3S5-o{eU!A8%F=r@puhR zfDpxajKdJ@b_F&zkO*+^f&S|szI*$|KR>;FePQwFLws?&UqT5HRSGw58-A%BAog7# z>`mwi8#TaH3sGareXnyx0LpAgE1zD~cp_2}o+{_78i2rxv#rq(z6RA@ZcRnL2HQ1- zY&)<-T$|eM{JLiloY{!4-k9<=V?zc#7WO$ic|!SvNRtTxMRhz1*v?o7L@8z(i$IQo zWd!uv&>ew)S?nB!@U+b|xUYf8WM2!9vbY&4)GxRD7azZS`t{$`FOUuu|!gw4cVIIOnc^L9-b_2%y1)Q{EB*otA7#%pFdC)4FcpWYB03M#9yWE%= zjLoYpq#<=v@>BTJYcV#B+=4uUke{&K4v)$uJ#AX&(IU_pUj*O*R;l8Pw_d;Bdm^w$ zAKowBFCFfeAA?~#@~gd!*U{qwkvU`*ZSJ<1$2r0>c`zD|(Uef@ZB5#tqdIWj3ha*p zXbn_5-Y&_52BWD(P*f{c4OF+pW3%qXEhkp1`C>pVOLPs|hsXpOk(eeAuGKqpq$xhd z#(mbnpdJB$qi>8B&NewPv#rZmNRR~`Fe)=h3(M#Q_Go(4#HC(%qBf=5OuLB9qkc-{ zzPZ(Z%0K42PtP&VZ$9RS$X}_l9(|%O^U$7sPGk@k)}9UAj~uPqN@Nq|#wbxSM4N4* zPn?8=wra?F91ztc8!YK$0SJYlYw_;jg<%vk7L40h?s1j!ISa8lz$Vy01Pw&Bbh~>3 zlY}D$WM?k9Y6;H9tgBANF$z*iIuDO}@_OUUN#`-|7GF^-ll$Z|rBU?CUr7 zS7)2|5jK^<3tBQxDi}jH8nNtoNo9w$2G&oBo&p>p*!PI3E3~&LIbJdy^jBQ}PXGdF z8^z63uok21YK55N@B^w?wy{TyL9aR=0fbjlL99APck~%~?Gw8s@v!!@GBVNa83%$` zXiK`lOJZY+@1;C8lvb|3@FIW(dmma?03^!IX?=rU*fo|I(l`>o4Dzn-@A!Xzz2gt= z)z4neM-Minp(Pu`%sJDvgCge0frJ!kVhE(A8_JX2odq}14eEi>Tsuz*kloA+4f(kc ztaB-!Qf9=S_1Rre5~5``i4_ zr@q9GZ+`sp<>Q+l?R~zx`y@YmDQ_e3zCFne>F^8wBayukEz{k1c0{nvBL|{}ki8BB z73d(Xc4EVfGB?6wF45Hi*Hdz`M)$eEFB&#CJR~zIZ23VL8fYB|_ciF9x&f&9N(^M+ zV^BAS>PrzH2Pafnc|q1ofY&5(XWT%c^+~Y&3uUyjx%B39GdDme&mz}a+`IDP$V-fo zn_I<%aC@MnK`cW*8_&{S=l&M|(~tJ~$2b1&ga3uo`PnP^=pnu`9cRD#MVC}q^$b4@ z;ew1tk$i+;)|m1fU~QBp5T=T z{tYlk1ao}ayfk9Jl&pBc*VHK*BJ zYf+R7#|mXSXSLb8hQaLsEKZ`wFns}E3hk@)1^|LUeZRERJZ430S#fZ)GogJojJebq zVdb9Oa_ytungpNR9Y6Oi`5na65~yH|nYoCkvh;-%Dmf9pnIOIUif5In;IQ=302C

    |tuE*!=CnBlCE8r4OVvDle`o*k+S#wC@PiG0_Ch|| z;En*FgiAY#l0jyv0I!$1@HG%@`_L? zzRCJn@3Y>=AMbgkp1hQgw)mjO16(VEs{yi{tPx|wceNm79u5vt8vNLNbn?_3#{!h2 zT@gTU$Ud1X5EsRLl64S|k%f)W=7qo!U}=n?N3Q0)>BOYn_ABD(!Ec;CXM)HfpnUUS zr>Y~OA!)*9(p`JNM{dZU6_yY_?SL%HbI$fM=urNUtmvnF*pXeu>r-1<~{Hf zv9;0J(D{2Sfua@fkC?oIl|YD^g#@gcevlYC1){Tk3?@^WCuY>ElKANC-kWc1k2etOpJmOdj6V``>=KM|pYniay$D2Q3hdSE=(Gx<7c(kBziE;P&%Sccey z#ms^FEKu=a;(gWVkN~a7TWr3vtOAiL4vOVomk2-x`1f%4nT+OB8oYuGNFIWwF|SBa z`4P>5;p-e|Y$V#aFpXLl>m0ml&dsoX>RN1ymq+>Xq2vmes7+Cp%X#2fSHOS)BSA%&7eFm|q8@?+LUMm!LS$AvI z^Bi}zUTVhH3A?Hr)S#4gO+r5B2`+g?zNZ zrUjWI%#fmK)EVz}C52=mPr7yhtyBTBX^3NorQVTAuS0wYM)uHa!y(nz=q4$0+7cXv?ZOT|yxus*B8ugGx2v}q39!N8OiXfoy4SqoBt7}}Cr_JSB}Jm^UOw<~qy>)7EN za^T)m{N%-aI4HjGI*2&OI5L;_hP0Lp7%6u50dW{204Ge8YZI?XR3s#nQOTU0feQAs z8gRS~cLwST&j%;6C4Gu}EU@d-q9u|%MOJv}x|MnCony46q_wS00+9ie^%&K3oxutr zvf`~9p2&=^MtvOs)1_UGY^Z8uiweM|Nc|fS!D-6@qM=TsBbtQBuz2x5FZokfQ zQ@0#_gGCnLbmlHkSjXV4%j>q&kMCHBK!<9w6RN>E{Z_BlbDq_$*(iq8ztM`;L-(l> zK7l(t>3~EB96=6l=(Gt%ac=|F@mbsoHDclf`2{Pf|=hxqXB+U0x7+9$8#qhUh<%LxHd;>gZKXJ{Jue~1Vx!636Nku$>` zjbf4<@VKWBg6EHzG=jiZiA^0jTBE|9FRHu^rVfv5BAIZ5$C zrqkB2g27r3w9Yj5Zm{1D=F#ZCjbn> zdmY`yZnG#Wic8OKu!-Tq0?xk4Hh<8{dZ>nf_Uhg4>Nl;l34+pB;pGlFcJE_U960Vr z4eCgDnQN%D*15OzkW=2Pau0)56K%vR|HZ@{!>}Td1UYBpfxEA4sDi7dd+LfAM<@oa z31^SnilU*Re7T^XLKsF~^6kEm z*bGQvVR{Sr_F#Hd^={NJxD0lbvt#B6Sh;9#Fk7K>vDJC#rh*}2G`@0n2{4~(+xfKB zuXmkH*47|ioE6~ABfK<`A`exgFf7UKGN9{D$QPH){y=y4_m?)>?Q`k4Cz^fo8ou7! zm&bNAnSh+2Yl{>|NF5e6XTI7$d(V|e4Z|w#YXJ$YT@}2EvBBBjGg}b)D72T_556RmYP#Q`ybnJ&wKweeT#JN2_2vJ}9&&x8m1!o`ava$+s6m=?DMx7Q-x zMH{P_6JwZBQ2uv4B2zj$8vRZSLsqzJHDdB*_i}5N1x)+*k2=y-GtVP35<>?$>i8)HOQvAj4NaZ z#=)VCPqrXRLE13Lv?e7bf;amtB;2j*M^`pT@%l!R#{^XYEPh~6qK4qxbI$7*K2rTb zZ}R_nwb2hI!OvdJN4uQ17AQZq&yK~2G3tFc29a}43%5uwXwLui~h z9;>Btaia_Uht}vgG_>u#w>JVtYNcOgUkiA?;nmqlNt(A3_F~am*QRoP#Gmm z-edF^n+Vd=r|1&2w6-#O@lfHQL&X&P@z>K+%bSTiz=`CUSLYPb40$NCL|YW z0|a*{5(jh)q$}VFKqvn!B<_0R<#`@#_5ZlD)ej!&XRqg@ecsUj@mS#R*GPledhk-( zg{g~~N&}kRAUz*zi!NUsmwE$qH#1=1j~rzY!xpETbD!x$~u&J)KQ)qLm#Le4Sr zk(ef+^S(j2yf`Z1qJcd;&sfYKJRzWy=oV9$H3&32bkl0cqFb8fXR2_F$s)ch~+tng&06314q* z|5`ga#7#7Z9~iYTz@RD2(vl7mPudP)(7c=#VuPlx-TFd`MYpS_Lub4P;z8RGiYu*g zAoAo|XqwYcWAvX^L93o+HCwIRb^B(<5Mj&>WYHoz>;pl$2asa!3vp9zpglC&k$E`- zmNRlXHI#a~kB)-T3g_RFi3TU|m@bBgb7vDLbWI31w6K+c4Ksi~YMKwG!7p|3i>~r+ zx%AvMd_C#!Ur*gN`V^*ys_YC!{kBeTaj0+D0o=4V#AU-4g;SxmRgGp0@k6Pb+MdlZ z&YlIo#%^m2MaIKSJD6#<-d8vel5=b%!qaUa>zrPxp@9ZGQVyrANL$BSL!@B zQK<&kxDpc%PTE3zhEzbZx*g8FIFWW72vOIjm(6z5!lPxQrQrD<5k4__Ph{das4eS3 zlk#t0{NP{Cx_jV0cLg67!qi6|+t(0cb6k@*tpl~;6fKj+yXC|{3Y4-XG9{B_vrcaT7xB$!u#wB5N)I8kiF!H4!1 zur>3n2NU3zr}hu__RHOx=-F%dP)><}dyjRNA!K<8LulG{@eXZ%;hnmpaA!IjG4i}- zw_-M2TIHf==fK1+<{4dp`zqrOH(ZbDv0)4htBREXCrn$%F9EF5zP(JnBs~Ya&ai2% zHd!sR0K$-w3)(Q}i2+#uz!3&nG1)S3rx24QzFyQ4#nswsxd#KF<}`6-@;r<b9kE@C1^7kF~o^;QE#=m?s7R+AC?MYGGz6!pjy^b7;lBgIv_jLbN}A?!?}$X~hmJ7E(zyrd zgJcL<6EMpPL>KEQj)N3Zt=lNt|McbaySIL~MfKceyUoJ;mgY_!gel;hT3hUUooOB2 zK7-=4p$UM@$4xq_e9PKG60PBXPTvea7f|iUD(FC5WCs`uxkIA|EMKi7d?;3010ANh z4P1J)S2lZ9&z30^7mT~(QP9ERiCc&tr9?(mgW}AQ2nyIAEIfPlYj!VZ7PkYL(w+iS z3xS?5v)kMgq0B2!E7~&`JbMD_>EovlAM4YXKmH~8&9hhXq2EYh zcxnar%BDUn9G!aaoJyH{%+(t*jDf}k#8wXQy$f{Eixmc3HAHN4+wy^7&gr`fcnd&9 ztKg-=X<>;=9UPO9Rb%5F)oxqO5&^)o9?dR}DZHsVW1P8I4-kh)1=Mj`+ksMVO;u4s z8h5EEC`$`nc-etr6Z<#`dNb$RtLct$S`Qi4p~mZVprdGsC%caa_u~Kj=V-foUZW>3 z;v;PaER(D0nRZ!tsv06~H_RDz`i?GiFiF4kV4HbJ8Aj5%9R%!1J*yV5C!1sH!6(Z1 z^37utu6&CX0EVt?h*<}l6Tn}{P?wL}>(fA8fD6ObTh!=dNmmA^S9H{l=2xj;QEfr< zE(ftV4!Q%G_s(`|;K&4oW3@{qdT_Y})xaUa86-V>@9>bcW!V^96vgN1PhqsLbGH8F z^UohYe)#m|^P4}EfBQ#w`W8=K&)56>9Z;ElHduGo!1-n{o{z>1iZLW$fE#S9zRz@I zL{=??6NqfxBKX=t65PlIiLh2JF#*`I2Z^jUIoF_lhQx@)dpSIEoV_sHeTC(KrY1#0 zjjxX{5%guiy~TipbtK?V(~RM97BkmXsvcQLwty6xG_LGALaMNt!^W{Ea?21bIxwa? z1lg8(()BNb!ik_^dc4nnjjQr~9OY9N@X^LPup`kOa|tU{hzqgkW(UPr740D8Z?Bqx z48}TFsQKyVFF!7`)uGm^3s7?#$jyU6JDWHX|JQge{D3% zXD{DvOnC3#6A*bh(mv96+Q>6BP*bMnf>Q^d!oe$nFj+_C97YJ=>O+9JK4^vx&~A}L z0TZf5@39U|Q1q5{{HFwIg(S#RMZzw)KQJHE?5|?NPXpSOxL*ihmf=Xqf=7RhIT5i0 zJQgf@vv;EoAO&C9HGxPuyP{SOm?;pCi&*4|#?9eGNnBh9R(J$D^8>0VL9+<)^4ZKD zZ0tW@mF<<(QE&e6_I-Z%!(G4NbJy}wPVEsk+&G4uXCr zdj)UHqHjA3K8FnC`9i@|(5m!>jCDEAYiB@jyQojg>75n>mAEMAitK`}Z6K%f7_-92 zMFZspI^>0+ob(~>p!-R+cr8=TzcrI)wxT0dXiOm{Y_+t?&`v9z4A- zgCP6#{;`Vg*$eqN6>kU8@#$1ZH|7TQWeRf-oxB-3Ln(Z&;E$bgKpm1Uvh?iJF*hGb zQ*f-}5oARWN1HIpTtU%$UrmzAT`fONAG=#y zEcD>neL;-=`__|ZFXp4}a$7moIsuX2(y22QhtQrAFjlrR!56o})I93)SX*pWc#H$c zk9|}zod~QOd~SOV1ZC54W2D+S-ku3v;spe5Lj@{O<9S|j-SN!zM0cmi5cfA4mI4fD zo+I1tz2=Z(0r5$Tc6Ogih;ViWtOB7c`;0xbilgtomK?PqaGH=yXMp|L_@sfFr8|@j z71pX{k8W50<6fj`z5o5a;op-N^dU7Z~+v@O8_95Yh8;gh&R>I-D?g@Q7BC1*Qr zNV;Gu>fGlvOl=fdn~*ibg?B;Z+27T_a*FB40=PgVrV!Rk@D z9Q`8bVFu~y*75vr@4L@O5tnx#>bLLT-rMOXFX-c)UikLe5yq%K4@7w}DKRaUXk_~u zyOD*SFlds_7Qp^yZ9Yx`_eh}Xi(C_s^#p=Hw51F^0rmGZ2uXUQawoK0N5vkXHc=eNxqUJ6C`YGZ z0ri3?SY@iO1RR;YjJUQ?*BZ+O_TOr8bikfsVZF5(-p4BM4dE2iu1T*2Yd(Va#K(?eslXQxu3Rw_~0g)KiYN77=~>g>dQ@ z+qXLe!o82w7{y&~tE--K*>svjb*?F^4Lp4CXVKWRd~6E9Dj09D)S*0EWFv;fwpGwf zhf8bP00?8)=!o%HDw3k(2=N9`+NKJHLK00JywT_0kNE!odT*!Ey}o|-w_omxv!1-N z54RjsJdK1M6Ttj2&$gOZ*afjxUG^?jfnGcm3PfChPM`>sRnW2$T8+?uO7{vu@-v;< zRx($N(u$c>m>8)Iqzoei3gqQFe5;Q}D7T+ByYM9m4R`aNs6S$%B|USrGth7HWDqEk zb|}Jg^fU-n4~$(P6a{)C!iT__<=Ep$REreY4l$3daxzE-7P3uA*Ww4l%DdOIw?E~* z*Z8v+^pOm2gKK(qcg>y2WhbKCr&K!wp^O6wUgHEYC^aM_8uI*FEeOTtYVC}x#kw5H zP(|7UmqfuVOgmX#efu^cYnKK4K9azEL}}#hq#_!!mwQ9+OQ&=&0@>sge0!;KW)wvm z@K~=hJln_{lHMI1(6Ww%yDcs!(F^BH&$QKWFTl&3XF{(X|iqsGq%@uPy&yTc5C6hEJ$UEc@!zJptj{T@UL21$j5Qwl-3b zX5uYjj|GOV6MBs2_%6truk81Iwf9EQM1fzpbzbSSzM@aF!!*`Nn8Rcezk(}GTe{ZJ zY%Wj^s3Z=X|NV#G0nPFt3E;^K`O6J%KeTUz zG*TRk;!u>xsPv$5jk_BkCR#g7Td*yR`uY%XiULk*AxSx*Ya@3M4Jv%;2p{;`u6m`~ z?H1fAVaLIMur8Ef(9pyL?%bZy4Ow=YYw{^;lZW|WTWQlUpgGi5+KG{6=;PPwKv@C> zr>Rm17DW4S;!z)c2Lhf)Vx~yMEvQK1I@SidSBeBkT@p1c^m+{TfI zH+oMkXwFU(Y}HH{nVrf2RhUc%X3-WyZvmFGCqSGAwj=^o#(`vg3%+5miCP3g5jq?3 z;{cWnCs_^*^oYIH2H~L>^GpY!s!3mE-A`VGntdVU8;19WfEV8od12msT6DQlas7=y zvY$PB-F}(d(SM-t&f$||r;$tR$UCh-u-GVVYu4DNqdF4Y{FLG!B~k-Q%-fPF&K<$4 zpv#Hi_S%~C0taa6c)3jwZ%GbBRN#g~Ox+BZNY}~Zww+y&N&qz|n@^o7P{+0~;CUC% z#Q;4zEL*~WVoOG|%;}V+V6B`@R|19|4`iA8=wKmi?Xhet_u6m*VZqSUUPyDDXpxXh z#=P0ke>nE}%NqnKJsea#djY@g?B8N%`$VQ9tG1W$ z+XjO*yqAr;?E+1N7Fh#Hz~S6m3*_sXV=UgRj!AeY1XH2AUK=!6SQ@d?s*IYBswW7c zVy`xK?1s6JZai>u4sNfAk!b^-GlUxwGCGkZ6n#t(PRz*B0@?7}HRPe4gFM+K7^9d@!0HNzgFwn3;1APW$!+_585>dW0|RYHKLU?^28+w1AVVI^moNML=z-q)9D}} z0E@swK-Fs%A%|bmoXIBgBekPDV?HLT_PtL+0qt}MUO2uzVh=(iPs~(6cdwn)n$qT> zi?*9c4I>>pE7qb3LXr06@Bz-mcrE8k@t@DRF9~?^IzAc}Bck|9wT~TpBM1^YZZGDFjh9O$NfArh z>Vhc=hFb*T#6|+a@TDvL!ni^ox6nlKsRhW`kxH^mG#4S8kxhU$0~O;F(UIrY8;X-E z6cC&|L%=8tLC9b1fl~9t;Y`2HY*(rlv3I!XqR4lbu#VTtJev{0}TZv>>Wj2H*9154) z&0XvjDA(uM*^mos8W4(tA`|DD{ddLFfKN6|VkzM#0j*&)eb9&I38ZM39(oFqD&Q-D z>wqSH$3zNX7F@e`Z`(u!t-Bb(k2d!ozI^yyz5m{Oyc-YwfxAE&qAvI9SKoJzg3NpmOPqij6FF73CqU_$NQg|`5lx#Piv__3d~$sl zL9=>UauL9N=551bDim8lR3Wyi6J5wf&Oy4l$tKhf;ew3Wv%T$uNISe{YeFJ}$javZ zl0zk4(W5nxR|a8Vb3wqjtk}xUnrw8lCg!eiBvOC)`2N@T_4!NXS5D!*4Sx1IKHT8z z^T7y?^4_Y;-dDG0TD3x)=g7m+92Q4uzL2_Vu?`YiGdAlsR3(A<`s0RU<`4wnV}L9o z#$ltIK=!&~?1}_U#G-G}*4piS(5`^zK#+nsykI9~4{Km3PeNWaxUs#C&dKF^Y#U5p z>~*`>I06Pu^TvIk( zoS3l5cZg6kTpne+s?aPjV8eIbP@|JS^ICapU0MHd`^lh1!MT#+2$wJ3tMQ>}x`hqOK0~y#y^ZeG8ZnASI3oKH{^9jL|};To*)_+mgso zh#G@8A&p0qHj7tBQgA8m#3+2XNl=pk0)DLuCV zr4_i>pe0*N4me$>r_;dXB|6RBD#|-zKSdM>lTj2^oLiChbQ-!p2!R;_Kk zt&S(J=_Au{wV^w>Si-FH*^LppbSe3E6MU}(uY(B{&PrPVh=ElEVK$VmXC0@FY}?_} z7s5e%?=U}F;!pHBBCc`|AjkpNWyTe!j;Qt9y>6PP+gPQopiNVu$^x8y&(PiB7C|t& zJDNdx8vOc;U?@h2(A+*ot`Z*L?gRoCFhAW~Fc6`qr8&ohfqsl=n6|focU9m&d6b=F z{^8S?D+KG)hj;gp{m)*=M;pw`#tcv{CJI80T-OIX;n;#xvPUiC##7^*)&%rwr_~69 z$vx!I8gpZshHOuU4WE0Uxr)f2zR#W`UWPmiNL}hp5XCI3NA=rgmNtgamiEBKrvh0gIp^fI!Mquj00|01BGY!Y z+B#;BM#xz9M*&#>|IhX5kDtGMdi(yjZ~W)C@9v+-&tA)i=_-X!F!*=8(O$s?V4NiU zVBlyY%`dQMK>yY526p^eO~QKYg*l|-)bEHg8V8g)05#>fcW%H34WDCmGRWTY#MQYe zl^#R;tAzK{T+U9DnQfoN2Nx!_g{wuvtAMB#UdNU(dh%#W`MDg{-kdyml5PV#3he%| z`-+aP11!8i*wkLU&sZlEiAt6g7(>9Q=I7Bv{Lg>B$B$v)PhQH$VX|~Up-s@R0iPI6 zp+Y(vpj$`@E^OFY9*$`2Y`ttc@&RZfYOkR{-|eE0%?`8URw#k^tnfZJf+J@6MaVz6 z#}dAqow{H8qdgrzEKE1s_r<*dz3O_d6drY+rxq|Woj&tDn4(w{4JbV1TqsA*ROl_SsOjDegk0QXx{A2nBU%?VU4 z^!jxwUqPbD9k7#@OTd?cIErZ|{r+v#oBH(W!>2d#&OU#Bd)|h9 zdHdo0y(9U_i~2|%8zgwi!>1nY2wj{P08Sf5Yl9u*{bvDBS6F%H5loP7%K`U>2lt7=8m5z|fK$R8?F-+Z>qOYa+S92-CHRN*FZg)}i3p zUa=x;;|qt{?Uf`XY#Bq-g~U@WiJ&beLDb`v5A_ye0IDi;bmVcswynxN%YSws(Gd8K$Byln)bgF_W_(GVPB9T%r= z(5k_Hbrym`2bKz%9GM&0N^4J<7>i#N_162CvgR~~%PX&T6H?7YTkk2Y?4tWe=h8Zj z`y6y`#t;A5K3e=(cy8|^Jf6LJ-*)vMu&cCw__u$3^RJzL__voy#O%l*+1}2~E0YHU z>@|9E%1byNnlz4naW)7@Ry6>>fSS`ogtM)dwarM*KyB_!yJysz41gDprhKyJZU=Hj zpgA+Qqb(e-%)`GDrs1=f?e--+zP^O%l5Q2|mV+D`(kUDHr=5MErPeUY>W<3)FyKIX z6!Z5b)1@L&H9{7JU>lJhsOLhjBmpE?3E4uDjnAb!Azh|Ud?b=8UJG>^ZjIJ8J6=dJ zs#e)jfaRZk;oA%NH$T?9kN4;M&tAM=DxBL7@&mn;x(g|_(R$Oa4DJ*l zFMS|_cQwOk%F@9_A1xXzU2EYZznC_iVFgq{9CSwKK%jP`1v%nEN6;bM=E!7i#OsWW zR)hhVdR-se;@cV0z+;KueMdKafm_8C+Z~hbgc}esG)SNUPkFTtV-E1`U>0pOl4bYk z*Wjop01thl&KVt2OIN}IW)grt+>vP+IDGd|5&u)1_g6I5*Ge}&{PdH(&o}ShzQ?=x zxA%7V*$esFlfW-S!eA&6@mty%$3j!Mo9#^-K@r4t)yg_!4qlSGG%@W0xi(a0n1i#x zx!{+5Vgoy_+B3O-W8PQ3XUxkZD2C&d!EFZ#b+(Xhy3xhhjhu6Iw6GpqMs(Y#sQ8 zPRjzawF&4gn<>`eIQJjnzkV2q^W3$&ah{AH+SkWc2Qt4AHG-2YH%5|nINLfC0q?EY zFwG1gjH!n~Z*O_31{{XYYzwVV92NpiV(fWEh>Kc7F0-wMPn9)Hd@O)(%oxZOQSw)e z9faqiOhZ0Ri#lr;T97qj>4v39@h3pi;bIQ=-SLS;bnQS3Z|JWuvROjL1p1UqK*a@> zQinAu4qN5mv0DIgG;Ef@ii8v`ySY65hu+A~Ucz5Kuln5sxHwf@WgSP7xqF#TcwPu0 zU$*z8GkvyIut{4fV!t-zZQY_R)Q`pBjgLYD9YZZW+j3K%x+hJ7k6s5tLm;w;z12`! z;#019dy!%tZ~|c1a@L%RtjyL6f+O64kTqbV<_@G)N1k~Uyv})oqsEo5iPRxPk&3i~ zgU^N;(kOCm!)Q@*j<|9MIq*SIj38;| zf_gX@GRqm~!0X-s%j1gEI$}yT3lL&T%q+H0_$%a`==^duB$w7eDk?lA8;oXRL1erF z2-@i-QWaWIzLiU^l4yP$)EiD!4poampvD}ewjK2e9%TnysB@8<7h|l_JC8BwOwff} z*p!vSkXnyDrHtmqYhuXT@yv^k);U3NroJf}^?hp?`}_0GzPxmw?lM%Kym-IFj&_J} z`pXgPTQ`C8cg(cyE}XG->~%;60%A04L}UwtGi@yyLfhzsZ?SerFq3KHinKuR;n{GL z17CmGHw3C^jbWIsGF$

    V`pV$2<4-h)qJ*FO$Ga_S6l*5;#HVwZ=)9hA!|bS8ls5 ziG&Vvhh{3=olNK)^j^`q2-!${<_$npcD(fh_pglM)AJ`*)!rqN-T3PO~L zyIMy?mG?7|&X{H!p(hDc42XB=ODH-9%c0S--OizisN@eeD%n{O+D!{mE;0d$#tklK=zSjRJO!#WVW=&@r12?vB#T*D0i9 zQyhjaglgbO@8J4HFP*DGJlt1K&{;Zw9^7GC-Hw3X(QOQAOVcK_({JE3cBs zfRF$I82QYRB&}S!2@Lee>NXA);)Ol?i3?R2sMK#PjxjzWG!i-&x!{RiC|juPdDXHEiK*P!AzcK`ukL zcBDpvqLek*RS@Zd*;v-0wxw3ry_l?J3zoJKh>-O^mB%SiwA1QnzObubBi`? zvp}~nb>==XY^U$FXnWL(HO(lYfVgCxCWI#jU6bt|w+3u>V}rIQ?Ci5dv|(M>)B zP4yN)!t_awlpO)Y91H@!BI~K<6hyVOuG0r!5M#fJ%Z{A8jyw5L7{qayc>##O)~h}- z6~OeoXF#0F2T_Pvqp=aNu$31m<%4rCkTVx8&+M=kfc4XTD+Zn`&`~^ySZ*Al^Egx# zT_hnt&`Gu1ipfZMZ4((pXRG#od$4{n2XD&$_~GY!)7NLO-Xj^*K)7$Sb7(m^BQ>?v zgomPQZSkELHlK74c=O-x92jyS@Z8sHDTylJ%oOi9gU%_)szbeb1! zsc}MqhcJLw=C5DP>-X6Ucl-MNrd)LGydu!XIa3>2I-uiHssjg|=w=JA7;rDy+DDHz<^Zn&%xo|m(8rXT4loaKwO82*zm}QnvzP65 z=DNNkJ8lMhvS@!iR7d-}>qyr$oa7ow)9V8{%@K6A#j?|Eaw2Pc} zHWC#(aBjdHueth_>IMJa+yXIiYZGVcSjkEOW_|K{IQ z%0GOvk9Q$q&tAJnj;`96&jTSZ3psjMgM$Nk<35=aw+C)Jm-Yc`a>t+#^+7v@utTAt zG-*Qbj7wR}z_&541H`xH9?e1tSX^t-H`=@CsBA(y+^wUlwz;-J$T$^VeF|{9iw|5p zLA~vR12rAVnTUlL(t?^^Ktw)g&BHN_PP?dKxwBZyf%y?RI$P|$J1z4kp(^v%yACb-@Hiph;i*%6#^+>3uZ+yE7=sH zoxFFh{=kI!5^3`Dr?+qFbJ)kbCfg^kl9W^D#_EWpXT*z1- zD1WIs>SrUKJzYUg+Q^t(YH79o5Us;oHgY&&ibn3C!miW=BH#sEM&RxScDUUR;yPyM zFoJ8*A}GrygV2(W`$W>FmIs&lwYHNTlRhtD?gSBS8H^SOU`LSg19$&km$QlCb3zoA ztZVMPLHgUiVg^(Po8V9O@3i#)^5J8>|5ESjrz_C@Wt;!XKHekYKYIzkZS8L^mD*Qz zT8dBVHm7uS)M~V~b=T^RS_gc?cVfWFTih1znqGr2mb|=0-b`a5oN@uYvUjiUjD840 zSxy%;{d6ESg#5B&G|Z8Cpj{SAZd>{XCm(l=Tjzy==Gd-|@AgIY>IPHP-5=vJB}7SWVJ48Lx2AeRi*=3&Yy&80;ds z5El-c1CX5N0}O_9b!=^~6&Fe(RcSDCjL&F?Lbea56N6LIT&>D)ojM1(vYCd-%h_A2 z5X3ia!xb@(Qpc+-X(7D?_Z1$~IRoWfrQN$Wct+m^U>TiDhXuqxZ_j(S`Ubx$+^Y7W5bq0*$M`;7jjJy4%SM8omR)G(* zPaOmPa&<`$WX6JcWLFmGGSc*k7=<@?n+^ z-jw;CSo0aE5tppf#Zgo`jMBF~hkyE9fxP5vqpz!}zh0P*|LHz-69+A@OxK`H{B6v6Aj*@DMd3qR|gh3WIs~y5r5zkhz1(fYz9} z{)|+e5u=MyNr&c{4B(vxRlw3Sm+dG(_$TEas|=PFX?hNDGl*qDc3AHLI|gQ9)DZI_ zO(uGdgkKr&wtd^n|C^uR=i9h<-+lJF{Zdq@KlE?iK`N_U0~s4~MXZM*WLrJ@p(6A% zkh0LhfVcuzMB6Y#F3gEQ9YZ?R+mA zx3Atcx@=>V+zSJUGkIw?SQetyE(~D0VFHQ11h9qHgKO`~MI$KiVK(+!C$(MSeKwE{ z-ypDNdWky+tQ_d6fvGH}&WgB8=l)#_{G0do@$H*WpTD<#KfV3~^kqoDoa$h-OyC~zH zk1R5;Er_%zh)3Wz0X#zeRZr;{H{a>PC_ige0k4VV_GKv3)*On!%;iO~)Xowl7CNjc ze%WDb1Jnscbc+Op#gQa_1QDE=&JZFB*mv(*IqF33({@9eMDSlMX8zmf`pMpZc^g2C z04wwM!~47P(I>CzFP~!ip?`;N@`j?a84`#N&aIgX*;!e5Hgp|WN1IPtD^_;cb!|?Y z=#n%qT1RTZ^Wzv5!%9EU&qG_~G;Np>CI)8Iz+a2R`2W&XA(r^u&dj}oe>AjL9|OYa zQj|0h1a^fOZ6wT0j$EX%14X<3U+&&!huY=1&Vw_ElS~4SlaV#1P}N;s)$QCxF2F!{ zb+s*kHf4&8gN$+sL6Qr}B?iy?k+g6QmFYQ(AP590o^OA9zi)T_to5u{C&gyGd9h8j zRV5@~Gh3=Js_^;Xg~-vnVqsfGdf)QX*L<%4FY6aI@=sWs|J6Sx2IcQ={Wa9}Fa1sa zQ~Zeo2NXqoAKBnOh@D3g<$Es>3$-q1o9uIjwmqQeGl?cfPv9(MHlbfsOD>$*gse3N z^bFGV5ZuD-o&tZ^ewA|N4Tp)if0o&1$r_5_k5^}}_ZX?aTnoz)eSQN)faA~|e5I~i z>$AVKtBi0IJNO=CnYI`*s7RCy-YapTJYbk!Tz5?1?X{dJmkd zXWgE&wL4$8)^m1gwPf!g(y(t^m~Tc^tMv0q=f=+rymns@TDPw&ArbAgqryn>;kOMRZz=mjHXjFz~kdY#(oDxvN~KoN<~~>r;m*7MMy#Gj`)544A1e;{DJ$W zzs;XNa3wOCXdd6MXLKMoY=X0iZ1;+F+oEvaei{R{pX-1Ou7EVLegFaPErFCI2F^R0tduX->MHbHWD6@Aiu zbF4HRTo6l?G?nTz6b*sBu^blaLu>*V2{|~&N zzw}r5^M{NM*+kfW3$dxU(y7g!-oe}|NwdB!`b6~k1`qx8^Wr6;LuBIarFM??$adBx zIf9~a1YnN~lAfLV>N$?@G14%7?a_&O3HzI$xKeZGn7fv=C%AM721ExmBHz8kFDi)# zJ|OY(TZQ@>e`;1quJ#7o}*-sy` ze`d~^U;5ko`SUeBC;O@z)h$9-Z!0y-w9rM~z_% z-7lD|S(;Qvv*ythIMjO2mGRDtzvOrQ#l!P{_uJq8?mz$L_jUj7_mzJ&LgbhJ27g}V z=RLEwg9|&z`p#?J9r+-V?HprszO9RNK8yMzpH>S|{jv_)&eUNCF`C@DrV_((_d`;! zoL!iZ8r-prXT}|C-`1WV$T#w1j`45xZ*}~MCI%2s#rhUStGHf`bCs~rT}dcMpVHrk zdvt8)^*8!${!oZBn9J{fAydLYBJ3){GI*$=z7h4Il@~ZdijtzCcyT=JGVI{ zumj*pGG5|K9cL7=vl0mz_xuo?&!AK0nKDjPuO^51c=0vv8G5z_%;8xL6$9@KsHgGc zv6_FY@u#bCw0#{Gl);iNWkxOYysR$woO3L+KaNoDZl#b8FTGs=c73a!gLYV~>D}!C z){a%(Afw=E2MX2K7B_8uqKKmuSb0jvT0iX_M|0a^b#6O0+OZfm)?znu)Lr@$284vJ zCMGfPnYo^>HFgWlhZeVFN!qkc+VjU`W$MTyFh`S_O8M5T0r0(N5SsK>AKIq=$e2(E3>bhy6w(5^SpBhX0bT_a_M>bMs9;2#;TpQHA~Ldmx!r6 zkq)WV2{ifhG4|)H@&|!%cqd)YO|Ff)&xtPhXbrC)5*jaKrZ-M0NV8is->oZ5xOGtB zpY*`@)S!=%Ne`r5<^-7WTD7#&cd9p1+xtOTVD0^^-f!&^r5$kmbKL7Bn+&I=@6{$d zTC3G>fU@o9Gr@A_3}YldWlVW4`c~P!PWlg#Yi6@lRL10=;2sa78s@Fog5(|*(q1F~ zvZnoS{`{c*SyWvA>mTa(|8f8JH+BE+55N1Xfbn1WoBS(f*}5o3$R!vp-^pEXo-tMJ zyWZlSd77WqHkh*Z2nXGB8~xSGbbHLwgrupDUb2O0W#^tzoqii;ur(b{3GBN*#KEMs zy4t7xmuKxyYOILsT+go`Tr7P}zKYSoO|Nl*-#Z4V{^L&Zi zq=87vN7}is9F)veVtz+TK5oC*Z8A}1ICXwz7&>dEs=&{MzT`=Q$T}m*-GMBPy$uXF zIH>*3iE!yFpToa6`mV2)f#=#@v4z1kdAkaPWWewtq=UR{-s5-&xP_8u8RGw+mSz9_ zzx)0E`+xtRe*2r>*MItB{li~7&VK1H@XwFf|M`!qG7XtQWZJ3s&N_4RVu~E|?p42Ip={4`$zJOADa@v*IS=>&GaBa3VJ=vzU`!+zLc@3rw@_@Djb zIQuVt7sWYs>m2`ZcjQlxocL8YV_oT&wZQ=gH?YT@InO#P=a=p+E3mbCU*z)WyDR0P zsId+B3(IHm{t|4_jrHp}cX?bWVu@iC^wn{IFW++fbuPk-t#ki~1uiYS%AmC;f`9CZHAPiwNj|7$a` zU-~=yYo-3L;Gz1r^KVuEL~mjE0z$LV2%GLNw1j=^`$Xi^t2gAYLkSk}h&5uomk7FI zrO~%#fBkiI%7kr-Bd2Nb^lE&rWz`&&l@7 zI*A8+5+2HApD)^8tKHVrtt5CpqAY6maV?&Kl0Jw4TRnNI{XDU`@q{nYZe4^xj<(=0 z$;Li6>q-1{+WO!A0|(Y`|L%YLYr~3P`m6i3K3)E|-T!oG<#tc6&jkpvkmx^Gj)XHD zQkJl8ziLPdXprNO1Q*etmhcDmacp_}SOBNmb?qi*EBd&H9S+hW0%z`53(tDt)Ae{j z@cmhQ08y}?LJS~_A?Uo0=^K0F?^xb}%*JB_!7lnV<*$^t7>M!0T5n|Dd2IWTC zmfI+aYUh{B;bG?WBYvYdQGGKR%l@>H{Fi_Dhkt4n`AdIszt(3<(MFfS7F&nUgNk;N|9fo9UP_)f7XWxu{cbzmISo zoYEp6?`f@b52jujrob~iI)K2M9uvgZ8!JxFY0Z4SpN{kYJ07gxy!u1_`@iN=`Gvo` zpBMDaS+J5~Ge`QcZ?kR7Gl#73cLoLKJav&ytSE@jOPAH`=dS5Yh;`tWJ~H<8;RUd8 zbRwA6V1KYh$4(u?;UcWDbRiS3QJH`9C((BN>Er@Z0wiH)L0vtu;D!~R0M;s4c$Sye z-sk%6`+`s{LpuJ2kaW|p9hd1Jk(zD0RQJBWMrz%hQ$BZWvg2Mz}vQXd%s5P+9uitS>S-;J%%If9+oH9iM2Vkwx5jCv5TRm9KzpW6FBn# zKaRFAAB)6lF(G19`Ov=OFB<%R{XhJHq#8T>t^fT{s9PYtUZyk!t99KW?S=lgBfKIz^EzPQgWZY&F$9aI_BWxTy??d*HspTc4O z<=_9i-~9dWe)rcfBER$(_w(CQK>A(NQI}M$I)}LFM>w+-*y2T5u`9iGhVc)1&_3sm z@}4(TH0sPLJa^HLZl3Eo^1kJB>FuZLp%XqHQeu;$@I~RT8fJfawB#>YY>=Y0^FGx{ zXBb!{c8>0w$!`;2H@u$G@Jc9wowkMz z6YHy;yWarb8^_7dYQ5Fj`L!q2XGt$8>!q;$cTd8_Ml1`i(Db(A&#H@Vnps@pA$EPZY4faJl&F_y~M}kD1+NZK}UJ=2UWDnY$%c!?DNA zsqgN{52)dt5&Ez?_Mm{=lQHvoVQ?+P{BxkhZs#64-L5SNLvtJ+`D%Hr)@^sc>(}uS zAb_Pf678e0X5O)9Ig|{Tjpg~q?UZ}dF-KAi$hLmv2%+C4XU&0TLmR*`ze5>Ww)U>w z?T8wd3X!?%)R}wr1F&QJ^rp!VK|F%Scrt>F1d}xOTM-X(%j7 z4IvkhCaYSLOh^xrR}8g4T!c(_|8+;No-alM5GS;2Xk) zJI@?A;%l6X42c+EGOn*CphOg8dEQ;1Q=W*a0$2s_dFwp5{z`!Q_Q+GwWfp$ zmsH!MzvFpHRShX1LVJxszpjUe1(NZKJv-@+ zK#i-pj79`lF`a{WyO(I}JMY{*&lA?-ZGx42V;xDK$FOJ5td)1SJMX9}*%-750`1qd zk6CCF`3P)CmmFftMV=hSJUK{6217Muw!8NkMV~dtZnou1L(=|rNpeX^rXbe&fPiZt zy^!9_P4Aq-(GcjoT{x`P)AoRFCyDOSzoV&Di=({*-_uu#OW-0mHcN_*CkZ%y00sUG zH8vsmP$}-q(G}n}XIJ6|&nbW%k!n(3`$kgcAUuR1YP<6w;XW^IKrXh;H zo{x4an)iNW?tT_LU9uFcoSS-4*?wl&y zzDB#-wN3ZaQX`2$nf-kv_I19c*(@i~?@&TQJX4SbYWIkZKErG=T3BmdtmdX6!d*gB}yQs`{-dK0>{=UaH%Zsy<(CsIc*iV2x+%c=DOT}_)e2VFWUf1qsSH3MweJPZCI1-a^uBkXgW&l-C)L@FY4xH>Nu>UUKI>dq(81kX4w}CkkQh2Z-c;-PT=9h$Q^OHruJTw zr`d`qY2*|33@WL|y3vSZ;WZm;%eo-V+Owbtn}(Bd2FQ3 zH(axOWxJVG^DNeQ#BT0My)bU8TkLsBYZDEU-<#?a&Ye58fBN6rvD9^;+|+KBwkKC# zp0J)B1fW2Rn^ob`;%~)|8%)sSg7L;X^gC%<&!2bX>TJ+F8S`w-pxw_`B_k zz?y#d?d=vx&eNv{+Ll6%W81Ak_SfX_4A%xog)ZzM5Vq@ z^cb`Gms4tQp8N1hUr)@^J)(g*!K@0tpDm@ZGpy65Vaym;Rhw`tWOqpO zloK+lVp#S)(6KMW>V-MlgbRf%d6G>(0mkiEoU;=j^3sZ{p&vV=RS#d9HaAfDMbsH- zqq6*wSTe;BI4Y#gF0v+@07~HN_-frZ2?t`Aq4dP)0vMn#W^Y^eRZ;uSg-)pUtv02- z3aUemQbSXH64J9A;grtyeU5%!(XVGa?qNSf?M;wEYCcS;>j=DAqbMlnZxaTB_H(<}v;s26HW z@ZZ$E*6>=k-YlJc#x|OsCl+%Up`wC(Z!W){GB@JUUszN3g`8uLV;icJU*x-__4m$~ zFObXtpb46<<*tnbY+c;|44WTfvznmF56t8xiFFL6qw1G0WJ)whV^)cd(FZkMqlai~ za(DeYJ_0Rkz(y;}u~y%GK*;RMkhl-ATCv9otPwdE2cyrE`2*NkU(PJ`&JRrsNjIgh z$U5AxrLSjHo0ngw!7*3)#m;9cf#Q|-T;>@Y@ve!#G zPf_8CWaMgfi2Wc<`B^(H=W*q2?IGhFp-_L7M&5bxHYm0IT)gy~Xua|H3Gtrdri*!3 zVJJ-8h)@@P9Uo!$&Z^(jCa%pv@cmH=16>^R9LrHV8mjMM`HZt@-Z}bS)m$g3gQ8ap z0%E8A1zqa!HfA1w%qqPz=^=cp*(TX3qhJ21^VjhaSapTod*}H$WIy6jGr11wX;Il! zNM)^J{EpCKzAuDZ0+dnqYhg}6OkY8yTiXxF^2~e5M$*iEOxx(^^$F5}Mt^Oxk#zk! zJ_1~2!Ugz~FJuu7^(}WY_hrjE2*nvK>%|=>Q{`^>YYN=!xCKptU-O(J`}};n-?3r+ zn3F;1V(pCuVf{3-D%~AUdVl5A3(Ssa{pV5qGzH4zH3$fxbyWA-c@W=@&4O1hZ7C{Z z(h^fd>iRxu9`@y7H%ls_@ngWfwi53tV)ce8SIRpL-DsOkrrX!b?51xh%?q5t4;Q@O zI1GP!5r?b>?w#aUtgz!9>P#cXWc72HGBvxN`y3UVdK6rBlX&cDi!ofD9MuK?k54{K%W6sMSS0}9*MvheKRV~TwKRJKiVl1yw=CwSKC~M70-kisMg{d zv0!UIKO3>`OS_HS$~Hv(xbHsXE$j!hsiR*M)M+=Se8HGw-@{7%w2TMGf()1&Kwxdl zqne;=p}o5DIWaGrr5!xI@Tz!HH;kX%mOOV$3C$Q_3Ag2esC~qU$X(C|J|JDTdHV~V zg|`gzJ)Km$6$B66*%Dyn!*XakzjFvsf$lLM&v+y9Zzu$II*?9=fX@B)>NK?vGat5T z!TNU`^6?<$SriG1BuK8Vw&wZj1(<(C-s#zDjeK4-=osfOxhUNyLi?IDBrVrXcLp?z zbb$Nb9JhU8Wvs~Z#qx#`<}>O^Ytr^N_}lHi+{^UC?2)CXLEk~ultIffhDD4y_V(0O z7?v6w8P-oH+1Bn<8=Wa)`p1~p$V-84^YN{9eFWY$&m+b?^*z-Y$GA9>81Qu!U$v@K~zO1n98jTJ)q3&9k89^v|qbNBNCPk{ol@CmnqP@l)ZA5u8~T|6_bSBx=3 zB=?)J6B(p}tolOKugH&p)Z6E;<0CxSvCZHJVhOd!xoQzM`dcZAgsZ?Cjxh=4GxgE# zS))DEGp;%a7^YPkjo$zye}@oSOr_Q)=W97#%=M-Rzy-gle<(drPW?I;BfR*Li8N_F}-H_Nw6nFD^yfM3B!2nM3Fjc_7W4#8QZ{$|q$Lcp@z%sCUZI8PRBWA+*W7pp3f4tuF zz1la4|D_GFjJq0L7hTxQ&KX?55mCiOT(%LJ6IPC3vXd!wZ3rB_H1;|g=1rGn%ksH*O(PD{fZA;mYgNZ}w_4ZQWDA@Rz3$dmUgc`QoT zmmdPSqpe5f&R#}|5pM7R8$X7tv}Z;`x}{yx;+x{HU}MxQ_1WFm(z+9#dh&x`-vX_J z5E(hsVv_^gNTsX~DAvT_tyN1;+w~pW%!E^~bGn1Kg0yN)x;Cq(487{c6&+m>N(c#6 zN1eTVi@VfrVqLpd^V4k00ttPH(j#O79Ldlnb4B2D`u_U?|3}w0`M?(l%0f1fwwlH! zr!zulr<%%Q9dl%=S@+@pbb< zFphjkA_XO}A01`x@buVOf)IH5_AnS4bsq3-c_cb#TkT?NVHx32)kh6xU>7(qhL_ju zwkeERYu>Yty&Nm5Vja+-%f_c)IJ^0VvJR^RrrKNEtj@T1hnQPBH`d6RRpqB|@2a>2 z?-STq&-y&^J%z&q14r_>rc4M5TzL1coozI>m%ZI4etElp?3F$(i_Np#H+Ix@r%b)A zkXygc{4G@?AG!JMwba|~JDL2yt;z@hgN8N6gndomxaVouxw+>k_PAnbna_A;+JWy+ zP}LyI#(f-318f`%;XbU0B11y5%vBcR=PpFRlh$;+^WJ}5{=$;dp?A$4hSbyu7|`Ln8KSBfh6Bz=uH^K6oagWS|H4t=>6j$qI4}H#M_=6 z9Kzaze4n@biZ8%zHef))z*4d{Sb8?|^^X70`^E!SSWFq7tca|v8VN^ zc{saw8G|hT0`fL&2kVm*%+isAYwJ_)Qnty*id8oKfUNE+d1RbdV--Y}2qh{svOU>q%0@%?sMW-=#*#(nC-X3#u1*5mFl#py%)aiHKKGiJB;f)D zv*TRS{u0N+MeVfj($J5L@28)u`x|{`4Nc1!_C??bxI_ z$&Xy74-erT!1sI8JLEjly_qJ{HnZ>Sx-PTSur~D=Xg|!ZHM42o%^$=)awK0q?&L<- z5fPWex$1i(6tfm_9P6&r&Q8CByn?d%sS0&~VjgNTyH)=#CDvhg$0V@0zsHh5S7SB_ z4XIk6#}w1DB*>GY@m!yW9>wCUmetlidRbhrl1p#$Cnrj_LC}<_rlxB=WH_94JUWSPlF#L`5ueW#3@9Ox{8B7`<5m zve^r%!8i?l*c!e*2*2E=iIj}L7ns?{jqGRCdl9IJ3(hwmZUL4YdV9>}1InAr3zF{R zO}X>i*6Qe=jPAC{4z>3-n$z&%xTx2#DvUkUjuNl35VzJCm1|4%XL+{4K$$}l*qVMC zZN8Ryi{NXRS&Krm-TM&qI~vH+r^oDDn;Qp%`HV;Ujdwgm=eSpEyFTa9k=x^pF$b@s zbjs;D*uvG(0eI?4ymvd-!V^+HB|uFhE{Soj=<^sWWL}{ERB$BMM(}4)zE){{-{PV{ zWD0;V$95sEYKs_Sxv9XU=A{Bj^f)A@#+tS&A|9;?X&{KECZGAeTb(u_Tr~To@xINH zcY18uc5OzcSbj)U**x|mw!Cei?p>`-2$Tn*nWlY+(C^uPmiYyw&;X(`OQro_6Q4OF zP`K?b(>&$wM-$Njf85R5nK3K^uOgYF`;nCX!%JvtLD~v-he<9Z=cR7m1aix!2>}Et`Z`fD3aRbZe z^Z78)?tMPCK!Zv4r0Eex&G+eL%lGK|2LijVRb?MGb7y-59;xkX*d|yPV);mZ9{n=k z!fnrYEM)dDn@1BDZ*K4xhV)fRt0CqgZ=;K&V>8sifO%d!OY8MeCPi z&C#?k!3mtGaQcF0thRFr&N(C7D7-()q>sYR@tHqLugwWjlNSzr2^luhd!^TsPrD;%q~zi@Prb7_+}X0Zb#$+|HX zHJhCMQ@Y!iyx1>e1k$Cm9{2Ph=C|wwKYbpOm*DQG%vLfJu{u3vdVZqD_Qm_5C@BhL zJ*ce9f^hHI{kqHA&)Tim9iZE%h_M>lZC!F;4kT*y1&9OgdV$P&l{2qB&^5c%>@Tj?=G2K?D!`5(IKh6>usj> z#7&p@#YZ=`m%`0h417Nvfp~oJ!WVw|C4YrE@;$V*bKK4dVhk)wDA$;-;#eYRopj-? zGaUO6eLb=*Kc_Y#$eh#M&GV@qA9;y&o@exwmXijE$_XMd)02D7_S5x_%=OJ)i4oy7=KRKFG?IOR}q|Owk7i7AtjXQ4}Mw2iO>EqGJFFUQG7Lskm zcq3PgLh49nTtyDZlD+Pn5C1M=aU7<4gTcqxOn<1@hj+-eKfE$r?!BSN`v~@0B#4$; zfwpZCk-!HTt$sbwS6bD0yN@Er^XuYiY9~9`Y_L;rn;JUcV%!GXcj$R1*NuM3212Pj z8%tq{Z%?U=q}b8s8e^bJTmH^P4)LWx6c;2tvCXCtpgEki0{?8#=cCRn+aDn9;Co%o z_RQUc5?K`v48Q8@qf-$fMpJDY@KNcfGRciDqaNvfOe(ifEFv3iNk-)@qob?p-oCA`w>DM2=u!i&DzkeOE2^)p zW%fnN@Nz*W5^OxGJYtW{W0OKD9t0a#yW^&h7?FMVyg-Or3L{p6jf`QQzNa&E(#|v`p zCaF3&#_Uqke)_b?v2PYr1)I>qA9>DqbhImL5>PBMkV>DtpYU$^CouaJe1x&_wC-1n zY{{=}bXvz2tDVB%H51cyCmk{eJkED8!=~w*V1T+8>Ga=2(6iO>*Lw#pd}7`oQFZ8i zdLB+?n)VMk>_f!3tYIsJjN6%68NA}*MAXHc3)<8$H>8lGvDN971z70C+hJESVkDBk z@Z6}ZTj7qvz$9B2b?!UpS};S^5~TIf-!J*OlF@Kzf%Zy z03ygW8_-%ilMS%EqFNhF3qQ*Sgu&{2FD8>#ZGk!HPZl=GdQ(@_?aAOYdYsKs_*Vb= zh|ycz?sqRcYa;X#!r^Z9F7M=&_X>==VO9X4%yQPEv5y;fYluC@da6Ml&j|vuS&`jf z@-YJ0R{?l*Y?kIfe!0HSDf7=&$|G<|9>1}>zjb;tRfgSwD@sqj`tn(QS66Z&0T1e4 zx;7Qa7eLi%GkiRsV2bYoArC(`n8XRblAfd;HbBKXmN(>K)#TUlE!^?N_QAhp0cZj; zs9%J}B!Op-L3MKnEkW)hwfxVbv=s=cDz<{HCn1m)hx)2*afixxh#UJywJ@_epn zP=r__n1t*f=)M^5vY#H>pP%eo8zFuh{=sYm$}O>9bGU`p#0ZN;O>lS$=LS`usl*L95jii4X?Kk72wL3ofPJH_~uWSMWMa>)S&C5YN^XwB=+ZzSb)-Z zW2(o6LuFoJ(+|6YEe7CKx^Xy={_Kl%99UX}F{9*~E;o|c(mfO(zjT-mY zVa_AE7jZxSBt+NAlTG$k))p4*wCA`wCI>vaM>b_esPnvKjXC`DW~Nd1Bs`LJugMSL z>9G8MrWUwqdiES`ZYkDz(Kb)YGI*9mHYsmD-N2gb^pbCWc6OJGEC36;HtvU^=oCoGBqG(BI=A~|pI|`#5Of{jrz5oo zaEKSvQ2(={KT3Z1zN9GYLIlJ2Qhmf*(WHH^(=CJl{!xTIAM6weJt%QNG^J>dM5w zgDvZDB=`uF&1?|QdiL4s^?eq-N1D;N_d-T@WvjM~U|@{l5o3IJQKmj3W}mM)u*Zza zOw_WG48kBAvw+U!XXuw}(Q)q(7fMR+x2-*DHea%=C?eF0{S|Biue0L4zQDDK z6vyOA%{&Nws^F|*V1yirvMlSwE&Db1WcK7-CNz`AC zPw4^=&vCzr*oIle8N?*lkg`btcNru zP?qIczPPrmbBo-|{THEMnnEloEyU#F32?*=&a{0Ik=lE*{Kq#RZQ#hgDu+V?Oi3u6 za!l`@dEe_VFv6HldEMLkbi;GC%<=C0xQKK6#MN^rwZAV+-IEm}_cbZ;g=A%0Mx(QC zBoJU--|zHsw)L_HND5vt>TO2kIQkS;%kCr^wD1oGvX<~ZU1lw4$z`lP-WNOup9fJA zHDQXpTki|EJ-G(j9sp{oL*w(xOlMq~)!-#@slDAjSHBDg0~6ZfUKpXPWbL!CPp)rW zF+O&ZIq~r8@pv&@-_6gIjd$%u$Q-E|CVe<94>Ss<+q8yhyp(tyf{eL#TuCw@4EX9L zp1$VkWOn=d>}sX zK;Q8WH)SSB3aCHCgPxU(BYut;g-1cM$gDyTbl((yqn`dn_HDvUCo^s)n$Q*5zJHtJ z&D^v^5wVfR&>!bJyKRhAMwh>y${O**>a88N$II^tYimpfBCLRIF)C7;VM^qMunhMr z`9(RWmT7g_OFxw|VA0(Se=+G@O$j+A+vvrfpHFrU-kf)=qwA-hm+y^OdoMPBsCL2) z0Z)W`+4^DV1zU6?2cd#!!)aoenax;djW;?j*0Z!7>me^iYAP6kZ0nw5<85|}9f=ZO z_#2SYU2z#Tl^<(!yNu^}zkIO0%B%qRMba5AHS1$eQDkG(y;~XqJp>gDOf`)?&ddg`&z>w>6s0mFhL!jdYKgF0WbO8Zq2nP6ciKfb zco&ivM`lx~Ip14L^L$Cxyp+_Omm>_m4#`TLWy=m}UZk1d@jbq-0EYlUY_`!WIV!>A z`QQ!(2=CY5amBbezMiw&qqXG6seY|68AT&XqMmS%$Ifp6JlB~c80ydb#IdFQoJr$z z$z1p3iJrdJ0Gixc`w%hQCs9CUQU30|ws8{m6rJ(dC?FPFfK!Zs$G*C!bT7(f?`~r+ z!XhbOL++be+-5iNZ`wKi#6&Ijr2v1@G&ZPhse_DpP5ZnuqZ`~XYED>Ij$j503|~;N z$p}4ToocKt4hj~z`#cG6<1o9Q?b9!Sh)eo+7K?9s!+FQ?qjJGn)SzFR=(~!vve!Oq zE^z8gIF~dM9?v{Q5~BbsSP+*w#sncj4I_=LM%ui+ewDmWXPi3u13%&E?w@;jG-AJU zSEzS|!6}Y0d{N@3pF%^)C5=tY_w=gN=r4C3S%-4i+iqK$8cuLV*s}WDB{IAbx6l@< zLup^H7)a$?esoZo%xF8ZkkY&OJvT!b8PEZGIw%X>-4R`|Vk@z$cuD!#4q8 z0m}(yJmfZfYQ^?$;XhBB&sH;8G~|6_)tGP1&$Og#`er7J2kBbpe;S&jTTL*qZ>)k( zJTH=HQZcWAv)oFilAfALyL0Nx_2`8H_O$daL@~j#Z~N6Hiv{X$N2HdlQ$NMRM>wYi zxrQZ*nL2)bq=DOoH0r(9-m~oNd5uN(YszSFuMS#wdOOnh!uUDgdY36?J2Vp(z0FUI zO^zF&;My_vmfWBG^J|B`Wk5e;_BHH2Otm0a+Xo(-g{~VcM-(Q;N%*Z<-}8pNkh8E8 z&6x6oFR^S$l9aaicXx}CuQ{C*7WH*ECV$p3HfkLdlcbz>|8O9AS-Y4OW}2(UOLiZK z_A?jv>+T;d@!@S!>er?{gmf|4^P_oNbgJDks_lq-q61)RHDMAs?*uh3kgI zXVgRQxDY}rc#d**FI)F_n7=M#1Hl#j&=QZeLvU}7cYmOPI@j63qTJX7BeuJ$=yDNn zR%jd01^7MCW)UeY;+w<7^cs^DVd&Sj-iM=)mISFXOL@V)I9tN^esA|H*R^>YZLhwJ zH5kMQ@;*AThF$<*NC{&4$+-H)r<}ve!j5-9IkaW03!Dw%eGHFnwQtIj{O#sgVYM4O zpqtofRe>~-yp_B94Z5br$L*NmSI3wiHLNS^`N!$UB&b^(XA{cOS!tui8T}FaGMg^& zvF9I}_S68h zR_rhvCAarj@H{CW&(W1Zj2HN~((>VYE~F5eIXyY{^mY10!ZEf`kiom+4|_kB0W06b zX`x?bmOcIU9!-3*n0h^mqa8(8e+Wp}oDW59wJ$c^TpTpQ7Um>RoMT@{~$>Q^Vp4D|Oto!2G(q()ZjC)W<``YJjc+}fE zrThk|wH`P>N1Ey4dbE>Gx0|D@J$XLmTSx_6SjPJ{_oI9{`9VXrNE`O1!LYgNr|AOL zi7{IGrOO)v@I+p&#_1*Qd(AqGIM*UiWZl@8Aw%#vlDqeE8BfkKRwk0YM2i0drji6)JbL zA2p_BfoKFeuuZ0TiYVnARD+DlA-?gK)_MGV+3d{9+l7#@*!7MNB)AHOF66*(>NiLX z-|c-%*bgO_jik4;OCz=2w^mcJfkJpmOSDKd#(V7#%5@muQswM`_{|w~vMKO#?j|T5ydEbtc*bjt>wf8q`Lfu&VpiR4v`Yd0T((&`j4)afX zh&AjUFlqfkl0NgbJff<23dPVzauWA9;5JfQx7O<0T`EgT%$E%eLlli6Xo zt=1^bmXir7KG`0VZ-M&RXxYQf- zoI}P4U}Xw$Hx=@7^pp897|=})!EjL$TgdMk&(XWF6aX&!eGBv1c&g~T-#K#X=9Ipe zn4=Hf-zh`s`dAP+|B|t0bsJ<^uhGCdU6gUSTzLNmT3tpn0BCdV9n5G3=y*4NIGjOB z-~Acbnzd#}A8E=TQDQO1?w>H@)6y1S%3+H*o@Kk8-Bb?IGc#BU-FxsC5s1J~n0D`x z_FRRXvOQlWjW|17+z_`fM%NQb*Efl$i`F0nPtbgQ%px9r#&4+Qgbbp#`Vd05_H!CG z=(FBW*B-c|Xg%aZwB208^vFre4@3S1+P_{k^6YiP37>t3+~Xzfw)%B^3!P-YJKuh< z1w>(q(pbx3s_o6kH##MYu?rgSJGJ(!x!c#N`wBvPk=({Q`pOKWP+%1gjpEh`aso*@ z3r*aKeK92Yf~411HQB;gG#8$=PmwV9(nxE>4k0j$nRu~58i~%%UT$*|UQljMIaA4u z5whh3PeKsdZe$;Kpi;HeU*~~kb2yAK#YRh++4l!OxMOrDF*h)ejp%JhT}4>r{Wj!X z3{Kl3kcHu)Uz-y99z33nI#521&cQp!mV{8idqCXoPrAFu1qf#~OTwh~qNXMo@EiKE z3{ngXIH4%6hSuU&ZLG%zPt}mNh$L5Cv2i7BMyL#BsTHfwNz{bB5HFS)4Mo(Lu(KJ3 zem>q7?V%dqI}Bol;M1NdJPTMEHnZktlNf|%7EO2*5Vn%q>)}7v0kQfA zdN$-^9Wa&c@98rPaA@lJ@3u#N{Kl(}W4#cRFGsfkbWG^!nb!-+LLr zZ^!K13rQb+NkaxGkmAMw^3=G6uO6cC=*9t1a!(CmAm|# z_~`F?zqn62%VegC!j5(=Y|{t{TSu#~@&7*gJ2Q;`> z6r>o)*MmNA?Shez!~Y^rd`0LrBDr}LV&uMioVU=29-kOE^V~{OXb0fpZ*#yn5izyB z42ief$n)xcL#>!H7?VDV_?S$g>LJ?o%m;(X6t*I@bWQ_e?(v5iDKY7 z=3xPR+tx(!`=oBf=)!$+f1~5Nt<+TithN%{ytH8%IGz2U>YEjT~}-q47B zAj-bZDK$b^P>phzdD~@Va|bX@iasTw>_poFv711?`w2YyjYki6d;2k8z!z-8bTr$h z>P+OaiY~_)h}M3t8M|Dq21(MgPX|Bp&w4Xy9oO!6@^}K zcl6e8zGh&9SG!K?`J$6}h44T%<}*T+>mg0NK*q+>o4EY$9-j-{Gb{(R<-q}c&Ezw9 z$ymu8*!%RhEgph8?u>6rd4j}qgBGybe)RPM)DTb4+pJI-hg%4M&t^8}-Fu)1$MJLB zAXXHk>s@1gL81FJ`QQguOmbu+{fOzz&+ojC`oSX7(&88`Ez z(+H)&E&yRShTTNk%`^|q;g1Ldv>b0CU~K;OXW@W6T<7CpC4=Kl8{LtSH>!zU9hx+G zD1JY|LB8?e^og?&B%HFX{@(WyE|S}}m029nKIOpR#r_Pa8`HwNRy__-#~Vu_8*)(5 zxwKgu;7OD;0PXY$&t@Ga&5-qwk5ET+F*}Pepl4qQSbxz?)(->(HV5#490Od728$W@ z8;iQ_`x_YxQg`4jL0L+^6MSI=M7|Ii2e6?x;e;)-N!+He(rwNX86?cL#?3$Y&r#6P zZs&JRsddFS0!rf6#NP6v?&o=e-FVshQkM^($lp7w zzRSA6$O?bx#f9rTUB%`betW;xfp98uq@HAR>bJQMq)Hg&UZC#bV~*6$k;8~4E+06I zY6*IVdqU>a#z@mU8B6vQuX?FnQo+t(KsBWi+1S=BzQS9HpSChV7+`qHTKhXSVSD1z zQr};)AkW%zVN4c$md?McVMZaj5S=>xg|N6uH1o}VREias>R-<2Wg8gYMjD%e-DabK zJ&A#EF)F@Q*Q3UVJ|6TB{1(oAeOqV|Vi&1_9}<#YBJg{2h0H;OY+Q1q`_O2r=7*?2 zmA9vFJw4i{zp@sqC9PrOc*Zq8jEx{fNN}Mic)Q|Q$s4QjrKAYSQ18H(Yi4vW?-eeA z>pE=FRX7%0T+yAI%Xw_C4bj3=r3?gA?d;OAz3@seMlrb;wkokKW@j^z>+FRP%>}s% z0zirRJ)qTJjO%g>o}^}=Atk>u=N8gOGJINH%fi%aYo0S7Fg($4dI2ZvOUU;;(s0Bbs1oJ?9!d|PYYl+(9>E_#v6v+)ybSkao5 zYV&{(Qu1KJsbe1AG+IV0)DcVBG-~(NJlm+N?dR3mrG}@miLEbRxe$kOOWJM8WsJFt z-6XfV6P6W;ws&Napp(4UMIqDMEye_o|4YYbS&+STRYbc%!-6|HJUWOXJfD0l0h^%B z&k|V+z*l8qTSSSx>6V^np)gpeV?19(M&)o$W$xJIkmb@B#%g?$xX|p>{g#UN0hEPn zHoGH|ctI)0c`LvvVvttg=7a7(7P|_C)#5s!OZ#xxe*f8eS78NLuWh?_YvCponhx#B;-bon7RyONp<)ct=TM;Q0 zJy-S|3{2aqB0ek6HmlmYsy8)<8!Iv8G<;&6rEE?I(nRMAkfJ3sN&cS`=-SoZ^r?-D zMa@cgdF`5#Rk`I``Cis!K*l&|g{TR)C}S{?BC(664;y-{Qr(VDo0Nu$ffy?;J8M*- zlyD1wD`DuF``taWJ}yf?6a|Fp)flZwPK0j+U%jqc z=b(;J2eTsd6D6c>%KNa(t9P!^vtke@Pky@dLu@YP70!Pz*c-^6!Y7wyg8D3BJ9A}y zHNMMbt+oylx=H4?+1SN&xIHTwDM3|iv$C$mOpt@*N4`(cJ9O)~V=*SD&0(+|$0iQu zVp5piIqilx=YeSmuu>#jEdB2@s$3Q6cd>A2!ZG@d(h(JKO-S^SUYX+zhe*J1F%~># zw!r{$4hl9$db;?|O>syZvqt8sCqkHZ>_^LD< zDl2Ce)J~27SozUvFxbie2xGKPG~+HD82z!;jZ7_+F9hILT0A;MWZ3g}_m`!Ix1e;>2pH$=*ua zkh+3xsX?t}etAzv(SMF}gX$o3a^T4iqaS!(QrKDI6TuPsbDzw(zTq#VI|929M zm~$W@&e}%z_eNc|&OL|zIeR$SScoF|!LuJepizf(m3_zISum|mU$?EXEle=N0uU(g z$WrKuB1uE47|-=L{9UkZhBLJb&do+WohdCpV~|lWRT#~Mqb5vJ>1V&^C{V+|BY$Dp zvrAaxj3*Xr{I`6Nzd8g1%5OX!k#;AOr#hiINNd2mI8$+dnmxN6jrn>2_fjK)4LMKo zc4s;CUM?7S5Q4if1MwUs?m5el8O{w3W6bX%*9hUL?iX60JE>d<*6U!AV)VThZMWaxz`2#@nq+xAjjX@n)uWdNzq2|1yzw0vN!+m=_-K1ri@ zmQfAumsk36Oy^B!#JtN0o@b8%uejVX3twdq#!dtm`7F$o`SD2B5}5N$U9J=!thH>$ zB+$`phpP_IcRa@k-B#Gs^FnYeGn3kIv9w#b3LYZ@(#U;mC7=t9Hx3?yQk&u&d{0si z@%Jqv$31{$Qx_zpcKMsZO<>%g%tz+tdW(!+a1Mmrhyepyc#=t)48##x zQDNm#J388DLKl;n#hIHU!w1OWSf`UE{Tu)}3$W#}l73XiP>{~gg?9HH-61p{yhc#u zp6RT$OCm$b_alO=g{Jm8k2IvGtJit}sSdcM>uy<+$zz{S=y!1Qt&?-gg3P;E{xk?7 z7luU)57ff!B7L1!Ix%jkcV{~)Q_ZXQ9I2f<0#CO|&~EQ?0uavg)SOq{;}sqabpZcI zQvLMzjhMA>vp{gg2r6ax)Do6O9D{CxknA+7i^|uuUPMowl4VtXxBR2d;9+$; z3oW=w%KG2dL_i!ni2Ox|{MeX}&=`3+=pz$_s4;?jN_J+Umyif=tJvf{(Q$^N{FUBD zr9;p8j22I0s>?AjfCCo(F{8Q=yBMQ5{R%Z6=cH*8y)>{&1}Lelnwd4xRZM!?x#rA6 z)D9GFFU$B((ihMH zvb}c(O^1%lpgo5%XRPiXO`9b1^_-o&S-*GJXcriUV8+n0Z8#De{TC{H*$Hhr-r5{tM}&K058Dr<5?Z2li!ErA@4sow z@NmOte;mohRthlzTVSdow7qO#ZL{d(E^qD~nJ_^n!}n=WZFEk2Jw+<}4C;1|6VI0^ zcVASJ8nxTQfq|pxFlt=<+uwG;JkF+!DkmmUY}xbDLmzdB)S`#Qf-cLa;k9jyq{=+x zR;NxKlrnHTHs(T-{a(HiNE1`I^m8}z!CZ;22)M~^rEci!%_p|9%H_%#{qx4HSBuTT z8q2^=whC;GH2NUn#kWHazafgS9BvsfUACTO`}?-s74N)Y>>IY1Hb>49xe`cGYl>J3 zf;2+INf@*ZAfI(R@YNDl_M%z3{A?Oy00UBj=8eN`*6QeAO+0B;`xx`!u{>T&3_A>1a$A(cQN8j+ z#5*91v5>Y=P#?M=0OM z)3jPW3v_1#Dh(#LW1PL^f_X&)UeIInnmUtf*2S5M@d#(?^y?4La+gdaw*xvf$U~-| zbqWVGACnXki|Dk?o7ii^>$1A^=w+SFPY8onVXo}Dq>ln1lJrFkc027!V~6hN@?KF2 zmHoV%gi@^9vW7Z+l7UnX`0C1o3LxO|F25_!!LE+QJ;tI_+8LoSv*sY2H>@M%}`pXJd52jWYKZS$2e$O7vd@+nI8pPigfJe zyu|x3LS{mpXS)bl23>B0mwtAef%pupk#Ky7QQjj@{K!*GEa=YRWZ?ENt8 zMOi6r-WP{$(<>OE6+$l+55zH6Mse;lee3PT`Mu*8d1uEI>F=CZSK#(!H*sccnVnNe zeN!aBVd2R>?g(M)Jpc`HG{vx5*~KT7IVL7N@n541f|&5waptD{TWnNj1_eAxjct!+ zC!edM_4Ojqk08wr_}_pb(91r2JfM{BmyVYIGgSP_;t zOk3>DvYyWQc2fT%oj)h2$noF@(4h(SIRn#%t=fa8?p}2~T|t7IAt#p4AwDAc0~~~T z(iYDo_C7ccv^{h_bzx;yu*&HZ9MDCZY+^FqqLYXo0Y&+SzCe1Vs>oDi)To2Iub&RQ z97?kuOX~9`1xrh-MlRWG!tY#6amY*2w2N9y;N`4G#lmEHSA* zPqXqI#^)Y)W_PqHVu3&Ut`+>*;;cUMC~@fYyoMMg28A^qFpcqbhvu;dLD5w5cyt6f zQoFCo1nd11jD%5wm!ZMOpT?oCzO791{#;}@FBd-FkNC>}puSuUNpraC#rA+hZx>d9 z$`qj^=o}ES&u~uU=^u+1$*Gqg+GYA>`&x}wMxgX4rlOK0OVX8?I>1Si(RAiJ0J~H+u|gdtK(CemsV|o7Tf^B zEm&FPnsYAj&rD0LkjS@na|#ts7W_Q4A1n#DPIOuAXoDfXhG{Dc-G-HS?mj@;SEV;o zVW-nx8FsKe@?xU?LL9KkyD2b9ZigB;K!itH`QV~VmjcWQrK4fw^4Dt^7XxJsC!wEC z|BJDw`oX~2?s4wQoK~@J6e02K+s2i=$8Q5wJ9JLwlQd>yj$PF0LGvz?Blo>yo%8h| z_Kgt6g2=IwtA2UM2dWYi^E4R)PipU@*1OmoC`==op@kUcLCrucfZG%Yk_C7E`Jv`md}cT2WY}Yf2%w$h zm>S%2#v!oS>vLI=W8}k;I{KccC`{ZUR{7u}gTkl^AlMjrfUi-*5)yQ$g&f-ZQeu$8 zVL3*m4nbYo4$I9@j*DF-BnU6$@+XAY~O7bh;y>=yUEtmgxS@SmQCyJaAv zrmVsSHqmX=`I07eLhCB3>v8Rv#2GUjZndOBqJTKyArBpt0b*m3Rz^rY)627aaJ{y5a6zvn?AuHR~iQslO@=TbF0t60oDekkm zDcv=)ZF4)>=uVPwb!}7G!RshTdM7KgU-q>LqyfN(+(*y>N3u+tU|&w>Q3J-|hU$z? zHxt+lpCB=xzT3Vxf+_td?_)w!vF6JtHoEPyF5U3HU!`|3Bo1>MaIfu~+q5l4zP&Qp1_S0lI5( z?hc@ACWyZC5=i!*3%dvA0>+QIajp@60pbF8(S4Lk-Zi2Sw&y#aJT;%sdB||gK&N)h zeRfzoR3-v&L*r;{WCLO9N2lvh5*9JTGDuwUSFx=B4pW^ z{MU7JX+w4+_>qaydS>TaD=$XTt|om~K7kQP0FF>o;+PvF%6v{kmOT{fnBRX!m5kfd zGqsUX06(q0GPaDRkSii;3*-NbyXP%EFe$df|18gSJP1Wqcme6K{fs=S$H#53xwA4P zoTGCr=8T!ekXQ8g7vU1n5M zdsEt8<+3v6Bo*uz?nnMjye_Za#c6ZJ1Ko6PyJWz}8NP+S%)%$j3x(u(x%EJPousZh$OGOS0Kr$QWvW9w4*-*$GT=F*Px`fI^(=>B>>+5@+F)+g zfP;XkX>T``tU0fBNzVmF3-DYBBvhzh8@f*^rh{_OJSzo?#~R2m@wH-wXxd>qL~MXm zLX2s9Wzv&`@e$bs>5~R@o5x*$aip2=0bRWELwJ^b{Iq~{x=BA#xbVXn%+^F7xylxx zqsW1>vW(etoCQP@{`w}`)Idua+s$5(fpmjEMH!=QrxJdWBguR6?9}#xr&=*T-k5vs zH-_R2LkW#mbe-3dOdL14wc%+>h;Iz0L~v>7EH`7+57(uw?r&o-3&Fp{<#SKSqPGK= zc!FG&F-ut;TKEHP9(vPzkgNqn0c{YV-ke2>$8LY0gx9KiDdxD(f)$z$|L>1V-Mox$-3xG}xX%2iUw3M;ZGx z!U>9YXwR~*Dmm>~c_Gj-z+WJRgwEmcE^q<#CB7CJNF>Tl{S7wo4Uq$d){`*$}KAAhGwG0YT{w?jI=(rq<}It>=oc zY@Kv!p@=SHaO0xei(R1&GNf(1I1TjDTxVh)JXWgeyn8}jUiZUpZFOISal>#29F z(g5PkAb@>QYMu86o8sgR8ntg`F;K=457#uRjd+ep9H6sl`Tf;t!0)zISv67{hv&Pj zD8y5vo%EIgZOB;#4J`x;7!7MsrIDBaTVRAoC$`K7Z9ek+8rYdGAzIQy9E8^uP!aSI z#yOWg!D~#7#@cPD*@AX|aV>90!P0wHm-mODnLV^E!m#JceLuUf)a`UAV$s{L)c+fq zz|MYa*XeDQ0{v;Gvycjw1C^BXo%!V!wcGT`RA|*Hd~RrH^E(Sn$rT3mo5Z)wy`)(2)GSTD1}~1E3mT;6@X;0CGpCPA_B ze9zd-JXH6_jDSD3ixEhH zaK|LkphY{47Tdc$kp-g6#dzy!r{DC|kw#jlhr}%_B#2lNkoVW()G@tT(>+1iGH|$@ z`7!7?Rv>wg0M^@z zEgqe>N$adr+eJsd^LbjX4*=dwScWvNZch|iatwxSly&#v&pGje7KU5e3)~{`QH9r) zI4S+`7b(~{mOv}`xx1A$h8$#J+yg%nh?xI^oRgHTQhfL+b-GGpE` zUJ#18^{$L%m3P6DLuvzu*%dhzPY2)bswVA@3-dH_1>d4ksCGjW8k=BUrE_1zK&nE% z??XDzjYbheipm@aX z3GeUm*_mCvQP#%q`+`^4A_+D3*}3_1+^MJ5B71J9SWk{|`kqUp7ar3%ccW$LU)wyj z6>drZ6Km6pberSpUX7n@?#8Dn2@c9js^Co7kb&!=RU0;K&8KiRmPkC!dkJp(`HTf; z5|CT+ssIS1utN46bn{BSN7K3sGBWYbwnvgah@j1NR zr#_=`38kZDn*<`81kcBcMzH%~5(~Hb1W0-4GYbi3ZNi;$uxtTXF&xn&1ps>dR)%yY z?z20JjGAW<>1h?$b^v>x=%UYU+g5|sFpIBqL^XW(xj#-+?S+%ZyJaHJ0DdqU9MPgw za$Xvorq01R*W@LjHlQUUs~3}MzfI7|72dFCt7~bz*GJ3&I+8fg1i8?SlJV@lOllK^ zqGNi$;IKEfpS?)RGDX#jbXCugX8MRE+%N{P+d9wtSe|7>3U(wY8|{G?>ekv8>DgpZ z^4`oqn|#e^@L)h&bb9dcln4d4Ft19hbg%<#NXjvOu$ro~>o_s*%eW0Z(rXo<@IKeY z8qq2)4LZDxW4*rvgxSp3FWakd5@I#-#G-s^hs-{&57Ei%gZ^U7Hb;3oky^6Vf!*%h z?pjPy*YBC~zLZVM!EbmcP^w+XvW3YI<6lZ%*EUeqi1jr!vrm|0Q@gfDm@7kr|s?i$O6|R_3;W8 zDqqvd$$m2y7DpaPXXQBvlf%_2IfR*A@6XQHWb9$o5qChFW2|`XCeETlY<0a8^sDgJ zXY%XHT=a=A^t{b?+2CiHWV<)$9x`-8k zCL7XEwwMg@wt5ww%CG9Zu<-CQho7aJ7g;31 zWCGW+NVc*w=vN@|KBM&Jlf#g-2}^*vTB+7C`87N1{ULH=46A)XO zD-xca4=D~$1*{D?15}%jRKxpo&0X5O!eUo8F|1RD`C)&t>-(!i?kywpA+^(LOwwHryd$!+1;IhqHojzxW z{KQA6Lo-r}J#&;d>|1bj%X>7%z$A)Ln>F%1Wx}|r+HYms+8266x@6rGO|ir+`vJrp zHMYKi)S-1q>i2LyWGUWsXN~$A#&vNl1d2&##Is!itjcKQ)qC}UbJK-;Nhf=ICrL3T z;PrNgX4+St8C^-(OzO$cDNO6q(ZX`41LguB>PE#2e@~1uIc{oiz(-JqzR+aV#dolD zD%$Liy1j5h z9RTFb7CXH+%oZ;^q=xi5r9Da)+duwIL;M9vT5*d}dvBOm58yzIvscfX2p3Sy7cfg< zEK;DS@4aS4Ax2_lBYE_F&;$;f8BBtxlsrQwy#5ZSI>4q*YZ*EbI$nvjcK<@i8=4Zc zP0(KvUBGDaWv-*_BwkWywBFJ#Nrj>OFk3nl)N0Nh&>H{xX)lT#=FshXCEgf~Ec<~o z%}PhH7t}cotn`)e-$ePK-qS7E8UL;`Cl(iqhlud7*TPK=lXd@I&$Ez_cmcXEP4w~x4V4Ltl4I0a|<+^gf-Pe+bQ)L(Ag@sFdyw{OCL4QCILSra>zR~)g zZ+bYnRW3TkT>O`;XC2wYuDxbJ5k-bs(w@1VAtYY}^10ks3AKoBmZhWdaX%OeK5j6A zOyIVb8+Q~Csyb=$^bC&Jg`7iq?d^h4kPQ^DO&EMc>j7pw=&I3dm?j(u7Pnu)c0^*7 ziZ`p?$jTI>jm~l`a3E&|NxJYyAY;VPu$P=2$$Et~sB2;Nc1Pi?jD)6pvv)yL$aA42 z-M2p0r>A2{?BE&lF!Sa-OzUj7c3rYdZ*-vAz5bkQF(xiPSGRij-SAj|rNqGx-&ujq zM6S50laragqm)6qz0Uh(W=%xoAVF6I4lXGU9#3CfZF}?2Jl)8*kp5ge-m)GWtb%d8m4F zGJ{i#1-e5aXMAHwtlOdQ1G^CvVRy^H!1UcIiMHQzsSpVVN@I;ee}H8kH_cL~f=NoR z^~xEftkM)K1#@@g-P+A?&C#xQMZfYITqV*nEbJ-wIVVt+;BW^Y_D3M(8+uT%2z;2g1GRPOH6!dXC1c^&% zFK5%1!^w-oUV_?*#$0#sdrl09D0Ctbs}Vb=cB?NLI_GPsY&-%+KN! z|ELPi!bAi`)0W8M0~;4RW>!Om_dnB~oo%xz1}I~xqgIYLi5+k~1}DOH4!?IvE`sp{ zbRX02;eUE`ia6c~=s*=$K(qEx#QQQ$pnG`vN~q8d+m*m{uVtLdlxi3?bsUmhl@6;? zG*Co6VI(sqiAAq(;^r+(8aXSzt4zDe7j1`7LgUxDFZiD(ooUM1a>!Kq+LL1pPD%do zG1(WXVM<2JpBx?q$6*m-zSFf9P|P4H5KgbSQEfh@HqoC0xp63Ue4aZ< zr{}b~pCMID>giRR)&Kwj3VAjxi@cx9u&L!{Ds!JpC;SRWsNHTkWzcxmE%W)t*jIN( z_JB($w2DL>?q>LJFCiDm7or*ZJd{uTL~62`|h5 zq3Svil8zyK#30%l6^eFtC9=QKzmL`M`|ME;e2ho8(Hgqn?FwbXumLH zn6fv4D2D;CF&SO%m2Cs@1hcq~kfx7~{iVKDk{K%&s~b~andCqL&k!8gR_;Bpfm^Jk zJ-jiSX=_j+M-V8uWzF|=+$?+vo@9F~v;m)ttqGNj17Sty8ob?j%5y3ne66gH7mew> zXL+5l8&9H4;jvFO3dID`TgD#2u?svgDec4Ll+^Zofpka^Ad$w0+AGo`MgYnV_`E{ z6NEqeBPV{Q$VnRK+DXpe4o7U5?zAw;^&_PSnroQTjY{CX8wd}Y2mj3wauhoC)29_rZ@J_H0P{g~nX-Qy1*T~bkex`5+>V&bD&OTWUQa>80I?&!QC+;a1yDyi`x zdDN#c$l%W>l`!aPhFJnQz%E+03kRr7zj0Jwp zYE%NK0CHKI2Jt+YI=AN8E07nkQee;;Z}a*x4`G3 zz=V>sp#nDKAi>|Z;r1GEm2=-lfsH+uIul}WCIeXJnUy+&O0P9KpEL++jLoF0-n@f8 z6<5hiqePkGE4#Kt{k5?Ny5WG&`*Odh#qc5*b5;ys~EiN@Oh^1`ohFCVvlnt z-mi;LOxbJKBSna;U6(*fBvDIbUr^&8?4O;`o0?u}r59O#6PS(E8-&*tcmq^ZTL+|w z*l&CmyzVAt_6t5kZeBx(xqI&gMPu%2FH2*Ge+u$r5{uS3xHSihjKg8X(u$L*A_?Gq zHTNB0Rz@AMgX7?3i(VVk-;S)drjJg)*L4`;slO})8@i}C-eCL-L%vI)4YT)fzr_PGH*NOrM)n) zfRje%v)N9+L=SMO!)qvOS>i}B^&CNoLU_-C!f&t4-6_)e%$b~+=mQUmYvz1;K-k&) znft8w^a%-KZEg$XjSz}a0L*Y_-in0)ej!p~N@Bb{{7i(9en#)NHfqaUtR zcwzDNy}RUEU#hy_yeER%Gau{%!99R`*J0jj-}O3^%M#@D2_`tYn~?(yo-=VnGYuaB zW|n1M#TLMDC3<7SzISH}X@4m*BK1q#B1m34=HQi z)!vkTqr9~22OOHl!w|=y!Z^F^$uU*V0PpW7Pd3%x?(jsTiL*$);!*W{54mS7==j)yy zq*%D!l{h z!m>j^8>1ib4dWmjgG!V$*nhsMGpHVUU6ie~!?G68@8I4EWrz!R3?CJRRV_^x*7IqZ zpntjJoLWk_*AAhZ7{v|bGJVHhZ1{@~N^z_>nJdJ0v}Rn=cunmb7vN-ROms`(zyv5Q zPJt(&7xx}+jVFC2RorTcumCRo{SAe3HwCX<#dF#TBj!G9yF&)ECQ z08vl3=$obSg}w0GUx0Da#tpLEQwX=NU`7|c@c|=nY2(N`jN{=2)UHM6<1cUx=fRT( z*4`(-9-wABiHih-rGs^QRO^GbwsJ~be6Vl5+##3LhTF%PHpy6R5t3zyF$5hKOYhcm zv*Moz1}yH$o~EXppr;=MUFEXct!5i%p@8lvtxiQooWZ7<4HGiCYXcm`j#aInm+S*0 zLWpMi;HU+6Uc)Gx9_V^=N5$fF8>FOKZb4PX;(I(o`YFsuc=p{|F$Y>?nKUp#yBZ^2 z-j|z&FDHVl=|V8geuNjw9{IkD@sbB=jsO~y?{?WotO)F^mU zhA+~T>wVVX8LwhMiMhGfr)gZAC4?yMQRAiq^}Ps;Yc7|uIGf$P%?X>L|0ehicG0T(QyYx9{nrnU2yMAXSz|Z$meDvJ1x?{xe0&-b>hE zL-%@zvO_$aN6ZGea>jsIO15^4VP227eLO0`6#$l?fH~+)CK3!HI0F`@p_QRJd&QBN zqVRNiM_^UD&A~P=-W+UVax=KUKwQ|R%U%(MCfTN2NqpXk%?-M>7I%4F=8fnlCfC8r z>hUUzhA@+t-sP--9gkNs4w8TJZ_p z{VfUGX4 zqw#w_ytRt9%Vn8Z6q~crvGG>lDDLO2JY-KSYh$;Tzk%E%`0!JL=T>v8E91gkNSO^uLc98VgEz{vSN$`@6%w(J?JX={xX;G z+~y|T>jV?S5qf!R6CTTDX2d*;lR+d%oF&T?--)K1 zRLBMwr3ig+C2kg2AIHt7WA6lpvND{@#yW6IfPBW)&GqOsCci+Un5tZKmo?Y>p|dZj z1|$;;Jb~`i#d)%TN;&t@y&zQAfq`Cij}7LrfcgE6A3?-*+hFUENQq&QS35Zv{iE7} zVs}{4d3QW!t6nMkrTv2bruc(--@$`1e-(1Hdi_A56 zkX>r8D=sQhqmX$X#FE?hkwMG((eiB{ovo5mowpdWlf}JkGnIf|<-+bmA=n=X-b~za zMBY^}zNshc&tV;zGerju&$NYQl|CL%H_6q?A@|_ydAXk!I1u{ekfjkoQij-t2?I1E zMFzHkAuK0F7TgV?U?oHxCQwq}%;65=6}!C^{z7-h{PogpfKz6b;!tV05YhiI)!@@A z1WTMD(JL*n*BR$vRCsub#GX3NdM*Q&W~r6)SEVT=D$Zz{hX2Mcefx2Ez}lcULRN%k zJoOSH?o>9fu3(->LATfE5Jfe0OC>EE<-H?ld~zcRXVk=dm&D@NGWK__xRgz8J-^uT zIXMt{GF^dJP;yZS&j+k|g#W2!NJy&J>S6cEp+h(Oe;h+|KD{UmYa2FP~pt+6< zAod}F(iv1g4eA#NujDwu@$3y1-+81e7j5olqGW2H1wPXiv+?dQM{W2ow9EcycjB?TATNJ~_rN5JB1 z9~}OOh>T&c+kY~o-+ho_Uk2Qc9HL`WwXGZJ3cJ|1kJx(oxXcX|Xde=aEDBfg`zI8- zok-`Ba>|9mLcyJ(%)o>+K*Gr>r+x);IC$W?WEhMba#0bK4s{9Hzs^i>mh(EPf7e>X znp(LHQC2Fe2i%{6>iBf7WVhR@M6+8W0~C7kqfxn`G>^R+wA_8O&$1I%40#Js*==j9 z9%^fl8^GHG_it}Sz|8+L&W;_%^hsW#g^}8HuXk*}KwnO494&1SZ7c<9QoaLy%~{Ks z1@H(2e)QXQPx6t)AE3npKYk zANdh*SofWGXcZF5Zbp9%P{SyIR|dKeowb$b5X5#JHgI1Y_&zFZNqgb^YKI#&&2REL z!DDA`<8Jb*TdJjxv_>i!wqIZRs;~umJmh#UN4uTjrGYWJ=(XIiR*eJyt@M5id#{?a z^NXlHAkGSn=N|LsG2{5mjh^`38o&V4&g`qcipJ$5ZKX2P?$FGr2T$fe)nx!5S!-cE zXaY>RVUAdKXwLB$U;)8xR5@eQj~`Ad|>O#Y8`CESAYgn#%&H^bE34NcYBN?)m|leI#NogJ=oc`yX}y7xbFaWg~ZGr zgF)Ci&j#RoS5;1vxN&vq8B}_xCPF5dx4VrqU(*SRZ(DQUlM_naSrbuINeT2Slc(}W zDgqUUaALqVoN|XBIH0HEBB|98=dHY3VBn1RU!Dx1K*&XHW!zQyOay2nmFhHGX6{i7 zJB*NZd*`@WMLT~tZhx>B#%?|21NP6AK0t5Rs(@tGH$o_ghJH5bd)-w7uMt(i%&f-4xr^8%X`#9^t@iyrv6!ts{M)9Qu# zycX&lYe?|Yp&-SVlG)NxR}X^B=n}hIg}o5RpsQ7oJOnVWMjPK31FRGH-)!fkyO^GjxjZ+EQ-uoAb?bozEC-neK zuifwax1N~9RPt1&HE-M~3)Xht$!=sL_jpg7eOGP63|H1>iO2`$iMn_(C78zkCa${6 zBcw;$8L?|U^nj?*zgheo8D;Z8#|$wWUuxP~lUo7+3KWWrw%|MwWPsNj*$*aWwe1@e zrqBkPm9ab*J3Ix09>d!?ipwJ*XUtdaX{{8mr`5vnI*t?sIFl6sr-Xe6^X}FJj@X~o8?`Hf#X5=F&YUCf ztp)l(cDh4D`WNV@L@MQGKfJ83jGFZZA60_aF`aY%Li>#N`-GFiL4^$iaFoVMqAe|K zcr5Rp#y0|5)tSk7mAB$B3^GPR!%t4a$I0e`Or?cc$`2Z!myk-;Ko!R;rnF-Stp>qg>~gr%w>8lIqQ}r2}g3@dgy)GSMX?%B_dJvf% zVL`~CGaW5E`U?-lI6N6pfER`Dx4CE^Cui5$24`|BlT#J~Fb$Vj~x?yjH z@~0U`avXy)ja{YEOT_C_0e~W#Xk=Rlw6DRnPRdmx1iB?5ET4_>*5FW4*~CQs8$SZ4 ztI8;F%%vIt5O^lR@YtL8IDH`S$+8>wTJA9X|Af;eZ@v$J@98W`!)HURn!nB}11ku} zD_MOn+lkZip7I>uq@em^G$SYe!$H zz#j>E_(48qvyMf)jM%6Zus{Z4ag1z}{xf1mc#6J%<3||%7^~Ff4b95z9LkxtHQsCF zw6{OYQTW15mBG^O^yi>qq0W4i>odm<<|8Y8sWN!Y&VZ8reKOT97aG@vRtvJ=@s#yP zegrPAT<)-Nt>TJ0Wz<)L$4Zo^D3;9PO#u9`2_MF!v*P5*U5X<0pe3EX3mB*M>XCfP zL*5#GHMtO+SGF6S{2yFl=`#9{{0LBh`ku8Rra&Qcv{;|Gfm#78Lf?q=9-O%ufU5XjWZ~O=ei|)?OGZZu) z9Eca*agDq%xT_1d*}|%2Z|fwZj#gdu=?l;1Hnfyd@&zaA z^v6?aCJuP<`5QmN>AUVa_R>MJ97<3!;RE>ds1dEK8fDDhI*Urp!g0F#V)aL_y)T3F z4a?1^oZ!5cy`Yu3ovt1OW)kgLP?SjRWdrtfq$TG!euTZ;n&GZ*jZNOY@7P`(-`co{ zt(gQi);PlZm56$F9#0oFz~!L7J2@R0r6NqxORla$L}+fFpfh5X0j5scg=$;qhu2Y` zvGoUj1S{aeX9k{jv?uH!TiKjY8Q`=;H<_+k|)SXtmCzgtOfgB%eySDS>zx$AT zJUE3RP}fpQy=&69DQAn{IUw550BZS4&Oh)Y6q0@fditW$a7StR)K|?Jd^B3r`0#Wq zZW9SP#IhD!-+VU3Y=r(UQ8(dxh(?EjECTFH|E3zXxzMi4YO(sYxA7x$jrNaUrvtn9 zq-SfqT}z?-aBL+BGsU~g_~QX`f&hG0dq6@L7HBum-C)-1?#HJLW%&zuR1w}F+aN+~ z?jX9-H}!+UK)gSryDwuCA6**R5Qc@oLYr?ALP%_Q2{EUC@Pk6bgprAHHp3m*qIJ#_ zU>uldY2phhYx?fwhYy&S*CWLVRNVVLtb*q1XjC`Vjq1{cGjOu8%{i?h?AF8b>lhfA z*{rtt_7Obp3KszC7|Hgx!6Oy~ks|<{gQ~~Goff;vo zn|w?*&+AJlS$)<@Tn{Zd6$YI1QVAH05CtJBi^aW4vhbLdaj)bRntVH3!+X`umfyKme=>=4oCeQt+-*-nvEosU$*%W4f?GXuEUtG0ak2#|M1H z`#?No1T+A12WrxUebpQMQE%J&0Zikq9>t(`wQOE4k8CK}W6dFiE`Sr#EI62GCZ{KVn=wht&fW`e;cy z=L!^&$T~tawhO#m$K3nkE#YF}WrxNLJ#T=^c#|_2>|UZiG41i1l%f0RlqI!uoe6I+ z1@J?a2dZL8+E)UW@QJgLUuuKfR~A+K2?po_&AO_cUd8QqQ*$8AaGMlY6vfmg3FJTh zr2yw{Z#_15YX?*8IYjRlOG~7N6TmS;<((oMYq4S^z1UHgiY}~dG8l0!3$w^nd4*=ZD>Z+??Mlv9v zQCElh5Bg|y0(7j!dy?-W)QA5h>_Q#W3L6p84Sn#qiX1)vF?TLTlI6ITR0$svB*Y>3(O-l%zfn4LuC2YdJ66*j zl^GG21kQ0MUGt8dO~?JyEdGrq;XymfBkJQVJxFoH&c`@>EC{||h?^H&Kzfgk)D`fL zo`gh=!3&Fbs?ehJtG4v<^~5=S@xgW9i-bllTS4xBdaJW1%l-Q95fH~_!TzGDm+Q`Q$9&}4pcIo4UOcR!2_g;Q@!Gr@+y7d*UH4TFg@^NIH+x$>^;!x)li7Vdq2HIilVedF&cbq_c1cWgdPJk*^QIewyFm zoREK9%3*O<2h@U*C|P9}MZVO&lkIjNS8mrfC5b<7&5h<~Ljhe7spep;(Phr7{`B}B z0qttFwFLD7;Lq_lehM&YyNqOIw%3}o&HAN9HJy8KEZP2*P*LNWq}Q=^mUAWb3T$o@VzDO z;5j>y)D7?&lOU!7YJN&hWIqH4&xbS`ciJ6dI*C6v&9YGpUE^bh*&5y~oST#FLgf;j*#uzg@|mtJh?O5cNta!DS2qY}1{hIF`r7>jwi1)5!~LZj1- zQ~s3*gdgt3_Il-wy2$9H3wd;kx=+m@0!0*uIHJWk#gejod<;>R14h*o+M+9JHn4~`50#4-`@z`f+L_q>6Z;W~{vW{;X3V+~mh36u9xGJ9c z?yFCEB?aFOZj2@@9!QY3NpH2L(sG;v+qjqkm1wtNKf_Dy@Bf!|A0UhFMHN*|xIcTijkJ}s9wpB6< ztsq(9MusED2O@&K%8LPA!|uiDTQ9y8K5-*v1WWEmV0`WrRKlGVUV~2_o!9(X==q0n z)r^{m%D-6?6YNFubqdT)fUo|U4Zo-chqNV;55W2Ek)20z^o@>@uQ`Ou3>X%;@^CtL zYOhPYODq@vayZ{dIxpBA_C^B+T-&YclSvbPB=;|<3?XQa zt)UpK>uuHVp-2N0)&Yis^EGWvW)P8|v^(v6RU^rhth?o|us9=$Z1ZjRS+_D;%ojc} z=7IB|!I415_D2dh&{C1Adw5&RW?)@6GUr<0-I#-N(1Qo}`C(lv4}jo}(;VX8?j&F* z#`UVs6bT3tC}*ax7+3ez1Vsjcnl#bcy23V5wIO=0cFTTBs1<_8aQOgCHs0xHa4UB~ zkLh0Pq0Vs(0E_VLdj5fpfSw~c zVG`Q!lUn>9+psUDdR_+5`hm@nZ$A+AF?t~61N})ET|~dpCsHuH!i6uGAxrSc2og*> z86%CH^o8DTDFc;)wiZC;?iO;sIyn)1vw*Q@O<`8zmrGnpm*7p*ar_P3CWsvc@FGDw zqOji=H1knf4sq}W?2Pse5YeZf+k(m>cA`tY$DXMX=-&2D6AdQ+WN0YplJ7^; zByipNHcW2}KI3$ro0rQk!FpvH_B|syOScakaqf1WxTF|VpFrO{{DMjm+>hkpwQka+ zyBl3Q*U%ab{MsH=c^ZD|1Dr0v~5En?(=w^#2_Ua+IwZvgDg>H{OeO+fQ3*lDvn=~vi_L$}_&DFYSo zbk%n7C1n4y5d4(z#2EaE9COW`Z?uK432*9Y@iho*`uNzb#=ZUC>=b->OhtTFUIn`$ zj72Y28R{gccyiu6zd!01oZnwm=A|5L`RYDO-_o+2lC4+?;LAGFN}Ada48=vKbZK%TH9JZ+O3d5 zxGj=2yi!wq9zDyNSjX|%F6FGGlg^l|kqyqn*TMT6FG2Gw)~tc3c907&^v!^F`WY}b zed{wg;G9$R9{KFd05Ob{+`)u{+w9f>&#IRtYU?;s7(vNL?qVj+X8K7i|RK7@7Xl);sQ!y#__!)wZ$57BY$ zy9#nNK^xX;3<3i~?&Af@mrbO@0!4DSF{OR-Vus}SI@mqYlc6_#|HeyT>O47z4iiA2 zjc@lQ-lYl;f@XiGra$l!!YDhE;CI>{w|=y|Ihwwi zU}Y%53Ow2ikWi9_LI(Wk^@Ml<$SxmykF}c1fVD+&W`DfFu{mXPhKMuobpcA>(*>EQVA8pLYS+3$ zcYbvGd$^p-J}dN??#6zf&Btsk1%zMh-*^dUTq;zVH0dYX2-9h2ER;^#vpT&WLHWyF zwWcfMw>%QJ^j1Id6I?#Naj-H-!(Av2K&XS?rgjQ4_ZA?r@rJx5;OJ6r3wse9ZO zIfH=N9OJwja)upekp9tc|G-ON$2x}|m)L7O15ndDx-wyM%h;w3?`e%YHI?={fJT#k zX@$}q`O)kdBu&iH-bxd+y&uMCJl4No45Ex2p$it}S8r^eW9Tou1inWh>`i*wh?^pV z@zF<_=L?pjX`@c};WT@{I$d1Xz{`z7?9op6U=-YN*#1Ir1Hjf8WH12fd}Y(yS<&X? z)Yl0I*tenk11|w1>_uPi{Noa@9cPdR41yjkbizyn(YU6jdgIPyTZsxlEqEe>54QE! zJmCS9gk7y-yQe-10OcNrE?bYL?-Q+tSf6#)-*^e!X=g`H6z^z#IEv)U)^rmgX$7GP zl=z&j+}hwBsh`*H`x6OYzV>FFXR8~6owN(9l0}~l?-7f05c(kKS8Y{|x9EGdKk^c8 z+xTe5iq`-;1MEE2V<$76QHxPBtxut&*h`x z5-N}le>AhP5E;x~hzvJl{J-%MJ`Ru7w1qz}W?>^8Vu`fy&fCX{c6+i+=@757~_r9P@-V{;_zC5R0{MS=hD)8Y74YA(22?l~9^J^#i_Si5XB!A1x!g%W$6 zz7g~GE6AulKP)R^+n*yQFHjHAAMuc-3AktcT5TD7oWfANNfmUc8I{P}KX117rvS|e zoAgAK;D6&K^!`b#(5(kNMAzuIS4NXMgk@@Kw7xgpK4>|U#tz}6NuUSq+3LRn@8~?O zrq0X%r5VeTHrLpRYMdF8nkM7GHeWL7uKh<|0@`(d=LMgW>qR6hS|={2&eFhe6JYV& zZBfdi(Z5XslUhr(*PSGV$r~HctoNWYzf&>>VY{cbf-}*^ck!(Fy_%6w{Uq~$;3Z5z z1J1;Y1;Hf!yNj-s1KvUl0?*6ztu|rD4)2@)2cX{>L=^`ZZ{g#bQ}Eb#sVnST2hG(O zY|+_~PM-3!lK(kkJ&F1XY=7V-)Ho>0&uGr_ka<72V65GF0Ln8)U7c?nOp!dt2}Ro1 z;*iT|-V);biy8LaVAjF^yKj5_;AAm`JiF$BVd`FV&y6Km$i9E$C4kG&KCqROz91r# zg9cWJj<9nPGqHRq7r^Z97c#hh%(s&`-saLu`)p2~ ze%Jz%7k&PXmk{G4LQC84+c66mwsV(98=Se2rC_9?rl0V*W}L+W)aNFVwrd;SiFeaZ zj~+qG30PUtVzzF$uiF5yKQD>khdYkZ8ntx$8!w@cy>S6F`1OIpZ9;1X{aHTqY)lMO zZLEWi0TkIJKcnA$-2y{5hwsM1bJC*UGJr?#dszR0m$2r=RmvK?!wNceCwdaOUkp)KLRH+lcHlaJvXh;y zEQ_*Ny1_4PuzmYXIvwL6hutBx{ZgDA)~P4CiD;opSG0IA<2=4Z&tG^6p0{u6RiAW< zR`$Yd-tV`Ey_~~oD=s#we&k7G1AN#tIvgr`Y0Urn-GfPSI}gI~#Eo7+r0x(u48^ir z3qk%q8+_&~Q~$_I2#%J9QYy|S4nF25GLCcPO24Dg>Mf7TLxy7s$tc=Ko=rRN7SM=nCAYPM*7d}_^wLId~}p~7d`ri8XW=gH3x0z#ob zQk8pK7W`TE{Q-v4=uZ(%-i^Yv{*9MFhG*>Y39>8BJvKO>I8dc;z6B8Lrfv8(E3ZEZ zox0#`yFiu)TcVWIGDlunAT zOiU^z zti89g?(J8#&-f!Rp*?`ZOX0yVnz}nHU%Mf5+?FdSu!d+oz?VfT>%NOUV0OG5#*BDs^!{7QlvL8O0KgheV=||ozJ^OUKlAE&rpStaBx=K`*hbA zt@;Bm;cOmDj-_SzcJTTnOZ%tlw6FU8NO4Z|u+w0g%+W4jGO&>nHDZsoV=Pp~?Hvp# z*rfMHDD}wTG~jE1A{TIg{p@}HF?mD(#!Fy^i6~+0#M?r7lnncIP_}$gU6kMI{j3SS zPle-&u1ls84kRjzQ`Q7jdpY76HVSM;Q8_HiD9)zSO2djEl!AfS9_ zCqoXHTdo6IJO*}dy#APU0#to>u=_QF!aG}xHWC`rgN5}(tNIxpfURe`KjcyjQpbmf zM%L8ur;Yw`oEL{5Pzn7Dq=VyLgagg--R$Y=k09J!_=P^T@ga6^V+8#J@U%U-Ene`L z0OE?dOGhq6tMYyS-^)mH>`v?NJ|wynV)s_?hSDIq_w|d@Fze%^sdw-Ts0b`3roX6#>=wn9Ywd3&c82v8;(&C3Mg|EB*8Ljw~S?N0|4FveX%Y4eN!DE z>qn>2155Jujp%hhUK89s%;Y^-(t$*DF(V?mqjlyb9dt$O!^F_+?6TO9=rb}Z~H6xGpufnl9_E+7|bEKe|Df#qIz zdM7macFgn#fVvBRwC!sAS&Jz6wK!NziAaJK==Zqd>1c5b%(DKCTvICY3A=63s6FHb zK=3+y;@)r^`0Glh40MveMTrma?RcZ@OMkW)g5S4a!dvL>y1*;XFaZ>9X z>upg%)eBeWeosn1ViRVaHhMWbzF#wRz{M}*W~7wdcwo$z*{z_sd`Kk&{1&q%FFz#J zxUncpEM?ONBk`_x6Wqjwe>+)mP3r6va^32aH~0xSPsnA{zp3qRM(?D5wosY?rZ*_l zzd;KvI%wH}`ta_?ZJrf43g*0fS%#91z7IqQA&MS!Pa5K$GAY`d_sI}KJ0BY6%_%s> zCPr-H*>|EYqiN6>IBq_616d^1c>(_J68z>2?8fQ!xejqH^cE%~UW<4A%%>zM5detf zX)Nnf-t;fVI~aA^`4Yf*0W@ZlH3s^j`8xfGYg^__J^fLvS@6YYumHAftMQiG)m}9P zS9_3%^7atl=Q(iICFp5P2XeA=fDx76Me2Hxp`OAxELakvbm;h31$mw{!L}y*evbNS zi*R%|c%430e+VM))Vv!5kq^au4Z=j``NAoBFDsm8qdP_h_W{NEz`Bb;^vA5vmq)%i zBuU>4r9DsAUk9?Xyfeq>$>uXOGPj06|9yH_fWX;$ZPA&Pb*QBGchQ)Z(3s9T zZQud_AoTC0ZE7C8%fHO|K71jCeCsjq*HQ;eCX@y>?O<69Xc0q8k4y}k>-(SM+4C;U z5Jx}NE?yD+ik|yE3YX8={v+o*;GpH4#&^_2cb@Hit*AYx!;#$jfiM_hqKH_=+RA|YmQY>NdtigCBh@*uh+botxU!})Wtp)N5~_69FvFHnPmdx`kG9DAnM52KgjDnh!xm)t*2a&f0R|*7ZJj-I(_EtOKXR z*EgkaL)T^(6^Wb%-}lq*TKGPdMCv=}YJ|xYf(^pADivbBaD9zV18x%xALFYFFF@k- z>PAuHYB7rE6&l7Pxxa3$%VYa>_{utGHp=+aMNr{l0?2*Wajog5F|YPRtepq2uF*)5 z#NN7t?^fz#^9!&ad!d-JyU7jJQ~j+sC#;lh$ZRa1ey64i<2wSCLoJRddkyzcn~jg; z*$wcgAI@>{6Ts-YAQt*%_kc;Ifo0hspaJbSg-TE+4F$`l0#8eRbM>Cp%BfBo5>m~N zgxsPPg|SgYD-kFds?pJ>Od5y2;m1*lX%fGVG9GK~Dy$0TFZN(ffS8Z^ zEt`Nl>Qi})P6RFSeSTj1J@(BH0l`_~=2Ub-!6lH#$>LQBGj$xDR-DWL!G1QM-uP@S zH+{-7p064UE|#2lKIO0aJ)x)GCwP4g@Wo#F01sOfPXnCK{2$Jg}{dJ zy6?5#s(}M?w#`^!i7y?mmd2HA-&>mFD;e3Z@$vSc0|)lkkrfktxnsUL**EK2xg1{4Vu=VIB)DirFvma~h z6$@e4+OM3kHs^(S@c!4`z>XY)6#6NT}@r z>uL4?H=p(JesjT@%#J@&QRBi0qm{1>9JZKl&ucK4w&*!!X>0BQ{dEFvweR4E19fsJ zPwhryvq*`+{K5F`s_3H zm7Ga=@~QC_moLd4S2vdlf{-mkTl9__@iv4tcWIuu+z|Ke6(2Z@awG!H-H-O;oG;?( zp-Mx;c6K;V0HHY@Z**%dyW{2i5DtK@L=|GI&Q9);;gUKA+{{mem+&XrsMdjyXcBFvJky4PaNP9+s1w}sR8q58S6u1 zJI@WEGhc7Y%NouBA7Oxr-iarTw3T|#QQw^g&-Gyt6OYM9-(K1Fh`Gb4(>>5w6>lgR zqqpC-w{ni{Be-O2izycu(XO{C)yd~YXv*c@`{2J%#uL9X`k_AhN23|l%aWb+hi1db z0ArneC-+X}KDodfc->@}uM;h73aZA(muU2M?l@%(xcfSL^UVQjYbtV<^YhSkZ_Zd# z4MR+rwRSf|HSP*(;JC&FRU!sgt~N|Mtthv>`pJt;|pZ;Yeh&qBwVR6x5jVd)gXeQnrzR*xfSQil%ovX^4}V$AI1 zK0Q=2@QnqTSGfQ*X2)^LftTq za1p5FFq+By7?am&k zBjP85$<;lpzpfZ5I}(E8Z_`Qy8AM6FbV~i^AC|!fip}uxDR&vJ-tRj0;naE39()14 zM}76)c^nmiCLTaA%xuxe*wW{-k04y9AZoEo{}{Z`V1TW2ZiXhX7@sy{-FPlrXF1pWCbYQw#{+)pp zwFsJ0(h&;|np3{ubB7=)3Ps8!TVM;`UU8wc4OvE7M>tLWo+5uLxN_(u*g&E7lB~h{ zMfBw4w>EFSIJ-ki+K^jJvMJ8^(T*<075S!l$V#Yg34U#U448G9_>7J^Wi8XMBJmny z3Jl=rlX>d(+sZFpaV+rfu4H5}nj0XAU!QVLI#nwllp$~G#!`2TBg5})Cm>($#NC<` z8yPmS)7NTU+uO`l<%C}s{km({VLJogPRQ-NpHG_vRCxUCczMXMrVJ)Od_k|h6G5TZ z>>ABkCGZut#H_#ml9P_>+Vu8uLMX}Iiyg`4tbHfr|A(#`#S>#=>8$+0!#FyEJa6ht zLJLw@Ga(y+WMvcn3n3pS+rARQJ~HPK)Nq|P5`zZVnz=3`b>&2Gg3PA9Pt<_;8nHUJ4M4MefQexkzWzwY?OWyfn85+>TF-3fF03v*b2+F! z-$H{`yVP8#1HT0K*3V9lT)w}M0Nl0Z9Q@>3d!8kPv<0mnmtZ4w_EX`_WRa`_;l5oyUY`^2 z_BXq*SQ-s1pUg#daO@==>f74^0p&IV^b++%Jab;Y(FP(v$hRN)IX+Sx8*wk^#&S?k zoF^IjHHKE)c`KicwtYYontch$iG~mx@>K(s1@MPqx-dn}zV_|7N55}Jx%*T%8D|;b zCeUSbLecsFVkFaTK5imUo$Li~T*B|)&3dLF2GE9UO7~9Iev?bz9=CNO{SPPoVK1^D zyn7^2lp?yz=I+-^ONZ>abCV3b>jBG!F*rX0S?BVuJpW~GxO?!`oPpaKpZ=^X#A!Qo zj`yGr^H#P4$~0c_ByLMsSEBbEF?xnK-q!YZE#dNucyh{2t=W?kI0va2V{S@JymL2? zSbG@sjR5VX5PnCh& z726HRN8)c>3>o1CZ zmh%z1*62DFLtuv4m(pZGfBuwjsDqp}^m&|zYg-B6Z#K2P4*@SVGRK7;HTED#9x~Ts zojM4Kj&)nY6!FV=ZfWlR!4+Tk1x6my%eUf1?#m-hWdQq`j98`t8M{x83d6B*hmS&8 z@s!p(EJP2p^+ESJzNL`*XnE&*c(i(q#n*G^6T9$+kBhkSQ&^z*l;d!c!Le>wzL%$C zA8$3bacZ30-<7Xb2(vcYx^Ivdy<SyK1QhBeDkx2Q*KAiuF8yvN6>y|sUI*_LU-iPk z&{qIZGEi=l`I4$7igDdC!$z+yUOz?;{IfPuSV|>&s2~*Y)aF3SHcY4AU2P`2US+NC zHyl`<6LV;C*D>N9yHy_$vQ4uVLl}eOL5T$M?4nH8xLE6oYvZ&zzb9o|$kyP2uHmM$ z``SJ%rsobkEs*+)pOY*88mbn49Hrh(seRsLBp|U*+BM>Cmd-puK zT8%Ydc@JHo`Ev&RK7lz_&&S2^b_2C=x(}TT>kc$c-J< zn0=09r-d?-=eNHLRE_sK4~%O)dNJVHa4BtmA4;a@V}}!!J8O+Or|t_@ny)r}Z^|%> zy$(A0p?L~NYE9t#vHG1zFpQEhvO|#^(e<=TgTuvYZWt?s)@7 zI-j-gyx?knn=Fu?W42QQz69nGKst$w<8SwMm=}!Dvo7ME;}|Ynt$Oey9#%Q$3?yG&+OGI<6;gAG0#w3r<%;@uR$vMS?wcB7F zt>isQ_=NL(-2EDw-`XzLE?c~N&~shACNG7V=koPlr(GlFd$N{VYyXa~J}Tc?kX|jC z_a3*k*}^+?=f!GmVKBXudae$gW4sJI+FwR5#sD?@-kTo=KOD7VtX&8?#izgq3unQYAN^Eg8kFmFp$eej9U z)*Ty`cX4KY{<=+*)w|+k`W5V5p-)%4mD<}2Z zr*oM5X!s55u_oGcTn=Vi?4#duU6XhNm_AHafw`8)nfO|6>-sQ@f7`osZ~ZPlBqs|< z0?h6SOK`pf^82_XRL)9oc!QMZbdDw#Oa(3~i*?Vy8pq-^zPBT}1Qx?3xIhcdGyCPO zdHnX$_QLJeW)ik_PF7;68!Kzug-P?!yq_8h(kycE9DW?FSS5M!ae?8stao7VPXi$Q z`jF4xpa;?_6a2W^TH}ZYbJrO{fBD&s%>@o|-?1BWXXZRKmioK`P<#&Z%6_`l1?a6y z-)~Sv@{o7=(K|j|U7Pix03Ml%`}|9TYb^`wsS`V4-|+mSH90(D+B#P-tSEQ^fa8Tw z!caCQqCFLRJbsk$(zNb9S2uv5##dvz&vfq*0`k4LlZxKMySndLYM*I|Wnxa{5?QVU z;}o8K2X+P$@lS5V}1{hh628|zN`aS+4B<&Oig~dZ^@hmab?$9V|=bk-Mu-`-Ugyv z)K%UzxE%3HqELt!XTalGG$DZanPcH#nbR9PknnZD*ucscI4r#WriT_VFq~YChh@W zxtts&g!&J{j=%Qw$zJ{etj#&zCSaKLuokpO>ZxPRiN%<4;v3Mfi64yvwe!0>y^|5m zBj2{Rb6vA)nima|5NVt2c#gL7_BTHx-C$y81NqrK4jB$oCwoau4Zbr;Ey&%w z@EymKzbOnbF6x0GiPSAc2mI0(uis_5C*VQ4dn*lT6~-KsdUFmHg%$#vvFTz`^kzV3cmEy7R2$> z%osxzA2EK^m9uqF1jMS~k^we-^UB1{o(*c-_Hfqo9pvFmCqo zERYo%}=bnO~9-B9#nK--~75N5?{LkDof9VeI1Zy&EnS8FXQ95mQ;3`dLe18bqD> zOZ05*lMerz&_XfSVUb4^+A7r_Wjx3>?IJ|()=qC@fB)IJNI-!keOiO$53|*SMtfjC zd<&%aE(wvac)rayr|f{VWV+uXTE)qVV=1}gdk)W=T27UK(0KOQU%Q>N@gNUD#(b50 zH2;CA_zK4BXvdiwd*I>thG5L34spTemkS&V=*`p@KsH{gAo2C7a|MfbU&l)u^a27N zm%I59?pOC^YWHL$!e#wCCd>%Y|@@DOtHtdMqHH!SE4x*1jQ7Hvp zIzJ~Qy1_A#%_+J%R<`37jf#hG5(U&FCc{2;_kUJz&T6H6-Ou`TgoAIe)@3k6vXjHt zm=_8QgZI9s%c)Bu_V6WgAr`e$#>^~W@|-gXt-SNl6%lpc{k-=H6%Qix>&bgmzq$?< zo7>NIwp6Q!7~#BUar(H;+LnzpoYCGVhsa}?00$!EY|DmRo+)0$uP2}rVwLCa#;^Yc zd!}VVo?>#2@=2m9+L7hI>}!4-_$Ev4o#!RlrbbYs2pA}o=Qr<1wDx|xpZaFv%@G2+ zAocRj#A_i^x};To974c_=3MjYIgc4b3<;2M$WTXYI!W=x@^iq5Us>|T`9deOxMs79 zaN-LyBM&VHCd>8|Kkzh}q$JU)4(8f(Ndizz?vLdl_V%5_d*_ZS;qNdJdCfOodO0VH zQ^Oah`2$q!bvZ~8!tc(AqeS?Sh$(DEf;**?ci{H8!R**U2`kfXR(ERujD zZ5G@8amE!^8?6THR-XBO-u~KdH@fZiZ^V%`Ft(mO1$2Z_^=hx3N0W?;2s4{LWX3t$ zmY;eH?hvE*d3}XCV(XVs;4fvFsl}e`$*a>?))~cywz_(0BmnoL^Yu5He3nk<0bBQe zkMXwaQle9IRyL?5n|xk8zP1v&)J+XmJHU~OwGHvX-uP;bPwEp??T{tB)<}T5z9~Xn zf6T-3faMm5i2LsOHuvH786fZBBkjG-y-$bJ_dKo{r;Nk%pm93ZX3?n&9-nTtQ3J6? zUfT?tsFEgQk8`+)m2e)f$^vP*Ci|Z_vgiB=PICA6Qz$2T!WpX=`wh}5<1Cn+t0g=eZ z@NiFMLXX(GVs(UXovSi)65ZrJ3J(vR0hp{ zOPh1>@A%4$xGT)%EBG(t!jEx)sB^3qubskva*r!lX^SNKWTYqF6 zSxpcofyK%?X3GA(`OZCS&u?ws81;t!quEi4%HnwD_Rw(;HU(+OLN{W>%k}Pl=n)JF ztz%XVSe*k0*5e6VqNL3(?fcsrT#nWmRCKBr-yf!Bepw_=Hb&FIv$Su}Luh^g=129> zx57u{%iC#U)9~!h)R4W<-A_!Iq=0stSc3z9(=LJ@hkb-cQ_VW62r};^%rRK8~9oBt(6_s>RubZWy(GWk9(yhrUtd z8-Km;WHSY{_JfX zx^FWEi2GF^56PpOtlJquTek4lw5ia;sIS=fI7_lKM2oIKAt7bII2bG@YPhc=oI?)_ zIs7vO;)+mxDnqrw06IQiQ)RH;6Lhs9$ruJcSk9-t0U?fask{j%T<*8MbFZ5%CuZ5e~h%uidH zDc>&*7PSL$p0A|{8tZ-6_f+OC`Bgf(d3M2#?aOWPHyyp%;q#?z{hYx!C7B92i|1Nb z4$7U%o4MhmMh$0;cQx`Cczun}Dr<{IX86LmVLb1+&tFhPx;ZjF3^Cl23-X|8om`Lj zpwV`yW&|$CZQ)7X^o}{ozF1!md{n3U(k=roR*HN>ZVpyEzGO?V+tW4Y;NCxjRKXbR z-e2EG@BU5Py60$b;J!#|HKA{?C;vchI}?`OejQq2 zWTWa9en#gvTQLp zlrg*he(rtn+nT$dzXwk2Pk}N2)oIfUp8A+Yj(3R{;ytco6clfkGW)UesKqs0L^tV@=}*StZLl$>7x* zJdH-czYNd=%Eh_3X?)(=ljbo)XRkI-Bat}IY-c>3H}}zRf$z5lO~tEJ6#61SxmQC2 z6mjL3#>KnsQUdNLO3+vqG zsIupq9KO%RH`?zc8-eouOQ6{=;jo!hkNC#$JytLRCg6@Z9wVXI=8?p=o+-)q zc6=7|dc6;lkenCk$gS7}S^9Z>ulxOBZD%zWxl8zavFO_8Ywpr23%zVY5mh)-Y=ZMAmi6liiOJZ=qr`TMH0*Ya*zR06m@$&L#zDlrr1&_Ng7Ok z1oOUT#xi+Abcj3766wK?12+{XT&%Rzg8Y19h&5{_Z(~K86$_K znSHlgPh)w^Zt?R+ENPkBf0lKY^eEkMN>fw^wj;3UHj(;o6~GjFw^~qbbYQKM7~}l_ z9y`j&lrLIO1Aq%IVZe!pF~{OU)VdZdgC4(zG1pFqe8P;q_3@p9e2>&ao#H6NMgn4C zEw&dS3Uci!?{e<#us?>9g2w^Z_SpQ_+`)=45=iu}G;?`NLh9ab9K2GI)X%R;IH~Jn zSLC1NH6(WVnQ##95?0iAC}5K=bm7(;gfNpcF@EbrIRLM3YEi*l40!L{%)u=lGB@77 zkCsg}OM9I>58n%D=XnVoRpV`xbD7J2D7Dt3VM0H660sRg<0i!3Y&W>WI@vf;7wLmb zPd9Ac-y;qP5)G%@@KivD;1VL!pZX^j3?eng6x-yh{oDHNAiG<%?<*JzdIGJ}+2dI^ zGUBTlzck|1> zHX5L^-qXo?ONf}=aoL`QYz05x$wokBDW>V{@~Y3aRm$o zuXai4S-zX;2yVE-#1tXn{$=9-|DS?S=G#rX4}8=?vvs>Oa9fAw1eg>6L&}^QS?35G zaiTDKvh}C4jYLt+kH@>_M68Gy6);=A9E})NvGoKR!m))V{j`0*I1Ra(rv(|2;q*oXD(r^6@QM!_&(O>R78PYk{ z6@rNyCJYd2;J751Y)E#jr1zTqA1 zwG09h00{s1m?U{_1hRu3jpyk8>CYe(><`68e_|SH6{*RuxlPg)GATslt;&tf-UqeXB(Jt8w2Url^K4$t-ZS%ve&!L*==`0;LXEt z&HJqwXp>%Kt!G{w>lkp@+%pdCHfN7jjiW}JSfQH5El#du!RDKH+!}cn)_8cN^0*&- z`-sztmy+?Z!*85*>|hJif|kmr4HBf;poY*X16s9`ck!hGX(ep?UmDP-_`)iKkBaA; z1hu~uq{EMW+m#hde^Dv^@Yj62CORl@?_wXEy+ZxeUPYl(=(%l6=dah;w&u_LsDadL zpNerBLwJ367Fyrg+mLJi=q;O`c4__PS9Ah$+}LzV`ldmz?aeA;vY-0Ijl8jLnjM;?Bfz(;bTZt!^*-i5#;{aMfrN676#qpt( zZlb=j#N1y8>6^q~stRX3WAI4Fj!XtHel9u3X&Lng(Z;U9it`(fk}H=7N;Wn2cQmwd z8R2WP_vbUnMTFBx6lnOJoQOPtB6Xe0ZhD1HF{@T2hRy92+7`i52LdPu^8xss=gKBN&t<;!p>uG}VV z+x7~fi;RbK>@Rq}lUv8%xLE_LbNHwh>yg?D?lEhDuK`WL3t_JsV~^(a(rz3U*(Cfo zx?Jm1YJZro#^~i4-^O>D-0hl! zm`WS<=rK1KCa2c8-I!BRsClgce9p;SFsj8+gR8I*nSuFj?cGbx0g?gR?UrQcFo|FV z=HL6387ELV5x`RnB+1M3J;L_3MGJ)MUoi^I2UQ8T*I{aK&UcurwZX#?{Ym?T*S01_0LU>qD5XGWNf{?3Q^cIj80__yZjMvx<@bn=LUf>Jp zx-gEseDuw4#2}%!G={6ihz%r@TmGc0G)}F?@=;=Q6Nt^~D=hE&Zc}w1x7vE4se8ep z-QV`riaIMBEPFKqcaz?zergjGrWC!tw&-L|SOY#cF6HksOIc!_R-(K0<@yNF<-m+c zK(oABve?}5a|U=VwpnA`o_V?Jxkd41$&$d;rZUtLd@vKeDToM8#$mw5|_ znF^y{*xBq+Vl!uvP@C0x2(I((m+NldX}lL6(ats7oP4lBNPIQKNgbRJQG6LgyAtyY zwg9)3+OJmK0kx{1Db;8kMVd} zDviljtnrBel<|QWzToNUHPqG^-GYWslrE!M+B_WD_S*A{V&8?8y|8dUq22nf(I~j{8vwHt znmdgaDty<;Avs@N0pX*Vv$@ki?zesm1{LF?YjiWTyg#cXFPcRbZ6k8?X>w}&hDowG+&c=OYEkyY-`U!rt=Ic>bwMg4;`GW4H0u@8R*mfSv^R`3+a{a6a;Bjmwb~NEpH%RXKg6H*`w;og?w2^O7 z5{OA6?W<@UDhF^Ebu)ai2zJc|Pqd?vxB2mortT*M!J0tSpzQ~UU@*1{1)MPH0NOoy z)&aC+_i#d+_nRCtQYMzV-ZJIt00`=POvUm+SY^?P-M@K|g7*2I*^iAx>+c&`jFh`? zS*{HOlrClrNKL;ztu)F z2Br$`bZ))mM5ase!Iz6Ss z`$1LkqFEbf_PIGPLZYAV9-t>f=Y%vx=w*$u1~(}w?!?&iK=3e|BHGp@ws7@&61aoM znT&8mjWQF%`)^-);C6m5fqU+Xqey3!B46K{b@z6fRW;S!&Z&~uk>-4#0Vl8!G>12F zX9x#O?APjd!&;7d+4Yd)Mq}Gg?)>tL-C5Qdn5>aXf%Q{fHLUME`}Vrlwa<;|k%$Ut zOa%(?*vyTMM*cn*X-eD@!T8J*as3uLlRayknP?a$X&r8sWQ3zXy1kHYS_d@zxI{FBsi?>)kAC}? z`E=mCo6Gn=?BDy-u1%@`Y*^XJvvqs`UPuu;g6LRluX$fV+u}4jfy=%m3bG(@h+Vtz z+`prrc&oQ397*16AKKtC4R702*md?1o52_pbijX=0A)Hv4{vR++d=63z83&LbDR}P zo@$$SVAco5J}28C*5@0f*~R=zAeV5!v-(uR(5mUQk6e>|1R%b=cMLLF5MN+Q!*yFQ zcjuS0#&7bKd%h24&F*{1I8&mlLt0=n-GV71wHxiQ+t|_qu_P080Uj|!{yKTv;``@a zxFLL^S+(`KKhz2E%yR@(0B;5!X^w)!`Es|cZvd=!QTG1WTi;(C(<8y2ZBR5Bmj!Rx zb5C=lG)%>LKObYHwOIIFhL77}hJIbM$0B(T1%z9VTh=m{oGkKB44zufUx%#s2h?NU zL0g)mJ8fD`Mlg4|yt%-RI2Ka;yiYI#b0Dz*}*54NBtcaObo-R40=VJB@p|hg#q8xSzVKnD~m5Mk3a} z;Wy?@YY%gQ=f@{#TL(3%iyY^>;MSzmww`O7?f7QfuD|mFPdQ!3&uhk+$uE6x$N*zs z*`2=$L&5cCTnKTL4N%8ikl6i1#jPq%#)5^C{V^G6G97p9f=@k#AkQF7k~`)G1xqF} zK8PAjNrYbLvCW(bK)uVl;Jbhyfz`R1(9KX=9kB<))NvC+V+5Etob7Z_%6 zFEg!AKMZ0->Ou`>O$t2W#tgN_N&on2EiZ6$y^nA0m@4fH`ehPfwkxpyk z^D{>8fbC`1Isg%Svjz({?s6=@P)IL2i3i06EixujGe#?n0L3}td?oHlQ18JH-oDp{ z`LoB0iy(+~V#A|cf8(c+|FQR;KbI!yeV#<^Y+x^kv|#yz4I7L8D4?77UAdYdAp?S; zFAlKz`4D$i-8I|XneJhC4_E8eKj9o8S+Zrr*_N{{2iTHx&JoTLhI5X9an;)s`t-X? z5j*SC5(EOobeP%mp7WgNsjB<;yRHzqad!zJp?&j2-hd}#2FRQt zn4R)a8-cVyiHrk6$+}jpjiVS2mqK?fYb8Y+b{fGYf;!|#&qvaIByga9kD)SC!{|U> z*UF+DQef*LL!p)dc_W;ZtQyq1#1R^Y0kJ3G(zRz6WtF}y-0^_uzdB4Mn-+F15 z6^yTN){xg6N)(!7OsWmN$Q+ZIxtF|R+Rmers9s;heL&&47mOim0Obevm}_EtucfVY z=5Gp9H~F$qBaMnm&?1cUq-n8Y7VsCJ%!3XTS5|vRhN?fOQ3ny45U6QAhIq7A$RIg=jx0YXW4P) z5fgX~Lh(s*CR%0$o1oEgYvOAcSP7KPX%sYzK*!R&FJ_d49?OoMxpvx{*wRdk!{rzo zb7ZpNp1X%ap;#dFacd$-BPp7wF_hb$2bu*-<`bG-Y!cySY>BNkNx|ok-qyj|ti$NpjMpk<-tlAvVtNC_i-2 zB)RwFv#up^prpY^^DF|Xu%;2Zw!;=yAM_Mv>H{d;m~}(m&H+R}EImuUL4cR0DJ)^t z8iton%syay5FJE|>T=qTz*!bMGK$Klb8m^dCB0RK=}A^%Q^Kel!e|*An-S8YymUiZ zHZ6NOkI%q^C>*LSoLpSXV?lgys0##iq%{)eJ9wB>7qJ9csl*dt(T9ERj)WZJ2F;cs zWRXY|=|M8vyx77@gLt;$Qqc+UCoFuwskT@#6?EarYNQf(8H>mWAYn*`(jkoO)+|i} z@k}1swWn!p<~EvybG}el5t6UqWV*)Q_;De{+3KjUPl2=-%-AVcO?O6u!UJ<8aP_3o z<~X{URNIs(r)06V7e=*9@dajPDAmaKg~s8w=Pe`kcjG0T5IF|eax&fnE;#6xKFkLx z3M8s)xJ;;65Rt&V_Suf>PkJTjR$`}&u6rGCfuHXee99o(xsJ>LpmPc}#_FZ6nz^Zt z)43N;%DJ)oqIc=|f;eIJ;^LHQNH;{I92~o?uvwBC1p&t|QdN|-K@;Ah8i!h9cbew{ z4Bd6b;l5L%2T;W&H6$`r@f)nHbl!!Uh<}G;gHhhTr7S%687wpiMoew8QYtOA_FVG@ z7{c@rd>|H|9bxkrY@IEI)8<_!(nzBAd5~QYybvHnhY?1Cut#2pvH3=bW0C;*^jcF( zZZpSX+??ox8Lg9we~lPV8=ClTC*inqEC#kbi7Qd6GLW0 z>tPiI1)F+}d5u$>uVs>DTIVJVxt!25kQY7s2*9K%k(dp#7!rpKQwSKQLqu|B0^BZS zg*IJmp1TeJfGTv?XKVEgXmPJNbMahU%+Ap_&;tWxRVmjMGQ4M5e=>w2^;6x7y$Poo za9eC(na`t^zP+00naE5$VyzDDy?M`QD-RsAcM0qT0-MjC{#2X8;+#|;M+BzR0gRbX zdeY3iP-IkY^N|QOhtG%Cw8w@OZzVJuAR`m#si86020CLf^EjwR8imUKV30U!BlO&| z_5zL)8hpkd*Ut&!CIU+mF(`%ET;n1%qgpuE4q@pzdpI4s9Y_KMyF)cm+;o&(YazArs>UzOHoioo!Op=a5$0r#hrT&8ifJgH}Az7;4)u~1a*fJo5A;fifq zdoUu9zJgqzgOoWysoEQ8pH}=3NyvUxNvjY5kBvFZetqobBo`LaNb->aIAcmpJ zPa1k=u~nRSxgCfhP_NKtS%L8f{c;tqzvK(W^En%j(4cDFdyxY##*YilbCnyEItG3EFU;4JHUmrdgK*53Fo|u^=>toZvuM zx>(q(f*V6cJnJD>s)KIR5=41`#D1)@yl{k}U;B zEU6paPhz7(_uUQ4@L$HYQrNWlml+OgF%=BiNmCA$!-Yy=r5+cQVePmPBT*$DyWvYzee2 zQhoT|%lZ6cmxo_@W*_;(uiLVZU-^rd43H&V9M$Ha(y$U|mhjwA zZ06*&!xfbP6lZ&l0ZuDWMV9= zVnDd6t`;wU(Sx%G%TYEuJHVp@t61eJ7e}zM2Wy|aCsV1>ropr7%4&%55A!Q!`C2D) zJ@EN^vGWM{z2HYsBrl1I`IhBS%~=cg-6IsvIJaN^;s*yFoab@L1j|eqDwz9uZJ?+&Rrq_hPE~A!ucYxSoO*& z?Y7u7#d#1egX3SC6)>EPes`%IUb!~km%o%(fifJOM+T{6`z)>4GO!mY1w;;f^r&kI z2U(-rN)VZ8)}x74GLBR(7a#d3#3eZL!U;!R7#8@*fw;Prx|Jyaw>i#anO0x^vIlp^ z0|F*3gxZIP;k8?0Em8d-qzcC>Yqz+8cy6Bo+Q!~MA|pqmYa8_VSvq&GUKQ4Pp(fUZ zSaHI2z`5C?azyia?bcTtd9)?<@|QojiwpL=N##%~iZz}gqE&+U8HhQSxKmFZbl|nx z+0(W}+S*!22Q(q^J9O7R7iU-Ge+E((s zX5g#o2V%Cn<8$7OEnA~KpEOkdtCQk#KzTa&Yk@EE8k=!;q7ed%f^Iov1tAj#BsYO$rx*D8XiWb_N2>XXk^iv_?ObmM^)7MN`&A_nN zxI56O>D0G6ms39Q*t=0QG*jD$1@moED7T^ox z*`)SSFMrkDbpcrf-AgvWzg}Y}=P)?@9KdHLcsm%^a+>LBQCe_9vomMa&&DXqU3V!u5J<7)3quv+A(?-VY*?$WEF>8m4kt5b~BS_E1P5A*W- z&iw-XTW#6VOmPrLa8gRpp^Ex2lvV2Y5%} zr_(gIta9dbz)5>)^H9k)UaCTJyx4Z-dAJBdIJn8p;t)N(0{(F>(o~ZiT|=t1p@a%y zz`;x8`FtN`nKtl}B6H`!PoCZDkzdCvifV4QAbYzUZbtnb+3s0Y7>EL{a~>4 zBpX?i5=k?j2hoP*y2h-Hk1xb5 zuIvvp2@`Y{J-LK!=c75g9^W|UMbN!A#{m=dFzt*11O5aL# zuB}5)kC4f7f>^%;9Xs=c$ZJzFNuF~-1CbL)L8Er#+h=9W$|j2yBFQ$+ybK=c=4dVl zHf*#UdZ>+JyF1Y^t7%^T`m>(2fq>g72jr&Rse99oPxs5!>=Pn^{De zf!>`&e>vdtG=pt?ojDu0z(fzZgNj17BVLX%kT>`8H$8ar^?U9{yg{(TGH?4lR-@5y zOmOajZ$%EvZcB|sZ%Yd^^LGzEP&3x{q$MLREYzNfni`C2@@%qZ)rO4X#OZ6u&XK>Q zx*IC9JvF3ybx*nV%XxiIdHCL|?|tkqU*B22_WI89@crd4=ZmKwe|}RL##6uQMEedJ zfXOMr7uZ$|X{@ddB80_O8$!z4AX+~C9KWXNTaUh_<@@hF`O2?nrSS0m-*&FppMCu!K7aW2=O6Qcun&Ln`@iwY zPrR{?I8L6*_XOog0vH>BkT9xJ4x~XUVn-WoHa8Cj$q3IJp%X)~iGz%-Iys@igcV?~ zoSS*ap;b0A0)mM!yV-!BDLb9)Jg=^jTkp27u9B~O@Zs}uy?D6wTlU4p!%wn!PKl<_kXAR-NJ(`fIqT7KSCwp!gNT()JiJrooI)ENFHh);z8D0aT$StMS zslEkH5F@3j%M17&A`UP8G1&F4^T#@_o}VNyn6^W16C&H}Wu z__hMShF?&60c#%!RBiB~j`lV?yuBTPeAf zAThA$B}Es9p}|^ND^4YnrrTvgnBnZRT>jSA2ZRJ!W?@2x?s|_-1R`@CZjc6@lxHN8 zuh7yUnn|0W-PDnN_1I6m3wzR{!^e<5R13uMWuHeN;a zrZmbd=FH(n-B^8xO=d;t%t~yFz}9xK{|kE-=2}@n@BU3!ieB+-l_PyRz?QB&tQ8kW z<0v9SHLrZ1rP%@V16rP8UjFt6ck&W2Q+O_g-NY(7hk5KApg{JExt$Z@yo6<;SsznK zm?ZD9ZA7MtmST#rg}vzdBdW9QK)NzVh8*1BhU8(;_;kCYv|1tbdHDkmo_zC5+t|In z+5F6U`tsG!`pb`gc07Id_@iHb`Q#_gjan2jd}|bq;VS?JXb?GwlYl|=;ZfUOFwgK$ z#oSQ-1Ugnb>YTHrVm4YGIrgqrJ$ZuvyqpLEPTkmLmauITJj7+STg!vffpvAGzV#9D z)s6bA>-j5x_N&*o>RZ2QZ{MoR3w~&KC4>d>r2x>GJCzeQ{8d9s?My zMow|2p*A^c%Xs<)Yr`&>v9vMwIhxLv6HAA3hm9hVgvo1!k%D^6=w&J;#5Hh+0bfhU zDj(~lQNNZ-0Z(FU_sie$;K@&X+1GvRP7%*W>2Xqin_vPeOkUG21b6aCmHuB@F0l-P zQ)8C|gEqFPs82|*5z*S(JC)?w&YdHJZK0mWIbigL z-Yfpr@7Y^-S$VASjl1mY-+1TlvSh5g3>xer`#@?oV&NHqd}SC`W+NZLWXl$kNs$p* zMswIE3z8a825ozHhVd@59}r4nDkkhE&Ty*8rtZXy8d5VSR#z6duU+1R!%c$n`;ilK~_zfhHgzP{ELlQa3&S+TO#G0boo2)&MZSD46C+B zPKjJX(?k*yBMMN`K|B`t56-Evk^n2MxkAd{ZHL4s6n!RouA}uCJ4JmA)^*sZeG^n> zmP`JZil@fB19Pn%^5yS(aD29nri6FMTAf>ikJWW$=9HQMU%^u^Emj0tE0r;hO~_Xz z1t0WKvB8P}xAz3fojz^41F40`C=KJrU==9T?7>V()iTDYm%sbLv2BZ`Tw^E{vFEZ5 zgqY~%WHIPwwb#bFHh?e$mK)4M&+5GJ3nY3tSZ_y{lS< zt~(fJa#}`B#~P>hQd`=w%-IQ8^|I^EFv}_u4m~5VJTHGQufkdyqlDr*0`ARbIZYiL zlI>LR&@7_#p5oEBQ5OrHbLbRmKPPOHlLb27%x*()-j@jQt_Zt0OdDi}8YO;Rrburf z!7*~5@$&bbtCR2?7aq$hdUyhIyoQ$foxCCLZSwv-?2_q5mt9(G1iBz_GjFOuuNKzt zv{bX>yoTpkK(H-4tqUu{ycJ3KK0LBp3syFCFJjTu)_; zR$p^`Fj@WxQ%F1t@8nW0g3A@t97*|U1DtCn{8 z2hMi{?aOYH?;8>}ici9UiY&b2^Z`Ax^UlP;(3NCP7h+vpe)L@c)?(A*DclsZuN#YP zwlk}G10E)$l~aPeqexMsZK~=sT>jvB6&~ZF2v4*o$@G1o2BqWJ?Wnk-u8p9gjg4U{ zZtVenKwGVy@Li~>SDHB{G?G?fj*okz4^e zwH{)0w^s7u0qjzOVKU;f_6&42)1wG=EJTorl4y~d$O*u5Qlf#Kg5Fd$F&YsCUwQ`tGZhBcp2uTg7vwsbP%*9av{qRq&%#5YL4!{Qs%0D%^js7GF|urlD0+|6 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

  • l#d!E6P$K2YZ4 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 z]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 Rx$y(s`F}nARCa0u4*(uiMkfFO diff --git a/fees/moneyfi/index.ts b/fees/moneyfi/index.ts index 68aeb0453c..e796c421ee 100644 --- a/fees/moneyfi/index.ts +++ b/fees/moneyfi/index.ts @@ -1,61 +1,62 @@ - -import axios from "axios"; -import { SimpleAdapter, FetchOptions } from"../../adapters/types"; +import { SimpleAdapter, FetchOptions } from "../../adapters/types"; import { CHAIN } from "../../helpers/chains"; import { getEnv } from "../../helpers/env"; +import { httpPost } from "../../utils/fetchURL"; -const BASE = getEnv("APTOS_PRC") as string; -const API = BASE.endsWith("/v1") ? BASE : `${BASE}/v1`; +const BASE = getEnv("APTOS_RPC") as string; +const API = BASE.endsWith("/v1") ? BASE : `${BASE}/v1`; const VIEW_URL = `${API}/view`; const VIEW_FN = "0x97c9ffc7143c5585090f9ade67d19ac95f3b3e7008ed86c73c947637e2862f56::vault::get_fee"; - const USDC_TOKEN = "0xbae207659db88bea0cbead6da0ed00aac12edcdda169e591cd41c94180b46f3b"; const USDT_TOKEN = "0x357b0b74bc833e95a115ad22604854d6b0fca151cecd94111770e5d6ffc9dc2b"; const TOKENS = [ - { arg: USDC_TOKEN, decimals: 6 }, - { arg: USDT_TOKEN, decimals: 6 }, - + { arg: USDC_TOKEN, decimals: 6 }, + { arg: USDT_TOKEN, decimals: 6 }, ]; -const fetch = async (_opts: FetchOptions) => { -const dailyProtocolRevenue = _opts.createBalances(); +const fetch = async (options: FetchOptions) => { + const dailyFees = options.createBalances(); + const dailyProtocolRevenue = options.createBalances(); const results = await Promise.all( TOKENS.map(t => - axios.post(VIEW_URL, { + httpPost(VIEW_URL, { function: VIEW_FN, type_arguments: [], arguments: [t.arg], - }) + }, undefined, { withMetadata: true }) ) ); - let usdTotal = 0; results.forEach((res, i) => { - const raw = BigInt(Array.isArray(res.data) ? res.data[0] : res.data); + const raw = BigInt(Array.isArray(res.data) ? res.data[0] : res.data); usdTotal += (Number(raw) * 5) / 10 ** TOKENS[i].decimals; }); dailyProtocolRevenue.addUSDValue(usdTotal); - return { dailyProtocolRevenue }; + return { + dailyFees, + dailyRevenue: dailyProtocolRevenue, + dailyProtocolRevenue + }; }; - - const adapter: SimpleAdapter = { version: 2, fetch, chains: [CHAIN.APTOS], start: "2025-08-04", - methodology: { ProtocolRevenue: "Revenue moneyfi" }, + methodology: { + Fees: "Yield generated by the Moneyfi protocol.", + Revenue: "Management and performance fees of moneyfi protocol.", + ProtocolRevenue: "Management and performance fees of moneyfi protocol.", + }, }; export default adapter; - -